How does an autoencoder work?
Autoencoding is a data compression technique where the compression and decompression functions are data-specific, lossy, and learned automatically from samples rather than human-crafted manual features. Additionally, in almost all contexts where the term autoencoder is used, the compression and decompression functions are implemented with NNs.
An autoencoder is a network with three or more layers, where the input and the output layers have the same number of neurons, and those intermediate (hidden layers) have a lower number of neurons. The network is trained to reproduce output simply, for each piece of input data, the same pattern of activity in the input.
The remarkable aspect of autoencoders is that, due to the lower number of neurons in the hidden layer, if the network can learn from examples and generalize to an acceptable extent, it performs data compression: the status of the hidden neurons provides, for each example, a compressed version of the input...