DDPM에서의 ELBO 유도 - KL 발산의 비음수성(non-negativity)편

장현겸·2025년 3월 6일

먼저, 앞에 보이는 수식(사진)은 DDPM 논문의 3번 수식이고, −log⁡pθ(x0)-\log p_\theta(x_0)를 최소화 하는 대신 Variatoinal Bound를 최소화 하는 식으로 바뀌게 됩니다. 위 수식에서는 log⁡pθ(x0)\log p_\theta(x_0)에 음수가 곱해졌기에 ELBO(Evidence Lower Bound)에도 음수가 곱해진 형태라서 ELBO라는 표현 대신 Variational Bound라는 표현을 사용했습니다.


KL의 비음수성을 이용한 ELBO 유도

DDPM과 같은 확률 모델에서는 관측 데이터 x0x_0에 대한 우도 pθ(x0)p_\theta(x_0)를 직접 최적화하기 어렵습니다.
대신, 변분 추론(Variational Inference) 기법을 통해 Evidence Lower Bound (ELBO) 또는 변분 하한을 최적화하여 모델을 학습합니다.

이 글에서는 KL 발산의 비음수성(non-negativity)을 이용해 ELBO를 유도하는 전개 과정을 단계별로 설명합니다.
우선, pθ(x0)p_\theta(x_0)는 잠재 변수 x1,x2,…,xTx_1, x_2, \dots, x_T에 대해 마진화된 값(상수)입니다.
즉,

pθ(x0)=∫pθ(x0,x1,…,xT) dx1:T.p_\theta(x_0) = \int p_\theta(x_0, x_1, \dots, x_T) \, dx_{1:T}.

상수의 기댓값은 그 상수와 같으므로,

Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0)]=−log⁡pθ(x0).\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\bigl[-\log p_\theta(x_0)\bigr] = -\log p_\theta(x_0).

전개 과정에서는 잠재 변수 x1:Tx_{1:T}에 대한 확률분포에 대한 기댓값을 이용해서 수식을 전개합니다.


1. 음의 로그 우도와 기댓값 도입

모델 학습의 목표는 log⁡pθ(x0)\log p_\theta(x_0)를 최대화하는 것이며,
실제 구현에서는 이를 −log⁡pθ(x0)-\log p_\theta(x_0)를 최소화하는 문제로 전환합니다.

우리는 샘플링이 용이한 분포 q(x1,x2,…,xT∣x0)q(x_1, x_2, \dots, x_T \mid x_0)를 도입하여,
우도를 아래와 같이 기댓값 형태로 표현합니다.

Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0)].\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\Bigl[-\log p_\theta(x_0)\Bigr].

여기서 x0x_0는 주어지고, x1,x2,…,xTx_1, x_2, \dots, x_T에 대한 적분(평균)을 qq로 수행하는 것입니다.


2. 조건부 분포를 통한 분해

우도 pθ(x0)p_\theta(x_0)는 잠재 변수에 대해 마진화된 결과이므로,

pθ(x0)=∫pθ(x0,x1,…,xT) dx1:T.p_\theta(x_0) = \int p_\theta(x_0, x_1, \dots, x_T) \, dx_{1:T}.

조건부 분포의 정의에 따라,

pθ(x1,…,xT∣x0)=pθ(x0,x1,…,xT)pθ(x0).p_\theta(x_1, \dots, x_T \mid x_0) = \frac{p_\theta(x_0, x_1, \dots, x_T)}{p_\theta(x_0)}.

따라서 로그를 취하면,

log⁡pθ(x0)=log⁡pθ(x0,x1,…,xT)−log⁡pθ(x1,…,xT∣x0).\log p_\theta(x_0) = \log p_\theta(x_0, x_1, \dots, x_T) - \log p_\theta(x_1, \dots, x_T \mid x_0).

음수 부호를 붙이면,

−log⁡pθ(x0)=−log⁡pθ(x0,x1,…,xT)+log⁡pθ(x1,…,xT∣x0).-\log p_\theta(x_0) = -\log p_\theta(x_0, x_1, \dots, x_T) + \log p_\theta(x_1, \dots, x_T \mid x_0).

이 식을 x1:T∼q(⋅∣x0)x_{1:T} \sim q(\cdot \mid x_0)에 대해 기댓값으로 취하면,

Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0)]=Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0,x1,…,xT)+log⁡pθ(x1,…,xT∣x0)].\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\Bigl[-\log p_\theta(x_0)\Bigr] = \mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\Bigl[-\log p_\theta(x_0, x_1, \dots, x_T) + \log p_\theta(x_1, \dots, x_T \mid x_0)\Bigr].

3. q/q=1q/q=1 삽입으로 로그 항 분해

이제, log⁡pθ(x1,…,xT∣x0)\log p_\theta(x_1, \dots, x_T \mid x_0)를 다루기 쉽게 하기 위해,
"1"을 의미하는

q(x1,x2,…,xT∣x0)q(x1,x2,…,xT∣x0)\frac{q(x_1, x_2, \dots, x_T \mid x_0)}{q(x_1, x_2, \dots, x_T \mid x_0)}

를 삽입합니다.

