Auto-encoders are a type of artificial neural network whose job is to learn a low-dimensional representation of input data using unsupervised learning. They are quite popular when it comes to dimensionality reduction of input and in generative models.
Essentially, an auto-encoder learns to compress data into a low-dimensional representation and then reconstructs that representation into something that matches the original data. This way, the low-dimensional representation ignores the noise, which is not helpful in reconstructing the original data.
As mentioned previously, they are also useful in generating models, particularly images. For example, if we feed the representation of dog and flying, it may attempt to generate an image of a flying cat, which it has not seen before.
Structurally, auto-encoders consist of two parts, the encoder and the...