→Purpose: fixed misuse of the term "autoencoder"; this refers to the whole network consisting of encoder and decoder (hence "auto" encoder), not its individual layers.
An autoencoder learns to compress data from the input layer into a short code, and then uncompress that code into something that closely matches the original data. This forces the autoencoder to engage in dimensionality reduction, for example by learning how to ignore noise. Some architectures use stacked sparse autoencoder layers for image recognition. The first autoencoderencoding layer might learn to encode easy features like corners, the second to analyze the first layer's output and then encode less local features like the tip of a nose, the third might encode a whole nose, etc., until the final autoencoderencoding layer encodes the whole image into a code that matches (for example) the concept of "cat".<ref name=domingos/> The decoding layers will learn to decode the learnt code representation back into its original form as close as possible. An alternative use is as a generative model: for example, if a system is manually fed the codes it has learned for "cat" and "flying", it may attempt to generate an image of a flying cat, even if it has never seen a flying cat before.<ref name="VAE"/><ref>{{cite journal|last1=Hutson|first1=Matthew|title=New algorithm can create movies from just a few snippets of text|journal=Science|date=23 February 2018|doi=10.1126/science.aat4126}}</ref>