"Autoencoder" (Machine Learning Method)
- Method for DimensionReduction, DimensionReduce, FeatureSpacePlot and FeatureSpacePlot3D.
- Reduce the dimension of data using an autoencoder neural net.
Details & Suboptions
- "Autoencoder" is a neural net–based dimensionality reduction method. The method learns a low-dimensional representation of data by learning to approximate the identity function using a deep network that has an information bottleneck.
- "Autoencoder" works for high-dimensional data (e.g. images), a large number of examples and noisy training sets; however, it is slow to train and can fail when the training set is small.
- The following feature-space plots (see FeatureSpacePlot) show two-dimensional embeddings learned by the "Autoencoder" method applied to the benchmarking datasets Fisher's Irises, MNIST and FashionMNIST:
- The autoencoder network is made of an encoder net and a decoder net. The encoder net transforms the input data into a low-dimensional numeric representation (also called latent representation). The decoder attempts to reconstruct the original input from the latent representation:
- The encoder and decoder networks are trained together by minimizing the discrepancy between the original data and its reconstruction.
- The suboption "NetworkDepth" can be used to set the depth of encoder and decoder networks in order to control their capacity. Deeper networks allow the encoder to learn more complex patterns but will be more prone to overfitting. "NetworkDepth"1 is equivalent to performing "PrincipalComponentsAnalysis".
- The following suboptions can be given:
"NetworkDepth" Automatic depth of the encoder and decoder MaxTrainingRounds Automatic maximum number of rounds of training
Examplesopen allclose all
Basic Examples (2)
Create training and test data consisting of two-dimensional numerical sequences of variable length:
Train an autoencoder to find a dense three-dimensional representation of input sequences:
Visualize the similarity between different sequences of different lengths and bounds using the encoder: