Autoencoder
May 07, 2024
Autoencoder
Goal: Learn a function such that . This function is an Autoencoder. Note, we don't want to be a simple identity matrix here.
There are three main ingredients in an Autoencoder:
- Encoder: analgous to a PCA, where you take the input to a lower dimensional latent space.
- Bottleneck Layer: typically, the dimension of the bottle neck layer should be smaller than the input.
- Decoder: take the latent representation as an input and try to output the original input.
Autoencoders follow the encoder -> bottle neck -> decoder framework.
Training Autoencoders
The goal of autoencoders is to reproduce the original input data, so if the data has dimensions then the Autoencoder's final output has dimensions - .
If the each values in the input vector is continuous, then training is minimizing the following objective function:
If each values in the input is binary, then training requires minimizing the following instead:
Basic Usage
Some problems Autoencoders can be used include:
- Using bottleneck for a latent representation (2 dimensional or 3 dimensional) of the data. This can be utilized to store data with less storage.
- Detect outliers.
- Denoising: use corrupt data such that the autoencoder learns to reconstruct uncorrupted data (i.e., remove noise).