VAE에 대해 이해하기전에 autoencoder부터 보면
오토인코더는 입력 데이터 X를 받아 더 낮은 차원의 latent representation Z로 인코딩한 뒤, 이를 다시 입력 데이터와 같은 차원의 출력 X′로 복원하는 신경망 구조이다. 크게 두부분으로 나뉘는데,
전통적인 오토인코더는 데이터의 잠재 표현 Z를 어떻게 사용해 새로운 샘플을 생성할지에 대한 명확한 방법이 없고, 잠재 공간의 분포에 대한 가정이 없기 때문에, 잠재 변수 Z에서 샘플을 임의로 추출하여 의미 있는 새로운 데이터를 생성하기 어렵다.
그래서 새로운 데이터에 대해서 reconstruction이 어렵고, 때문에 학습을 위해 encoder decoder 다 가져다 쓰지만, 실제로 쓰이는건 encoder.
VAE는 이러한 한계를 극복하기 위해 잠재 공간의 분포에 대한 가정을 도입했음. VAE는 잠재 변수 Z가 특정 확률 분포(예: 가우시안 분포)를 따른다고 가정한다.
VAE의 핵심은 인코더가 예측한 분포로부터 잠재 변수 Z를 샘플링해서, 이 샘플을 사용해 디코더가 원본 데이터와 유사한 새로운 데이터를 생성할 수 있도록 하는것.
이 과정은 또한 데이터가 잠재 공간에 어떻게 배치되는지를 학습하게 하며, 이를 통해 새로운 데이터를 생성할 때 잠재 공간에서 의미 있는 점을 선택할 수 있게 됨.