Variational Autoencoder(VAE) 완벽 정리: 구조, 수식, 활용까지 한눈에!

Bean·2025년 6월 11일
0

인공지능

목록 보기
47/123

확률 분포를 배워야 진짜 생성 모델을 이해할 수 있습니다.


VAE란 무엇인가요?

Variational Autoencoder(VAE, 변분 오토인코더)는 신경망 기반 생성 모델로, 주어진 데이터의 잠재 분포(latent distribution)를 학습하여 새로운 데이터를 생성할 수 있는 모델입니다.

기본 Autoencoder와 유사한 구조를 갖지만, VAE의 핵심 차별점은 바로 잠재 변수를 확률적으로 다룬다는 점입니다. 즉, 단일한 벡터값이 아니라 분포 자체를 학습합니다.


1. 기본 개념 요약

기본 Autoencoder는 다음과 같은 구조를 갖습니다:

입력 → 인코더 → 잠재 벡터 → 디코더 → 출력

하지만 VAE는 여기서 한 발 더 나아가, 잠재 공간(latent space)확률 분포로 모델링합니다. 잠재 벡터는 고정된 값이 아니라, 평균(μ)과 표준편차(σ)로 정의된 확률분포를 통해 샘플링됩니다.


2. VAE의 구조 살펴보기

인코더 (Encoder)

입력 데이터를 받아서 잠재 변수 zz의 확률 분포, 보통 평균 μ\mu와 표준편차 σ\sigma, 로 매핑합니다.

  • 출력:

    q(zx)N(μ,σ2)q(z|x) ≈ \mathcal{N}(\mu, \sigma^2)

샘플링 (Sampling)

잠재 공간에서 벡터 zz를 샘플링하는 단계입니다. 하지만 직접 샘플링은 학습이 어렵기 때문에, 재파라미터화 트릭(Reparameterization Trick)을 사용합니다:

z=μ+σϵ,ϵN(0,1)z = \mu + \sigma \cdot \epsilon,\quad \epsilon \sim \mathcal{N}(0, 1)

이 트릭 덕분에 역전파가 가능해집니다.


🛠 디코더 (Decoder)

샘플링된 zz를 입력으로 받아, 원래의 데이터를 재구성합니다. 이 과정은 확률 분포 p(xz)p(x|z)를 통해 모델링됩니다.


3. 학습 목표: Loss Function

VAE의 손실 함수는 두 가지로 구성됩니다:

복원 손실 (Reconstruction Loss)

입력을 얼마나 잘 복원했는지를 측정합니다. MSE나 Cross Entropy가 자주 사용됩니다.

정규화 손실 (KL Divergence)

잠재 분포 q(zx)q(z|x)가 사전 분포 p(z)p(z) (보통 표준 정규분포)와 얼마나 가까운지를 정량적으로 측정합니다.

KL(q(zx)p(z))\text{KL}(q(z|x) \| p(z))

총 손실 함수는 다음과 같습니다:

L=Reconstruction Loss+KL Divergence\mathcal{L} = \text{Reconstruction Loss} + \text{KL Divergence}

4. 왜 VAE가 중요한가요?

  • 새로운 데이터 생성 가능: 예를 들어, 새로운 손글씨 숫자, 얼굴 이미지, 음성 샘플 등을 생성할 수 있습니다.
  • 잠재 공간 조작: latent vector를 조절해서 이미지 보간, 스타일 전환, 이상 탐지 등 다양한 응용이 가능합니다.
  • 안정적인 학습: GAN보다 결과물이 부드럽긴 하지만, 훈련은 더 안정적입니다.

5. Autoencoder vs VAE 비교 요약

항목AutoencoderVariational Autoencoder
잠재 벡터고정값확률 분포 (μ, σ)
목적재구성재구성 + 생성
정규화없음KL Divergence 포함
샘플링없음있음 (재파라미터화 트릭 사용)

profile
AI developer

0개의 댓글