논문읽기

(VAE제대로 이해하기 )Auto-Encoding Variational Bayes <논문읽기>

uchanee 2026. 2. 4. 16:56

생성모델을 접하다 보면 많이 나오는 접근이 있다.
적분과 사후분포(posterior) 때문에 수식이 막히거나 근사를 이용해서 접근하는 부분이다..
Auto-Encoding Variational Bayes (Kingma & Welling)는 이 문제를 정면으로 다루는 논문이고, 우리가 흔히 말하는 VAE(Variational AutoEncoder)의 원형을 제시한다.

 

이 글에서는 논문의 흐름을 따라가며, 무엇이 어려웠고 → 무엇이 핵심 아이디어였고 → 왜 그게 작동하는지를 정리한다. 가능한 한 “수식은 의미를 설명하기 위한 최소한”만 남기고, 직관을 중심으로 요약을 하려고 한다.


1. 이 논문이 풀려는 문제: 잠재변수 생성모델을 “현실적으로” 학습하자

논문이 다루는 기본 모델은 아주 전형적인 형태다.

 

  • 잠재변수 z를 먼저 뽑고:z∼pθ(z)
  • z로부터 관측 x를 생성한다:x∼pθ(x∣z)

문제는 여기서부터 생긴다.

    • 데이터 x의 주변확률 pθ(x)pθ(x)=∫pθ(x∣z)pθ(z) dz인데, 이 적분이 대부분 닫힌 형태로 계산되지 않는다.
    • 더 중요한 건, 우리가 사실상 필요한 posteriorpθ(z∣x)역시 거의 항상 계산 불가능(intractable)하다는 점이다.

 

  •  

즉, “모델은 간단해 보이는데 학습이 막히는” 전형적인 잠재변수 모델의 난관을 다룬다.


2. 해결의 첫 단계: 진짜 posterior 대신 “근사 posterior”를 둔다

여기서 등장하는 것이 변분추론(Variational Inference)이다.

진짜 posterior pθ(z∣x) 대신, 이를 흉내내는 분포를 하나 두자:

논문은 이 qϕ(z∣x)recognition model, 또는 probabilistic encoder라고 부른다.

 


반대로 pθ(x∣z)probabilistic decoder다.

즉, VAE는 구조적으로 “오토인코더처럼” 보인다.

  • Encoder: x→qϕ(z∣x)
  • Decoder: z→pθ(x∣z)

다만 중요한 차이는, 여기서 encoder가 내놓는 것은 단일 벡터가 아니라 분포라는 점이다.


3. 핵심 수식: ELBO(변분 하한)가 왜 나오나

변분추론의 목적은 “log⁡pθ(x)”를 직접 최대화하고 싶은데 적분 때문에 못 하니, 그 대신 하한(lower bound)을 최대화하는 것이다.

논문은 다음 분해를 통해 이를 정리한다.

 

여기서 KL은 항상 0 이상이므로:

L이 바로 ELBO(Evidence Lower Bound)다.
그리고 ELBO는 우리가 익숙한 형태로 바뀐다.

 

이 식은 VAE를 이해하는 데 사실상 알파이자 오메가이다.

  • 재구성항 E[log⁡pθ(x∣z)] z로부터 x를 잘 설명(복원)하라.
  • 정규화항 DKL(qϕ(z∣x)||p(z))
    → 인코더가 만든 z 분포가 prior에서 너무 멀어지지 않게 하라.

즉, “오토인코더처럼 복원하지만, latent는 prior에 맞게 정돈한다”라는 특징이 나오게 된다.


4. 그런데 왜 이걸 그냥 SGD로 못 푸나?

이제 목표는 명확해졌다. ELBO를 최대화하면 된다.
하지만 문제가 있따.

ELBO 안에는 Eqϕ(z∣x)[⋅]가 있고, 이는 에서 샘플링해야 계산된다.
그런데 ϕ에 대해 미분하려고 하면 “샘플링 연산”이 끼어들면서, 단순한 몬테카를로 미분은 분산이 너무 커진다.

 

즉, “수식은 되는데 학습이 불안정해서 실전에서 잘 안 된다”는 벽이 생긴다.
이 벽을 부수는 것이 이 논문의 핵심 공헌이다.


