-
An autoencoder is a type of artificial neural network used to learn efficient data codings in an unsupervised manner.
-
The aim of an autoencoder is to learn a representation (encoding) for a set of data, typically for dimensionality reduction, by training the network to ignore signal “noise”.
-
It has one encoding and a decoding function.
-
Where g is the encoding function and f is the decoding function.
-
The encoding and decoding is done in order to take the most important things that represents the input.
- There is always a risk that the autoencoders learn the identity function.
- Denoising autoencoder solves this problem by corrupting the input images by adding noise in them.
- And also other ways of corrupting is by randomly turning some of the input values to zero.
- When calculating the Loss function, it is important to compare the output values with the original input, not with the corrupted input.
- That way, the risk of learning the identity function instead of extracting features is eliminated.
- The below given images represents the gaussian noise that is added, the left one is a random image without noise and the right one is with noise.
In this repository, we have used a linear autoencoder.
- Pytorch
- MNIST dataset
- OpenCV