AutoEncoder는 입력 데이터를 저차원 표현(latent space)으로 압축하고(Encoding), 다시 원본과 유사한 데이터로 복원(Decoding)하는 신경망 모델이다. 라벨이 없는 학습 데이터에서 더 낮은 차원의 특징 표현을 학습하는 비지도 학습 접근법이며 주로 차원 축소, 특징 학습, 이상 탐지 등에 활용된다.

AutoEncoder는 Encoder와 Decoder로 구성되어 있다. Encoder는 고차원의 입력 데이터를 핵심 특징만 추출하여 저차원 표현(latent space)으로 변환하는 역할을 하며, 일반적으로 MLP 또는 CNN, RNN을 사용하여 구성한다. Decoder는 Encoder의 결과물을 기반으로 데이터를 재구성하며, 압축된 표현을 다시 원래 데이터로 복원하거나 새로운 형태로 변환한다.
Encoder와 Decoder의 차이점은 방향성이다. Encoder에서는 데이터를 축소하고 중요 특징들을 학습하며, Decoder에서는 학습한 특징을 기반으로 데이터를 복원, 유사한 데이터를 생성하는 기능을 한다.
AutoEncoder는 데이터를 저차원으로 압축하고, 압축된 데이터를 다시 복원하는 과정에서 원래의 데이터에 포함된 잡음(Noise)을 제거하는 Denoising 작업에 사용되거나, 원본과 비슷한 완전히 새로운 이미지를 생성하는 작업(Image Generation)에 사용되는 등 다양하게 활용될 수 있다.