Avtoenkoder je vrsta nevronske mreže, ki se uporablja za učenje učinkovitega kodiranja podatkov, običajno z namenom zmanjšanja dimenzije vhodnih podatkov. Avtoenkoderji so sestavljeni iz dveh delov: kodirnika, ki pretvori vhodne podatke v notranji (latentni) prostor, in dekodirnika, ki obnovi podatke iz notranjega prostora. Avtoenkoderji se uporabljajo za reševanje problemov, kot so zmanjševanje šuma, kompresija podatkov in generiranje novih primerov podobnih podatkov.