An autoencoder learns two functions: a mapping
More generally, we can use
Applying AE in any application, we have to restrict the model in some way such that it does not learn the identity function.
The simplest approach to restrict the mode is using a narrow bottleneck layer, i.e.,
A denoising autoencoder is a modification of the autoencoder to prevent the network from learning the identity function. Specifically, if the autoencoder is too big, then it can just learn the data, so the output equals the input, and does not perform any useful representation learning or dimensionality reduction. Denoising autoencoders solves this problem by corrupting the input data on purpose, adding noise, or masking some of the input values. The autoencoders are trained to reconstruct the original images (noise-free images) by taking corrupted or masked images.
Let
where
where
Remark.
- DAE aims to remove noise from corrupted images. So it could be an overcomplete autoencoder, i.e.,
$d>D$ . - Don't forget to clip images after adding noise.
- Masking images is an alternative to corrupting images by Gaussian noise.
A different way to regularize autoencoders is by adding the penalty term
to the reconstruction loss, where