Auto-Encoding Variational Bayes

고예현·2025년 7월 17일

ai paper review

목록 보기
1/2
용어쉬운 설명
잠재 변수 (latent variable)관측된 데이터 뒤에 숨어 있는, 직접 보이지 않는 변수. 예: 사람 얼굴(관측치) 뒤에 있는 '감정' 같은 것.
사후 분포 (posterior distribution)어떤 데이터가 주어졌을 때, 그 데이터가 어떤 잠재 변수를 가졌을까를 확률적으로 표현한 분포.
근사 추론 (approximate inference)계산이 너무 어려워서 정답을 직접 구할 수 없을 때, 대신 쉽게 계산 가능한 근사값을 구하는 방법.
변분 베이즈(Variational Bayes, VB)복잡한 사후 분포 대신 계산이 쉬운 분포(q)를 선택하고, 진짜 분포(p)와 최대한 비슷하게 맞추는 방법.
Mean-field approximation전체 분포를 독립적인 부분들로 쪼개서 근사하는 방식 (예: 모든 변수는 서로 영향을 주지 않는다고 가정).
변분 하한 (variational lower bound)사후 확률을 정확히 구할 수는 없지만, 최소한 어느 정도 이상은 되겠다는 '하한값'. ELBO라고도 부름.
재매개변수화 (reparameterization)확률 샘플링을 미분 가능하게 바꾸는 테크닉. 예: 정규분포에서 z = μ + σ * ε로 표현.
불편 추정량 (unbiased estimator)평균적으로 정답을 맞히는 추정량. 즉, 기대값이 참값과 같다.
확률적 경사 상승법 (SGD)확률적으로 선택한 데이터 조각(minibatch)만 써서 반복적으로 파라미터를 업데이트하는 최적화 방법.
AEVB (Auto-Encoding Variational Bayes)위 방법들을 auto-encoder 구조에 적용한 알고리즘.
인식 모델 (recognition model)데이터 x가 주어졌을 때, 잠재 변수 z를 예측하는 모델. q(z
조상 샘플링 (ancestral sampling)확률 그래프의 순서에 따라 위에서부터 아래로 샘플링하는 방법.
MCMC정확한 추론을 위한 샘플링 기반 방법이지만 계산이 느림.

0. Abstract

다루기 힘든 사후 분포를 가진 연속적인 잠재 변수가 있고 데이터셋이 큰 경우, 방향성 확률 모델에서 어떻게 효율적인 추론과 학습을 수행할 수 있을까?
1. 변분 하한을 재매개변수화하여 표준 확률적 경사하강법으로 쉽게 최적화할 수 있는 하한 추정량을 얻을 수 있음을 보인다
2. 데이터 포인트 별로 연속적인 잠재 변수를 갖는 독입 동일 분포 데이터셋의 경우, 제안된 하한 추정량을 사용하여 다루기 힘든 사후 분포에서 근사 추론 모델을 피팅함으로써 사후 추론을 특히 효율적으로 만들 수 있음을 보인다.

1. introduction

현실에서는 데이터 뒤에 숨겨진 잠재 변수(z)가 있고, 이걸 추론하고 싶지만,
복잡한 모델을 쓰면 사후 분포 p(z|x)를 정확히 구하기 어려워서 근사 추론이 필요함.

전통적인 변분 베이즈(VB)는 사후 분포를 근사하는 q(z|x)를 찾되,
대부분의 경우 기댓값 계산이 너무 복잡해서 해석적인 계산이 불가능함.

그래서 저자들은 이 문제를 해결하기 위해 재매개변수화 트릭(reparameterization trick)을 도입함:

즉, z를 직접 샘플링하지 않고 z = μ + σ * ε 형태로 바꿔서 미분 가능하게 만들었고,

이걸 통해 SGVB (Stochastic Gradient VB)라는 효율적인 추정기를 만들었음.

이 방법은 확률적 경사 하강법(SGD)을 이용해 q(z|x)와 p(x|z)의 파라미터를 효율적으로 학습할 수 있게 해줌.

특히 i.i.d 데이터에서 각 데이터마다 z가 있을 때, 이 추정기를 사용해
Auto-Encoding VB (AEVB)라는 알고리즘을 만들었고,
이걸 신경망 구조로 구현하면 Variational Autoencoder (VAE)가 됨.

이 방법의 장점은 다음과 같음:

  • 데이터 한 개당 복잡한 추론(MCMC 등)을 매번 하지 않아도 됨.

  • 학습된 인식 모델은 추론, 잡음 제거, 시각화 등 다양한 태스크에 활용 가능함.

여기서 x를 보고 z를 추론한다는 말이 와닿지 않아서 찾아보니 예시로, 이미지 생성 모델에서 x:얼굴 사진, z : 얼굴 특징이고 z를 추출하면 데이터를 압축하거나 비슷한 이미지를 생성하거나 노이즈 제거 가능
따라서 사진을 z로 표현한 후, 그걸 가지고 새 사진을 생성하거나 얼굴 매칭에 사용. 따라서 z는 x 속의 의미 있는 정보라 볼 수 있다.

2. 방법 (Method)

이 섹션의 전략은 연속적인 잠재 변수를 가진 다양한 방향성 그래프 모델에 대한 하한 추정량(확률적 목적 함수)을 유도하는 데 사용될 수 있습니다. 여기서는 데이터 포인트마다 잠재 변수를 갖는 독립 동일 분포(i.i.d.) 데이터셋이 있고, (전역) 파라미터에 대한 최대 가능도(ML) 또는 최대 사후 확률(MAP) 추론과 잠재 변수에 대한 변분 추론을 수행하고자 하는 일반적인 경우로 한정하겠습니다.

2.1 문제 시나리오

데이터 x가 어떻게 만들어졌고, 우리가 뭘 알고싶으며, 어떤 문제가 생기길래 VAE 같은 걸 써야 하나?

우리는 데이터 x들이 무작위로 독립적으로 생성되었다고 가정하는데, 사실은 눈에 보이지 않은 z라는 숨은 변수가 먼저 만들어지고 그 z를 바탕으로 x가 나오는 과정이 있다고 가정

"이 과정은 두 단계로 이루어진다:
(1) 어떤 사전 분포 pθ(z)로부터 값 z⁽ⁱ⁾가 생성되고,
(2) 어떤 조건부 분포 pθ(x|z)로부터 값 x⁽ⁱ⁾가 생성됩니다. "
: z를 뽑는다(원인) - > z를 기반으로 x를 만든다(결과)

우리가 다루는 확률 분포는 신경망이 복잡하더라도 수학적으로 미분 가능하다는 전제를 둬야 기울기를 계산하고 학습할 수 있음

기존 방법들은 문제를 단순화하려고 서로 독립이라 가정하거나 복잡한 계산 포기
핵심 문제 1. 다루기 힘든 경우
사후분포나 주변확률을 계산하려면 적분을 해야 하는데, 그 적분이 복잡해서 계산이나 미분이 안 되는 경우 많음 (특히 조건부확률이 신경망처럼 생겼을 때 적분 불가)

핵심 2.
대규모 데이터셋의 경우 MINI-BATCH로 학습해야 함

<논문에서 풀고자 하는 3가지 문제>
① θ 추정
: 모델이 어떻게 데이터를 만들었는지를 잘 흉내내는 파라미터 θ를 찾자. (MLE 또는 MAP)
② z 추정
: 특정 x가 주어졌을 때, 그 x를 만든 원인 z는 뭐였는지를 잘 추론하자. (posterior inference)
③ x에 대한 추론
: 전체 분포에서 어떤 x가 나올 가능성이 높은지를 잘 예측하자. (marginal inference)

2.2 변분 하한 (The Variational Bound)

우리가 계산하고 싶은 건 log𝑝𝜃(𝑥), 즉 데이터의 진짜 확률
근데 직접 계산할 수 없어서, 대신 ELBO (변분 하한)를 계산함

ELBO는 다음 두 항의 합으로 구성됨:

  • KL divergence: 잠재 변수 분포를 prior에 가깝게 유지
  • 재구성 손실: 𝑧로부터 𝑥를 얼마나 잘 복원하는가

φ에 대한 gradient 계산이 어려워서, naive 방법은 분산이 커서 쓸 수 없음
그래서 다음 절에서 reparameterization trick이 등장하게 됨

2.3 SGVB 추정량과 AEVB 알고리즘

<알고리즘>
1. θ, φ ← 랜덤 초기화
2. 미니배치 XM 추출
3. ε 샘플링
4. z = g_φ(ε, x) → ELBO 추정
5. 확률적 경사 (SGD)로 θ, φ 업데이트
6. 수렴할 때까지 반복

포인트설명
문제ELBO를 미분하려면 샘플링이 포함된 기댓값이 미분 가능해야 함
해결재매개변수화 트릭으로 z=μ+σϵz = \mu + \sigma \cdot \epsilon 형태로 표현
결과샘플링 기반 기대값이 φ에 대해 미분 가능해짐
학습확률적 경사법(SGD, Adagrad 등)으로 θ, φ를 같이 업데이트
이득빠르고 효율적인 추론 + 생성 + 표현 학습 가능

2.4 재매개변수화 트릭 (The Reparameterization Trick)

<해결아이디어>
z를 무작위로 뽑는 대신 ε라는 노이즈를 뽑고 deterministic 함수 gϕ(ε,x)로 변환해서 z를 만든다
따라서 기댓값에 대한 수식이 z에서 ε에 대한 적분으로 바껴 ϕ에 대해 미분가능해짐

예를 들어, 일변량 가우시안의 경우, z ~ N(μ, σ²)를 z = μ + σε으로 재매개변수화 가능 (ε ~ N(0, 1))

<다양한 분포에 대한 적용 방식>

  1. 다루기 쉬운 역 누적분포함수(Inverse CDF): 지수, 코시, 로지스틱, 레일리, 파레토 분포 등.

  2. 위치-척도(Location-Scale) 분포족: 라플라스, 스튜던트 t, 균등, 삼각형, 가우시안 분포 등.

  3. 합성(Composition): 여러 변환을 조합하여 표현. 로그-정규, 감마, 디리클레, 베타 분포 등.

3. Example : Variational Auto-Encoder

<VAE 구성 요소>
| 구성 요소 | 수식적 표현 | 설명 |
| ------------- | ------------------------ | ---------------- |
| 인코더 (Encoder) | qϕ(zx)q_\phi(z \mid x) | 입력 xx로부터 잠재변수 zz의 분포를 추정하는 MLP |
| 디코더 (Decoder) | pθ(xz)p_\theta(x \mid z) | zz로부터 xx를 복원하는 MLP |
| 사전분포 (Prior) | p(z)=N(0,I)p(z) = \mathcal{N}(0, I) | 잠재 변수 zz에 대한 기본 가정 분포 |
| 재매개변수화 | z=μ(x)+σ(x)ϵz = \mu(x) + \sigma(x) \cdot \epsilon, ϵN(0,I)\epsilon \sim \mathcal{N}(0, I) | 미분 가능한 방식으로 zz를 샘플링 |

  1. x 입력 → 인코더 MLP 통과 → 𝜇(𝑥),𝜎(𝑥) 생성

  2. z 샘플링 : z= 𝜇+𝜎⋅𝜖, 𝜖∼𝑁(0,𝐼)

  3. 디코더: 𝑧→𝑥 복원

  4. Loss 계산:
    ELBO = reconstruction term − KL term

  5. SGD 등으로 θ, φ 업데이트

0개의 댓글