Ein Autoencoder ist ein künstliches neuronales Netz, das dazu genutzt wird, effiziente Codierungen zu lernen. Das Ziel eines Autoencoders ist es, eine komprimierte Repräsentation (Encoding) für einen Satz Daten zu lernen und somit auch wesentliche Merkmale zu extrahieren. Dadurch kann er zur Dimensionsreduktion genutzt werden.
Der Autoencoder benutzt drei oder mehr Schichten:
Wenn lineare Neuronen benutzt werden, ist er der Hauptkomponentenanalyse sehr ähnlich.