VAE는 왜 latent를 포기하는가
ELBO의 reconstruction-regularization 분해부터 posterior collapse의 근본 원인, reparameterization trick의 수학, β-VAE의 information bottleneck 해석, VQ-VAE의 discrete 전환까지 — VAE 설계 결정의 연쇄를 추적한다.
- 01 생성 모델의 통합 프레임워크 — 무엇을 배우는가
- 02 Autoregressive 모델은 왜 모든 modality를 생성할 수 있는가
- 03 VAE는 왜 latent를 포기하는가
- 04 Normalizing Flow의 모든 설계 결정은 하나의 제약에서 나온다
- 05 GAN은 왜 그토록 불안정한가
- 06 DDPM의 수학은 하나의 질문으로 수렴한다
- 07 생성 모델의 다섯 계보는 왜 하나의 질문에서 갈라지는가
VAE의 모든 설계 결정은 하나의 긴장에서 비롯된다 — encoder가 latent에 정보를 담으려는 힘과, KL 페널티가 latent를 prior로 밀어넣으려는 힘의 충돌. ELBO를 최대화하는 과정에서 이 두 힘이 균형을 이루지 못하면 encoder는 조용히 일을 멈춘다. 왜 이 구조가 이런 실패를 내재하고, 각 후속 모델은 그것을 어떻게 다르게 풀었는가?
ELBO: reconstruction과 regularization의 분해
VAE의 출발점은 intractable한 주변 우도 를 직접 최적화할 수 없다는 사실이다. 대신 tractable한 variational distribution 를 도입해 다음 등식을 얻는다.
이므로 은 의 하한 — Evidence Lower BOund. 그리고 이 ELBO는 다시 분해된다.
Bayes: . 이를 KL 전개에 대입하면
이항하면 등식 성립. 이므로 . 등호는 일 때.
reconstruction 항은 가 의 정보를 많이 담을수록 커진다. KL 항은 가 prior 와 다를수록 커진다. 둘은 필연적으로 충돌한다.
Gaussian VAE에서 KL은 closed form으로 계산된다. , 이면:
Reparameterization: stochastic node를 통과하는 gradient
reconstruction 항 의 에 대한 gradient가 문제다. expectation의 분포 자체가 에 의존하기 때문에 단순 backprop이 통하지 않는다.
순진한 해결책인 REINFORCE(score function estimator)는 다음을 사용한다.
이는 unbiased하지만 variance가 극단적으로 높다. 특정 예로 , 일 때 REINFORCE의 variance는 으로 증가하지만, reparameterization estimator의 variance는 상수 4로 유지된다.
reparameterization trick은 stochastic node를 input 쪽으로 밀어낸다.
이전: x → μ → [z ~ N(μ, σ)] → loss
↑
gradient 막힘
이후: ε ~ N(0, 1)
↓
x → μ → z = μ + σε → loss
x → σ ↗
으로 쓰면, 은 와 무관하므로 gradient가 를 통해 까지 자유롭게 흐른다.
path-wise(reparameterization)와 score function(REINFORCE)의 실증 측정에서 전자가 후자 대비 배 낮은 variance를 보인다. 이 차이가 VAE 훈련을 가능하게 만드는 실질적 이유다.
β와 information bottleneck: trade-off의 조절
표준 VAE()의 latent는 disentangled되지 않는다 — 하나의 차원이 여러 변동 요인을 섞어 표현한다. β-VAE는 KL 항에 를 곱하는 한 줄 수정이다.
이면 KL 페널티가 강해져 encoder가 prior의 axis-aligned Gaussian에 더 가까워지도록 압박받는다. 이 압박이 각 latent 차원을 독립적으로 만들고, 데이터의 각 변동 요인을 분리된 차원에 매핑하는 경향을 만든다.
information bottleneck 관점에서 이 KL 항은 다음으로 분해된다.
는 latent가 입력에 대해 갖는 상호정보량 에 직접 penalty를 가하는 channel capacity bound다. 각 값은 rate-distortion 곡선 위의 다른 점에 해당한다 — 증가는 rate(압축)를 줄이고 distortion(재구성 오류)를 늘린다.
Posterior Collapse: encoder가 일을 멈추는 순간
posterior collapse는 , 즉 encoder의 출력이 입력 와 무관하게 prior와 같아지는 현상이다. KL = 0이 되어 페널티가 사라지고, decoder가 latent 없이 reconstruction을 수행한다.
이 현상의 원인은 optimization landscape에 있다. decoder가 충분히 강력하면(예: autoregressive PixelCNN), latent에서 정보를 추출하지 않아도 reconstruction이 가능하다. 그 경우 KL 페널티를 피하기 위해 encoder가 latent 사용을 포기하는 것이 ELBO 최대화에 유리하다.
진단 지표는 active dimensions — 인 latent 차원의 수다. collapse 시 이 값이 0에 가까워진다.
주요 해결책은 세 계열로 나뉜다.
KL annealing (Bowman 2016): 훈련 초기에 로 KL을 점진적으로 켠다. 초기에 encoder가 informative latent를 학습한 후 regularization을 추가한다.
Free bits (Kingma 2016): 로 각 차원이 최소 nats의 정보를 사용하도록 강제한다. KL을 0으로 줄이는 incentive를 제거한다.
δ-VAE (Razavi 2019): encoder의 출력 분산에 상한 를 두어 KL이 물리적으로 0이 될 수 없게 만든다.
자연어는 강한 sequential structure를 가지므로 LSTM/Transformer decoder가 latent 없이도 next-token을 잘 예측한다. 따라서 language VAE는 KL annealing과 word dropout(입력 단어의 일부를 마스킹해 decoder가 latent에 의존하도록 강제)을 함께 써도 collapse가 빈번하다.
VQ-VAE: discrete codebook으로 collapse를 구조적으로 우회
VQ-VAE(van den Oord 2017)는 continuous latent 대신 discrete codebook을 도입해 collapse 문제를 구조적으로 우회한다.
encoder가 를 출력하면, codebook 에서 가장 가까운 entry를 선택한다.
이 quantization의 KL은 (상수)다 — encoder 출력이 항상 하나의 codebook entry로 확정되므로 prior와의 거리가 고정된다. “KL을 0으로 줄인다”는 mode 자체가 존재하지 않는다.
문제는 이 미분 불가능하다는 것이다. Straight-Through Estimator(STE)가 이를 해결한다.
# Forward: z_q == e[k_star]
# Backward: ∂z_q / ∂z_e = 1 (identity pass-through)
z_q = z_e + (e[k_star] - z_e).detach()
loss는 세 항으로 구성된다.
stop-gradient(sg)의 위치가 중요하다. codebook loss는 codebook만 학습하고, commitment loss는 encoder만 학습한다. 각 항이 서로 다른 parameter를 학습하도록 분리해 optimization을 안정시킨다.
discrete token은 AR Transformer와 자연스럽게 결합된다. VQ-VAE encoder로 이미지를 token sequence로 압축한 뒤, GPT-style 모델이 그 sequence의 분포를 학습한다. DALL-E, Parti, MUSE가 모두 이 two-stage 구조를 따른다.
정리
VAE 계열의 진화는 하나의 긴장을 다루는 다양한 방식이다.
- ELBO = reconstruction + KL regularization. 두 항의 충돌이 VAE의 모든 실패와 개선의 원천이다.
- reparameterization trick은 stochastic gradient의 variance를 배 줄여 backprop을 가