Autoencoder is an unsupervised artificial neural network that learns how to efficiently compress and encode data/information. It later learns how to reconstruct the data back from the reduced encoded representation to a representation that is as close to the original input as possible. There are three components to an autoencoder - an encoding portion that compresses the data, a component that handles the compressed data, and a decoder portion. Autoencoders can be used for either dimensionality reduction or as a generative model. The attached autoencoder diagram is built using EdrawMax and it shows how when data is fed into an autoencoder, it is encoded and then compressed down to a smaller size.