log⁡pθ(x1,…,xT∣x0)=log⁡ ⁣(pθ(x1,…,xT∣x0)q(x1,x2,…,xT∣x0)⋅q(x1,x2,…,xT∣x0)).\log p_\theta(x_1, \dots, x_T \mid x_0) =\log\!\left(\frac{p_\theta(x_1, \dots, x_T \mid x_0)}{q(x_1, x_2, \dots, x_T \mid x_0)} \cdot q(x_1, x_2, \dots, x_T \mid x_0)\right).

로그의 성질에 따라 분리하면,

log⁡pθ(x1,…,xT∣x0)=log⁡pθ(x1,…,xT∣x0)q(x1,x2,…,xT∣x0)+log⁡q(x1,x2,…,xT∣x0).\log p_\theta(x_1, \dots, x_T \mid x_0) =\log \frac{p_\theta(x_1, \dots, x_T \mid x_0)}{q(x_1, x_2, \dots, x_T \mid x_0)} + \log q(x_1, x_2, \dots, x_T \mid x_0).

따라서 전체 전개는

Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0)]=  Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0,x1,…,xT)+log⁡pθ(x1,…,xT∣x0)q(x1,x2,…,xT∣x0)+log⁡q(x1,x2,…,xT∣x0)].\begin{aligned} \mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\Bigl[-\log p_\theta(x_0)\Bigr] =\; &\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\Bigl[-\log p_\theta(x_0, x_1, \dots, x_T) \\ &\quad + \log \frac{p_\theta(x_1, \dots, x_T \mid x_0)}{q(x_1, x_2, \dots, x_T \mid x_0)} + \log q(x_1, x_2, \dots, x_T \mid x_0)\Bigr]. \end{aligned}

4. KL 발산 도입과 부등호 형성

위 식에서 두 번째 항,

Ex1:T∼q(⋅∣x0) ⁣[log⁡pθ(x1,…,xT∣x0)q(x1,x2,…,xT∣x0)],\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\!\left[\log \frac{p_\theta(x_1, \dots, x_T \mid x_0)}{q(x_1, x_2, \dots, x_T \mid x_0)}\right],

는 정의에 따라

−KL(q(x1,x2,…,xT∣x0) ∥ pθ(x1,…,xT∣x0))-\mathrm{KL}\Bigl(q(x_1, x_2, \dots, x_T \mid x_0) \,\|\, p_\theta(x_1, \dots, x_T \mid x_0)\Bigr)

가 됩니다.
KL 발산은 항상 00 이상이므로,

−KL(⋅)≤0.-\mathrm{KL}(\cdot) \le 0.

따라서 전체 식은 다음과 같이 부등호가 형성됩니다.

Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0)]≤Ex1:T∼q(⋅∣x0) ⁣[−log⁡pθ(x0,x1,…,xT)+log⁡q(x1,x2,…,xT∣x0)].\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}[-\log p_\theta(x_0)] \le \mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\!\left[-\log p_\theta(x_0, x_1, \dots, x_T) + \log q(x_1, x_2, \dots, x_T \mid x_0)\right].

5. Markov Chain 인수분해

마지막 단계에서는 모델과 forward process를 각각 Markov Chain 가정하에 인수분해합니다.

  • Reverse Process (모델):

    pθ(x0,x1,…,xT)=pθ(xT)∏t=1Tpθ(xt−1∣xt).p_\theta(x_0, x_1, \dots, x_T) = p_\theta(x_T) \prod_{t=1}^{T} p_\theta(x_{t-1} \mid x_t).

    따라서,

    −log⁡pθ(x0,x1,…,xT)=−log⁡pθ(xT)−∑t=1Tlog⁡pθ(xt−1∣xt).-\log p_\theta(x_0, x_1, \dots, x_T) = -\log p_\theta(x_T) - \sum_{t=1}^{T} \log p_\theta(x_{t-1} \mid x_t).
  • Forward Process:

    q(x1,x2,…,xT∣x0)=∏t=1Tq(xt∣xt−1),q(x_1, x_2, \dots, x_T \mid x_0) = \prod_{t=1}^{T} q(x_t \mid x_{t-1}),

    so,

    log⁡q(x1,x2,…,xT∣x0)=∑t=1Tlog⁡q(xt∣xt−1).\log q(x_1, x_2, \dots, x_T \mid x_0) = \sum_{t=1}^{T} \log q(x_t \mid x_{t-1}).

대입하면 최종적으로,

Ex1:T∼q(⋅∣x0)[−log⁡pθ(x0)]≤  Ex1:T∼q(⋅∣x0)[−log⁡pθ(xT)−∑t=1Tlog⁡pθ(xt−1∣xt)+∑t=1Tlog⁡q(xt∣xt−1)].\begin{aligned} \mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}[-\log p_\theta(x_0)] \le\; &\mathbb{E}_{x_{1:T} \sim q(\cdot \mid x_0)}\Biggl[ -\log p_\theta(x_T) - \sum_{t=1}^{T} \log p_\theta(x_{t-1} \mid x_t) \\ &\quad\quad\quad\quad\quad + \sum_{t=1}^{T} \log q(x_t \mid x_{t-1}) \Biggr]. \end{aligned}

이 식이 바로 DDPM 논문의 식 (3)에 해당하는 Variational Bound (음의 ELBO)입니다.


다음은 ELBO (3) 에서 DDPM의 수식 5번으로 가는 과정을 다뤄보겠습니다.

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

0개의 댓글