
논문 원본: https://arxiv.org/abs/1312.6114
논문 요약: 입력 데이터를 확률적 잠재 변수로 인코딩하여 재구성하면서, 샘플링 가능한 연속적인 잠재 공간을 학습하는 생성 모델인 Variational Autoencoder(VAE)를 제안한 논문
1. VAE는 무엇이고 왜 중요한가?
VAE(Variational Autoencoder)는 데이터에서 잠재 공간(latent space)을 확률적으로 학습하고, 이 잠재 공간을 통해 새로운 데이터를 생성할 수 있는 모델이다. 단순히 데이터를 압축하고 복원하는 오토인코더에서 한 걸음 더 나아가, 학습된 공간에서 다양한 샘플을 생성할 수 있다는 점에서 매우 중요하다.
기존 오토인코더는 학습 데이터를 그대로 복원하는 데는 유용하지만, 학습된 벡터 공간에서 의미 있는 생성이 불가능했다. 예를 들어 MNIST 숫자를 학습한 오토인코더의 인코더는 각 숫자 이미지를 특정 고정된 벡터로 매핑한다. 하지만 이 벡터들 사이를 보간하거나 랜덤 벡터를 넣으면 쓸모없는 결과가 나오기 쉽다.
VAE는 이 문제를 해결한다. 각 데이터 포인트를 단일 벡터가 아니라 확률분포(보통 정규분포)로 표현하고, 그 분포에서 샘플링한 벡터로 복원을 시도한다. 이렇게 하면 잠재 공간의 연속성과 다양성이 확보되고, 새로운 데이터를 생성하거나 스타일 전이, 노이즈 제거 등의 작업에도 활용할 수 있게 된다.
2. Autoencoder의 한계와 확장
2.1 Autoencoder란?
Autoencoder는 입력 데이터를 압축했다가 다시 복원하는 신경망이다. 인코더는 고차원 입력 데이터를 저차원 잠재 공간으로 압축하고, 디코더는 이를 다시 원래 데이터로 복원한다.

하지만 문제는, Autoencoder의 잠재 변수 z가 고정된 벡터로 작동한다는 것이다. 즉, 샘플을 생성할 때 쓸 수 없고, 분포 개념이 없어서 '이 벡터 근처는 어떤 데이터일까?'라는 질문에 대답할 수 없다.
3. VAE의 핵심 아이디어: “확률적인 잠재 공간”
VAE는 이런 고정된 잠재 벡터를 확률분포로 바꾼다. 즉, 인코더는 입력을 보고 단일 벡터가 아니라, **평균 μ\mu와 표준편차 σ\sigma**를 출력한다. 이 둘을 이용해 **정규분포 N(μ,σ2)N(\mu, \sigma^2)**를 만들고, 이 분포에서 샘플링한 zz를 디코더에 전달한다.
이 구조는 다음과 같은 장점을 갖는다:
- 새로운 샘플 생성 가능: zz를 랜덤하게 샘플링해서 유의미한 결과를 생성할 수 있다.
- 잠재 공간이 연속적이다: 벡터 간 보간(interpolation)이 가능하다.
- 모든 입력을 공통된 분포로 정규화: 인코더가 출력하는 분포들을 정규분포에 가깝게 만들어, 전체 구조가 일반화된다.

4. 수식으로 이해하는 VAE
4.1 우리가 최적화하려는 목표
VAE의 궁극적 목표는 다음과 같다:
“입력 x가 주어졌을 때, 그 x를 가장 잘 설명할 수 있는 생성 분포 p(x)를 학습하고자 한다.”
이 수식은 아래처럼 표현된다:

이 식은, 잠재변수 z를 사전 분포 p(z)로부터 샘플링하고, 해당 z에서 x가 생성될 확률을 모두 모아 적분하는 것이다.
하지만 문제는, 이 적분이 너무 복잡하다는 것이다. 그래서 VAE는 이를 변형해서 근사적으로 계산 가능한 식(ELBO)로 바꾼다.
4.2 Evidence Lower Bound (ELBO)

- 첫 항은 ‘재구성 오차’로, 생성된 x′x'가 실제 xx와 얼마나 비슷한가를 의미한다.
- 두 번째 항은 잠재 공간이 얼마나 표준 정규분포에 가까운지를 나타내는 KL divergence 항이다.
ELBO는 결국 “입력 데이터를 잘 복원하면서, 잠재 공간을 정규화된 분포로 유지하자”는 목적을 갖는다.
4.3 Reparameterization Trick
여기서 중요한 수학적 기법이 등장한다. 바로 Reparameterization Trick이다.
문제는, 인코더가 출력하는 z∼q(z∣x)가 확률적이라는 점이다. 이걸 직접 샘플링하면 미분이 불가능해진다.
해결책은 다음과 같다:

즉, 표준 정규분포에서 ϵ을 샘플링하고, 여기에 μ, σ를 적용해 원하는 분포를 샘플링 대신 연산으로 재구성한다.
이렇게 하면 backpropagation이 가능해져, 딥러닝 학습이 가능해진다.

5. VAE의 손실 함수 구성
VAE의 최종 손실 함수는 다음과 같다:

- 첫 번째 항: 입력 x와 디코더가 복원한 xx'의 차이를 최소화한다.
- 두 번째 항: 인코더가 만든 분포 q(z|x)가 정규분포 p(z)와 비슷해지도록 만든다.
이 두 항의 균형이 잘 잡혀야, 잘 복원되면서도 생성 가능한 모델이 완성된다.

6. 정리: 전체 구조 흐름

이 흐름 덕분에 VAE는 모든 과정이 학습 가능한 형태로 정리되고, 확률적 생성이 가능해진다.
7. 실험 결과 요약
- MNIST와 Frey Face 등에서 실험한 결과, VAE는 ELBO 기준으로 좋은 결과를 보였다.
- 잠재 공간이 정규분포로 정돈되었기 때문에, 랜덤 샘플링으로도 안정적인 이미지 생성이 가능했다.
- 아래는 잠재 공간에 따라 생성된 이미지 예시다.

8. 요약 정리
- VAE는 확률적 오토인코더로, 데이터를 생성 가능한 구조로 바꾼다.
- 핵심 수식은 ELBO, 학습은 이를 최대화하는 방식으로 진행된다.
- 샘플링이 미분 불가능하다는 문제는 Reparameterization Trick으로 해결된다.
- 이미지 생성, 데이터 보완, 잠재 공간 분석 등 다양한 활용 가능성이 있다.
- 이후 등장하는 GAN, Diffusion, BERT 등의 기반 개념이기도 하다.
레퍼런스
https://velog.io/@lee9843/VAE-Auto-Encoding-Variational-Bayes-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0
https://lcyking.tistory.com/entry/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-VAEVariational-Auto-Encoder
'Paper review > CV' 카테고리의 다른 글
| GAN: Generative Adversarial Nets (0) | 2025.05.23 |
|---|---|
| Mask R-CNN (0) | 2025.05.16 |
| Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (0) | 2025.05.02 |
| You Only Look Once: Unified, Real-Time Object Detection (0) | 2025.05.02 |
| MobileNets: Efficient Convolutional Neural Networks (0) | 2025.04.04 |