5. 핵심 공헌: Reparameterization Trick

논문의 아이디어는 생각보다 단순하다.

“샘플링을 ‘파라미터가 들어가는 방식’으로 하지 말고,
파라미터와 무관한 노이즈에서 샘플링한 뒤,
그 노이즈를 미분 가능한 함수로 변환하자.”

즉,

    • 원래는 z∼qϕ(z∣x) 를 직접 뽑았는데,
    • 대신 ϵ∼p(ϵ)를 뽑고

로 만든다.

  •  

이렇게 하면 샘플링은 ϵ 쪽에서만 일어나고,
ϕ를 통해 결정론적 경로로 미분 가능해진다.

가장 대표적인 경우: Gaussian 인코더

논문이 제시하는 VAE의 대표 형태는:

이때 샘플링은 이렇게 바뀐다.

즉, 우리가 코드에서 흔히 쓰는 “μ+σϵ”가 바로 이 논문에서 정리된 핵심 트릭이다.


6. SGVB / AEVB: ELBO를 샘플 평균으로 근사해 학습한다

reparameterization trick을 ELBO에 적용하면, ELBO를 샘플 평균으로 근사한 형태(추정기)를 만들 수 있다.

논문은 이를 SGVB(Stochastic Gradient Variational Bayes) 추정기라고 부르고,
이 근사를 이용해 미니배치 SGD로 θ,ϕ를 동시에 업데이트하는 알고리즘을 AEVB라고 정리한다.

 

실전에서 가장 널리 쓰이는 형태는 다음 구조로 생각하면 된다.

  • 재구성항: 샘플링한 zlog⁡pθ(x∣z) 계산
  • KL 항: Gaussian–Gaussian KL은 닫힌 형태로 계산 가능하므로 정확히 계산

따라서 구현 관점에서는 VAE 손실이 대개:

    • “재구성 loss + KL loss”
      로 나타난다(부호만 바뀌어 최소화 형태로 구현).

  •  

7. VAE는 왜 ‘오토인코더’처럼 보이면서도 생성모델이 되는가

정리하면, VAE는 외형상 오토인코더와 매우 닮았다.

  • 인코더: 를 받아 z를 만든다.
  • 디코더: z로부터 x를 복원한다.

하지만 AutoRec 같은 결정론적 오토인코더와 달리,

  1. 인코더 출력이 “값”이 아니라 “분포”이고,
  2. KL 항이 latent 분포를 prior에 맞춰 정돈하며,
  3. 결과적으로 임의의 z∼p(z)에서 샘플링해 x를 생성할 수 있다.

즉, VAE는 “복원하는 오토인코더”의 형태를 빌려
“학습 가능한 생성모델”을 만든 구조라고 이해하면 가장 자연스럽다.


8. 논문 실험이 주는 메시지

실험에서는 MNIST, Frey Face 등에서 AEVB가 기존 변분/학습 방식보다 더 좋은 lower bound에 빠르게 수렴함을 보인다.

 


결국 논문이 설득하려는 핵심은 이것이다.

“reparameterization + SGVB 덕분에
잠재변수 생성모델을 딥러닝처럼 미니배치 SGD로 학습 가능하게 만들었다.”


9. 핵심 정리

    • ELBO
    •  

  • → 재구성(데이터 적합) + KL(정규화)
    • 왜 어려웠나?
      qϕ(z∣x) 샘플링 때문에 ∇ϕ 추정이 고분산, 미분불가능

 

    • 해결책: reparameterization trick
      z=μ+σϵ 로 pathwise gradient 가능

 

    • VAE의 정체성
      오토인코더처럼 생겼지만, KL로 latent를 prior에 정렬해 “생성”이 가능해짐

추천시스템과 연결한다면?

이 논문 자체는 추천 논문은 아니지만, 추천에서도 오토인코더를 확률적으로 만들면 많은 게 가능해진다.
예를 들어 implicit 추천에서의 MultVAE 계열은, AutoRec의 “복원” 아이디어에 VAE의 확률적 관점을 결합한 흐름으로 이해가 가능하다. 

 

 

참고자료: https://youtu.be/GbCAwVVKaHY?si=u4e99CZAl12yRoC2