Un autoencoder és un tipus de xarxa neuronal artificial no supervisada. Té la particularitat que té el mateix nombre de nodes a la primera capa i a l'última, per la qual cosa té tants valors input com output. Està format per la capa inicial, seguit per capes ocultes i amb una última capa de sortida. La capa oculta central té una dimensionalitat menor que la primera i l'última, i per això forma un coll d'ampolla. L'objectiu de l'autoencoder és reproduir a l'última capa les mateixes dades que obté a la primera capa de forma tan aproximada com sigui possible. Com que en el coll d'ampolla el nombre de dimensions és menor, l'autoencoder haurà d'aprendre una nova representació de les dades que tingui un nombre menor de dimensions que l'original. En cas contrari, no podrà mantenir la informació necessària en el coll d'ampolla per reproduir correctament les dades a l'última capa.

Esquema bàsic d'un autoencoder

El coll d'ampolla divideix l'autoencoder en dues parts: l'encoder i el decoder. L'encoder forma les capes a l'esquerra de la capa en el coll d'ampolla, i té aquest nom perquè codifica la informació d'entrada a una representació de menys dimensions. El decoder forma les capes a la dreta de la capa en el coll d'ampolla, i s'encarrega de convertir les dades en l'espai de poques dimensions a l'espai de tantes dimensions com l'original.

Les aplicacions d'un autoencoder passen per reducció de soroll, compressió, detecció d'anomalies, etc. N'existeixen diferents variants, com Variatonal autoencoder (VAE). La propietat de reducció de dimensionalitat es pot comparar amb altres algoritmes com Principal Component Analysis (PCA), però l'autoencoder té l'avantatge d'usar operacions no lineals, guanyant flexibilitat i així sent capaç a vegades de fer més compressió sense augmentar l'error de reconstrucció.