9. 생성모델 지도와 VAE¶
이 챕터의 목적¶
분류와 회귀는 주어진 입력에서 target을 예측한다. 생성모델은 한 걸음 더 나아가 데이터가 어떤 분포에서 만들어졌는지를 학습하고, 그 분포를 닮은 새로운 sample을 만든다. Variational Autoencoder(VAE)는 관측 데이터 뒤에 직접 보이지 않는 latent variable이 있다고 가정하고, encoder와 decoder를 확률 모델로 연결한다.
이 장의 목표는 변분추론을 완전히 유도하는 것이 아니다. 일반 autoencoder의 latent space에서 임의 sampling이 어려운 이유, prior와 posterior가 맡는 역할, ELBO가 reconstruction과 distribution regularization을 함께 다루는 방식을 개념적으로 설명하는 것이 목표다.
먼저 알아볼 항목¶
- 4장의 PCA, autoencoder, encoder, bottleneck, decoder
- probability distribution과 conditional probability
- expectation과 log-likelihood의 의미
- Gaussian distribution의 평균과 분산
- 2장의 backpropagation과 gradient 학습
KL divergence와 variational inference는 처음부터 계산할 필요가 없다. 두 분포의 차이를 조절하고 계산하기 어려운 posterior를 근사한다는 역할을 알아보면 된다.
1. 생성모델은 무엇을 학습하는가¶
관측 데이터 \(x\)가 어떤 미지의 data distribution에서 왔다고 하자. 생성모델은 그 분포 자체 \(p(x)\) 또는 sample을 만드는 절차를 학습하려 한다.
생성모델은 하나의 계보가 아니라 서로 다른 문제 설정을 가진 여러 family다.
- Autoregressive model은 이미 생성한 값에 조건부로 다음 값을 차례로 생성한다.
- Generative Adversarial Network(GAN)은 generator와 discriminator의 경쟁으로 data-like sample을 만든다.
- Latent-variable model과 VAE는 latent variable과 관측 데이터의 확률 관계를 학습한다.
- Diffusion과 score-based model은 noise를 추가한 뒤 제거하는 과정을 학습한다.
- Normalizing flow와 flow matching은 간단한 분포와 data distribution 사이의 변환이나 vector field를 학습한다.
이 과정은 VAE, diffusion, flow matching을 선택해 살펴본다. 세 방법이 생성모델 전체이거나 단순한 발전 순서라는 뜻은 아니다.
Conditional generation¶
생성에 label, text, 물성값 같은 조건 \(c\)를 주면 \(p(x \mid c)\)를 다루는 conditional generation이 된다. 조건을 만족하는지와 sample이 실제 데이터처럼 보이는지는 서로 다른 평가 문제다.
2. Autoencoder는 압축과 복원을 학습한다¶
일반 autoencoder(AE)는 encoder \(f_\phi\)가 입력 \(x\)를 latent code \(z\)로 압축하고, decoder \(g_\theta\)가 이를 다시 \(\hat{x}\)로 복원한다.
학습은 입력과 복원 결과의 차이인 reconstruction loss를 줄인다. Bottleneck이 충분히 제한되어 있으면 입력의 중요한 structure를 latent representation에 담도록 유도할 수 있다.
그러나 reconstruction이 잘된다는 사실만으로 생성 가능한 latent space가 생기는 것은 아니다. Encoder가 training sample을 latent space의 서로 떨어진 영역에 배치할 수 있고, sample 사이의 빈 공간을 임의로 고르면 decoder가 본 적 없는 비현실적인 결과를 낼 수 있다. 일반 AE에는 어디에서 z를 뽑아야 하는가를 정하는 명시적인 확률 분포가 없다.
특정 조건의 linear autoencoder는 PCA와 같은 principal subspace를 학습할 수 있다. 하지만 nonlinear AE, regularized AE, VAE 전체가 PCA와 같은 방법인 것은 아니다.
3. Latent-variable model의 관점¶
VAE는 관측되지 않은 latent variable \(z\)가 먼저 생성되고, 그로부터 data \(x\)가 만들어진다고 가정한다.
여기서 세 분포를 구분해야 한다.
- Prior \(p(z)\) 는 data를 보기 전에 latent variable이 따르는 분포다. 보통 계산과 sampling이 쉬운 standard Gaussian을 사용한다.
- Likelihood \(p_\theta(x \mid z)\) 는 주어진 latent \(z\)에서 data \(x\)가 생성될 분포를 decoder가 나타낸 것이다.
- Posterior \(p_\theta(z \mid x)\) 는 관측된 \(x\)가 주어졌을 때 어떤 \(z\)가 원인이었을지 나타내는 분포다.
새 sample을 만들 때는 prior에서 \(z\)를 뽑고 decoder를 통과시킨다. 따라서 training data의 encoding이 prior와 전혀 다른 영역에만 모이면 prior sampling이 제대로 작동하기 어렵다.
4. 계산하기 어려운 posterior를 근사하기¶
정확한 posterior는 Bayes rule로 쓸 수 있다.
문제는 분모의 marginal likelihood \(p_\theta(x)=\int p_\theta(x \mid z)p(z)\,dz\)가 복잡한 neural decoder에서 보통 직접 계산하기 어렵다는 점이다.
VAE는 encoder \(q_\phi(z \mid x)\)를 두어 실제 posterior를 근사한다. 이를 amortized variational inference라고 부른다. 각 data point마다 별도의 최적화를 하는 대신 하나의 encoder가 입력에서 근사 posterior의 parameter를 출력하기 때문이다.
대표적으로 encoder는 Gaussian의 평균 \(\mu_\phi(x)\)와 분산 또는 log variance를 출력한다.
5. ELBO는 두 목표를 연결한다¶
VAE는 log-likelihood 자체 대신 계산 가능한 lower bound인 Evidence Lower Bound(ELBO)를 최대화한다.
두 항의 역할을 분리해서 읽는 것이 중요하다.
- 첫 항은 sampled latent에서 원래 \(x\)를 잘 설명하거나 복원하도록 한다.
- 두 번째 KL 항은 각 입력의 approximate posterior가 prior에서 지나치게 벗어나지 않도록 조절한다.
Loss를 최소화하는 관례로 쓰면 reconstruction loss에 KL regularization을 더한 형태로 보인다. 두 목표는 tension이 있다. Reconstruction만 강조하면 training sample은 잘 복원해도 latent space가 prior와 맞지 않을 수 있다. KL만 지나치게 강조하면 latent가 입력 정보를 충분히 담지 않을 수 있다.
ELBO는 단순히 좋은 latent space를 만드는 loss가 아니다. Data likelihood의 lower bound이자 approximate posterior와 실제 posterior의 차이를 다루는 변분추론 objective다.
6. Reparameterization으로 gradient를 전달한다¶
Encoder가 만든 distribution에서 \(z\)를 그대로 sampling하면 sampling operation을 통해 encoder parameter로 gradient를 보내기 어렵다. Gaussian approximate posterior에서는 다음처럼 randomness와 parameter dependence를 분리한다.
Randomness는 \(\epsilon\)에 두고, \(\mu\)와 \(\sigma\)는 differentiable computation으로 남긴다. 이를 reparameterization trick이라고 한다. 그래서 Monte Carlo sample을 사용하면서도 backpropagation으로 encoder와 decoder를 함께 학습할 수 있다.
7. 학습, reconstruction, generation을 구분하기¶
VAE를 사용할 때 세 경로를 구분하면 혼동이 줄어든다.
- Training: 입력 \(x\)에서 \(q_\phi(z \mid x)\)의 parameter를 구하고 \(z\)를 sample한 뒤, reconstruction과 KL 항으로 encoder와 decoder를 갱신한다.
- Reconstruction: 주어진 \(x\)를 encoder와 decoder에 통과시켜 비슷한 \(\hat{x}\)를 만든다.
- Generation: 입력 data 없이 prior \(p(z)\)에서 \(z\)를 sample하고 decoder로 새로운 \(x\)를 만든다.
두 latent point 사이를 잇는 interpolation은 representation의 연속성을 탐색하는 방법이다. 중간 결과가 자연스럽다고 해서 각 latent dimension이 사람이 이름 붙인 독립 요인을 의미하는 것은 아니다.
8. 대표적 실패와 trade-off¶
Posterior collapse는 approximate posterior가 prior와 거의 같아지고 decoder가 \(z\)를 충분히 사용하지 않는 현상이다. 강력한 autoregressive decoder가 latent 정보 없이도 data를 잘 예측할 때 나타날 수 있다. KL annealing이나 decoder 조절 등 여러 완화 방법이 있지만 일반적인 해결책 하나가 있는 것은 아니다.
VAE의 likelihood model 선택도 중요하다. Pixel 값을 Bernoulli로 볼지 Gaussian으로 볼지, 분산을 고정할지 학습할지에 따라 reconstruction term의 의미가 달라진다. 흔히 쓰는 mean squared error는 특정 Gaussian likelihood 가정과 연결되며 단순한 편의 이상의 모델링 선택이다.
핵심과 노출 수준 구분¶
핵심으로 이해할 것¶
- 일반 AE의 reconstruction 목적과 임의 sampling의 한계
- prior, likelihood, posterior, approximate posterior의 역할
- ELBO의 reconstruction 항과 KL 항
- reparameterization이 sampling과 backpropagation을 연결하는 방식
- training, reconstruction, prior sampling의 차이
이름과 위치를 알아둘 것¶
- variational inference와 amortized inference
- KL divergence의 정확한 유도
- conditional VAE
- posterior collapse
- disentangled representation과 \(\beta\)-VAE
- autoregressive model, GAN, normalizing flow
자주 생기는 혼동과 한계¶
VAE는 차원축소 시각화 도구와 같지 않다
VAE의 latent dimension을 2로 두어 그릴 수는 있지만, PCA나 t-SNE처럼 시각화 자체가 주목적인 방법은 아니다. 목적함수와 가정이 다르다.
매끄러운 interpolation은 의미 분리의 증명이 아니다
Latent interpolation이 자연스러워 보여도 각 dimension이 독립적이고 해석 가능한 원인을 나타낸다고 단정할 수 없다.
- Prior가 실제 latent 구조에 지나치게 단순할 수 있다.
- ELBO가 높아지는 것과 사람이 선호하는 sample quality가 항상 일치하지 않는다.
- Reconstruction quality와 generation quality는 다른 평가다.
- Generated sample의 다양성과 training sample memorization을 별도로 확인해야 한다.
- Scientific data에서는 validity constraint와 downstream simulation 검증이 필요할 수 있다.
공통 분석축으로 정리하기¶
- 입력과 출력: 학습 중 data \(x\)를 받아 latent distribution의 parameter와 reconstruction을 만들고, 생성 시 prior sample에서 새 data를 만든다.
- 구조적 가정: 관측 data가 낮은 차원의 latent variable에서 확률적으로 생성된다고 가정한다.
- 학습 신호: reconstruction log-likelihood와 KL regularization으로 구성된 ELBO를 사용한다.
- Baseline: PCA, deterministic AE, 단순 density model과 비교 목적을 명확히 한다.
- 평가: reconstruction, sample quality, diversity, conditional fidelity, likelihood 관련 지표를 구분한다.
- 실패 조건: posterior collapse, prior mismatch, decoder misspecification, data memorization을 점검한다.
앞뒤 장과의 연결¶
4장의 dimensionality reduction과 AE가 representation을 압축했다면, VAE는 latent space에 확률적 생성 규칙을 더한다. 10장의 diffusion은 하나의 latent bottleneck에서 복원하는 대신 여러 noise level에서 denoising을 학습한다. 11장의 flow matching은 source distribution에서 target distribution으로 이동하는 vector field를 직접 학습한다.
스스로 확인하기¶
- Deterministic AE에서 reconstruction이 잘되어도 prior sampling이 어려울 수 있는 이유는 무엇인가?
- Prior, posterior, approximate posterior는 각각 언제 어떤 정보를 나타내는가?
- ELBO의 reconstruction 항과 KL 항은 어떤 tension을 만드는가?
- Reconstruction과 generation은 input \(x\)의 사용 여부가 어떻게 다른가?
더 읽을 자료¶
- Kingma and Welling, Auto-Encoding Variational Bayes, 2014. VAE와 reparameterization의 대표 원 논문
- Rezende, Mohamed, and Wierstra, Stochastic Backpropagation and Approximate Inference in Deep Generative Models, 2014. 동시기에 제안된 stochastic backpropagation 연구
- Higgins et al., beta-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework, 2017. Latent regularization을 조절한 대표 사례
- Goodfellow et al., Generative Adversarial Nets, 2014. 생성모델 family map에서 GAN의 위치를 확인할 1차 자료