먼저, 앞에 보이는 수식(사진)은 DDPM 논문의 3번 수식이고, − log p θ ( x 0 ) -\log p_\theta(x_0) − log p θ ( x 0 ) 를 최소화 하는 대신 Variatoinal Bound를 최소화 하는 식으로 바뀌게 됩니다. 위 수식에서는 log p θ ( x 0 ) \log p_\theta(x_0) log p θ ( x 0 ) 에 음수가 곱해졌기에 ELBO(Evidence Lower Bound)에도 음수가 곱해진 형태라서 ELBO라는 표현 대신 Variational Bound라는 표현을 사용했습니다.
DDPM에서는 관측 데이터 x 0 x_0 x 0 의 우도 log p θ ( x 0 ) \log p_\theta(x_0) log p θ ( x 0 ) 를 직접 최적화(최대화)하기 어려워, 이 우도(likelihood)의 하한(Evidence Lower Bound, ELBO)을 최대화하는 방식으로 모델을 학습합니다. 우선, 모델의 likelihood는 잠재 변수(latent variable) x 1 : T x_{1:T} x 1 : T 를 모두 적분하여 다음과 같이 표현할 수 있습니다:
log p θ ( x 0 ) = log ∫ p θ ( x 0 , x 1 : T ) d x 1 : T . \log p_\theta(x_0) = \log \int p_\theta(x_0, x_{1:T}) \, dx_{1:T}. log p θ ( x 0 ) = log ∫ p θ ( x 0 , x 1 : T ) d x 1 : T .
이 적분은 직접 계산하기 어려우므로, 변분 추론(Variational Inference)의 표준 기법을 적용합니다. 여기서는 분자와 분모에 동일한 항, 즉 q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) \frac{q(x_{1:T}\mid x_0)}{q(x_{1:T}\mid x_0)} q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) 를 곱해도 값은 변하지 않는다는 점을 이용합니다:
log p θ ( x 0 ) = log ∫ p θ ( x 0 , x 1 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T . \log p_\theta(x_0) = \log \int p_\theta(x_0, x_{1:T}) \, \frac{q(x_{1:T}\mid x_0)}{q(x_{1:T}\mid x_0)} \, dx_{1:T}. log p θ ( x 0 ) = log ∫ p θ ( x 0 , x 1 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T .
분수 형태를 기댓값으로 표현하면 다음과 같이 쓸 수 있습니다:
log p θ ( x 0 ) = log ( E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ p θ ( x 0 , x 1 : T ) q ( x 1 : T ∣ x 0 ) ] ) . \log p_\theta(x_0) = \log \Bigl( \mathbb{E}_{x_{1:T}\sim q(\cdot\mid x_0)} \Bigl[\frac{p_\theta(x_0, x_{1:T})}{q(x_{1:T}\mid x_0)}\Bigr] \Bigr). log p θ ( x 0 ) = log ( E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ q ( x 1 : T ∣ x 0 ) p θ ( x 0 , x 1 : T ) ] ) .
여기서 log \log log 함수는 오목(concave) 함수이므로, Jensen’s Inequality (즉, log E [ X ] ≥ E [ log X ] \log \mathbb{E}[X] \ge \mathbb{E}[\log X] log E [ X ] ≥ E [ log X ] )를 적용할 수 있습니다:
log p θ ( x 0 ) = log ( E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ p θ ( x 0 , x 1 : T ) q ( x 1 : T ∣ x 0 ) ] ) ≥ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ log p θ ( x 0 , x 1 : T ) q ( x 1 : T ∣ x 0 ) ] . \log p_\theta(x_0) = \log \Bigl( \mathbb{E}_{x_{1:T}\sim q(\cdot\mid x_0)} \Bigl[\frac{p_\theta(x_0, x_{1:T})}{q(x_{1:T}\mid x_0)}\Bigr] \Bigr) \ge \mathbb{E}_{x_{1:T}\sim q(\cdot\mid x_0)} \Bigl[ \log \frac{p_\theta(x_0, x_{1:T})}{q(x_{1:T}\mid x_0)} \Bigr]. log p θ ( x 0 ) = log ( E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ q ( x 1 : T ∣ x 0 ) p θ ( x 0 , x 1 : T ) ] ) ≥ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ log q ( x 1 : T ∣ x 0 ) p θ ( x 0 , x 1 : T ) ] .
이 부등식은 log p θ ( x 0 ) \log p_\theta(x_0) log p θ ( x 0 ) 에 대한 하한을 제공하며, 가장 오른쪽 항을 ELBO라고 부릅니다. 즉,
log p θ ( x 0 ) ≥ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ log p θ ( x 0 , x 1 : T ) − log q ( x 1 : T ∣ x 0 ) ] . \log p_\theta(x_0) \ge \mathbb{E}_{x_{1:T}\sim q(\cdot\mid x_0)} \Bigl[ \log p_\theta(x_0, x_{1:T}) - \log q(x_{1:T}\mid x_0) \Bigr]. log p θ ( x 0 ) ≥ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ log p θ ( x 0 , x 1 : T ) − log q ( x 1 : T ∣ x 0 ) ] .
실제 학습에서는 최대화 대신 − log p θ ( x 0 ) -\log p_\theta(x_0) − log p θ ( x 0 ) 를 최소화하는 관점으로 문제를 재구성하므로, 위 식에 음수를 씌워 표현하면 (참고: 음수를 곱하면 부등호는 반대가 되고, 기댓값의 성질에 의해 스칼라(-1)가 곱해지면 기댓값 안에 넣을 수 있습니다.)
− log p θ ( x 0 ) ≤ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ − log p θ ( x 0 , x 1 : T ) + log q ( x 1 : T ∣ x 0 ) ] . -\log p_\theta(x_0) \le \mathbb{E}_{x_{1:T}\sim q(\cdot\mid x_0)} \Bigl[ -\log p_\theta(x_0, x_{1:T}) + \log q(x_{1:T}\mid x_0) \Bigr]. − log p θ ( x 0 ) ≤ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ − log p θ ( x 0 , x 1 : T ) + log q ( x 1 : T ∣ x 0 ) ] .
DDPM 논문에서는 이 ELBO 식을 체인 룰을 사용하여 p θ ( x 0 , x 1 : T ) p_\theta(x_0, x_{1:T}) p θ ( x 0 , x 1 : T ) 와 q ( x 1 : T ∣ x 0 ) q(x_{1:T}\mid x_0) q ( x 1 : T ∣ x 0 ) 를 인수분해합니다. 예를 들어, 만약 모델이 역방향 마코프 체인으로 구성되어 있다면
(참고: 확률분포의 chain rule과 각 상태가 markov chain을 이룰 때 어떻게 역방향과 정방향의 전체 과정을 나타내는 조인트 분포가 우변처럼 전개가 되는지에 대해서는 다른 페이지에서 다루겠습니다.)
p θ ( x 0 , x 1 : T ) = p θ ( x 0 : T ) = p θ ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) , p_\theta(x_0, x_{1:T}) = p_\theta(x_{0:T}) = p_\theta(x_T) \prod_{t=1}^T p_\theta\bigl(x_{t-1}\mid x_t\bigr), p θ ( x 0 , x 1 : T ) = p θ ( x 0 : T ) = p θ ( x T ) t = 1 ∏ T p θ ( x t − 1 ∣ x t ) ,
로 나타낼 수 있고, Forward process는
q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(x_{1:T}\mid x_0) = \prod_{t=1}^T q(x_t\mid x_{t-1}) q ( x 1 : T ∣ x 0 ) = t = 1 ∏ T q ( x t ∣ x t − 1 )
와 같이 인수분해됩니다.
이를 이용해 체인 룰로 p θ ( x 0 , x 1 : T ) p_\theta(x_0, x_{1:T}) p θ ( x 0 , x 1 : T ) 와 q ( x 1 : T ∣ x 0 ) q(x_{1:T}\mid x_0) q ( x 1 : T ∣ x 0 ) 를 전개하면, 단계별 KL 항을 명시적으로 얻을 수 있습니다. 먼저, 식
− log p θ ( x 0 ) ≤ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ − log p θ ( x 0 , x 1 : T ) + log q ( x 1 : T ∣ x 0 ) ] -\log p_\theta(x_0) \;\;\le\;\; \mathbb{E}_{x_{1:T}\sim q(\cdot\mid x_0)} \Bigl[ -\log p_\theta\bigl(x_0, x_{1:T}\bigr) \;+\; \log q\bigl(x_{1:T}\mid x_0\bigr) \Bigr] − log p θ ( x 0 ) ≤ E x 1 : T ∼ q ( ⋅ ∣ x 0 ) [ − log p θ ( x 0 , x 1 : T ) + log q ( x 1 : T ∣ x 0 ) ]
에서, p θ ( x 0 , x 1 : T ) p_\theta(x_0, x_{1:T}) p θ ( x 0 , x 1 : T ) 와 q ( x 1 : T ∣ x 0 ) q(x_{1:T}\mid x_0) q ( x 1 : T ∣ x 0 ) 를 각각 마코프 체인 형태로 인수분해합니다.
이제 우변의 기댓값 안을 구체적으로 써 보면,
− log p θ ( x 0 , x 1 : T ) = − log p θ ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) , -\log p_\theta\bigl(x_0, x_{1:T}\bigr) = -\log p_\theta(x_T) \;-\; \sum_{t=1}^T \log p_\theta\bigl(x_{t-1}\mid x_t\bigr), − log p θ ( x 0 , x 1 : T ) = − log p θ ( x T ) − t = 1 ∑ T log p θ ( x t − 1 ∣ x t ) ,
log q ( x 1 : T ∣ x 0 ) = ∑ t = 1 T log q ( x t ∣ x t − 1 ) . \log q\bigl(x_{1:T}\mid x_0\bigr) = \sum_{t=1}^T \log q\bigl(x_t\mid x_{t-1}\bigr). log q ( x 1 : T ∣ x 0 ) = t = 1 ∑ T log q ( x t ∣ x t − 1 ) .
두 식을 합치면,
− log p θ ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) + ∑ t = 1 T log q ( x t ∣ x t − 1 ) . -\log p_\theta(x_T) \;-\; \sum_{t=1}^T \log p_\theta\bigl(x_{t-1}\mid x_t\bigr) \;+\; \sum_{t=1}^T \log q\bigl(x_t\mid x_{t-1}\bigr). − log p θ ( x T ) − t = 1 ∑ T log p θ ( x t − 1 ∣ x t ) + t = 1 ∑ T log q ( x t ∣ x t − 1 ) .
이를 기댓값 E q ( ⋅ ∣ x 0 ) [ ⋯ ] \mathbb{E}_{q(\cdot\mid x_0)}[\cdots] E q ( ⋅ ∣ x 0 ) [ ⋯ ] 안에 넣고 정리하면, 각 단계마다
log q ( x t ∣ x t − 1 ) − log p θ ( x t − 1 ∣ x t ) \log q\bigl(x_t\mid x_{t-1}\bigr) \;-\; \log p_\theta\bigl(x_{t-1}\mid x_t\bigr) log q ( x t ∣ x t − 1 ) − log p θ ( x t − 1 ∣ x t )
라는 항이 등장합니다. 이것을
K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) \mathrm{KL}\Bigl( q(x_{t-1}\mid x_t, x_0) \;\|\; p_\theta(x_{t-1}\mid x_t) \Bigr) K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) )
형태로 묶을 수 있으며, 그 합산이 곧 DDPM 논문에서 말하는 최종 Variational Bound가 됩니다.
따라서
− log p θ ( x 0 ) ≤ E q ( ⋅ ∣ x 0 ) [ − log p θ ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) + ∑ t = 1 T log q ( x t ∣ x t − 1 ) ] ⏟ 논문 식 (3)의 우변 , -\log p_\theta(x_0) \;\;\le\;\; \underbrace{ \mathbb{E}_{q(\cdot\mid x_0)}\Bigl[ -\log p_\theta(x_T) \;-\; \sum_{t=1}^T \log p_\theta(x_{t-1}\mid x_t) \;+\; \sum_{t=1}^T \log q(x_t\mid x_{t-1}) \Bigr] }_{\text{논문 식 (3)의 우변}}, − log p θ ( x 0 ) ≤ 논문 식 (3) 의 우변 E q ( ⋅ ∣ x 0 ) [ − log p θ ( x T ) − t = 1 ∑ T log p θ ( x t − 1 ∣ x t ) + t = 1 ∑ T log q ( x t ∣ x t − 1 ) ] ,
이/가 되고, 이를 단계별로 재배열하면 각 t t t 에 대한 KL 항이 합쳐진 꼴로 나타나게 됩니다. 이렇게 유도된 Variational Bound를 최소화하는 것이, 곧 − log p θ ( x 0 ) -\log p_\theta(x_0) − log p θ ( x 0 ) 를 최소화(= log p θ ( x 0 ) \log p_\theta(x_0) log p θ ( x 0 ) 최대화)하는 것과 동일한 목표가 되며, DDPM에서 역방향 분포 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}\mid x_t) p θ ( x t − 1 ∣ x t ) 를 학습하는 이론적 근거가 됩니다.