확률 분포를 배워야 진짜 생성 모델을 이해할 수 있습니다.
Variational Autoencoder(VAE, 변분 오토인코더)는 신경망 기반 생성 모델로, 주어진 데이터의 잠재 분포(latent distribution)를 학습하여 새로운 데이터를 생성할 수 있는 모델입니다.
기본 Autoencoder와 유사한 구조를 갖지만, VAE의 핵심 차별점은 바로 잠재 변수를 확률적으로 다룬다는 점입니다. 즉, 단일한 벡터값이 아니라 분포 자체를 학습합니다.
기본 Autoencoder는 다음과 같은 구조를 갖습니다:
입력 → 인코더 → 잠재 벡터 → 디코더 → 출력
하지만 VAE는 여기서 한 발 더 나아가, 잠재 공간(latent space)을 확률 분포로 모델링합니다. 잠재 벡터는 고정된 값이 아니라, 평균(μ)과 표준편차(σ)로 정의된 확률분포를 통해 샘플링됩니다.
입력 데이터를 받아서 잠재 변수 의 확률 분포, 보통 평균 와 표준편차 , 로 매핑합니다.
출력:
잠재 공간에서 벡터 를 샘플링하는 단계입니다. 하지만 직접 샘플링은 학습이 어렵기 때문에, 재파라미터화 트릭(Reparameterization Trick)을 사용합니다:
이 트릭 덕분에 역전파가 가능해집니다.
샘플링된 를 입력으로 받아, 원래의 데이터를 재구성합니다. 이 과정은 확률 분포 를 통해 모델링됩니다.
VAE의 손실 함수는 두 가지로 구성됩니다:
입력을 얼마나 잘 복원했는지를 측정합니다. MSE나 Cross Entropy가 자주 사용됩니다.
잠재 분포 가 사전 분포 (보통 표준 정규분포)와 얼마나 가까운지를 정량적으로 측정합니다.
총 손실 함수는 다음과 같습니다:
항목 | Autoencoder | Variational Autoencoder |
---|---|---|
잠재 벡터 | 고정값 | 확률 분포 (μ, σ) |
목적 | 재구성 | 재구성 + 생성 |
정규화 | 없음 | KL Divergence 포함 |
샘플링 | 없음 | 있음 (재파라미터화 트릭 사용) |