Posterior and Variational Inference in Diffusion Models

장현겸·2025년 3월 1일

Generative Model의 궁극적인 목표

Generative model은 관측 데이터 xx의 우도, 즉 p(x)p(x) (또는 logp(x)\log p(x))를 최대화하는 것을 목표로 합니다.
그러나,

p(x)=p(x,z)dz,p(x) = \int p(x, z) \, dz,

와 같이 잠재 변수 zz에 대해 적분된 값은 계산하기(intractable) 어려운 경우가 많습니다.


Posterior (사후분포)

관측 데이터 xx가 주어졌을 때, 잠재 변수 (latent variable) zz가 어떻게 분포되는지를 나타내는 분포는 베이즈 정리에 의해 다음과 같이 정의됩니다:

p(zx)=p(xz)p(z)p(x).p(z \mid x) = \frac{p(x \mid z)\, p(z)}{p(x)}.

여기서,

  • p(xz)p(x \mid z): 데이터 우도 (Likelihood)
  • p(z)p(z): 사전 분포 (Prior)
  • p(zx)p(z \mid x): 사후 분포 (Posterior)

실제 모델에서는 데이터 xx의 확률분포 p(x)p(x)가 intractable하기 때문에, 직접 p(zx)p(z \mid x)를 다루기 어렵습니다.

예)

  • 심층 신경망 (DNN)의 파라미터가 수백만 개 이상인 경우, 다차원 적분 계산 불가능
  • Markov Chain Monte Carlo(MCMC) 같은 샘플링 기반 기법을 쓸 수도 있지만, 고차원 문제에서는 계산량이 폭발적으로 늘어나 효율이 떨어짐

Variational Inference (변분추론)

[출처] https://wikidocs.net/271477

사후분포인 p(zx)p(z \mid x)를 직접 구하기 힘들 때, 보다 단순한 분포족 (예: 가우시안 또는 알려진 분포) 중 하나를 선택하여 이를 근사하는 기법이 바로 Variational Inference입니다. 위의 사진에서 S는 latent variable z에 대응되고, O는 관측 데이터 x에 대응 됩니다. 즉, 파란 posterior 분포를 간단한 빨간 가우시안 분포로 근사화 한다는 의미입니다.

보통 이 근사 분포를 qϕ(zx)q_\phi(z \mid x)로 표기하며, 여기서 ϕ\phi는 이론적으로는 Variational Distribution의 모수(parameter)를 의미하고 실제 구현(예: VAE, Diffusion Model 등)에서는 신경망의 파라미터를 의미합니다.
이 모수는 신경망 등으로 학습되어, qϕ(zx)q_\phi(z \mid x)가 실제 사후 분포 p(zx)p(z \mid x)에 가깝도록 최적화됩니다.

Generative model의 궁극적인 목표는 데이터 우도 p(x)p(x) (또는 logp(x)\log p(x))를 최대화하는 것인데,
앞서 말했듯이 p(x)p(x)는 latent 변수에 대해 적분된 값이므로 직접 계산하기 어렵습니다.
대신, Evidence Lower Bound (ELBO)를 도출하여 logp(x)\log p(x)의 하한을 높입니다:

logp(x)Eqϕ(zx)[logp(xz)p(z)qϕ(zx)].\log p(x) \geq \mathbb{E}_{q_\phi(z \mid x)}\left[\log \frac{p(x \mid z)\, p(z)}{q_\phi(z \mid x)}\right].

이 ELBO를 최대화하면 두 가지 효과가 있습니다:
1. likelihood p(x) 증가:
ELBO는 logp(x)\log p(x)의 하한이므로, 이를 최대화하면 모델에서 원본 데이터 x가 나올 가능성인 likelihood가 증가합니다.
2. Posterior 근사 개선:
ELBO를 재배열하면,

logp(x)KL(qϕ(zx)p(zx))=Eqϕ(zx)[logp(xz)p(z)qϕ(zx)],\log p(x) - \mathrm{KL}\Bigl(q_\phi(z \mid x) \,\|\, p(z \mid x)\Bigr) = \mathbb{E}_{q_\phi(z \mid x)}\left[\log \frac{p(x \mid z)\, p(z)}{q_\phi(z \mid x)}\right],

가 되어, logp(x)\log p(x)를 고정된 양이라 생각하면 우변 (ELBO)를 최대화하면 KL term인 KL(qϕ(zx)p(zx))\mathrm{KL}\Bigl(q_\phi(z \mid x) \,\|\, p(z \mid x)\Bigr)를 최소화하는 효과가 있으므로, qϕ(zx)q_\phi(z \mid x)가 실제 사후 분포 p(zx)p(z \mid x)에 더욱 가까워집니다.

즉, Variational Inference는 직접 posterior를 계산하는 대신, 보다 단순한 분포로 근사함으로써 generative model의 목표인 p(x)p(x) 최대화를 간접적으로 달성하는 도구입니다.


Application in Diffusion Models

Diffusion 모델에서는 데이터 x0x_0에서 시작하여 여러 단계의 노이즈를 통해 x1:Tx_{1:T}라는 latent 체인을 생성합니다.

  • Forward Process:
    q(x1:Tx0)q(x_{1:T} \mid x_0)x0x_0가 주어졌을 때, x1:Tx_{1:T}가 어떻게 생성되는지를 나타냅니다.

  • Reverse Process:
    새로운 데이터를 생성하기 위해, pθ(xt1xt)p_\theta(x_{t-1} \mid x_t)를 학습합니다.
    이때, 실제 역방향 사후 분포 q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0)를 근사하도록 신경망 파라미터 θ\theta를 최적화합니다.

전체 ELBO는 다음과 같이 구성됩니다:

logp(x0)Eq(x1:Tx0) ⁣[t=1TKL(q(xt1xt,x0)pθ(xt1xt))logp(xT)].-\log p(x_0) \leq \mathbb{E}_{q(x_{1:T}\mid x_0)}\!\Biggl[ \sum_{t=1}^{T} \mathrm{KL}\Bigl(q(x_{t-1}\mid x_t, x_0) \,\|\, p_\theta(x_{t-1}\mid x_t)\Bigr) - \log p(x_T) \Biggr].

여기서 pθ(xt1xt)p_\theta(x_{t-1}\mid x_t)는 역방향 과정에서 Variational Distribution으로,
실제 역방향 사후 q(xt1xt,x0)q(x_{t-1}\mid x_t, x_0)를 근사하기 위해 학습되는 분포입니다.


ELBO 도출 과정은 다른 페이지에서 다루겠습니다.

이해를 돕기 위해, 각 섹션에 대응되는 그림도 추후 추가할 예정입니다.

profile
생성 공부ing.. 피드백 주시면 언제나 확인하고 반영하겠습니다.

1개의 댓글

comment-user-thumbnail
2025년 3월 1일

이해가 잘 되네요

답글 달기