A type of Artificial neural network where the output has the same dimensionality as the input, and the network is train to be able to reproduce the output in the input. The key point is that there is an information bottleneck in some of the hidden layers, where the number of neurons is limited, so that the network is forced to learn a sparse representation of the data. For this reason, they can be used for Data compression, and other areas where such a representation may be useful.
As they are designed to extract important features of the data, they are a form of Unsupervised learning, and they can be used as Generative models
Neural networks [6.1] : Autoencoder - definition
Two Minute Papers - What is an Autoencoder?
https://probablydance.com/2016/04/30/neural-networks-are-impressively-good-at-compression/
Deep Learning Lecture 14: Karol Gregor on Variational Autoencoders and Image Generation
http://deeplearning.net/tutorial/dA.html
Generative adversarial network are similar, but we learn the cost function, instead of just using l2 loss (vid)
https://www.wikiwand.com/en/Autoencoder
http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/
TheInformation bottleneck seems to be basically the principle behind autoencoders