논문 리뷰: Denoising Diffusion Probabilistic Models (DDPM)
📂머신러닝 논문 리뷰: Denoising Diffusion Probabilistic Models (DDPM) 개요 및 요약 생성 모델 이란, 주어진 랜덤 샘플 { y i } \left\{ y_{i} \right\} { y i } 이 따르는 확률분포 Y Y Y 혹은 그것을 찾는 방법을 말한다. 맨땅에서 이를 찾는 것은 매우 어려우므로, 보통은 이미 잘 알려진 분포로부터 원하는 분포를 근사하는 방법을 찾는다. 그래서 잘 알려진 분포 X X X 를 따르는 데이터 집합 { x i } \left\{ x_{i} \right\} { x i } 가 주어졌을 때, 생성 모델이란 다음과 같은 함수 f f f 라 할 수 있으며, 생성 모델을 개발한다는 것은 f f f 를 잘 근사하는 함수를 찾는 것을 말한다.
f : { x i } → { y j }
f : \left\{ x_{i} \right\} \to \left\{ y_{j} \right\}
f : { x i } → { y j }
잘 알려진 분포 X X X 로 가장 많이 사용되는 것은 정규분포 이다. 그래서 생성 모델을 쉽게 이해하고 싶다면 정규분포로부터 미지의 분포를 따르는 샘플을 추출하는 방법을 찾는 것이라고 받아들여도 무방하다.
Denoising Diffusion Probabilistic Models (DDPM) 에서도 마찬가지로, 정규분포로부터 다른 미지의 분포를 따르는 데이터를 추출하는 방법을 소개한다. 정규분포 N ( 0 , I ) N(0, I) N ( 0 , I ) 에서 추출된 어떤 노이즈 z \mathbf{z} z 와 어떤 미지의 분포 X X X 에서 추출되었다고 가정되는 이미지 x 0 \mathbf{x}_{0} x 0 가 있다고 하자. 노이즈 z \mathbf{z} z 로부터 x 0 \mathbf{x}_{0} x 0 를 만들어내는 함수 x 0 = p ( z ) \mathbf{x}_{0} = p(\mathbf{z}) x 0 = p ( z ) 를 찾는 것은 당연히 어렵겠으나, 생각해보면 x 0 \mathbf{x}_{0} x 0 를 손상시켜 z \mathbf{z} z 를 만드는 역함수 z = q ( x 0 ) \mathbf{z} = q(\mathbf{x}_{0}) z = q ( x 0 ) 을 찾는 것 또한 쉽지 않을 것이다. (사진 출처 )
그런데 이미지 x 0 \mathbf{x}_{0} x 0 에 정규분포에서 추출된 아주 작은 노이즈 ϵ 1 \boldsymbol{\epsilon}_{1} ϵ 1 이 더해져 아주 조금 손상curruption 된 이미지 x 1 = x 0 + ϵ 1 \mathbf{x}_{1} = \mathbf{x}_{0} + \boldsymbol{\epsilon}_{1} x 1 = x 0 + ϵ 1 를 얻는 것은 쉬운 일이다. 여기에 다시 작은 가우시안 노이즈 ϵ 2 \boldsymbol{\epsilon}_{2} ϵ 2 를 추출하고 더해주어 x 2 = x 1 + ϵ 2 \mathbf{x}_{2} = \mathbf{x}_{1} + \boldsymbol{\epsilon}_{2} x 2 = x 1 + ϵ 2 를 얻는 것도 쉽다. 이런 과정을 아주 많이 반복하여 얻은, x T \mathbf{x}_{T} x T 는 마치 정규분포에서 추출된 노이즈와 같을 것이다. 다시말해 이미지 x 0 \mathbf{x}_{0} x 0 에 가우시안 노이즈를 반복적으로 더해가며 손상시키면 결국 정규분포에서 추출된 노이즈와 같은 이미지를 얻을 수 있다는 것이고, 이 과정을 바로 확산 diffusion 이라고 한다. 이를 확산이라고 부르는 이유는 실제로 미세한 입자가 불규칙적이고 무작위적으로 퍼져나가는 현상인 브라운 운동 이 수학적으로는 가우스 분포에서 추출된 값을 계속해서 더해가는 것으로 기술되기 때문이며, 브라운 운동은 실제로 확산 방정식(열 방정식)과 관련되어있다.
확산과정이 노이즈를 계속 더해가는 것이므로, 이의 역과정은 노이즈를 계속 빼는 것이다. 따라서 이 역과정은 자연스럽게 디노이징 denoising 이 된다. 이 논문에서는 잘 알려진 확산이라는 과정의 정보를 이용하여, 미지의 디노이징이라는 역과정을 수행하는 방법을 소개한다. 이러한 아이디어는 2015년 논문 Deep Unsupervised Learning using Nonequilibrium Thermodynamics 에서 diffusion probabilistic models (DPM)이라는 이름으로 처음 소개되었으며, DDPM은 이를 보완하고 딥러닝과 잘 결합한 논문이다.
DDPM 논문과 부록 은 수식 전개에 그리 친절하지 않다. 이를 리뷰한 수많은 글들도 수식이 어떻게 전개되고 유도되는지 명확하게 설명하지 않는다. 본 글에서는 DDPM의 성능이나 결과물에 대해서는 다루지 않고, DDPM이 수학적으로 어떻게 기술되는지를 꼼꼼하게 다룬다. 그래서 글이 좀 길어지긴 했지만, 적어도 수식 전개에서 막히는 부분은 없을 것이다.
단 한줄의 수식도 대충 넘어가지 않았다. 단언컨대 전 세계에서 DDPM 논문의 수식을 가장 수학적으로 정확하고 자세하게 설명한 글이다.
기초(preliminaries) 본 논문에서는 확률변수 x ∈ R D \mathbf{x} \in \mathbb{R}^{D} x ∈ R D 와 이의 실현 을 모두 x ∈ R D \mathbf{x} \in \mathbb{R}^{D} x ∈ R D 로 표기한다. 다시말해 일반적으로 확률변수 X X X 에 대한 확률밀도함수가 p X ( x ) p_{X}(x) p X ( x ) 와 같이 표현된다면, 본 논문에서는 p ( x ) = p x ( x ) p(\mathbf{x}) = p_{\mathbf{x}}(\mathbf{x}) p ( x ) = p x ( x ) 와 같이 표기한다. 특징추출
확률변수들의 수열 ( x 0 , x 1 , … , x T ) = { x t } t = 0 T (\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T}) = \left\{ \mathbf{x}_{t} \right\}_{t=0}^{T} ( x 0 , x 1 , … , x T ) = { x t } t = 0 T 을 확률과정 이라 한다. 본 논문에서는 확률과정을 x 0 : T = ( x 0 , x 1 , … , x T ) \mathbf{x}_{0:T} = (\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T}) x 0 : T = ( x 0 , x 1 , … , x T ) 와 같이 표기한다. x 0 : T \mathbf{x}_{0:T} x 0 : T 의 결합 확률밀도함수 를 다음과 같이 표기한다.
p ( x 0 : T ) = p x 0 : T ( x 0 : T )
p(\mathbf{x}_{0:T}) = p_{\mathbf{x}_{0:T}}(\mathbf{x}_{0:T})
p ( x 0 : T ) = p x 0 : T ( x 0 : T )
x 0 : T − 1 \mathbf{x}_{0:T-1} x 0 : T − 1 에 대한 x T \mathbf{x}_{T} x T 의 조건부 확률밀도함수 란, 다음을 만족하는 p ( x T ∣ x 0 : T − 1 ) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) p ( x T ∣ x 0 : T − 1 ) 를 말한다.
p ( x T ∣ x 0 : T − 1 ) = p ( x 0 : T ) p ( x 0 : T − 1 )
p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) = \dfrac{p(\mathbf{x}_{0:T})}{p(\mathbf{x}_{0:T-1})}
p ( x T ∣ x 0 : T − 1 ) = p ( x 0 : T − 1 ) p ( x 0 : T )
위 정의를 반복하면 다음을 얻는다.
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) (1)
p(\mathbf{x}_{0:T})
= p(\mathbf{x}_{0}) p(\mathbf{x}_{1} | \mathbf{x}_{0}) p(\mathbf{x}_{2} | \mathbf{x}_{0:1}) \cdots p(\mathbf{x}_{T-1} | \mathbf{x}_{0:T-2}) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1})
\tag{1}
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) ( 1 )
x 0 : T \mathbf{x}_{0:T} x 0 : T 가 다음을 만족하면 마코프 체인 이라 한다.
p ( x T ∣ x 0 : T − 1 ) = p ( x T ∣ x T − 1 )
p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) = p(\mathbf{x}_{T} | \mathbf{x}_{T-1})
p ( x T ∣ x 0 : T − 1 ) = p ( x T ∣ x T − 1 )
x 0 : T \mathbf{x}_{0:T} x 0 : T 가 마코프 체인이면, ( 1 ) (1) ( 1 ) 는 다음과 같이 간단해진다.
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 1 ) ⋯ p ( x T − 1 ∣ x T − 2 ) p ( x T ∣ x T − 1 ) = p ( x 0 ) ∏ t = 1 T p ( x t ∣ x t − 1 ) (2)
\begin{align*}
p(\mathbf{x}_{0:T})
&= p(\mathbf{x}_{0}) p(\mathbf{x}_{1} | \mathbf{x}_{0}) p(\mathbf{x}_{2} | \mathbf{x}_{0:1}) \cdots p(\mathbf{x}_{T-1} | \mathbf{x}_{0:T-2}) p(\mathbf{x}_{T} | \mathbf{x}_{0:T-1}) \\
&= p(\mathbf{x}_{0}) p(\mathbf{x}_{1} | \mathbf{x}_{0}) p(\mathbf{x}_{2} | \mathbf{x}_{1}) \cdots p(\mathbf{x}_{T-1} | \mathbf{x}_{T-2}) p(\mathbf{x}_{T} | \mathbf{x}_{T-1}) \\
&= p(\mathbf{x}_{0}) \prod\limits_{t=1}^{T} p(\mathbf{x}_{t} | \mathbf{x}_{t-1})
\end{align*}
\tag{2}
p ( x 0 : T ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 0 : 1 ) ⋯ p ( x T − 1 ∣ x 0 : T − 2 ) p ( x T ∣ x 0 : T − 1 ) = p ( x 0 ) p ( x 1 ∣ x 0 ) p ( x 2 ∣ x 1 ) ⋯ p ( x T − 1 ∣ x T − 2 ) p ( x T ∣ x T − 1 ) = p ( x 0 ) t = 1 ∏ T p ( x t ∣ x t − 1 ) ( 2 )
2 Background Section 2에서는 diffusion model의 아이디어를 어떻게 수학적으로 표현할 수 있는지 간단히 소개한다. 기본이 되는 아이디어가 다른 논문에서 나왔기 때문에 상세히 설명하지는 않고있다. 입문자가 보기에는 생략된 부분이 많아 이해하기 어려울 수 있다. 아래에서 최대한 자세히 풀어나가겠다.
확산 과정 diffusion process (정방향 과정 forward process )확산 과정을 수학적으로 정리해보자. t t t 단계에서의 이미지 x t ∈ R D \mathbf{x}_{t} \in \mathbb{R}^{D} x t ∈ R D 는 t − 1 t-1 t − 1 단계에서의 이미지 x t − 1 ∈ R D \mathbf{x}_{t-1} \in \mathbb{R}^{D} x t − 1 ∈ R D 에 가우시안 노이즈 β t ϵ t ∼ N ( 0 , β t I ) \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \sim \mathcal{N}(\mathbf{0}, \beta_{t}\mathbf{I}) β t ϵ t ∼ N ( 0 , β t I ) 를 더한 것이다. β t \beta_{t} β t 는 노이즈가 확산되는 정도를 결정하는 계수이다. 따라서 다음과 같이 표현할 수 있다.
x t = 1 − β t x t − 1 + β t ϵ t , ϵ t ∼ N ( 0 , I )
\mathbf{x}_{t} = \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t}, \qquad \boldsymbol{\epsilon}_{t} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})
x t = 1 − β t x t − 1 + β t ϵ t , ϵ t ∼ N ( 0 , I )
여기서 계수가 ( 1 − β t , β t ) (1-\beta_{t}, \beta_{t}) ( 1 − β t , β t ) 가 아니라 ( 1 − β t , β t ) (\sqrt{1-\beta_{t}}, \sqrt{\beta_{t}}) ( 1 − β t , β t ) 인 이유는, 분산의 성질 Var ( a X ) = a 2 Var ( X ) \Var(aX) = a^{2}\Var(X) Var ( a X ) = a 2 Var ( X ) 때문이다. 계수에 \sqrt{} 가 붙어있어야 t t t 가 충분히 클 때 모든 n ≥ 1 n \ge 1 n ≥ 1 에 대해서 x t + n \mathbf{x}_{t+n} x t + n 이 계속 표준정규분포를 따르게 된다. t t t 가 충분히 크다고 가정하면 x t \mathbf{x}_{t} x t 는 표준정규분포를 따를 것이다. 그 때 x t + 1 \mathbf{x}_{t+1} x t + 1 의 공분산 행렬 이 유지됨을(여전히 표준정규분포를 따름을) 아래와 같이 확인할 수 있다. x t − 1 \mathbf{x}_{t-1} x t − 1 와 ϵ t \boldsymbol{\epsilon}_{t} ϵ t 는 서로 독립이므로 다음이 성립한다.
Cov ( x t ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) = ( 1 − β t ) Cov ( x t − 1 ) + β t Cov ( ϵ t ) = ( 1 − β t ) I + β t I = I
\begin{align*}
\Cov(\mathbf{x}_{t})
&= \Cov(\sqrt{1-\beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t}) \\
&= (1-\beta_{t})\Cov(\mathbf{x}_{t-1}) + \beta_{t}\Cov(\boldsymbol{\epsilon}_{t}) \\
&= (1-\beta_{t})\mathbf{I} + \beta_{t}\mathbf{I} \\
&= \mathbf{I}
\end{align*}
Cov ( x t ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) = ( 1 − β t ) Cov ( x t − 1 ) + β t Cov ( ϵ t ) = ( 1 − β t ) I + β t I = I
x t − 1 \mathbf{x}_{t-1} x t − 1 가 결정되었을 때(상수일 때) x t \mathbf{x}_{t} x t 에 대한 조건부 확률밀도함수는 다음과 같다.
q ( x t ∣ x t − 1 ) = N ( 1 − β t x t − 1 , β t I ) (3)
q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) = \mathcal{N}(\sqrt{1 - \beta_{t}}\mathbf{x}_{t-1}, \beta_{t}\mathbf{I}) \tag{3}
q ( x t ∣ x t − 1 ) = N ( 1 − β t x t − 1 , β t I ) ( 3 )
(논문에서는 x t \mathbf{x}_{t} x t 에 대한 분포라는 것을 확실하게 명시하기 위해 N ( x t ; 1 − β t x t − 1 , β t I ) \mathcal{N}(\mathbf{x}_{t}; \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1}, \beta_{t}\mathbf{I}) N ( x t ; 1 − β t x t − 1 , β t I ) 로 표기하였다.) 평균벡터와 공분산행렬이 위와 같음은 각각 아래와 같이 확인할 수 있다. x t − 1 \mathbf{x}_{t-1} x t − 1 가 결정되었다고 하자(즉 상수이다).
E [ x t ∣ x t − 1 ] = E [ 1 − β t x t − 1 + β t ϵ t ] ( x t − 1 is constant vector ) = E [ 1 − β t x t − 1 ] + E [ β t ϵ t ] = 1 − β t x t − 1 + β t E [ ϵ t ] = 1 − β t x t − 1
\begin{align*}
\mathbb{E} [\mathbf{x}_{t} | \mathbf{x}_{t-1}]
&= \mathbb{E} \left[ \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right] \qquad (\mathbf{x}_{t-1} \text{ is constant vector})\\
&= \mathbb{E} \left[ \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} \right] + \mathbb{E} \left[ \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right] \\
&= \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\mathbb{E} \left[ \boldsymbol{\epsilon}_{t} \right] \\
&= \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1}
\end{align*}
E [ x t ∣ x t − 1 ] = E [ 1 − β t x t − 1 + β t ϵ t ] ( x t − 1 is constant vector ) = E [ 1 − β t x t − 1 ] + E [ β t ϵ t ] = 1 − β t x t − 1 + β t E [ ϵ t ] = 1 − β t x t − 1
Cov ( x t ∣ x t − 1 ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) ( x t − 1 is constant vector ) = Cov ( β t ϵ t ) = β t Cov ( ϵ t ) = β t I
\begin{align*}
\Cov (\mathbf{x}_{t} | \mathbf{x}_{t-1})
&= \Cov \left( \sqrt{1 - \beta_{t}}\mathbf{x}_{t-1} + \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right) \qquad (\mathbf{x}_{t-1} \text{ is constant vector})\\
&= \Cov \left( \sqrt{\beta_{t}}\boldsymbol{\epsilon}_{t} \right) \\
&= \beta_{t}\Cov \left( \boldsymbol{\epsilon}_{t} \right) \\
&= \beta_{t} \mathbf{I}
\end{align*}
Cov ( x t ∣ x t − 1 ) = Cov ( 1 − β t x t − 1 + β t ϵ t ) ( x t − 1 is constant vector ) = Cov ( β t ϵ t ) = β t Cov ( ϵ t ) = β t I
이미지 x 0 \mathbf{x}_{0} x 0 가 주어졌을 때, 가우시안 노이즈를 반복적으로 더해가며 손상된 이미지를 x 1 , x 2 , … , x T \mathbf{x}_{1}, \mathbf{x}_{2}, \dots, \mathbf{x}_{T} x 1 , x 2 , … , x T 라고 하면(이의 확률변수와 표기법을 같이 사용함에 다시 주의하라), 이 전체 과정에 대한 확률밀도 함수는 결합 조건부 확률밀도함수 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) q ( x 1 : T ∣ x 0 ) 로 주어지며 이를 정방향 과정 forward process 또는 확산 과정 diffusion process 이라고 한다. x 0 : T \mathbf{x}_{0:T} x 0 : T 가 마코프이기 때문에, ( 2 ) \eqref{2} ( 2 ) 에 의해, 확산 과정은 다음과 같이 모델링된다.
q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) (4)
q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) = \prod\limits_{t=1}^{T} q(\mathbf{x}_{t} | \mathbf{x}_{t-1})
\tag{4}
q ( x 1 : T ∣ x 0 ) = t = 1 ∏ T q ( x t ∣ x t − 1 ) ( 4 )
한편 x 0 \mathbf{x}_{0} x 0 에서 임의의 t t t 에 대해 x t \mathbf{x}_{t} x t 가 결정될 조건부 확률밀도함수도 명시적으로 나타낼 수 있다. α t = 1 − β t \alpha_{t} = 1 - \beta_{t} α t = 1 − β t 라 하면,
x t = α t x t − 1 + 1 − α t ϵ t = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ t − 1 ) + 1 − α t ϵ t = α t α t − 1 x t − 2 + α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t
\begin{align*}
\mathbf{x}_{t}
&= \sqrt{\alpha_{t}}\mathbf{x}_{t-1} + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} \\
&= \sqrt{\alpha_{t}}\left( \sqrt{\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1 - \alpha_{t-1}}\boldsymbol{\epsilon}_{t-1} \right) + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} \\
&= \sqrt{\alpha_{t}}\sqrt{\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{\alpha_{t}}\sqrt{1 - \alpha_{t-1}}\boldsymbol{\epsilon}_{t-1} + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t} \\
\end{align*}
x t = α t x t − 1 + 1 − α t ϵ t = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ t − 1 ) + 1 − α t ϵ t = α t α t − 1 x t − 2 + α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t
이때 두 정규분포의 합은 다시 하나의 정규분포로 나타낼 수 있다.
X 1 ∼ N ( μ 1 , σ 1 2 ) X_{1} \sim \mathcal{N}(\mu_{1}, \sigma_{1}^{2}) X 1 ∼ N ( μ 1 , σ 1 2 ) 와 X 2 ∼ N ( μ 2 , σ 2 2 ) X_{2} \sim \mathcal{N}(\mu_{2}, \sigma_{2}^{2}) X 2 ∼ N ( μ 2 , σ 2 2 ) 가 독립이면,
X 1 + X 2 ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 )
X_{1} + X_{2} \sim \mathcal{N}(\mu_{1} + \mu_{2}, \sigma_{1}^{2} + \sigma_{2}^{2})
X 1 + X 2 ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 )
랜덤 벡터에 대해서도 같은 방식으로 성립한다.
따라서 다음이 성립한다.
α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t ∼ N ( 0 , α t ( 1 − α t − 1 ) I + ( 1 − α t ) I ) = N ( 0 , ( 1 − α t α t − 1 ) I )
\begin{align*}
\sqrt{\alpha_{t}}\sqrt{1 - \alpha_{t-1}}\boldsymbol{\epsilon}_{t-1} + \sqrt{1 - \alpha_{t}}\boldsymbol{\epsilon}_{t}
&\sim \mathcal{N}(\mathbf{0}, \alpha_{t}(1-\alpha_{t-1})\mathbf{I} + (1 - \alpha_{t})\mathbf{I}) \\
&\quad= \mathcal{N}(\mathbf{0}, (1 - \alpha_{t}\alpha_{t-1})\mathbf{I})
\end{align*}
α t 1 − α t − 1 ϵ t − 1 + 1 − α t ϵ t ∼ N ( 0 , α t ( 1 − α t − 1 ) I + ( 1 − α t ) I ) = N ( 0 , ( 1 − α t α t − 1 ) I )
그러므로 x t \mathbf{x}_{t} x t 는 아래와 같다.
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ , ϵ ∼ N ( 0 , I )
\mathbf{x}_{t} = \sqrt{\alpha_{t}\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon}, \qquad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ , ϵ ∼ N ( 0 , I )
이 과정을 반복하면 다음을 얻는다.
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 ( α t − 2 x t − 3 + 1 − α t − 2 ϵ t − 2 ) + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + α t α t − 1 ( 1 − α t − 2 ) ϵ t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + 1 − α t α t − 1 α t − 2 ϵ ⋮ = ∏ s = 1 t α s x 0 + 1 − ∏ s = 1 t α s ϵ = α ‾ t x 0 + 1 − α ‾ t ϵ , ϵ ∼ N ( 0 , I ) , α ‾ t = ∏ s = 1 t α s
\begin{align*}
\mathbf{x}_{t}
&= \sqrt{\alpha_{t}\alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon} \\
&= \sqrt{\alpha_{t}\alpha_{t-1}}(\sqrt{\alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{1 - \alpha_{t-2}}\boldsymbol{\epsilon}_{t-2}) + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon} \\
&= \sqrt{\alpha_{t}\alpha_{t-1}\alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{\alpha_{t}\alpha_{t-1}(1 - \alpha_{t-2})}\boldsymbol{\epsilon}_{t-2} + \sqrt{1 - \alpha_{t}\alpha_{t-1}}\boldsymbol{\epsilon} \\
&= \sqrt{\alpha_{t}\alpha_{t-1}\alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{1 - \alpha_{t}\alpha_{t-1}\alpha_{t-2}}\boldsymbol{\epsilon} \\
&\vdots \\
&= \sqrt{\prod\limits_{s=1}^{t} \alpha_{s}}\mathbf{x}_{0} + \sqrt{1 - \prod\limits_{s=1}^{t} \alpha_{s}}\boldsymbol{\epsilon} \\
&= \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1 - \overline{\alpha}_{t}}\boldsymbol{\epsilon}, \qquad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}), \quad \overline{\alpha}_{t} = \prod\limits_{s=1}^{t} \alpha_{s} \tag{5}
\end{align*}
x t = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 ( α t − 2 x t − 3 + 1 − α t − 2 ϵ t − 2 ) + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + α t α t − 1 ( 1 − α t − 2 ) ϵ t − 2 + 1 − α t α t − 1 ϵ = α t α t − 1 α t − 2 x t − 3 + 1 − α t α t − 1 α t − 2 ϵ ⋮ = s = 1 ∏ t α s x 0 + 1 − s = 1 ∏ t α s ϵ = α t x 0 + 1 − α t ϵ , ϵ ∼ N ( 0 , I ) , α t = s = 1 ∏ t α s ( 5 )
따라서 x 0 \mathbf{x}_{0} x 0 가 결정됐을 때, x t \mathbf{x}_{t} x t 에 대한 조건부 결합밀도함수는 다음과 같다.
q ( x t ∣ x 0 ) = N ( α ‾ t x 0 , ( 1 − α ‾ t ) I ) (6)
q(\mathbf{x}_{t} | \mathbf{x}_{0}) = \mathcal{N}(\sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0}, (1 - \overline{\alpha}_{t})\mathbf{I}) \tag{6}
q ( x t ∣ x 0 ) = N ( α t x 0 , ( 1 − α t ) I ) ( 6 )
α t \alpha_{t} α t 가 충분히 작고(=β t \beta_{t} β t 가 1 1 1 에 가까우면) T T T 가 충분히 크면 α ‾ T = ∏ s = 1 T α s \overline{\alpha}_{T} = \prod_{s=1}^{T} \alpha_{s} α T = ∏ s = 1 T α s 는 0 0 0 에 가깝고, 다음이 성립할 것이다.
q ( x T ∣ x 0 ) → N ( 0 , I ) as T → ∞
q(\mathbf{x}_{T} | \mathbf{x}_{0}) \to \mathcal{N}(\mathbf{0}, \mathbf{I}) \quad \text{as } T \to \infty
q ( x T ∣ x 0 ) → N ( 0 , I ) as T → ∞
이는 x 0 \mathbf{x}_{0} x 0 에 가우시안 노이즈를 계속 더해주어 만들어진 x T \mathbf{x}_{T} x T 가 표준정규분포를 따를 것이라는 아이디어를 뒷받침하는 수식이다.
잡음제거 과정 denoising process (역방향 과정 reverse process )이제 가우시안 노이즈 x T ∼ N ( 0 , I ) \mathbf{x}_{T} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) x T ∼ N ( 0 , I ) 로부터 노이즈를 점점 제거하여 x 0 \mathbf{x}_{0} x 0 가 되는 역과정(디노이징 )을 생각하자. Feller 에 의하면, 전방 과정이 정규분포 나 이항분포 를 경우 충분히 작은 확산계수 β \beta β 에 대해서는 그 역과정이 전방과정과 같은 분포를 따른다고 한다.
“For both Gaussian and binomial diffusion, for continuous diffusion (limit of small step size β \beta β ) the reversal of the diffusion process has the identical functional form as the forward process.”
– Sohl-Dickstein, Jascha, et al. Deep unsupervised learning using nonequilibrium thermodynamics. International conference on machine learning. pmlr, 2015.
즉 디노이징에 대한 확률밀도함수를 p p p 로 표기하면, 다음이 성립한다는 의미이다. q ( x t ∣ x t − 1 ) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q ( x t ∣ x t − 1 ) 가 정규분포를 따르므로, 그 역과정은 아래와 같다.
p ( x t − 1 ∣ x t ) = N ( μ ( x t , t ) , Σ ( x t , t ) )
p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\mathbf{\mu}(\mathbf{x}_{t}, t), \boldsymbol{\Sigma}(\mathbf{x}_{t}, t))
p ( x t − 1 ∣ x t ) = N ( μ ( x t , t ) , Σ ( x t , t ))
역방향 과정 역시 마코프 체인이므로, 표준정규분포에서 추출된 랜덤 가우시안 노이즈 x T \mathbf{x}_{T} x T 에서 점점 노이즈를 제거하여 특정한 이미지 x 0 \mathbf{x}_{0} x 0 가 되는 전체 과정에 대한 결합 확률밀도함수는 다음과 같이 표현된다.
p ( x 0 : T ) = p ( x T ) ∏ t = 1 T p ( x t − 1 ∣ x t )
p(\mathbf{x}_{0:T}) = p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p(\mathbf{x}_{t-1} | \mathbf{x}_{t})
p ( x 0 : T ) = p ( x T ) t = 1 ∏ T p ( x t − 1 ∣ x t )
확산 과정 q ( x 0 : T ) q(\mathbf{x}_{0:T}) q ( x 0 : T ) 와 달리 디노이징 과정 p ( x 0 : T ) p(\mathbf{x}_{0:T}) p ( x 0 : T ) 는 우리가 알지 못하므로 추정해야하는 대상이다. 파라매터 θ \theta θ 를 갖고 p p p 를 근사하는 함수를 p θ p_{\theta} p θ 라 표기하자. x T \mathbf{x}_{T} x T 에 대한 확률밀도함수는 p ( x T ) = N ( 0 , I ) p(\mathbf{x}_{T}) = \mathcal{N}(\mathbf{0}, \mathbf{I}) p ( x T ) = N ( 0 , I ) 임을 알고있으므로,
p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) (7)
p_{\theta} (\mathbf{x}_{0:T}) = p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p_{\theta} (\mathbf{x}_{t-1} | \mathbf{x}_{t}) \tag{7}
p θ ( x 0 : T ) = p ( x T ) t = 1 ∏ T p θ ( x t − 1 ∣ x t ) ( 7 )
각각의 p ( x t − 1 ∣ x t ) p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p ( x t − 1 ∣ x t ) 는 정규분포를 따른다는 것을 알고 있지만 평균벡터와 공분산행렬은 알지 못한다. 따라서 이들도 근사해야할 대상이며, p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p θ ( x t − 1 ∣ x t ) 를 다음과 같이 나타낼 수 있다.
p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t ) )
p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\mu_{\theta}(\mathbf{x}_{t}, t), \Sigma_{\theta}(\mathbf{x}_{t}, t))
p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t ))
새로운 데이터를 생성해내기 위해서 찾고자 하는 것은 데이터 x 0 \mathbf{x}_{0} x 0 에 대한 확률밀도함수 p ( x 0 ) p(\mathbf{x}_{0}) p ( x 0 ) 이다. 이를 알고있다면 랜덤 추출로 기존의 데이터와 같은 분포를 따르는 새로운 데이터를 생성할 수 있다. p ( x 0 ) p(\mathbf{x}_{0}) p ( x 0 ) 를 근사하는 함수는 p θ ( x 0 ) p_{\theta}(\mathbf{x}_{0}) p θ ( x 0 ) 이고 파라미터 θ \theta θ 를 갖는다. p θ ( x 0 ) p_{\theta}(\mathbf{x}_{0}) p θ ( x 0 ) 를 p ( x 0 ) p(\mathbf{x}_{0}) p ( x 0 ) 와 비슷하도록 만드는 방법은 p θ ( x 0 ) p_{\theta}(\mathbf{x}_{0}) p θ ( x 0 ) 를 우도 로 보고, 최대우도추정법을 사용하는 것이다. p p p 가 정규분포이므로 로그 우도를 사용하는 것이 수학적으로 더 간단하며, 상대적 엔트로피(쿨백-라이블러 발산) 와와도 자연스럽게 연결된다. log p θ ( x 0 ) \log p_{\theta}(\mathbf{x}_{0}) log p θ ( x 0 ) 를 최대화하는 것은 − log p θ ( x 0 ) -\log p_{\theta}(\mathbf{x}_{0}) − log p θ ( x 0 ) 를 최소화하는 것과 같으므로 여기서 시작하자 (경사하강법 을 사용할 것이기 때문). 따라서 E q ( x 0 ) [ − log p θ ( x 0 ) ] \mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})] E q ( x 0 ) [ − log p θ ( x 0 )] 를 최소화하는 θ \theta θ 를 찾는 것이 목표이다. 우선, 주변/조건부 확률밀도함수의 정의에 의해, p ( x ) p(\mathbf{x}) p ( x ) 를 다음과 같이 표현할 수 있다.
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T = ∫ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ q ( x 1 : T ∣ x 0 ) p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) d x 1 : T = E q ( x 1 : T ∣ x 0 ) [ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ]
\begin{align*}
p_{\theta}(\mathbf{x}_{0})
&= \int p_{\theta}(\mathbf{x}_{0:T}) d\mathbf{x}_{1:T} \\
&= \int p(\mathbf{x}_{0:T}) \dfrac{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} d\mathbf{x}_{1:T} \\
&= \int q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \dfrac{ p(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} d\mathbf{x}_{1:T} \\
&= \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \left[ \dfrac{ p(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right]
\end{align*}
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T = ∫ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) p ( x 0 : T ) d x 1 : T = E q ( x 1 : T ∣ x 0 ) [ q ( x 1 : T ∣ x 0 ) p ( x 0 : T ) ]
그러면 우리가 최소화하고 싶은 기댓값을 아래와 같이 정리할 수 있다. 옌센 부등식 에 의해 − log ( E [ X ] ) ≤ E [ − log X ] -\log (\mathbb{E}[X]) \le \mathbb{E}[-\log X] − log ( E [ X ]) ≤ E [ − log X ] 이므로,
E q ( x 0 ) [ − log p θ ( x 0 ) ] = E q ( x 0 ) [ − log ( E q ( x 1 : T ∣ x 0 ) [ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] ) ] ≤ E q ( x 0 ) [ E q ( x 1 : T ∣ x 0 ) ( − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ) ] = E q ( x 0 : T ) [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ]
\begin{align*}
\mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})]
&= \mathbb{E}_{q(\mathbf{x}_{0})} \left[ -\log \left( \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \left[ \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \right) \right] \\
&\le \mathbb{E}_{q(\mathbf{x}_{0})} \left[ \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})}\left( -\log \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right) \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \\
\end{align*}
E q ( x 0 ) [ − log p θ ( x 0 )] = E q ( x 0 ) [ − log ( E q ( x 1 : T ∣ x 0 ) [ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] ) ] ≤ E q ( x 0 ) [ E q ( x 1 : T ∣ x 0 ) ( − log q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ) ] = E q ( x 0 : T ) [ − log q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ]
마지막 등호는 조건부 확률밀도함수의 정의 q ( X , Y ) = q ( X ) q ( Y ∣ X ) q(X,Y) = q(X)q(Y|X) q ( X , Y ) = q ( X ) q ( Y ∣ X ) 에 의해 성립한다. 두 기댓값 꼴을 적분꼴로 바꿔서 생각해보면 쉬울 것이다. 위 식에 ( 4 ) (4) ( 4 ) 와 ( 7 ) (7) ( 7 ) 를 대입하면 다음을 얻는다.
E q ( x 0 ) [ − log p θ ( x 0 ) ] ≤ E q ( x 0 : T ) [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) ∏ t = 1 T q ( x t ∣ x t − 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = : L
\begin{align*}
\mathbb{E}_{q(\mathbf{x}_{0})}[-\log p_{\theta}(\mathbf{x}_{0})]
&\le \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log \dfrac{ p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_{0})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log \dfrac{ p(\mathbf{x}_{T}) \prod\limits_{t=1}^{T} p_{\theta} (\mathbf{x}_{t-1} | \mathbf{x}_{t})}{\prod\limits_{t=1}^{T} q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log p(\mathbf{x}_{T}) - \sum\limits_{t=1}^{T} \log \dfrac{ p_{\theta} (\mathbf{x}_{t-1} | \mathbf{x}_{t})}{ q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} \right] =: L
\end{align*}
E q ( x 0 ) [ − log p θ ( x 0 )] ≤ E q ( x 0 : T ) [ − log q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] = E q ( x 0 : T ) − log t = 1 ∏ T q ( x t ∣ x t − 1 ) p ( x T ) t = 1 ∏ T p θ ( x t − 1 ∣ x t ) = E q ( x 0 : T ) [ − log p ( x T ) − t = 1 ∑ T log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) ] =: L
마지막 등호는 로그의 성질 에 의해 성립한다. 위 식의 좌변은 우리가 실제로 줄이고 싶은 것이지만 계산이 불가능하다. 실제 데이터의 분포 q ( x 0 ) q(\mathbf{x}_{0}) q ( x 0 ) 를 모르기 때문이다. 하지만 우변을 보면 계산해야할 것은 p ( x T ) p(\mathbf{x}_{T}) p ( x T ) 와 q ( x t ∣ x t − 1 ) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q ( x t ∣ x t − 1 ) 인데, 첫번째는 정규분포가 가정했으므로 알고있다. 두번째는 확산 과정을 실제로 수행하므로 그 값을 얻을 수 있다. 따라서 우변의 L L L 은 모두 실제로 계산 가능한 값으로 이루어져있으므로 이 값을 계산하여 최소화하면, 부등식에 의해 좌변도 최소화할 수 있다.
여기서 수식을 조작하여 손실함수를 계산에 효율적이도록 개선할 수 있다. 지금 L L L 에서는 log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) 가 들어있는데, 이를 계산하기 위해서는 p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p θ ( x t − 1 ∣ x t ) 에 대해서 샘플링하는 과정이 필요하다. 이는 실제 값에 대해서 분산이 존재하여 학습 과정이 불안정하다는 것을 의미한다. 그래서 위 식을 쿨백-라이블러 발산 (KLD) 이 포함된 수식으로 바꿔줄 것이다. 지금 p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) p θ ( x t − 1 ∣ x t ) 와 q ( x t ∣ x t − 1 ) q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q ( x t ∣ x t − 1 ) 는 모두 정규분포를 따른다고 가정했으므로, 아래의 공식에 따라서 KLD의 닫힌 형식 을 얻을 수 있다. 그래서 분산없이 정확한 손실함수를 계산할 수 있고, 학습을 안정적이고 효율적으로 할 수 있다.
정규분포의 상대적 엔트로피 :
두 다변량정규분포 N ( μ , Σ ) N(\boldsymbol{\mu}, \Sigma) N ( μ , Σ ) 와 N ( μ 1 , Σ 1 ) N(\boldsymbol{\mu_{1}}, \Sigma_{1}) N ( μ 1 , Σ 1 ) 간의 상대적 엔트로피는 다음과 같다. μ , μ 1 ∈ R D \boldsymbol{\mu}, \boldsymbol{\mu}_{1} \in \mathbb{R}^{D} μ , μ 1 ∈ R D 일 때,
D KL ( N ( μ , Σ ) ∥ N ( μ 1 , Σ 1 ) ) = 1 2 [ log ( ∣ Σ ∣ ∣ Σ 1 ∣ ) + Tr ( Σ 1 − 1 Σ ) + ( μ − μ 1 ) T Σ 1 − 1 ( μ − μ 1 ) − D ]
\begin{array}{l}
D_{\text{KL}}\big( N(\boldsymbol{\mu}, \Sigma) \| N(\boldsymbol{\mu_{1}}, \Sigma_{1}) \big) \\[1em]
= \dfrac{1}{2} \left[ \log \left( \dfrac{|\Sigma|}{|\Sigma_{1}|} \right) + \Tr(\Sigma_{1}^{-1}\Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\boldsymbol{\mu} - \boldsymbol{\mu_{1}}) - D \right]
\end{array}
D KL ( N ( μ , Σ ) ∥ N ( μ 1 , Σ 1 ) ) = 2 1 [ log ( ∣ Σ 1 ∣ ∣Σ∣ ) + Tr ( Σ 1 − 1 Σ ) + ( μ − μ 1 ) T Σ 1 − 1 ( μ − μ 1 ) − D ]
L = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ]
\begin{align*}
L
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=1}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t} | \mathbf{x}_{t-1})} - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right]
\end{align*}
L = E q ( x 0 : T ) [ − log p ( x T ) − t = 1 ∑ T log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ]
이 때 두번째 항의 분자를 잘 보면, 다음과 같이 바꿔 적을 수 있다.
q ( x t ∣ x t − 1 ) = q ( x t ∣ x t − 1 , x 0 ) by Markov property = q ( x t , x t − 1 , x 0 ) q ( x t − 1 , x 0 ) by def. of conditional pdf = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) q ( x t − 1 , x 0 ) by def. of conditional pdf = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) q ( x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) p ( x 0 ) q ( x t − 1 , x 0 ) p ( x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) p ( x 0 ) p ( x 0 ) q ( x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) by def. of conditional pdf
\begin{align*}
q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) &= q(\mathbf{x}_{t} | \mathbf{x}_{t-1}, \mathbf{x}_{0}) &\text{by Markov property} \\
&= \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{t-1}, \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} &\text{by def. of conditional pdf} \\
&= \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t}, \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} &\text{by def. of conditional pdf} \\
&= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} & \\
&= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{0}) p(\mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0}) p(\mathbf{x}_{0})} & \\
&= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{0}) }{ p(\mathbf{x}_{0})} \dfrac{p(\mathbf{x}_{0})}{q(\mathbf{x}_{t-1}, \mathbf{x}_{0})} & \\
&= q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \dfrac{q(\mathbf{x}_{t}| \mathbf{x}_{0})}{q(\mathbf{x}_{t-1}| \mathbf{x}_{0})} &\text{by def. of conditional pdf}
\end{align*}
q ( x t ∣ x t − 1 ) = q ( x t ∣ x t − 1 , x 0 ) = q ( x t − 1 , x 0 ) q ( x t , x t − 1 , x 0 ) = q ( x t − 1 , x 0 ) q ( x t − 1 ∣ x t , x 0 ) q ( x t , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 , x 0 ) q ( x t , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 , x 0 ) p ( x 0 ) q ( x t , x 0 ) p ( x 0 ) = q ( x t − 1 ∣ x t , x 0 ) p ( x 0 ) q ( x t , x 0 ) q ( x t − 1 , x 0 ) p ( x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) by Markov property by def. of conditional pdf by def. of conditional pdf by def. of conditional pdf
이를 대입하여 아래와 같이 정리하자.
L = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log ( p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − ∑ t = 2 T log q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ( q ( x T − 1 ∣ x 0 ) q ( x T ∣ x 0 ) ⋅ q ( x T − 2 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 ) ) − log p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ( q ( x T − 1 ∣ x 0 ) q ( x T ∣ x 0 ) ⋅ q ( x T − 2 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 ) ⋅ p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log ( q ( x T − 1 ∣ x 0 ) q ( x T ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 ) ⋅ p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) q ( x T ∣ x 0 ) ] = E q ( x 0 : T ) [ − log p ( x T ) q ( x T ∣ x 0 ) − ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ log q ( x T ∣ x 0 ) p ( x T ) + ∑ t = 2 T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log p θ ( x 0 ∣ x 1 ) ] ( 8 ) = E q ( x 0 : T ) [ log q ( x T ∣ x 0 ) p ( x T ) ] + ∑ t = 2 T E q ( x 0 : T ) [ log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ]
\begin{align*}
L
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \left( \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}\dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \right) - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} - \sum\limits_{t=2}^{T} \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} \right. \\
&\qquad\qquad\qquad \left. -\log \left( \dfrac{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \cdot \dfrac{q(\mathbf{x}_{T-2} | \mathbf{x}_{0})}{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})} \cdots \dfrac{q(\mathbf{x}_{1} | \mathbf{x}_{0})}{q(\mathbf{x}_{2} | \mathbf{x}_{0})} \right) - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} \right. \\
&\qquad\qquad\qquad \left. - \log \left( \dfrac{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \cdot \dfrac{q(\mathbf{x}_{T-2} | \mathbf{x}_{0})}{q(\mathbf{x}_{T-1} | \mathbf{x}_{0})} \cdots \dfrac{q(\mathbf{x}_{1} | \mathbf{x}_{0})}{q(\mathbf{x}_{2} | \mathbf{x}_{0})} \cdot \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{1} | \mathbf{x}_{0})} \right) \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} \right. \\
&\qquad\qquad\qquad \left. - \log \left( \dfrac{\color{red}{\cancel{\color{black}q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}}}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \cdot \dfrac{\color{green}{\bcancel{\color{black}q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}}}{\color{red}{\cancel{\color{black}q(\mathbf{x}_{T-1} | \mathbf{x}_{0})}}} \cdots \dfrac{\color{purple}{\cancel{\color{black}q(\mathbf{x}_{1} | \mathbf{x}_{0})}}}{\color{green}{\bcancel{\color{black}q(\mathbf{x}_{2} | \mathbf{x}_{0})}}} \cdot \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{\color{purple}{\cancel{\color{black}q(\mathbf{x}_{1} | \mathbf{x}_{0})}}} \right) \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log p(\mathbf{x}_{T}) - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} - \log \dfrac{p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ - \log \dfrac{p(\mathbf{x}_{T})}{q(\mathbf{x}_{T} | \mathbf{x}_{0})} - \sum\limits_{t=2}^{T} \log \dfrac{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})}{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})} - \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} + \sum\limits_{t=2}^{T} \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} - \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \\
(8) &= \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} \right] + \sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} \right] - \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right] \tag{8}
\end{align*}
L ( 8 ) = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log ( q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − t = 2 ∑ T log q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ( q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 2 ∣ x 0 ) ⋯ q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) ) − log q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ( q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 2 ∣ x 0 ) ⋯ q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) ⋅ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ( q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋅ q ( x T − 1 ∣ x 0 ) q ( x T − 1 ∣ x 0 ) ⋯ q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) ⋅ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ) ] = E q ( x 0 : T ) [ − log p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log q ( x T ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ − log q ( x T ∣ x 0 ) p ( x T ) − t = 2 ∑ T log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ log p ( x T ) q ( x T ∣ x 0 ) + t = 2 ∑ T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) ] = E q ( x 0 : T ) [ log p ( x T ) q ( x T ∣ x 0 ) ] + t = 2 ∑ T E q ( x 0 : T ) [ log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ] ( 8 )
( 8 ) (8) ( 8 ) 의 첫번째 항은 아래와 같은 과정으로 KLD에 관한 식으로 바꿔줄 수 있다.
E q ( x 0 : T ) [ log q ( x T ∣ x 0 ) p ( x T ) ] = ∫ q ( x 0 : T ) log q ( x T ∣ x 0 ) p ( x T ) d x 0 : T = ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x 0 : T by def. of conditional pdf = ∫ ∫ ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x 1 : T − 1 d x T d x 0 = ∫ ∫ q ( x 0 ) q ( x T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x T d x 0 by def. of marginal pdf = E q ( x 0 ) [ ∫ q ( x T ∣ x 0 ) log q ( x T ∣ x 0 ) p ( x T ) d x T ] = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ]
\begin{align*}
&\mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} \right] \\
&= \int q(\mathbf{x}_{0:T}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{0:T} \\
&= \int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{0:T} &\text{by def. of conditional pdf} \\
&= \int\int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{1:T-1} d\mathbf{x}_{T} d\mathbf{x}_{0} \\
&= \int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{T} d\mathbf{x}_{0} &\text{by def. of marginal pdf} \\
&= \mathbb{E}_{q(\mathbf{x}_{0})}\left[ \int q(\mathbf{x}_{T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{T} | \mathbf{x}_{0})}{p(\mathbf{x}_{T})} d\mathbf{x}_{T} \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right) \Big]
\end{align*}
E q ( x 0 : T ) [ log p ( x T ) q ( x T ∣ x 0 ) ] = ∫ q ( x 0 : T ) log p ( x T ) q ( x T ∣ x 0 ) d x 0 : T = ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x 0 : T = ∫∫∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x 1 : T − 1 d x T d x 0 = ∫∫ q ( x 0 ) q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x T d x 0 = E q ( x 0 ) [ ∫ q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) d x T ] = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ] by def. of conditional pdf by def. of marginal pdf
논문에서는 E q ( x 0 : T ) = E q = E q ( x 0 ) \mathbb{E}_{q(\mathbf{x}_{0:T})} = \mathbb{E}_{q} = \mathbb{E}_{q(\mathbf{x}_{0})} E q ( x 0 : T ) = E q = E q ( x 0 ) 로 표기법을 남용하고 있으니 주의가 필요하다. 물론 기댓값안의 값은 x 0 \mathbf{x}_{0} x 0 에만 의존하므로, 다른 확률 변수에 대해서 적분해도 그 값은 1 1 1 이라 결과는 같다. 하지만 논문에서는 이런 설명이 전무하므로 읽는 사람이 알아서 눈치껏 잘 읽어야한다.
이제 ( 8 ) (8) ( 8 ) 의 두번째 항을 보자. 첫번째 항과 마찬가지로 q ( x 0 : T ) q(\mathbf{x}_{0:T}) q ( x 0 : T ) 를 잘 조작해서 q ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q ( x t − 1 ∣ x t , x 0 ) 이 나오도록 해야 KLD 꼴로 나타낼 수 있다.
∑ t = 2 T E q ( x 0 : T ) [ log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) ] = ∑ t = 2 T ∫ q ( x 0 : T ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x 0 : T = ∑ t = 2 T ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x 0 : T = ∑ t = 2 T ∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x 0 : T = ∑ t = 2 T ∫ ∫ ∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x ( 1 : t − 2 , t + 1 : T ) d x t − 1 : t d x 0 = ∑ t = 2 T ∫ ∫ q ( x 0 ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) log q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) d x t − 1 : t d x 0 = ∑ t = 2 T ∫ ∫ q ( x 0 ) q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t d x 0 = ∫ q ( x 0 ) [ ∑ t = 2 T ∫ q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t ] d x 0 = E q ( x 0 ) [ ∑ t = 2 T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ]
\begin{align*}
&\sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} \right] \\
&= \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{0:T}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{0:T} \\
&= \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:T} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{0:T} \\
&= \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:t-1}, \mathbf{x}_{t+1:T} | \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{0:T} \\
&= \sum\limits_{t=2}^{T} \int\int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{1:t-1}, \mathbf{x}_{t+1:T} | \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{(1:t-2,t+1:T)} d\mathbf{x}_{t-1:t} d\mathbf{x}_{0} \\
&= \sum\limits_{t=2}^{T} \int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{t-1}| \mathbf{x}_{t}, \mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) \log \dfrac{q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t})} d\mathbf{x}_{t-1:t} d\mathbf{x}_{0} \\
&= \sum\limits_{t=2}^{T} \int\int q(\mathbf{x}_{0}) q(\mathbf{x}_{t} | \mathbf{x}_{0}) D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) d\mathbf{x}_{t} d\mathbf{x}_{0} \\
&= \int q(\mathbf{x}_{0}) \left[ \sum\limits_{t=2}^{T} \int q(\mathbf{x}_{t} | \mathbf{x}_{0}) D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) d\mathbf{x}_{t} \right] d\mathbf{x}_{0} \\
&= \mathbb{E}_{q(\mathbf{x}_{0})} \left[ \sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big] \right] \\
\end{align*}
t = 2 ∑ T E q ( x 0 : T ) [ log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = t = 2 ∑ T ∫ q ( x 0 : T ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x 0 : T = t = 2 ∑ T ∫ q ( x 0 ) q ( x 1 : T ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x 0 : T = t = 2 ∑ T ∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x 0 : T = t = 2 ∑ T ∫∫∫ q ( x 0 ) q ( x 1 : t − 1 , x t + 1 : T ∣ x t , x 0 ) q ( x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x ( 1 : t − 2 , t + 1 : T ) d x t − 1 : t d x 0 = t = 2 ∑ T ∫∫ q ( x 0 ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x t − 1 : t d x 0 = t = 2 ∑ T ∫∫ q ( x 0 ) q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t d x 0 = ∫ q ( x 0 ) [ t = 2 ∑ T ∫ q ( x t ∣ x 0 ) D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) d x t ] d x 0 = E q ( x 0 ) [ t = 2 ∑ T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ]
논문에서는 이를 E q [ ∑ t = 2 T D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] \displaystyle \mathbb{E}_{q} \left[ \sum\limits_{t=2}^{T} D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \right] E q [ t = 2 ∑ T D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] 로 표기하고 있음에 주의하라. 첫번째 항에서와 마찬가지로 의존하지 않는 변수로 굳이 적분을 다시 해주면 논문에서의 표기와 같이 바꿔줄 수도 있다.
이제 ( 8 ) (8) ( 8 ) 는 최종적으로 다음과 같이 KLD를 포함하는 식으로 다시 쓸 수 있다.
L = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ] + E q ( x 0 ) [ ∑ t = 2 T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ]
\begin{align*}
&L = \mathbb{E}_{q(\mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right) \Big] \\
&\qquad +\mathbb{E}_{q(\mathbf{x}_{0})} \left[ \sum\limits_{t=2}^{T} \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big] \right] - \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) \right]
\end{align*}
L = E q ( x 0 ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ] + E q ( x 0 ) [ t = 2 ∑ T E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ] − E q ( x 0 : T ) [ log p θ ( x 0 ∣ x 1 ) ]
물론 위에서 설명한대로 ∫ q ( x t ′ ) f ( x t ) d x t ′ = f ( x t ) \int q(\mathbf{x}_{t^{\prime}}) f(\mathbf{x}_{t}) d\mathbf{x}_{t^{\prime}} = f(\mathbf{x}_{t}) ∫ q ( x t ′ ) f ( x t ) d x t ′ = f ( x t ) 인 적분트릭을 쓰면 다음과 같이 하나의 항으로 묶어서 표현할 수도 있다.
E q ( x 0 : T ) [ D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T + ∑ t = 2 T [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] ⏟ L t − 1 − log p θ ( x 0 ∣ x 1 ) ⏟ L 0 ]
\mathbb{E}_{q(\mathbf{x}_{0:T})} \bigg[ \underbrace{D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right)}_{L_{T}} + \sum\limits_{t=2}^{T} \underbrace{\Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big]}_{L_{t-1}} - \underbrace{\log p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1})}_{L_{0}} \bigg]
E q ( x 0 : T ) [ L T D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) + t = 2 ∑ T L t − 1 [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] − L 0 log p θ ( x 0 ∣ x 1 ) ]
여기에서 q ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q ( x t − 1 ∣ x t , x 0 ) 는 다음과 같이 계산할 수 있다.
조건부 확률의 성질
p ( x ∣ y , z ) = p ( x , y ∣ z ) p ( y ∣ z )
p(\mathbf{x} | \mathbf{y}, \mathbf{z})
= \dfrac{p(\mathbf{x}, \mathbf{y} | \mathbf{z}) }{p(\mathbf{y} | \mathbf{z})}
p ( x ∣ y , z ) = p ( y ∣ z ) p ( x , y ∣ z )
q ( x t − 1 ∣ x t , x 0 ) = q ( x t , x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 )
\begin{align*}
q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})
&= \dfrac{q(\mathbf{x}_{t}, \mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \\
&= \dfrac{q(\mathbf{x}_{t} | \mathbf{x}_{t-1}, \mathbf{x}_{0}) q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \\
&= \dfrac{q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})}
\end{align*}
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x 0 ) q ( x t , x t − 1 ∣ x 0 ) = q ( x t ∣ x 0 ) q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) = q ( x t ∣ x 0 ) q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 )
마지막 등호는 { x t } \left\{ \mathbf{x}_{t} \right\} { x t } 가 마코프라 가정했기 때문이 성립한다. 위 식의 확률밀도함수는 ( 3 ) (3) ( 3 ) , ( 6 ) (6) ( 6 ) 에서 구해놨기 때문에 그대로 대입하면 된다.
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) = C exp ( − 1 2 ( x t − α t x t − 1 ) 2 ( 1 − α t ) ) exp ( − 1 2 ( x t − 1 − α ‾ t − 1 x 0 ) 2 ( 1 − α ‾ t − 1 ) ) exp ( − 1 2 ( x t − α ‾ t x 0 ) 2 ( 1 − α ‾ t ) ) = C exp [ − 1 2 ( 1 1 − α t x t T x t − 2 α t 1 − α t x t T x t − 1 + α t 1 − α t x t − 1 T x t − 1 + 1 1 − α ‾ t − 1 x t − 1 T x t − 1 − 2 α ‾ t − 1 1 − α ‾ t − 1 x 0 T x t − 1 + α t − 1 ‾ 1 − α ‾ t − 1 x 0 T x 0 − 1 1 − α ‾ t x t T x t + 2 α ‾ t 1 − α ‾ t x t T x 0 − α t ‾ 1 − α ‾ t x 0 T x 0 ) ]
\begin{align*}
&q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \\
&= \dfrac{q(\mathbf{x}_{t} | \mathbf{x}_{t-1}) q(\mathbf{x}_{t-1} | \mathbf{x}_{0})}{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \\
&= C \dfrac{\exp\left( - \dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t} - \sqrt{\alpha_{t}}\mathbf{x}_{t-1} \right)^{2}}{(1-\alpha_{t})} \right) \exp\left( - \dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t-1} - \sqrt{\overline{\alpha}_{t-1}}\mathbf{x}_{0} \right)^{2}}{(1-\overline{\alpha}_{t-1})} \right)}{\exp\left( - \dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t} - \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} \right)^{2}}{(1-\overline{\alpha}_{t})} \right)} \\
&= C \exp\left[ -\dfrac{1}{2} \left( \dfrac{1}{1-\alpha_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} - \dfrac{2\sqrt{\alpha_{t}}}{1-\alpha_{t}} \mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t-1} + \dfrac{\alpha_{t}}{1-\alpha_{t}} \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} \right.\right.\\
&\qquad\qquad\qquad \quad + \dfrac{1}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - \dfrac{2\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{t-1} + \dfrac{\overline{\alpha_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0} \\
&\qquad\qquad\qquad\quad \left.\left. - \dfrac{1}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + \dfrac{2\sqrt{\overline{\alpha}_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} - \dfrac{\overline{\alpha_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0} \right)\right] \tag{9}
\end{align*}
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x 0 ) q ( x t ∣ x t − 1 ) q ( x t − 1 ∣ x 0 ) = C exp ( − 2 1 ( 1 − α t ) ( x t − α t x 0 ) 2 ) exp ( − 2 1 ( 1 − α t ) ( x t − α t x t − 1 ) 2 ) exp ( − 2 1 ( 1 − α t − 1 ) ( x t − 1 − α t − 1 x 0 ) 2 ) = C exp [ − 2 1 ( 1 − α t 1 x t T x t − 1 − α t 2 α t x t T x t − 1 + 1 − α t α t x t − 1 T x t − 1 + 1 − α t − 1 1 x t − 1 T x t − 1 − 1 − α t − 1 2 α t − 1 x 0 T x t − 1 + 1 − α t − 1 α t − 1 x 0 T x 0 − 1 − α t 1 x t T x t + 1 − α t 2 α t x t T x 0 − 1 − α t α t x 0 T x 0 ) ] ( 9 )
여기서 C = 1 ( 2 π ( 1 − α t ) ( 1 − α t ‾ ) ( 1 − α t ‾ ) ) D C = \dfrac{1}{\sqrt{ \left(2\pi \dfrac{(1-\alpha_{t})(1-\overline{\alpha_{t}})}{(1-\overline{\alpha_{t}})} \right)^{D} }} C = ( 2 π ( 1 − α t ) ( 1 − α t ) ( 1 − α t ) ) D 1 이다. 구하려는 분포가 q ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) q ( x t − 1 ∣ x t , x 0 ) 이므로, 지수 부분을 x t − 1 \mathbf{x}_{t-1} x t − 1 에 대해서 정리하자.
( α t 1 − α t + 1 1 − α ‾ t − 1 ) x t − 1 T x t − 1 − 2 ( α t 1 − α t x t T + α ‾ t − 1 1 − α ‾ t − 1 x 0 T ) x t − 1 + [ ( 1 1 − α t − 1 1 − α ‾ t ) x t T x t + 2 α ‾ t 1 − α ‾ t x t T x 0 + ( α ‾ t − 1 1 − α ‾ t − 1 − α ‾ t 1 − α ‾ t ) x 0 T x 0 ]
\begin{align*}
&\left( \dfrac{\alpha_{t}}{1-\alpha_{t}} + \dfrac{1}{1-\overline{\alpha}_{t-1}} \right) \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2\left( \dfrac{\sqrt{\alpha_{t}}}{1-\alpha_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \\
&\qquad + \left[ \left( \dfrac{1}{1-\alpha_{t}} - \dfrac{1}{1-\overline{\alpha}_{t}} \right)\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{\sqrt{\overline{\alpha}_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \left( \dfrac{\overline{\alpha}_{t-1}}{1-\overline{\alpha}_{t-1}} - \dfrac{\overline{\alpha}_{t}}{1-\overline{\alpha}_{t}} \right)\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right]
\end{align*}
( 1 − α t α t + 1 − α t − 1 1 ) x t − 1 T x t − 1 − 2 ( 1 − α t α t x t T + 1 − α t − 1 α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t 1 − 1 − α t 1 ) x t T x t + 2 1 − α t α t x t T x 0 + ( 1 − α t − 1 α t − 1 − 1 − α t α t ) x 0 T x 0 ]
덧셈으로 표현된 상수들을 아래와 같이 통분하자.
( α t 1 − α t + 1 1 − α ‾ t − 1 ) = α t − α t α ‾ t − 1 + 1 − α t ( 1 − α t ) ( 1 − α ‾ t − 1 ) = 1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 )
\left( \dfrac{\alpha_{t}}{1-\alpha_{t}} + \dfrac{1}{1-\overline{\alpha}_{t-1}} \right)
= \dfrac{\alpha_{t} - \alpha_{t}\overline{\alpha}_{t-1} + 1 - \alpha_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}
= \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}
( 1 − α t α t + 1 − α t − 1 1 ) = ( 1 − α t ) ( 1 − α t − 1 ) α t − α t α t − 1 + 1 − α t = ( 1 − α t ) ( 1 − α t − 1 ) 1 − α t
( 1 1 − α t − 1 1 − α ‾ t ) = α t − α ‾ t ( 1 − α t ) ( 1 − α ‾ t ) = α t ( 1 − α ‾ t − 1 ) ( 1 − α t ) ( 1 − α ‾ t )
\left( \dfrac{1}{1-\alpha_{t}} - \dfrac{1}{1-\overline{\alpha}_{t}} \right)
= \dfrac{\alpha_{t} - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t})}
= \dfrac{\alpha_{t}(1-\overline{\alpha}_{t-1})}{(1-\alpha_{t})(1-\overline{\alpha}_{t})}
( 1 − α t 1 − 1 − α t 1 ) = ( 1 − α t ) ( 1 − α t ) α t − α t = ( 1 − α t ) ( 1 − α t ) α t ( 1 − α t − 1 )
( α ‾ t − 1 1 − α ‾ t − 1 − α ‾ t 1 − α ‾ t ) = α ‾ t − 1 − α ‾ t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) = α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t )
\left( \dfrac{\overline{\alpha}_{t-1}}{1-\overline{\alpha}_{t-1}} - \dfrac{\overline{\alpha}_{t}}{1-\overline{\alpha}_{t}} \right)
= \dfrac{\overline{\alpha}_{t-1} - \overline{\alpha}_{t}}{(1-\overline{\alpha}_{t-1})(1-\overline{\alpha}_{t})}
= \dfrac{\overline{\alpha}_{t-1}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t-1})(1-\overline{\alpha}_{t})}
( 1 − α t − 1 α t − 1 − 1 − α t α t ) = ( 1 − α t − 1 ) ( 1 − α t ) α t − 1 − α t = ( 1 − α t − 1 ) ( 1 − α t ) α t − 1 ( 1 − α t )
그러면 다음과 같이 정리된다.
1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) x t − 1 T x t − 1 − 2 ( α t 1 − α t x t T + α ‾ t − 1 1 − α ‾ t − 1 x 0 T ) x t − 1 + [ α t ( 1 − α ‾ t − 1 ) ( 1 − α t ) ( 1 − α ‾ t ) x t T x t + 2 α ‾ t 1 − α ‾ t x t T x 0 + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x 0 T x 0 ]
\begin{align*}
& \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2\left( \dfrac{\sqrt{\alpha_{t}}}{1-\alpha_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \\
&\qquad + \left[ \dfrac{\alpha_{t}(1-\overline{\alpha}_{t-1})}{(1-\alpha_{t})(1-\overline{\alpha}_{t})}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{\sqrt{\overline{\alpha}_{t}}}{1-\overline{\alpha}_{t}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \dfrac{\overline{\alpha}_{t-1}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t-1})(1-\overline{\alpha}_{t})}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right]
\end{align*}
( 1 − α t ) ( 1 − α t − 1 ) 1 − α t x t − 1 T x t − 1 − 2 ( 1 − α t α t x t T + 1 − α t − 1 α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t ) ( 1 − α t ) α t ( 1 − α t − 1 ) x t T x t + 2 1 − α t α t x t T x 0 + ( 1 − α t − 1 ) ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 T x 0 ]
x t − 1 T x t − 1 \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} x t − 1 T x t − 1 항의 상수를 묶어내면,
1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( x t − 1 T x t − 1 − 2 ( ( 1 − α ‾ t − 1 ) α t 1 − α ‾ t x t T + ( 1 − α t ) α ‾ t − 1 1 − α ‾ t x 0 T ) x t − 1 + [ α t ( 1 − α ‾ t − 1 ) 2 ( 1 − α ‾ t ) 2 x t T x t + 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) α ‾ t ( 1 − α ‾ t ) 2 x t T x 0 + α ‾ t − 1 ( 1 − α t ) 2 ( 1 − α ‾ t ) 2 x 0 T x 0 ] ) (10)
\begin{align*}
& \frac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}
\left( \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2 \left( \frac{(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}}}{1 - \overline{\alpha}_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \frac{(1-\alpha_{t})\overline{\alpha}_{t-1}}{1 - \overline{\alpha}_{t}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \right. \\
&\qquad +\left. \left[ \frac{\alpha_{t}(1-\overline{\alpha}_{t-1})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\frac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})\sqrt{\overline{\alpha}_{t}}}{(1 - \overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \frac{\overline{\alpha}_{t-1}(1 - \alpha_{t})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \right)
\end{align*} \tag{10}
( 1 − α t ) ( 1 − α t − 1 ) 1 − α t ( x t − 1 T x t − 1 − 2 ( 1 − α t ( 1 − α t − 1 ) α t x t T + 1 − α t ( 1 − α t ) α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t ) 2 α t ( 1 − α t − 1 ) 2 x t T x t + 2 ( 1 − α t ) 2 ( 1 − α t ) ( 1 − α t − 1 ) α t x t T x 0 + ( 1 − α t ) 2 α t − 1 ( 1 − α t ) 2 x 0 T x 0 ] ) ( 10 )
위 식의 상수항을 다시 다음과 같이 정리할 수 있다.
[ α t ( 1 − α ‾ t − 1 ) 2 ( 1 − α ‾ t ) 2 x t T x t + 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) α t α ‾ t − 1 ( 1 − α ‾ t ) 2 x t T x 0 + α ‾ t − 1 ( 1 − α t ) 2 ( 1 − α ‾ t ) 2 x 0 T x 0 ] = [ α t 2 ( 1 − α ‾ t − 1 ) 2 ( 1 − α ‾ t ) 2 x t T x t + 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) α t α ‾ t − 1 ( 1 − α ‾ t ) 2 x t T x 0 + α ‾ t − 1 2 ( 1 − α t ) 2 ( 1 − α ‾ t ) 2 x 0 T x 0 ] = [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] 2
\begin{align*}
&\left[ \dfrac{\alpha_{t}(1-\overline{\alpha}_{t-1})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}\overline{\alpha}_{t-1}}}{(1 - \overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \dfrac{\overline{\alpha}_{t-1}(1 - \alpha_{t})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \\
&=\left[ \dfrac{\sqrt{\alpha_{t}}^{2}(1-\overline{\alpha}_{t-1})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{t} + 2\dfrac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}\overline{\alpha}_{t-1}}}{(1 - \overline{\alpha}_{t})^{2}}\mathbf{x}_{t}^{\mathsf{T}}\mathbf{x}_{0} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}^{2}(1 - \alpha_{t})^{2}}{(1-\overline{\alpha}_{t})^{2}}\mathbf{x}_{0}^{\mathsf{T}}\mathbf{x}_{0}\right] \\
&=\left[ \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right]^{2} \\
\end{align*}
[ ( 1 − α t ) 2 α t ( 1 − α t − 1 ) 2 x t T x t + 2 ( 1 − α t ) 2 ( 1 − α t ) ( 1 − α t − 1 ) α t α t − 1 x t T x 0 + ( 1 − α t ) 2 α t − 1 ( 1 − α t ) 2 x 0 T x 0 ] = [ ( 1 − α t ) 2 α t 2 ( 1 − α t − 1 ) 2 x t T x t + 2 ( 1 − α t ) 2 ( 1 − α t ) ( 1 − α t − 1 ) α t α t − 1 x t T x 0 + ( 1 − α t ) 2 α t − 1 2 ( 1 − α t ) 2 x 0 T x 0 ] = [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] 2
이를 ( 10 ) (10) ( 10 ) 에 대입하면 다음을 얻는다.
1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( x t − 1 T x t − 1 − 2 ( ( 1 − α ‾ t − 1 ) α t 1 − α ‾ t x t T + ( 1 − α t ) α ‾ t − 1 1 − α ‾ t x 0 T ) x t − 1 + [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] 2 ) = 1 − α ‾ t ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( x t − [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] ) 2
\begin{align*}
& \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}
\left( \mathbf{x}_{t-1}^{\mathsf{T}}\mathbf{x}_{t-1} - 2 \left( \dfrac{(1-\overline{\alpha}_{t-1})\sqrt{\alpha_{t}}}{1 - \overline{\alpha}_{t}} \mathbf{x}_{t}^{\mathsf{T}} + \dfrac{(1-\alpha_{t})\overline{\alpha}_{t-1}}{1 - \overline{\alpha}_{t}}\mathbf{x}_{0}^{\mathsf{T}} \right)\mathbf{x}_{t-1} \right. \\
&\qquad \left. +\left[ \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right]^{2} \right) \\
&= \dfrac{1 - \overline{\alpha}_{t}}{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})} \left( \mathbf{x}_{t} - \left[ \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right] \right)^{2}
\end{align*}
( 1 − α t ) ( 1 − α t − 1 ) 1 − α t ( x t − 1 T x t − 1 − 2 ( 1 − α t ( 1 − α t − 1 ) α t x t T + 1 − α t ( 1 − α t ) α t − 1 x 0 T ) x t − 1 + [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] 2 ) = ( 1 − α t ) ( 1 − α t − 1 ) 1 − α t ( x t − [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] ) 2
마지막으로 이 식을 ( 9 ) (9) ( 9 ) 에 대입하면 아래와 같다.
q ( x t − 1 ∣ x t , x 0 ) = 1 ( 2 π ( 1 − α t ) ( 1 − α t ‾ ) ( 1 − α t ‾ ) ) D exp [ − 1 2 ( x t − [ α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ] ) 2 ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) ]
\begin{array}{l}
q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \\
= \frac{1}{\sqrt{ \left(2\pi \frac{(1-\alpha_{t})(1-\overline{\alpha_{t}})}{(1-\overline{\alpha_{t}})} \right)^{D} }} \exp\left[ -\dfrac{1}{2} \dfrac{\left( \mathbf{x}_{t} - \left[ \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}\right] \right)^{2}}{\frac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}{(1 - \overline{\alpha}_{t})}} \right]
\end{array}
q ( x t − 1 ∣ x t , x 0 ) = ( 2 π ( 1 − α t ) ( 1 − α t ) ( 1 − α t ) ) D 1 exp − 2 1 ( 1 − α t ) ( 1 − α t ) ( 1 − α t − 1 ) ( x t − [ ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ] ) 2
이는 다음의의 다변량 정규분포와 같다.
q ( x t − 1 ∣ x t , x 0 ) = N ( α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 , ( 1 − α t ) ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) I ) = N ( μ ~ t ( x t , x 0 ) , β ~ t I )
\begin{align*}
q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0})
&= \mathcal{N} \left( \dfrac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \dfrac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0}, \dfrac{(1-\alpha_{t})(1-\overline{\alpha}_{t-1})}{(1 - \overline{\alpha}_{t})}\mathbf{I} \right) \\
&= \mathcal{N} ( \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}), \tilde{\beta}_{t} \mathbf{I})
\end{align*}
q ( x t − 1 ∣ x t , x 0 ) = N ( ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 , ( 1 − α t ) ( 1 − α t ) ( 1 − α t − 1 ) I ) = N ( μ ~ t ( x t , x 0 ) , β ~ t I )
where μ ~ t ( x t , x 0 ) = α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 ,
\text{where}\qquad \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) = \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0},
where μ ~ t ( x t , x 0 ) = ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 ,
β ~ t = ( 1 − α ‾ t − 1 ) β t ( 1 − α ‾ t )
\tilde{\beta}_{t} = \frac{(1-\overline{\alpha}_{t-1}) \beta_{t}}{(1 - \overline{\alpha}_{t})}
β ~ t = ( 1 − α t ) ( 1 − α t − 1 ) β t
3 Diffusion models and denoising autoencoders 3.1 Forward process and L T L_{T} L T 논문에서는 확산계수 β t \beta_{t} β t 를 학습할 파라미터가 아닌 상수로 고정한다. L T L_{T} L T 는 아래와 같이 표현되는데, β t \beta_{t} β t 가 상수이면 학습할 파라매터가 없으므로 실제로 손실함수를 구현할 때 이 항을 무시해도 된다.
L T = D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) = D KL [ N ( α ‾ t x 0 , ( 1 − α ‾ t ) I ) ∥ N ( 0 , I ) ] = 1 2 [ log ( 1 − α ‾ t ) D + D ( 1 − α ‾ t ) + α ‾ t x 0 2 − D ]
\begin{align*}
L_{T}
&= D_{\text{KL}} \left( q(\mathbf{x}_{T} | \mathbf{x}_{0}) \| p(\mathbf{x}_{T}) \right) \\
&= D_{\text{KL}} \Big[ \mathcal{N} \left( \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0}, (1-\overline{\alpha}_{t}) \mathbf{I} \right) \| \mathcal{N} \left( 0, \mathbf{I} \right) \Big] \\
&= \dfrac{1}{2} \left[ \log (1-\overline{\alpha}_{t})^{D} + D(1-\overline{\alpha}_{t}) + \overline{\alpha}_{t}\mathbf{x}_{0}^{2} - D \right]
\end{align*}
L T = D KL ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) = D KL [ N ( α t x 0 , ( 1 − α t ) I ) ∥ N ( 0 , I ) ] = 2 1 [ log ( 1 − α t ) D + D ( 1 − α t ) + α t x 0 2 − D ]
3.2 Reverse process and L 1 : T − 1 L_{1:T-1} L 1 : T − 1 저자는 p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}(\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t), \boldsymbol{\Sigma}_{\theta} (\mathbf{x}_{t}, t)) p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , Σ θ ( x t , t )) 에서 공분산행렬은 Σ θ ( x t , t ) = σ t 2 I \boldsymbol{\Sigma}_{\theta} (\mathbf{x}_{t}, t) = \sigma_{t}^{2} \mathbf{I} Σ θ ( x t , t ) = σ t 2 I 로 두었다. 즉 학습할 파라미터를 두지 않았다. 실험적으로 아래의 두 환경에 대해서 비슷한 결과를 얻었다고 한다.
σ t 2 = β t or σ t 2 = β ~ t = 1 − α ‾ t − 1 1 − α ‾ t β t
\sigma_{t}^{2} = \beta_{t} \qquad \text{or} \qquad \sigma_{t}^{2} = \tilde{\beta}_{t} = \dfrac{1 - \overline{\alpha}_{t-1}}{1 - \overline{\alpha}_{t}} \beta_{t}
σ t 2 = β t or σ t 2 = β ~ t = 1 − α t 1 − α t − 1 β t
왼쪽의 세팅은 x 0 ∼ N ( 0 , I ) \mathbf{x}_{0} \sim \mathcal{N} (\mathbf{0}, \mathbf{I}) x 0 ∼ N ( 0 , I ) 로 추출하여 데이터셋에 대해서 학습할 때 최적이고, 오른쪽의 세팅은 고정된 하나의 x 0 ∼ N ( x 0 , I ) \mathbf{x}_{0} \sim \mathcal{N} (\mathbf{x}_{0}, \mathbf{I}) x 0 ∼ N ( x 0 , I ) 에 대해서 학습할 때 최적이라고 한다.
이제 손실함수 L t − 1 L_{t-1} L t − 1 를 살펴보면 다음과 같다.
L t − 1 = E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] = E q ( x t ∣ x 0 ) [ D KL ( N ( μ ~ t ( x t , x 0 ) , β ~ t I ) ∥ N ( μ θ ( x t , t ) , σ t 2 I ) ) ] = E q ( x t ∣ x 0 ) [ 1 2 ( log ( β ~ t σ t 2 ) D + D β ~ t σ t 2 + ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 σ t 2 − D ) ] = E q ( x t ∣ x 0 ) [ 1 2 σ t 2 ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 ] + C 2
\begin{align*}
L_{t-1}
&= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_{t}, \mathbf{x}_{0}) \| p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) \right) \Big] \\
&= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \Big[ D_{\text{KL}} \left( \mathcal{N}( \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}), \tilde{\beta}_{t} \mathbf{I}) \| \mathcal{N}(\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t), \sigma_{t}^{2} \mathbf{I}) \right) \Big] \\
&= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \left[ \dfrac{1}{2} \left( \log \left( \dfrac{\tilde{\beta}_{t}}{\sigma_{t}^{2}} \right)^{D} + D\dfrac{\tilde{\beta}_{t}}{\sigma_{t}^{2}} + \dfrac{(\tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t))^{2}}{\sigma_{t}^{2}} - D \right) \right] \\
&= \mathbb{E}_{q(\mathbf{x}_{t} | \mathbf{x}_{0})} \left[ \dfrac{1}{2\sigma_{t}^{2}} (\tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t))^{2}\right] + C_{2}
\end{align*}
L t − 1 = E q ( x t ∣ x 0 ) [ D KL ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] = E q ( x t ∣ x 0 ) [ D KL ( N ( μ ~ t ( x t , x 0 ) , β ~ t I ) ∥ N ( μ θ ( x t , t ) , σ t 2 I ) ) ] = E q ( x t ∣ x 0 ) 2 1 log ( σ t 2 β ~ t ) D + D σ t 2 β ~ t + σ t 2 ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 − D = E q ( x t ∣ x 0 ) [ 2 σ t 2 1 ( μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ) 2 ] + C 2
여기서 C 2 C_{2} C 2 는 θ \theta θ 에 의존하지 않는 상수이다. 그래서 μ θ \boldsymbol{\mu}_{\theta} μ θ 는 μ ~ t \tilde{\boldsymbol{\mu}}_{t} μ ~ t 를 예측하는 모델이다. 여기서 μ ~ t \tilde{\boldsymbol{\mu}}_{t} μ ~ t 를 명시적인 형태로 풀어내어 학습을 대상을 더 명확히 해보자. ( 5 ) (5) ( 5 ) 에 의해서 x t \mathbf{x}_{t} x t 를 x 0 \mathbf{x}_{0} x 0 와 ϵ \boldsymbol{\epsilon} ϵ 의 함수로 보고 x t ( x 0 , ϵ ) = α ‾ t x 0 + 1 − α ‾ t ϵ \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) = \sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon} x t ( x 0 , ϵ ) = α t x 0 + 1 − α t ϵ 로 바꿔주면, μ ~ t ( x t , x 0 ) \tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0}) μ ~ t ( x t , x 0 ) 는 다음과 같이 바뀐다.
μ ~ t ( x t , x 0 ) = α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) x 0 = α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) x t ( x 0 , ϵ ) + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) ( 1 α ‾ t x t ( x 0 , ϵ ) − 1 − α ‾ t α ‾ t ϵ ) = ( α t ( 1 − α ‾ t − 1 ) ( 1 − α ‾ t ) + α ‾ t − 1 ( 1 − α t ) ( 1 − α ‾ t ) α ‾ t ) x t ( x 0 , ϵ ) − α ‾ t − 1 ( 1 − α t ) 1 − α ‾ t ( 1 − α ‾ t ) α ‾ t ϵ = ( α t ( 1 − α ‾ t − 1 ) α t ( 1 − α ‾ t ) + ( 1 − α t ) ( 1 − α ‾ t ) α t ) x t ( x 0 , ϵ ) − ( 1 − α t ) 1 − α ‾ t α t ϵ = 1 α t ( ( α t − α ‾ t ) + ( 1 − α t ) ( 1 − α ‾ t ) x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) = 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ )
\begin{align*}
\tilde{\boldsymbol{\mu}}_{t}(\mathbf{x}_{t}, \mathbf{x}_{0})
&= \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{0} \\
&= \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})}\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})} \left( \dfrac{1}{\sqrt{\overline{\alpha}_{t}}} \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \dfrac{\sqrt{1-\overline{\alpha}_{t}}}{\sqrt{\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) \\
&= \left( \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{(1-\overline{\alpha}_{t})} + \frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})\sqrt{\overline{\alpha}_{t}}} \right)\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) -
\frac{\sqrt{\overline{\alpha}_{t-1}}(1 - \alpha_{t})\sqrt{1-\overline{\alpha}_{t}}}{(1-\overline{\alpha}_{t})\sqrt{\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \\
&= \left( \frac{\alpha_{t}(1-\overline{\alpha}_{t-1})}{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t})} + \frac{(1 - \alpha_{t})}{(1-\overline{\alpha}_{t})\sqrt{\alpha_{t}}} \right)\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) -
\frac{(1 - \alpha_{t})}{\sqrt{1-\overline{\alpha}_{t}}\sqrt{\alpha_{t}}}\boldsymbol{\epsilon} \\
&= \dfrac{1}{\sqrt{\alpha_{t}}}\left( \frac{ (\alpha_{t} - \overline{\alpha}_{t}) + (1 - \alpha_{t})}{(1-\overline{\alpha}_{t})} \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) \\
&= \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) \\
\end{align*}
μ ~ t ( x t , x 0 ) = ( 1 − α t ) α t ( 1 − α t − 1 ) x t + ( 1 − α t ) α t − 1 ( 1 − α t ) x 0 = ( 1 − α t ) α t ( 1 − α t − 1 ) x t ( x 0 , ϵ ) + ( 1 − α t ) α t − 1 ( 1 − α t ) ( α t 1 x t ( x 0 , ϵ ) − α t 1 − α t ϵ ) = ( ( 1 − α t ) α t ( 1 − α t − 1 ) + ( 1 − α t ) α t α t − 1 ( 1 − α t ) ) x t ( x 0 , ϵ ) − ( 1 − α t ) α t α t − 1 ( 1 − α t ) 1 − α t ϵ = ( α t ( 1 − α t ) α t ( 1 − α t − 1 ) + ( 1 − α t ) α t ( 1 − α t ) ) x t ( x 0 , ϵ ) − 1 − α t α t ( 1 − α t ) ϵ = α t 1 ( ( 1 − α t ) ( α t − α t ) + ( 1 − α t ) x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) = α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ )
따라서 위의 L t − 1 L_{t-1} L t − 1 은 다시 다음과 같이 정리된다.
L t − 1 = E x t ( x 0 , ϵ ) [ 1 2 σ t 2 [ 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] + C 2 (11)
L_{t-1} = \mathbb{E}_{\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon})} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}), t) \right]^{2} \right] + C_{2} \tag{11}
L t − 1 = E x t ( x 0 , ϵ ) [ 2 σ t 2 1 [ α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] + C 2 ( 11 )
그러면 결국 μ θ ( x t , t ) \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t) μ θ ( x t , t ) 가 학습해야할 대상은 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) 이다. 여기서 x t \mathbf{x}_{t} x t 는 입력으로 주어지고, β t \beta_{t} β t 는 고정된 상수이니 실제로 신경망 μ θ ( x t , t ) \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t) μ θ ( x t , t ) 가 학습해야할 것은 ϵ = ϵ t \boldsymbol{\epsilon} = \boldsymbol{\epsilon}_{t} ϵ = ϵ t 이다. 따라서 파라미터 θ \theta θ 에 의존하는 항은 ϵ \boldsymbol{\epsilon} ϵ 가 유일하다.
μ θ ( x t , t ) = 1 α t ( x t − β t 1 − α ‾ t ϵ θ ( x t , t ) ) (12)
\boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}, t)
= \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right) \tag{12}
μ θ ( x t , t ) = α t 1 ( x t − 1 − α t β t ϵ θ ( x t , t ) ) ( 12 )
이는 어찌보면 대단히 당연하면서도 직관적인 결과이다. 왜냐하면 x T \mathbf{x}_{T} x T 는 x 0 \mathbf{x}_{0} x 0 에서 노이즈 ϵ t \boldsymbol{\epsilon}_{t} ϵ t 를 계속 더해서 만들어졌으므로, 그 노이즈들을 모두 알 수 있다면 x 0 \mathbf{x}_{0} x 0 를 복원할 수 있기 때문이다. 물론 이 설명 자체는 엄밀하지 않고 직관적이지만, 위의 논리 전개에 의해서 그것이 직관적일 뿐만 아니라 수학적으로도 타당하다는 것을 알 수 있다.
μ θ \boldsymbol{\mu}_{\theta} μ θ 는 p ( x t − 1 ∣ x t ) = N ( μ θ , σ t 2 I ) p(\mathbf{x}_{t-1} | \mathbf{x}_{t}) = \mathcal{N}( \boldsymbol{\mu}_{\theta}, \sigma_{t}^{2}\mathbf{I}) p ( x t − 1 ∣ x t ) = N ( μ θ , σ t 2 I ) 의 평균벡터였다. 따라서 x t \mathbf{x}_{t} x t 가 주어졌을 때 x t − 1 ∼ p θ ( x t − 1 ∣ x t ) \mathbf{x}_{t-1} \sim p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_{t}) x t − 1 ∼ p θ ( x t − 1 ∣ x t ) 는 다음과 같이 샘플링된다. (( 3 ) (3) ( 3 ) 가 어떻게 나왔는지를 다시 보라.)
x t − 1 = 1 α t ( x t − β t 1 − α ‾ t ϵ θ ( x t , t ) ) + σ t z , z ∼ N ( 0 , I )
\mathbf{x}_{t-1} = \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right) + \sigma_{t} \mathbf{z},\qquad \mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) \\
x t − 1 = α t 1 ( x t − 1 − α t β t ϵ θ ( x t , t ) ) + σ t z , z ∼ N ( 0 , I )
최종적으로 ( 12 ) (12) ( 12 ) 를 ( 11 ) (11) ( 11 ) 에 대입하면 다음을 얻는다.
E x t ( x 0 , ϵ ) [ 1 2 σ t 2 [ 1 α t ( x t ( x 0 , ϵ ) − β t 1 − α ‾ t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] = E x t [ 1 2 σ t 2 [ 1 α t ( x t − β t 1 − α ‾ t ϵ ) − 1 α t ( x t − β t 1 − α ‾ t ϵ θ ( x t , t ) ) ] 2 ] = E x t [ 1 2 σ t 2 [ 1 α t β t 1 − α ‾ t ϵ − 1 α t β t 1 − α ‾ t ϵ θ ( x t , t ) ] 2 ] = E x t [ β t 2 2 σ t 2 α t ( 1 − α ‾ t ) [ ϵ − ϵ θ ( x t , t ) ] 2 ] = E x 0 , ϵ [ β t 2 2 σ t 2 α t ( 1 − α ‾ t ) [ ϵ − ϵ θ ( α ‾ t x 0 + 1 − α ‾ t ϵ , t ) ] 2 ]
\begin{align*}
& \mathbb{E}_{\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon})} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}) - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) - \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t}(\mathbf{x}_{0}, \boldsymbol{\epsilon}), t) \right]^{2} \right] \\
&= \mathbb{E}_{\mathbf{x}_{t}} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} \right) - \dfrac{1}{\sqrt{\alpha_{t}}}\left( \mathbf{x}_{t} - \frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right) \right]^{2} \right] \\
&= \mathbb{E}_{\mathbf{x}_{t}} \left[ \dfrac{1}{2\sigma_{t}^{2}} \left[ \dfrac{1}{\sqrt{\alpha_{t}}}\frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon} - \dfrac{1}{\sqrt{\alpha_{t}}}\frac{\beta_{t}}{\sqrt{1-\overline{\alpha}_{t}}}\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right]^{2} \right] \\
&= \mathbb{E}_{\mathbf{x}_{t}} \left[ \dfrac{\beta_{t}^{2}}{2\sigma_{t}^{2}\alpha_{t} (1 - \overline{\alpha}_{t})} \left[ \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\mathbf{x}_{t}, t) \right]^{2} \right] \\
&= \mathbb{E}_{\mathbf{x}_{0}, \boldsymbol{\epsilon}} \left[ \dfrac{\beta_{t}^{2}}{2\sigma_{t}^{2}\alpha_{t} (1 - \overline{\alpha}_{t})} \left[ \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon}, t) \right]^{2} \right] \\
\end{align*}
E x t ( x 0 , ϵ ) [ 2 σ t 2 1 [ α t 1 ( x t ( x 0 , ϵ ) − 1 − α t β t ϵ ) − μ θ ( x t ( x 0 , ϵ ) , t ) ] 2 ] = E x t [ 2 σ t 2 1 [ α t 1 ( x t − 1 − α t β t ϵ ) − α t 1 ( x t − 1 − α t β t ϵ θ ( x t , t ) ) ] 2 ] = E x t [ 2 σ t 2 1 [ α t 1 1 − α t β t ϵ − α t 1 1 − α t β t ϵ θ ( x t , t ) ] 2 ] = E x t [ 2 σ t 2 α t ( 1 − α t ) β t 2 [ ϵ − ϵ θ ( x t , t ) ] 2 ] = E x 0 , ϵ [ 2 σ t 2 α t ( 1 − α t ) β t 2 [ ϵ − ϵ θ ( α t x 0 + 1 − α t ϵ , t ) ] 2 ]
지금까지의 설명을 토대로 훈련과 샘플링 과정을 수도코드로 나타내면 다음과 같다.
3.3 Data scaling, reverse process decoder, and L 0 L_{0} L 0 지금까지의 논의는 모두 연속 확률밀도함수에 대한 것이었다. 이미지 데이터는 { 0 , 1 , … , 255 } \left\{ 0, 1, \dots, 255 \right\} { 0 , 1 , … , 255 } 의 값을 갖는 이산 변수이므로 적절한 스케일링이 필요하다. 우선 { 0 , 1 , … , 255 } \left\{ 0, 1, \dots, 255 \right\} { 0 , 1 , … , 255 } 값들은 [ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] 로 선형적으로 스케일링된다. 그리고 저자들은 최종적으로 샘플링의 마지막 과정 p θ ( x 0 , x 1 ) p_{\theta}(\mathbf{x}_{0}, \mathbf{x}_{1}) p θ ( x 0 , x 1 ) 를 다음과 같이 두었다.
p θ ( x 0 ∣ x 1 ) = ∏ i = 1 D ∫ δ − ( x 0 i ) δ + ( x 0 i ) N ( x ; μ θ i ( x 1 , 1 ) , σ 1 2 ) d x
p_{\theta}(\mathbf{x}_{0} | \mathbf{x}_{1}) = \prod\limits_{i = 1}^{D} \int\limits_{\delta_{-}(x_{0}^{i})}^{\delta_{+}(x_{0}^{i})} \mathcal{N}(x; \mu_{\theta}^{i}(\mathbf{x}_{1}, 1), \sigma_{1}^{2}) dx
p θ ( x 0 ∣ x 1 ) = i = 1 ∏ D δ − ( x 0 i ) ∫ δ + ( x 0 i ) N ( x ; μ θ i ( x 1 , 1 ) , σ 1 2 ) d x
δ + ( x ) = { ∞ if x = 1 x + 1 255 if x < 1 , δ − ( x ) = { x − 1 255 if x > − 1 − ∞ if x = − 1
\delta_{+}(x) = \begin{cases}
\infty & \text{if } x = 1 \\
x + \frac{1}{255} & \text{if } x \lt 1
\end{cases},
\qquad
\delta_{-}(x) = \begin{cases}
x - \frac{1}{255} & \text{if } x \gt -1 \\
-\infty & \text{if } x = -1
\end{cases}
δ + ( x ) = { ∞ x + 255 1 if x = 1 if x < 1 , δ − ( x ) = { x − 255 1 − ∞ if x > − 1 if x = − 1
여기서 x 0 i x_{0}^{i} x 0 i 는 x 0 \mathbf{x}_{0} x 0 의 i i i 번째 픽셀을 의미한다. 즉 이미지의 픽셀값 x x x 를 [ x − 1 255 , x + 1 255 ] [x - \frac{1}{255}, x + \frac{1}{255}] [ x − 255 1 , x + 255 1 ] 인 구간으로 보겠다는 거다.
3.4 Simplified training objective 3.2절에서 ϵ \boldsymbol{\epsilon} ϵ 을 예측할 수 있도록 L t − 1 L_{t-1} L t − 1 을 구했지만, 실험적으로는 성능과 구현 모두 앞의 상수를 떼버리고 다음과 같이 사용하는 것이 더 좋았다고 한다.
L simple ( θ ) : = E t , x 0 , ϵ [ ( ϵ − ϵ θ ( α ‾ t x 0 + 1 − α ‾ t ϵ , t ) ) 2 ]
L_{\text{simple}}(\theta) := \mathbb{E}_{t, \mathbf{x}_{0}, \boldsymbol{\epsilon}} \left[ \left( \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\sqrt{\overline{\alpha}_{t}}\mathbf{x}_{0} + \sqrt{1-\overline{\alpha}_{t}}\boldsymbol{\epsilon}, t) \right)^{2} \right]
L simple ( θ ) := E t , x 0 , ϵ [ ( ϵ − ϵ θ ( α t x 0 + 1 − α t ϵ , t ) ) 2 ]
위의 수도코드에서 나와있듯이 t t t 는 1 1 1 부터 T T T 까지에서 균등분포 로 뽑는다.