<논문> 
[arXiv] Denoising Diffusion Implicit Models 
<참고자료> 
[Reference] Christopher M Bishop, Pattern Recognition and Machine Learning, 2006 
[tistory] DDIM : Denoising Diffusion Implicit Models   
[page] [논문리뷰] DDIM : Denoising Diffusion Implicit Model 
DDIM은 DDPMs의 후속 논문이다. DDPMs의 단점인 '느린 Sampling 속도'를 해결하고자 새로운 Sampling 방안을 제시하였다. 이 포스팅은 DDPMs를 안다는 전제 하에 진행될 것이므로 DDPMs 를 먼저 알고 오는 것을 권장한다.
 
1. Introduction 
기존의 이미지 생성 모델인 VAE는 다양한 이미지를 생성할 수 있지만 quality가 낮았고, GAN은 높은 quality의 이미지를 생성할 수 있지만 다양성이 낮았다. 이와 달리 DDPMs의 diffusion model은 높은 quality의 이미지를 다양하게 생성할 수 있었지만, Sampling 속도가 느리다는 단점이 있었다. diffusion model의 구조 상, Pure Gaussian Noise에 T ( = 1000 ) T(=1000) T ( = 1 0 0 0 )  번의 Denoising Process를 거쳐야 이미지를 생성할 수 있기 때문이다.
DDIM은 non-Markovian diffusion process를 활용하여 DDPMs에서의 Sampling 속도를 10배 이상 향상시킨다. 또한 consistency를 향상시켜, 비슷한 위치에서 x T \mathbf{x}_T x T   를 Sampling 한다면 비슷한 이미지를 얻을 수 있다고 한다.
시작하기에 앞서, DDIM에서 사용하는 α t \alpha_t α t   는 DDPMs와 다르다. DDPMs는 α t = 1 − β t \alpha_t = 1-\beta_t α t  = 1 − β t   인 반면, DDIM에서 α t = ∏ i = 1 T ( 1 − β t ) \alpha_t = \prod_{i=1}^T(1-\beta_t) α t  = ∏ i = 1 T  ( 1 − β t  )  이다. 즉, DDPMs에서의 α ˉ t \bar{\alpha}_t α ˉ t   가 DDIM에서는 α t \alpha_t α t   라 쓰이는 것이다. 이러한 이유는 깔끔함 등이 있는데, 이 포스팅에서는 DDPMs 기준의 α t \alpha_t α t   를 쓸 것이다. 
 
2. 개요 
DDPMs의 느린 Sampling 속도는 무엇 때문일까? DDIM은 Markov Chain을 원인으로 보았다. 이미지를 Sampling 하는 데 T ( = 1000 ) T(=1000) T ( = 1 0 0 0 )  번씩이나 Denoising process를 거치지 말고, 몇 단계씩 건너뛰며 Sampling 속도를 높이자 는 것이 DDIM의 주장이다. 이를 위해 non-Markovian Forward process와 non-Markovian Reverse process를 제안하고, Reverse process가 T ( = 1000 ) T(=1000) T ( = 1 0 0 0 )  번의 단계를 거치는 것이 아닌 부분수열(subsequence)에 따라 움직일것을 제안한다.
process가 바뀌면 Loss function이 바뀌는 것이 일반적인데, DDIM의 핵심 중 하나는 Loss function이 바뀌었음에도 불구하고 최적해의 위치는 바뀌지 않는다 는 것이다. 즉 파라미터 θ \theta θ  가 최적인 순간이 DDPMs, DDIM 모두 같다는 것이며, 따라서 새롭게 학습을 진행할 필요가 없다. 그래서 보통 학습은 DDPMs의 방법으로, Sampling은 DDIM의 방법으로 진행한다고 한다.
 
3. Non-Markovian process 
우선 DDPMs에서의 Loss function을 다시 떠올려보자.
L s i m p l e ( θ ) = E t , x 0 , ϵ [ ( ϵ − ϵ θ ( x t , t ) ) 2 ] L_{simple}(\theta) = \mathrm{E}_{{t}, \mathbf{x}_0, \epsilon} \bigg[ (\epsilon - \epsilon_{\theta}(\mathbf{x}_t, t))^2 \bigg] L s i m p l e  ( θ ) = E t , x 0  , ϵ  [ ( ϵ − ϵ θ  ( x t  , t ) ) 2 ]  
Simple Loss function은 기존의 KL Divergence의 합으로부터, t t t  에 대한 계수식( = β t 2 2 σ t 2 α t ( 1 − α ˉ t ) ) (={\beta_t^2 \over 2\sigma_t^2\alpha_t (1-\bar{\alpha}_t)}) ( = 2 σ t 2  α t  ( 1 − α ˉ t  ) β t 2   )  을 제거하고 합을 평균으로 바꾼 것이다. 즉 Simple Loss function은 다음과 같이 재구성할 수 있다.
L γ ( ϵ θ ) ≔ ∑ t = 1 T γ t E x 0 ∼ q ( x 0 ) , ϵ t ∼ N ( 0 , I ) [ ∣ ∣ ϵ θ ( t ) ( x t , t ) − ϵ t ∣ ∣ 2 2 ] L_\gamma(\epsilon_\theta) \coloneqq \sum_{t=1}^T \gamma_t \mathrm{E}_{\mathbf{x}_0 \sim q(\mathbf{x}_0),\epsilon_t \sim N(0, I)} \bigg[ ||\epsilon_\theta^{(t)}(\mathbf{x}_t, t) - \epsilon_t||_2^2 \bigg] L γ  ( ϵ θ  ) : = t = 1 ∑ T  γ t  E x 0  ∼ q ( x 0  ) , ϵ t  ∼ N ( 0 , I )  [ ∣ ∣ ϵ θ ( t )  ( x t  , t ) − ϵ t  ∣ ∣ 2 2  ]  
DDPMs는 본래 γ t = β t 2 2 σ t 2 α t ( 1 − α ˉ t ) \gamma_t ={\beta_t^2 \over 2\sigma_t^2\alpha_t (1-\bar{\alpha}_t)} γ t  = 2 σ t 2  α t  ( 1 − α ˉ t  ) β t 2    였으나, 간단한 Loss function으로 설계하기 위해 γ t = 1 \gamma_t=1 γ t  = 1  로 두었다. DDIM에서는 보다 일반적인 형태를 다루기 위해 γ t \gamma_t γ t   를 유지한다.
DDIM에서 중요하게 본 포인트는 Loss function이 marginal distribution인 q ( x t   ∣   x 0 ) q(\mathbf{x}_t~|~\mathbf{x}_0) q ( x t    ∣   x 0  )  에 의해서만 결정 되고, joint distribution인 q ( x 1 : T   ∣   x 0 ) q(\mathbf{x}_{1:T}~|~\mathbf{x}_0) q ( x 1 : T    ∣   x 0  )  에는 영향을 받지 않는다는 것이다. [1]  즉, marginal distribution만 유지한다면 joint distribution은 무엇이 와도 상관없다고 해석하여, 같은 marginal distribution을 갖는 다른 process를 고려한다.  그 중, Markov process를 다룬 DDPMs와 달리 non-Markov process를 정의할 것이다. 
 
3-1. Definition 
위에서 언급한 바와 같이 non-Markovian process q σ q_\sigma q σ   를 새롭게 설계하는데, 이 process는 q σ ( x t   ∣   x 0 ) = N ( x t   ;   α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) = N(\mathbf{x}_t~;~\sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)I) q σ  ( x t    ∣   x 0  ) = N ( x t    ;   α ˉ t   x 0  , ( 1 − α ˉ t  ) I )  를 만족해야 한다. 이를 고려하여 q σ q_\sigma q σ   를 정의하자.
q σ ( x 1 : T   ∣   x 0 ) ≔ q σ ( x 1   ∣   x 0 ) ∏ t = 2 T q σ ( x t   ∣   x t − 1 , x 0 ) q_\sigma(\mathbf{x}_{1:T}~|~\mathbf{x}_0) \coloneqq q_\sigma(\mathbf{x}_1~|~\mathbf{x}_0) \prod_{t=2}^T q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1}, \mathbf{x}_0) q σ  ( x 1 : T    ∣   x 0  ) : = q σ  ( x 1    ∣   x 0  ) t = 2 ∏ T  q σ  ( x t    ∣   x t − 1  , x 0  )  
위의 식을 잘 살펴보면,  x 0 \mathbf{x}_0 x 0   가 주어졌을 때 우선 x 1 \mathbf{x}_1 x 1   을 구하고( = q σ ( x 1   ∣   x 0 ) ) (=q_\sigma(\mathbf{x}_1~|~\mathbf{x}_0)) ( = q σ  ( x 1    ∣   x 0  ) )  , q σ ( x t   ∣   x t − 1 , x 0 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1}, \mathbf{x}_0) q σ  ( x t    ∣   x t − 1  , x 0  )  을 이용하여 x 2 \mathbf{x}_2 x 2   , x 3 \mathbf{x}_3 x 3   , ⋯ \cdots ⋯  , x T \mathbf{x}_T x T   를 순차적으로 구하는 것이다. 아래 이미지와 이 DDPMs(왼쪽)는 직전 이미지만을 참고했다면, DDIM(오른쪽)은 직전과 처음 이미지를 참고하는 것이다.  
 
또한 Bayes Theorem에 의해,
q σ ( x 1 : T   ∣   x 0 ) = q σ ( x 1   ∣   x 0 ) ∏ t = 2 T q σ ( x t   ∣   x t − 1 , x 0 ) = q σ ( x 1   ∣   x 0 ) ∏ t = 2 T q σ ( x t − 1   ∣   x t , x 0 )   q σ ( x t   ∣   x 0 ) q σ ( x t − 1   ∣   x 0 ) = q σ ( x T   ∣   x 0 ) ∏ t = 2 T q σ ( x t − 1   ∣   x t , x 0 ) \begin{aligned} q_\sigma(\mathbf{x}_{1:T}~|~\mathbf{x}_0) &= q_\sigma(\mathbf{x}_1~|~\mathbf{x}_0) \prod_{t=2}^T q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1}, \mathbf{x}_0) \\ &= q_\sigma(\mathbf{x}_1~|~\mathbf{x}_0) \prod_{t=2}^T {q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0)~q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) \over q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_0)} \\ &= q_\sigma(\mathbf{x}_T~|~\mathbf{x}_0) \prod_{t=2}^T q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0) \end{aligned} q σ  ( x 1 : T    ∣   x 0  )  = q σ  ( x 1    ∣   x 0  ) t = 2 ∏ T  q σ  ( x t    ∣   x t − 1  , x 0  ) = q σ  ( x 1    ∣   x 0  ) t = 2 ∏ T  q σ  ( x t − 1    ∣   x 0  ) q σ  ( x t − 1    ∣   x t  , x 0  )   q σ  ( x t    ∣   x 0  )  = q σ  ( x T    ∣   x 0  ) t = 2 ∏ T  q σ  ( x t − 1    ∣   x t  , x 0  )   
이다. 어떠한 forward process든 pure Gaussian Noise를 목표로 함은 같으므로
q σ ( x T   ∣   x 0 ) ≔ N ( α ˉ T x 0 , ( 1 − α ˉ T ) I ) q_\sigma(\mathbf{x}_T~|~\mathbf{x}_0) \coloneqq N(\sqrt{\bar{\alpha}_T}\mathbf{x}_0, (1-\bar{\alpha}_T)I) q σ  ( x T    ∣   x 0  ) : = N ( α ˉ T   x 0  , ( 1 − α ˉ T  ) I )  
로 정의할 수 있다. 
또한 모든 t > 1 t>1 t > 1  에 대하여
q σ ( x t − 1   ∣   x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0) = N(\sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \cdot {\mathbf{x}_t-\sqrt{\bar{\alpha}_t}\mathbf{x}_0 \over \sqrt{1-\bar{\alpha}_t}}, \sigma_t^2I) q σ  ( x t − 1    ∣   x t  , x 0  ) = N ( α ˉ t − 1   x 0  + 1 − α ˉ t − 1  − σ t 2   ⋅ 1 − α ˉ t   x t  − α ˉ t   x 0   , σ t 2  I )  
라 정의하자. 위의 두 정의로부터, 모든 t t t  에 대하여
q σ ( x t   ∣   x 0 ) = N ( x t   ;   α ˉ t ,    ( 1 − α ˉ t ) I ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) = N(\mathbf{x}_t~;~\sqrt{\bar{\alpha}_t},~~(1-\bar{\alpha}_t)I) q σ  ( x t    ∣   x 0  ) = N ( x t    ;   α ˉ t   ,     ( 1 − α ˉ t  ) I )  
를 만족할 수 있다. 논문에서는 이에 대한 증명을 Appendix B의 Lemma 1에 남겨두었다. [2] 
 
위 성질이 증명되면 non-Markovian forward process를 구할 수 있다. Bayes Theorem에 의해
q σ ( x t   ∣   x t − 1 , x 0 ) = q σ ( x t − 1   ∣   x t , x 0 ) q σ ( x t   ∣   x 0 ) q σ ( x t − 1   ∣   x 0 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) = {q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) \over q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{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   ∣   x t − 1 , x 0 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) q σ  ( x t    ∣   x t − 1  , x 0  )  를 forward process라 할 수 있다. 또한, x t \mathbf{x}_t x t   가 x t − 1 \mathbf{x}_{t-1} x t − 1   과 x 0 \mathbf{x}_0 x 0   의 영향을 동시에 받으므로 non-Markov process라 할 수 있다. [3] 
 
q σ ( x t − 1   ∣   x t , x 0 ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0) q σ  ( x t − 1    ∣   x t  , x 0  )  의 꼴은 마치 DDPMs의 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  )  와 유사하다. DDPMs에서 Σ ˉ \bar{\Sigma} Σ ˉ  의 값인 σ t 2 = β t ( 1 − α ˉ t − 1 ) 1 − α ˉ t \sigma_t^2={\beta_t(1-\bar{\alpha}_{t-1}) \over 1-\bar{\alpha}_t} σ t 2  = 1 − α ˉ t  β t  ( 1 − α ˉ t − 1  )   를 대입하면
q σ ( x t − 1   ∣   x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t ,    σ t 2 I ) = N ( α ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 β t 1 − α ˉ t x 0 ,    β t ( 1 − α ˉ t − 1 ) 1 − α ˉ t I ) = q ( x t − 1   ∣   x t , x 0 ) \begin{aligned} q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0) &= N(\sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \cdot {\mathbf{x}_t-\sqrt{\bar{\alpha}_t}\mathbf{x}_0 \over \sqrt{1-\bar{\alpha}_t}},~~\sigma_t^2I) \\ &= N\bigg({\sqrt{\alpha}(1-\bar{\alpha}_{t-1}) \over 1-\bar{\alpha}_t}\mathbf{x}_t + {\sqrt{\bar{\alpha}_{t-1}}\beta_t \over 1-\bar{\alpha}_t}\mathbf{x}_0,~~{\beta_t(1-\bar{\alpha}_{t-1}) \over 1-\bar{\alpha}_t}I\bigg) \\ &= q(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0) \end{aligned} q σ  ( x t − 1    ∣   x t  , x 0  )  = N ( α ˉ t − 1   x 0  + 1 − α ˉ t − 1  − σ t 2   ⋅ 1 − α ˉ t   x t  − α ˉ t   x 0   ,     σ t 2  I ) = N ( 1 − α ˉ t  α  ( 1 − α ˉ t − 1  )  x t  + 1 − α ˉ t  α ˉ t − 1   β t   x 0  ,     1 − α ˉ t  β t  ( 1 − α ˉ t − 1  )  I ) = q ( x t − 1    ∣   x t  , x 0  )   
q σ ( x t   ∣   x t − 1 , x 0 ) = N ( α t x t − 1 ,    β t I ) = q ( x t   ∣   x t − 1 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) = N(\sqrt{\alpha_t}\mathbf{x}_{t-1},~~\beta_tI) = q(\mathbf{x}_t~|~\mathbf{x}_{t-1}) \kern{85pt} q σ  ( x t    ∣   x t − 1  , x 0  ) = N ( α t   x t − 1  ,     β t  I ) = q ( x t    ∣   x t − 1  )  
이고, DDPMs에서의 식과 같음을 알 수 있다. 특히 forward process는 자연스럽게 Markov property를 가지게 됨을 알 수 있다. 즉, q σ ( x t − 1   ∣   x t , x 0 ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0) q σ  ( x t − 1    ∣   x t  , x 0  )  는 DDPMs의 경우를 포함하는 일반적인 식 이라 볼 수 있다.
 
실제 Sampling 하는 과정을 generative process라 하며, p θ p_\theta p θ   를 이용하여 나타낸다. DDIM에서 generative process는 q σ ( x t − 1   ∣   x t , x 0 ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0) q σ  ( x t − 1    ∣   x t  , x 0  )  를 닮아야 하는데, 구하고자 하는 x 0 \mathbf{x}_0 x 0   가 조건으로 걸려있는 상태 이다. 하지만 x 0 \mathbf{x}_0 x 0   를 실제로는 모르는 상황이므로, x t \mathbf{x}_t x t   를 이용하여 x 0 \mathbf{x}_0 x 0   의 예측값을 구하고 이를 대체값으로 쓸 것이다.  만약 x t \mathbf{x}_t x t   가 가진 ϵ θ ( t ) \epsilon_\theta^{(t)} ϵ θ ( t )   를 알 수 있다면 (예측할 수 있다면),
x 0 ≈ x t − 1 − α ˉ t ϵ θ ( t ) α ˉ t ≔ f θ ( t ) ( x t ) \mathbf{x}_0 \approx {\mathbf{x}_t-\sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)} \over \sqrt{\bar{\alpha}_t}} \coloneqq f_\theta^{(t)}(\mathbf{x}_t) x 0  ≈ α ˉ t   x t  − 1 − α ˉ t   ϵ θ ( t )   : = f θ ( t )  ( x t  )  
에 의해 x 0 \mathbf{x}_0 x 0   를 예측할 수 있고,
p θ ( t ) ( x t − 1   ∣   x t ) = { N ( f θ ( 1 ) ( x 1 ) ,    σ 1 2 I ) if  t = 1 q σ ( x t − 1   ∣   x t ,    f θ ( t ) ( x t ) ) otherwise p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t) = \begin{cases} N(f_\theta^{(1)}(\mathbf{x}_1),~~\sigma_1^2I) &\text{if } t=1\\ q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,~~f_\theta^{(t)}(\mathbf{x}_t)) &\text{otherwise} \\ \end{cases} p θ ( t )  ( x t − 1    ∣   x t  ) = { N ( f θ ( 1 )  ( x 1  ) ,     σ 1 2  I ) q σ  ( x t − 1    ∣   x t  ,     f θ ( t )  ( x t  ) )  if  t = 1 otherwise   
와 같이 generative process를 구성할 수 있다. x t \mathbf{x}_t x t   로부터 ϵ θ ( t ) \epsilon_\theta^{(t)} ϵ θ ( t )   를 예측하는 것은 DDPMs의 네트워크가 하는 일과 같다. 이로부터 p θ ( x 0 : T ) p_\theta(\mathbf{x}_{0:T}) p θ  ( x 0 : T  )  를 다음과 같이 정의할 수 있다.
p θ ( x 0 : T ) = p θ ( x T ) ∏ t = 1 T p θ ( t ) ( x t − 1   ∣   x t ) p_\theta(\mathbf{x}_{0:T}) = p_\theta(\mathbf{x}_T)\prod_{t=1}^T p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t) p θ  ( x 0 : T  ) = p θ  ( x T  ) t = 1 ∏ T  p θ ( t )  ( x t − 1    ∣   x t  )  
 
Comparison 
DDPMs와 process를 비교해보면 forward process는 q ( x t   ∣   x t − 1 ) q(\mathbf{x}_t~|~\mathbf{x}_{t-1}) q ( x t    ∣   x t − 1  )  에서 q σ ( x t   ∣   x t − 1 , x 0 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) q σ  ( x t    ∣   x t − 1  , x 0  )  으로 , reverse process는 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  )  에서 q σ ( x t − 1   ∣   x t , x 0 ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0) q σ  ( x t − 1    ∣   x t  , x 0  )  으로  바뀌었음을 알 수 있다. 또한 generative process 역시
p θ ( x t − 1   ∣   x t ) = { 1 α t ( x t − β t 1 − α ˉ t ϵ θ ( x t , t ) ) if  t = 1 N ( 1 α t ( x t − β t 1 − α ˉ t ϵ θ ( x t , t ) ) ,    β t I ) otherwise p_\theta(\mathbf{x}_{t-1}~|~\mathbf{x}_t) = \begin{cases} {1 \over \sqrt{\alpha_t}}\bigg(\mathbf{x}_t - {\beta_t \over \sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(\mathbf{x}_t,t) \bigg) &\text{if } t=1\\ N\bigg({1 \over \sqrt{\alpha_t}}\bigg(\mathbf{x}_t - {\beta_t \over \sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(\mathbf{x}_t,t) \bigg),~~\beta_tI\bigg) &\text{otherwise} \\ \end{cases} p θ  ( x t − 1    ∣   x t  ) = ⎩ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎧  α t   1  ( x t  − 1 − α ˉ t   β t   ϵ θ  ( x t  , t ) ) N ( α t   1  ( x t  − 1 − α ˉ t   β t   ϵ θ  ( x t  , t ) ) ,     β t  I )  if  t = 1 otherwise   
에서
p θ ( t ) ( x t − 1   ∣   x t ) = { N ( f θ ( 1 ) ( x 1 ) ,    σ 1 2 I ) if  t = 1 q σ ( x t − 1   ∣   x t ,    f θ ( t ) ( x t ) ) otherwise p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t) = \begin{cases} N(f_\theta^{(1)}(\mathbf{x}_1),~~\sigma_1^2I) &\text{if } t=1\\ q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,~~f_\theta^{(t)}(\mathbf{x}_t)) &\text{otherwise} \\ \end{cases} p θ ( t )  ( x t − 1    ∣   x t  ) = { N ( f θ ( 1 )  ( x 1  ) ,     σ 1 2  I ) q σ  ( x t − 1    ∣   x t  ,     f θ ( t )  ( x t  ) )  if  t = 1 otherwise   
로 바뀌었다. 두 논문 모두 일반적으로 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  )  를 이용하나, 이미지를 최종적으로 생성하는 t = 1 t=1 t = 1  에서 다른 process를 사용함을 알 수 있다.
 
3-2. Loss Function 
DDIM에서 정의한 process에 따라 Loss function( = J σ ( ϵ θ ) ) (=J_\sigma(\epsilon_\theta)) ( = J σ  ( ϵ θ  ) )  을 재구성해야 한다. 다만 DDPMs에서의 Loss function과 동일한 논리흐름을 가지므로, Loss function의 형식 역시 같다. 즉
J σ ( ϵ θ ) ≔ E x 0 : T ∼ q σ ( x 0 : T ) [ log  q σ ( x 1 : T   ∣   x 0 ) − log  p θ ( x 0 : T ) ] ≡ E x 0 : T ∼ q σ ( x 0 : T ) [ ∑ t = 2 T D K L ( q σ ( x t − 1   ∣   x t , x 0 )   ∣ ∣   p θ ( t ) ( x t − 1   ∣   x t ) ) − log  p θ ( 1 ) ( x 0   ∣   x 1 ) ] \begin{aligned} J_\sigma(\epsilon_\theta) &\coloneqq \mathrm{E}_{\mathbf{x}_{0:T}\sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ \log q_\sigma(\mathbf{x}_{1:T}~|~\mathbf{x}_0)-\log p_\theta(\mathbf{x}_{0:T}) \bigg] \\ &\equiv \mathrm{E}_{\mathbf{x}_{0:T}\sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ \sum_{t=2}^T D_{KL}(q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0)~||~p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t)) - \log p_\theta^{(1)}(\mathbf{x}_0~|~\mathbf{x}_1) \bigg] \end{aligned} J σ  ( ϵ θ  )  : = E x 0 : T  ∼ q σ  ( x 0 : T  )  [ log  q σ  ( x 1 : T    ∣   x 0  ) − log  p θ  ( x 0 : T  ) ] ≡ E x 0 : T  ∼ q σ  ( x 0 : T  )  [ t = 2 ∑ T  D K L  ( q σ  ( x t − 1    ∣   x t  , x 0  )   ∣ ∣   p θ ( t )  ( x t − 1    ∣   x t  ) ) − log  p θ ( 1 )  ( x 0    ∣   x 1  ) ]   
이며, 기댓값 내부의 두 항 중 KL Divergence의 합 항은
E x 0 : T ∼ q σ ( x 0 : T ) [ D K L ( q σ ( x t − 1   ∣   x t , x 0 )   ∣ ∣   p θ ( t ) ( x t − 1   ∣   x t ) ) ] = E x 0 : T ∼ q σ ( x 0 : T ) [ D K L ( q σ ( x t − 1   ∣   x t , x 0 )   ∣ ∣   q σ ( x t − 1   ∣   x t , f θ ( t ) ( x t ) ) ) ] ≡ E x 0 : T ∼ q σ ( x 0 : T ) [ ∣ ∣ x 0 − f θ ( t ) ( x t ) ∣ ∣ 2 2 2 σ t 2 ] = E x 0 : T ∼ q σ ( x 0 : T ) [ ∣ ∣ ϵ t − ϵ θ ( t ) ( x t ) ∣ ∣ 2 2 2 d σ t 2 α ˉ t ] \begin{aligned} \mathrm{E}&_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ D_{KL}(q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0)~||~p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t)) \bigg] \\ &= \mathrm{E}_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ D_{KL}(q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,\mathbf{x}_0)~||~q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,f_\theta^{(t)}(\mathbf{x}_t))) \bigg] \\ &\equiv \mathrm{E}_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ {||\mathbf{x}_0-f_\theta^{(t)}(\mathbf{x}_t)||_2^2 \over 2\sigma_t^2} \bigg] \\ &= \mathrm{E}_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ {||\epsilon_t - \epsilon_\theta^{(t)}(\mathbf{x}_t)||_2^2 \over 2d\sigma_t^2\bar{\alpha}_t} \bigg] \end{aligned} E  x 0 : T  ∼ q σ  ( x 0 : T  )  [ D K L  ( q σ  ( x t − 1    ∣   x t  , x 0  )   ∣ ∣   p θ ( t )  ( x t − 1    ∣   x t  ) ) ] = E x 0 : T  ∼ q σ  ( x 0 : T  )  [ D K L  ( q σ  ( x t − 1    ∣   x t  , x 0  )   ∣ ∣   q σ  ( x t − 1    ∣   x t  , f θ ( t )  ( x t  ) ) ) ] ≡ E x 0 : T  ∼ q σ  ( x 0 : T  )  [ 2 σ t 2  ∣ ∣ x 0  − f θ ( t )  ( x t  ) ∣ ∣ 2 2   ] = E x 0 : T  ∼ q σ  ( x 0 : T  )  [ 2 d σ t 2  α ˉ t  ∣ ∣ ϵ t  − ϵ θ ( t )  ( x t  ) ∣ ∣ 2 2   ]   
이다. 여기서 ≡ \equiv ≡  는 학습에 영향을 주지 않을 선에서 같음을 의미한다. 두 Multivariate Gaussian Distribution의 KL Divergence를 계산할 때 등장하는 '학습과 관계없는 상수항'을 신경쓰지 않기 위해 사용한다.
또한 나머지 항은
E x 0 : T ∼ q σ ( x 0 : T ) [ − log  p θ ( 1 ) ( x 0   ∣   x 1 ) ] ≡ E x 0 : T ∼ q σ ( x 0 : T ) [ ∣ ∣ x 0 − f θ ( 1 ) ( x 1 ) ∣ ∣ 2 2 2 σ 1 2 ] = E x 0 : T ∼ q σ ( x 0 : T ) [ ∣ ∣ ϵ 1 − ϵ θ ( 1 ) ( x 1 ) ∣ ∣ 2 2 2 d σ 1 2 α ˉ 1 ] \begin{aligned} \mathrm{E}&_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ -\log p_\theta^{(1)}(\mathbf{x}_0~|~\mathbf{x}_1) \bigg] \kern{135pt} \\ &\equiv \mathrm{E}_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ {||\mathbf{x}_0-f_\theta^{(1)}(\mathbf{x}_1)||_2^2 \over 2\sigma_1^2} \bigg] \\ &= \mathrm{E}_{\mathbf{x}_{0:T} \sim q_\sigma(\mathbf{x}_{0:T})} \bigg[ {||\epsilon_1 - \epsilon_\theta^{(1)}(\mathbf{x}_1)||_2^2 \over 2d\sigma_1^2\bar{\alpha}_1} \bigg] \end{aligned} E  x 0 : T  ∼ q σ  ( x 0 : T  )  [ − log  p θ ( 1 )  ( x 0    ∣   x 1  ) ] ≡ E x 0 : T  ∼ q σ  ( x 0 : T  )  [ 2 σ 1 2  ∣ ∣ x 0  − f θ ( 1 )  ( x 1  ) ∣ ∣ 2 2   ] = E x 0 : T  ∼ q σ  ( x 0 : T  )  [ 2 d σ 1 2  α ˉ 1  ∣ ∣ ϵ 1  − ϵ θ ( 1 )  ( x 1  ) ∣ ∣ 2 2   ]   
이다. 즉 J σ ( ϵ θ ) J_\sigma(\epsilon_\theta) J σ  ( ϵ θ  )  를 다시 표현하면
J σ ( ϵ θ ) ≡ ∑ t = 1 T 1 2 d σ t 2 α ˉ t E [ ∣ ∣ ϵ t − ϵ θ ( t ) ( x t ) ∣ ∣ 2 2 ] J_\sigma(\epsilon_\theta) \equiv \sum_{t=1}^T {1 \over 2d\sigma_t^2\bar{\alpha}_t} \mathrm{E} \bigg[ ||\epsilon_t-\epsilon_\theta^{(t)}(\mathbf{x}_t)||_2^2\bigg] J σ  ( ϵ θ  ) ≡ t = 1 ∑ T  2 d σ t 2  α ˉ t  1  E [ ∣ ∣ ϵ t  − ϵ θ ( t )  ( x t  ) ∣ ∣ 2 2  ]  
이며, 이는 Non-Markovian process 단락에서 γ t = 1 2 d σ t 2 α ˉ t \gamma_t={1 \over 2d\sigma_t^2\bar{\alpha}_t} γ t  = 2 d σ t 2  α ˉ t  1   일 때의 L γ L_\gamma L γ   와 같다. 이로부터, 임의의 ϵ θ \epsilon_\theta ϵ θ   에 대하여 어떤 γ t ∈ R \gamma_t\in\reals γ t  ∈ R  , C ∈ R C\in\reals C ∈ R  가 존재하여 J σ ( ϵ θ ) = L γ + C J_\sigma(\epsilon_\theta) = L_\gamma + C J σ  ( ϵ θ  ) = L γ  + C  를 만족하다.  [4] 
 
위의 결론은 DDIM을 완성하는 중요한 포인트다. 기존의 DDPMs의 표현식으로부터 σ t \sigma_t σ t   를 사용하는 일반화 식으로 process를 재구성하였기 때문에 Loss function은 달라져야 하지만, 위 결론에 의해 우리는 어떤 L γ + C L_\gamma+C L γ  + C  로 Loss function을 대체할 수 있다. 
또한 γ \gamma γ  는 최적해를 찾는 데 영향을 주지 않는다. 이는 곧 특정 L γ L_\gamma L γ   를 사용해도 최적해의 값은 변하지 않는다는 뜻이고, 따라서 우리가 잘 알고있는 (DDPMs에서 사용하는) L 1 L_1 L 1   으로 대체할 수 있다 는 의미이다. 만약 DDPMs에서 ϵ \epsilon ϵ  -예측 네트워크를 학습시켰다면, 이를 추가학습 없이 DDIM에서 사용할 수 있다.
 
3-3. Sampling 
DDPMs의 ϵ \epsilon ϵ  -예측 네트워크를 이미 학습시켰다고 가정하자. 즉 x t \mathbf{x}_t x t   가 가진 ϵ θ ( t ) ( x t ) \epsilon_\theta^{(t)}(\mathbf{x}_t) ϵ θ ( t )  ( x t  )  를 예측할 수 있으며, 따라서 t ≥ 2 t \ge 2 t ≥ 2  에서
p θ ( t ) ( x t − 1   ∣   x t ) = q σ ( x t − 1   ∣   x t ,    f θ ( t ) ( x t ) ) p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t) = q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t,~~f_\theta^{(t)}(\mathbf{x}_t)) p θ ( t )  ( x t − 1    ∣   x t  ) = q σ  ( x t − 1    ∣   x t  ,     f θ ( t )  ( x t  ) )  
로부터 
x t − 1 = α ˉ t − 1 ( x t − 1 − α ˉ t ϵ θ ( t ) ( x t ) α ˉ t ) + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ θ ( t ) ( x t ) + σ t ϵ t \mathbf{x}_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \bigg({\mathbf{x}_t-\sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}(\mathbf{x}_t) \over \sqrt{\bar{\alpha}_t}} \bigg) +\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2}\cdot\epsilon_\theta^{(t)}(\mathbf{x}_t)+\sigma_t\epsilon_t x t − 1  = α ˉ t − 1   ( α ˉ t   x t  − 1 − α ˉ t   ϵ θ ( t )  ( x t  )  ) + 1 − α ˉ t − 1  − σ t 2   ⋅ ϵ θ ( t )  ( x t  ) + σ t  ϵ t   
w h e r e    ϵ t ∼ N ( 0 , I ) where~~\epsilon_t \sim N(0, I) w h e r e     ϵ t  ∼ N ( 0 , I )  
와 같이 x t − 1 \mathbf{x}_{t-1} x t − 1   을 Sampling 할 수 있다. 앞서 보인 바와 같이 σ t 2 = β t ( 1 − α ˉ t − 1 ) 1 − α ˉ t \sigma_t^2={\beta_t(1-\bar{\alpha}_{t-1}) \over 1-\bar{\alpha}_t} σ t 2  = 1 − α ˉ t  β t  ( 1 − α ˉ t − 1  )   일 때는 DDPMs의 Sampling 과정과 같아진다.
하지만 여전히 한 단계씩 Sampling을 진행하고 있으며, 이대로면 DDPMs와 큰 차이가 없을 것이다. 우리의 목표는 몇 단계를 한 번에 건너뛰어 Sampling 속도를 높이는 것이다.
 
4. Accelerated Sampling 
p θ ( t ) ( x t − 1   ∣   x t ) p_\theta^{(t)}(\mathbf{x}_{t-1}~|~\mathbf{x}_t) p θ ( t )  ( x t − 1    ∣   x t  )  는 여전히 한 단계씩 Sampling을 진행하므로 속도를 개선시키지 못한다. 따라서 Sampling 속도를 가속화하기 위해 ⟨ T ,   T − 1 ,   ⋯   ,   2 ,   1 ⟩ \lang T,~T-1,~\cdots,~2,~1\rang ⟨ T ,   T − 1 ,   ⋯ ,   2 ,   1 ⟩  의 순서가 아닌 ⟨ τ S ,   τ S − 1 ,   ⋯   ,   τ 2 ,   τ 1 ⟩ \lang \tau_S,~\tau_{S-1},~\cdots,~\tau_2,~\tau_1\rang ⟨ τ S  ,   τ S − 1  ,   ⋯ ,   τ 2  ,   τ 1  ⟩  의 순서로 Sampling을 진행한다.  수열 ⟨ 1 ,   2 ,   ⋯   ,   T ⟩ \lang1,~2,~\cdots,~T\rang ⟨ 1 ,   2 ,   ⋯ ,   T ⟩  의 부분수열 τ = ⟨ τ 1 ,   τ 2 , ⋯   ,   τ S ⟩ \tau = \lang\tau_1,~\tau_2,\cdots,~\tau_S\rang τ = ⟨ τ 1  ,   τ 2  , ⋯ ,   τ S  ⟩  는
τ i ∈ { 1 ,   2 ,   ⋯   ,   T }      f o r    e v e r y    i ∈ { 1 ,   2 ,   ⋯   ,   S } \tau_i \in \{1,~2,~\cdots,~T\}~~~~for~~every~~ i \in\{1,~2,~\cdots,~S\} τ i  ∈ { 1 ,   2 ,   ⋯ ,   T }         f o r     e v e r y     i ∈ { 1 ,   2 ,   ⋯ ,   S }    
S < T S < T S < T  
i < j i<j i < j   이면 τ i < τ j \tau_i < \tau_j τ i  < τ j   
τ S = T \tau_S = T τ S  = T  
 
를 만족하는 임의의 수열이다.
4-1. Definition 
x τ i \mathbf{x}_{\tau_i} x τ i    만을 거쳐가는 process q σ , τ q_{\sigma,\tau} q σ , τ   를 다시 정의할 것이다. 흐름은 q σ q_\sigma q σ   때와 비슷하며, t ∉ τ t \notin \tau t ∈ /  τ  인 x t \mathbf{x}_t x t   는 큰 관심이 없으므로 비교적 간단히 정의될 것이다.
q σ , τ ( x 1 : T   ∣   x 0 ) = q σ , τ ( x τ 1   ∣   x 0 ) ∏ i = 2 S q σ , τ ( x τ i   ∣   x τ i − 1 , x 0 ) ∏ t ∉ τ q σ , τ ( x t   ∣   x 0 ) q_{\sigma,\tau}(\mathbf{x}_{1:T}~|~\mathbf{x}_0) = q_{\sigma,\tau}(\mathbf{x}_{\tau_1}~|~\mathbf{x}_0)\prod_{i=2}^S q_{\sigma,\tau}(\mathbf{x}_{\tau_i}~|~\mathbf{x}_{\tau_{i-1}},\mathbf{x}_0) \prod_{t\notin\tau} q_{\sigma,\tau}(\mathbf{x}_t~|~\mathbf{x}_0) q σ , τ  ( x 1 : T    ∣   x 0  ) = q σ , τ  ( x τ 1     ∣   x 0  ) i = 2 ∏ S  q σ , τ  ( x τ i     ∣   x τ i − 1   , x 0  ) t ∈ /  τ ∏  q σ , τ  ( x t    ∣   x 0  )  
t ∈ τ t \in \tau t ∈ τ  에 대해서는 수열 상 직전( x τ i − 1 → x τ i ) (\mathbf{x}_{\tau_{i-1}} \to \mathbf{x}_{\tau_i}) ( x τ i − 1   → x τ i   )   이미지와 초기 이미지( x 0 ) (\mathbf{x}_0) ( x 0  )  를 참고하며, 
t ∉ τ t \notin \tau t ∈ /  τ  에 대해서는 초기 이미지( x 0 ) (\mathbf{x}_0) ( x 0  )  만을 참고한다.
또한 Bayes Theorem에 의해,
q σ , τ ( x 1 : T   ∣   x 0 ) = q σ , τ ( x τ 1   ∣   x 0 ) ∏ i = 2 S q σ , τ ( x τ i   ∣   x τ i − 1 , x 0 ) ∏ t ∉ τ q σ , τ ( x t   ∣   x 0 ) = q σ , τ ( x τ 1   ∣   x 0 ) ∏ i = 2 S q σ , τ ( x τ i − 1   ∣   x τ i , x 0 )   q σ , τ ( x τ i   ∣   x 0 ) q σ , τ ( x τ i − 1   ∣   x 0 ) ∏ t ∉ τ q σ , τ ( x t   ∣   x 0 ) = q σ , τ ( x τ S   ∣   x 0 ) ∏ i = 2 S q σ , τ ( x τ i − 1   ∣   x τ i , x 0 ) ∏ t ∉ τ q σ , τ ( x t   ∣   x 0 ) \begin{aligned} q_{\sigma,\tau}(\mathbf{x}_{1:T}~|~\mathbf{x}_0) &= q_{\sigma,\tau}(\mathbf{x}_{\tau_1}~|~\mathbf{x}_0)\prod_{i=2}^S q_{\sigma,\tau}(\mathbf{x}_{\tau_i}~|~\mathbf{x}_{\tau_{i-1}},\mathbf{x}_0) \prod_{t\notin\tau} q_{\sigma,\tau}(\mathbf{x}_t~|~\mathbf{x}_0) \\ &= q_{\sigma,\tau}(\mathbf{x}_{\tau_1}~|~\mathbf{x}_0)\prod_{i=2}^S {q_{\sigma,\tau}(\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i},\mathbf{x}_0)~q_{\sigma,\tau}(\mathbf{x}_{\tau_i}~|~\mathbf{x}_0) \over q_{\sigma,\tau}(\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_0)} \prod_{t\notin\tau} q_{\sigma,\tau}(\mathbf{x}_t~|~\mathbf{x}_0) \\ &= q_{\sigma,\tau}(\mathbf{x}_{\tau_S}~|~\mathbf{x}_0)\prod_{i=2}^S q_{\sigma,\tau}(\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i},\mathbf{x}_0) \prod_{t\notin\tau} q_{\sigma,\tau}(\mathbf{x}_t~|~\mathbf{x}_0) \\ \end{aligned} q σ , τ  ( x 1 : T    ∣   x 0  )  = q σ , τ  ( x τ 1     ∣   x 0  ) i = 2 ∏ S  q σ , τ  ( x τ i     ∣   x τ i − 1   , x 0  ) t ∈ /  τ ∏  q σ , τ  ( x t    ∣   x 0  ) = q σ , τ  ( x τ 1     ∣   x 0  ) i = 2 ∏ S  q σ , τ  ( x τ i − 1     ∣   x 0  ) q σ , τ  ( x τ i − 1     ∣   x τ i   , x 0  )   q σ , τ  ( x τ i     ∣   x 0  )  t ∈ /  τ ∏  q σ , τ  ( x t    ∣   x 0  ) = q σ , τ  ( x τ S     ∣   x 0  ) i = 2 ∏ S  q σ , τ  ( x τ i − 1     ∣   x τ i   , x 0  ) t ∈ /  τ ∏  q σ , τ  ( x t    ∣   x 0  )   
이다. t ∉ τ t \notin \tau t ∈ /  τ  인 x t \mathbf{x}_t x t   는 어차피 Sampling 단계에서 사용되지 않으니 다음과 같이 간단히 나타낸다. 또한 마지막( = T ) (=T) ( = T )   이미지 역시 q σ q_\sigma q σ   때와 같이 나타낸다.
q σ , τ ( x t   ∣   x 0 ) = N ( α ˉ t x 0 ,    ( 1 − α ˉ t ) I )      f o r    t = T ,    e v e r y    t ∉ τ q_{\sigma,\tau}(\mathbf{x}_t~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_t}\mathbf{x}_0,~~(1-\bar{\alpha}_t)I)~~~~for~~t=T,~~every~~t\notin\tau q σ , τ  ( x t    ∣   x 0  ) = N ( α ˉ t   x 0  ,     ( 1 − α ˉ t  ) I )         f o r     t = T ,     e v e r y     t ∈ /  τ  
모든 τ i ∈ τ \tau_i \in \tau τ i  ∈ τ  에 대하여
q σ , τ ( x τ i − 1   ∣   x τ i , x 0 ) = N ( α ˉ τ i − 1 x 0 + 1 − α ˉ τ i − 1 − σ τ i 2 ⋅ x τ i − α ˉ τ i x 0 1 − α ˉ τ i ,    σ τ i 2 I ) q_{\sigma,\tau}(\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i},\mathbf{x}_0) = N\bigg(\sqrt{\bar{\alpha}_{\tau_{i-1}}}\mathbf{x}_0+\sqrt{1-\bar{\alpha}_{\tau_{i-1}}-\sigma_{\tau_i}^2} \cdot {\mathbf{x}_{\tau_i}-\sqrt{\bar{\alpha}_{\tau_i}}\mathbf{x}_0 \over \sqrt{1-\bar{\alpha}_{\tau_i}}},~~\sigma_{\tau_i}^2I \bigg) q σ , τ  ( x τ i − 1     ∣   x τ i   , x 0  ) = N ( α ˉ τ i − 1    x 0  + 1 − α ˉ τ i − 1   − σ τ i  2   ⋅ 1 − α ˉ τ i    x τ i   − α ˉ τ i    x 0   ,     σ τ i  2  I )  
라 정의하자. 이번에도 역시 Appendix B의 Lemma 1에 의해
q σ , τ ( x τ i   ∣   x 0 ) = N ( α ˉ τ i x 0 ,    ( 1 − α ˉ τ i ) I )      f o r    e v e r y    τ i ∈ τ q_{\sigma,\tau}(\mathbf{x}_{\tau_i}~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_{\tau_i}}\mathbf{x}_0,~~(1-\bar{\alpha}_{\tau_i})I)~~~~for~~every~~\tau_i \in \tau q σ , τ  ( x τ i     ∣   x 0  ) = N ( α ˉ τ i    x 0  ,     ( 1 − α ˉ τ i   ) I )         f o r     e v e r y     τ i  ∈ τ  
가 성립한다. [5]  저자는 위의 정의에서 x τ i \mathbf{x}_{\tau_i} x τ i    와 x 0 \mathbf{x}_0 x 0   가 'chain'(기차처럼 한 줄로 이어진 형태)을 이루고, 그 외 나머지와 x 0 \mathbf{x}_0 x 0   가 'star graph'(모두가 오직 x 0 \mathbf{x}_0 x 0   와 연결된 형태)를 이룬다고 말한다.
 
실제 Sampling 역시 부분수열 τ \tau τ  만을 거치며 진행된다. 가속된 generative process p θ p_\theta p θ   는 다음과 같이 정의된다.
p θ ( x 0 : T ) ≔ p θ ( x T ) ∏ i = 1 S p θ ( τ i ) ( x τ i − 1   ∣   x τ i ) ∏ t ∉ τ p θ ( t ) ( x 0   ∣   x t ) p_\theta(\mathbf{x}_{0:T}) \coloneqq p_\theta(\mathbf{x}_T) \prod_{i=1}^S p_\theta^{(\tau_i)} (\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i}) \prod_{t \notin \tau} p_\theta^{(t)}(\mathbf{x}_0~|~\mathbf{x}_t) p θ  ( x 0 : T  ) : = p θ  ( x T  ) i = 1 ∏ S  p θ ( τ i  )  ( x τ i − 1     ∣   x τ i   ) t ∈ /  τ ∏  p θ ( t )  ( x 0    ∣   x t  )  
이때 실질적으로 Sampling에 사용되는 p θ ( τ i ) ( x τ i − 1   ∣   x τ i ) p_\theta^{(\tau_i)} (\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i}) p θ ( τ i  )  ( x τ i − 1     ∣   x τ i   )  는 non-Markov diffusion process를 닮는 것이 합리적이므로
p θ ( τ i ) ( x τ i − 1   ∣   x τ i ) = q σ , τ ( x τ i − 1   ∣   x τ i , f θ ( τ i ) ( x τ i ) ) p_\theta^{(\tau_i)} (\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i}) = q_{\sigma, \tau} (\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i}, f_\theta^{(\tau_i)}(\mathbf{x}_{\tau_i})) p θ ( τ i  )  ( x τ i − 1     ∣   x τ i   ) = q σ , τ  ( x τ i − 1     ∣   x τ i   , f θ ( τ i  )  ( x τ i   ) )  
로 정의하며, 그 외 단계들은 다음과 같이 정의한다.
p θ ( t ) ( x 0   ∣   x t ) = N ( f θ ( t ) ( x t ) , σ t 2 I ) p_\theta^{(t)}(\mathbf{x}_0~|~\mathbf{x}_t) = N(f_\theta^{(t)}(\mathbf{x}_t), \sigma_t^2I) p θ ( t )  ( x 0    ∣   x t  ) = N ( f θ ( t )  ( x t  ) , σ t 2  I )  
 
4-2. Loss Function 
앞선 Loss function에서 했던 바와 같이, 모든 σ , τ \sigma, \tau σ , τ  에 대하여 J σ , τ ( ϵ θ ) = L γ + C J_{\sigma, \tau} (\epsilon_\theta) = L_\gamma + C J σ , τ  ( ϵ θ  ) = L γ  + C  로 표현할 수 있는 γ t \gamma_t γ t   가 존재함을 보여야 한다. 만약 존재한다면, 임의의 부분수열만을 거치도록 설계된 generative process에 의해 만들어지는 Loss function은 어떤 L γ L_\gamma L γ   로 대체될 수 있으며, L γ L_\gamma L γ   의 최적해는 DDPMs에서 사용한 L 1 L_1 L 1   의 최적해와 같으므로, ϵ \epsilon ϵ  -예측 네트워크를 따로 학습시키지 않고 (=DDPMs의 네트워크를 이용하여) 원하는 부분수열만을 거쳐가도록 Sampling 할 수 있다.
관련된 내용은 논문의 Appendix C.1에 기술되어 있지만 증명은 생략되었고, 수식이 논리적으로 전개되지 않으므로 위 증명은 생략하겠다.
 
4-3. Sampling 
결론은 Loss Function이 달라지더라도 최적해의 위치는 DDPMs의 L 1 L_1 L 1   과 같다는 것이며, 따라서 Sampling 단계에서
p θ ( x τ i − 1   ∣   x τ i ) = { N ( f θ ( τ 1 ) ( x τ 1 ) , σ τ 1 2 I ) if  i = 1 q σ , τ ( x τ i − 1   ∣   x τ i , f θ ( τ i ) ( x τ i ) ) otherwise p_\theta(\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i}) = \begin{cases} N(f_\theta^{(\tau_1)}(\mathbf{x}_{\tau_1}), \sigma_{\tau_1}^2I) &\text{if } i=1 \\ q_{\sigma, \tau}(\mathbf{x}_{\tau_{i-1}}~|~\mathbf{x}_{\tau_i}, f_\theta^{(\tau_i)}(\mathbf{x}_{\tau_i})) &\text{otherwise} \end{cases} p θ  ( x τ i − 1     ∣   x τ i   ) = { N ( f θ ( τ 1  )  ( x τ 1   ) , σ τ 1  2  I ) q σ , τ  ( x τ i − 1     ∣   x τ i   , f θ ( τ i  )  ( x τ i   ) )  if  i = 1 otherwise   
를 이용하여,
x τ i − 1 = { x τ 1 − 1 − α ˉ τ 1 ϵ θ ( τ 1 ) ( x τ 1 ) α ˉ τ 1 + σ τ 1 ϵ τ 1 if  i = 1 α ˉ τ i − 1 ⋅ x τ i − 1 − α ˉ τ i ϵ θ ( τ i ) ( x τ i ) α ˉ τ i + 1 − α ˉ τ i − 1 − σ τ i 2 ⋅ ϵ θ ( τ i ) ( x τ i ) + σ τ i ϵ τ i otherwise \mathbf{x}_{\tau_{i-1}} = \begin{cases} {\mathbf{x}_{\tau_1} - \sqrt{1-\bar{\alpha}_{\tau_1}}\epsilon_\theta^{(\tau_1)}(\mathbf{x}_{\tau_1}) \over \sqrt{\bar{\alpha}_{\tau_1}}} +\sigma_{\tau_1}\epsilon_{\tau_1} &\text{if } i=1 \\ \\ \sqrt{\bar{\alpha}_{\tau_{i-1}}} \cdot {\mathbf{x}_{\tau_i} - \sqrt{1-\bar{\alpha}_{\tau_i}}\epsilon_\theta^{(\tau_i)}(\mathbf{x}_{\tau_i}) \over \sqrt{\bar{\alpha}_{\tau_i}}} + \sqrt{1-\bar{\alpha}_{\tau_{i-1}}-\sigma_{\tau_i}^2} \cdot \epsilon_\theta^{(\tau_i)}(\mathbf{x}_{\tau_i}) + \sigma_{\tau_i}\epsilon_{\tau_i} &\text{otherwise} \end{cases} x τ i − 1   = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧  α ˉ τ 1    x τ 1   − 1 − α ˉ τ 1    ϵ θ ( τ 1  )  ( x τ 1   )  + σ τ 1   ϵ τ 1   α ˉ τ i − 1    ⋅ α ˉ τ i    x τ i   − 1 − α ˉ τ i    ϵ θ ( τ i  )  ( x τ i   )  + 1 − α ˉ τ i − 1   − σ τ i  2   ⋅ ϵ θ ( τ i  )  ( x τ i   ) + σ τ i   ϵ τ i    if  i = 1 otherwise   
w h e r e    ϵ τ i ∼ N ( 0 , I ) where~~\epsilon_{\tau_i} \sim N(0, I) w h e r e     ϵ τ i   ∼ N ( 0 , I )  
와 같이 Sampling을 진행할 수 있다. Acceleration 이전과 식은 비슷하지만, 부분수열 τ \tau τ  를 마음대로 정의하여 Sampling 횟수를 획기적으로 줄일 수 있다 는 점이 큰 차이다.
 
5. Experiment 
σ \sigma σ  와 τ \tau τ  는 실험을 진행하는 사람에 따라 변화할 수 있는 하이퍼파라미터다. DDIM은 다양한 σ \sigma σ  와 τ \tau τ  를 비교하여 가장 높은 성능을 보이는 순간을 찾는 실험을 진행하였다.
S S S  는 부분수열 τ \tau τ  의 길이이며, DDIM은 DDPMs와 성능을 비교하기 위해 η \eta η  를 다음과 같이 정의하였다.
σ τ i = η ⋅ β t ( 1 − α ˉ t − 1 ) 1 − α ˉ t \sigma_{\tau_i} = \eta \cdot {\beta_t (1-\bar{\alpha}_{t-1}) \over 1-\bar{\alpha}_t} σ τ i   = η ⋅ 1 − α ˉ t  β t  ( 1 − α ˉ t − 1  )   
η = 1 \eta = 1 η = 1  일 때 σ τ i \sigma_{\tau_i} σ τ i    는 DDPMs의 것과 같아지며, η = 0 \eta = 0 η = 0  까지 줄이며 실험을 진행하였다. η = 1 \eta = 1 η = 1  , S = 1000 S=1000 S = 1 0 0 0   일 때가 정확히 DDPMs의 실험이다.
평가지표는 FID이며, 값이 작을수록 높은 성능을 의미한다. 전체적으로 S S S  가 클수록, η \eta η  가 작을수록 성능이 좋음 을 알 수 있다. 이로부터 DDIM은 η = 0 \eta=0 η = 0  을 채택하여 σ τ i = 0 \sigma_{\tau_i}=0 σ τ i   = 0  으로 둔다. S = 1000 S=1000 S = 1 0 0 0  이면 Sampling 시간이 오래 걸리므로, 어느정도 성능 하락을 감수하면서 속도를 10배 이상( S ≤ 100 ) (S \le100) ( S ≤ 1 0 0 )   향상시켰다.  [6] 
 
6. Endnotes 
[1]  DDPMs의 네트워크는 x t \mathbf{x}_t x t   가 가진 ϵ θ ( t ) \epsilon_\theta^{(t)} ϵ θ ( t )   를 잘 추출하도록 훈련되며, 그 방법은 미리 준비된 정답( = ϵ θ ( t ) ) (=\epsilon_\theta^{(t)}) ( = ϵ θ ( t )  )  으로부터 문제( = α ˉ t x 0 + 1 − α ˉ t ϵ θ ( t ) = x t ) (= \sqrt{\bar{\alpha}_t}\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}=\mathbf{x}_t) ( = α ˉ t   x 0  + 1 − α ˉ t   ϵ θ ( t )  = x t  )  를 만들고, 네트워크가 문제로부터 정답( = ϵ θ ( t ) ) (=\epsilon_\theta^{(t)}) ( = ϵ θ ( t )  )  을 잘 추출하는지 비교하는 방식이다. 이때 x t \mathbf{x}_t x t   를 만들기 위해 사용되는 distribution은
q ( x t   ∣   x 0 ) = N ( x t   ;   α ˉ t x 0 , ( 1 − α ˉ t ) I ) q(\mathbf{x}_t~|~\mathbf{x}_0) = N(\mathbf{x}_t~;~\sqrt{\bar{\alpha}_t}\mathbf{x}_0 , (1-\bar{\alpha}_t)I) q ( x t    ∣   x 0  ) = N ( x t    ;   α ˉ t   x 0  , ( 1 − α ˉ t  ) I )  
인 marginal distribution 뿐이다. 따라서 marginal distribution만 같다면, joint distribution은 무엇이든 상관없다는 아이디어다.
 
[2]  Appendix B의 Lemma 1을 증명하자. 논문은 참고문헌으로 Christopher M Bishop 의 Pattern recognition and machine learning을 인용하였다. 해당 서적에서 참고한 수식은 다음과 같다.
Lemma 1의 증명 아이디어는 수학적 귀납법(Induction)과 유사하다. 다음 두 식
q σ ( x T   ∣   x 0 ) = N ( α ˉ T x 0 , ( 1 − α ˉ T ) I ) q_\sigma(\mathbf{x}_T~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_T}\mathbf{x}_0, (1-\bar{\alpha}_T)I) q σ  ( x T    ∣   x 0  ) = N ( α ˉ T   x 0  , ( 1 − α ˉ T  ) I )  
q σ ( x t − 1   ∣   x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0) = N \bigg(\sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \cdot {\mathbf{x}_t - \sqrt{\bar{\alpha}_t}\mathbf{x}_0 \over \sqrt{1-\bar{\alpha}_t}}, \sigma_t^2I \bigg) q σ  ( x t − 1    ∣   x t  , x 0  ) = N ( α ˉ t − 1   x 0  + 1 − α ˉ t − 1  − σ t 2   ⋅ 1 − α ˉ t   x t  − α ˉ t   x 0   , σ t 2  I )  
이 정의되었을 때, 모든 t ≤ T t \le T t ≤ T  에 대하여
q σ ( x t   ∣   x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) ⇓ q σ ( x t − 1   ∣   x 0 ) = N ( α ˉ t − 1 x 0 , ( 1 − α ˉ t − 1 ) I ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)I)\\ \Downarrow \\ q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0, (1-\bar{\alpha}_{t-1})I) q σ  ( x t    ∣   x 0  ) = N ( α ˉ t   x 0  , ( 1 − α ˉ t  ) I ) ⇓ q σ  ( x t − 1    ∣   x 0  ) = N ( α ˉ t − 1   x 0  , ( 1 − α ˉ t − 1  ) I )  
임을 증명하자. a ⇒ b a \Rightarrow b a ⇒ b  는 a a a  가 참일 때 b b b  가 참이라는 뜻이다.
만약 증명된다면, 우리는 이미 t = T t=T t = T  일 때인 q σ ( x T   ∣   x 0 ) = N ( α ˉ T x 0 , ( 1 − α ˉ T ) I ) q_\sigma(\mathbf{x}_T~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_T}\mathbf{x}_0, (1-\bar{\alpha}_T)I) q σ  ( x T    ∣   x 0  ) = N ( α ˉ T   x 0  , ( 1 − α ˉ T  ) I )  가 성립함을 알고 있으므로 연쇄적으로 t = T − 1 ,   ⋯   ,   2 ,   1 t=T-1,~\cdots,~2,~1 t = T − 1 ,   ⋯ ,   2 ,   1  일 때 성립함을 보일 수 있다.
 
q σ ( x t   ∣   x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)I) q σ  ( x t    ∣   x 0  ) = N ( α ˉ t   x 0  , ( 1 − α ˉ t  ) I )  
가 참이라 가정하자. 만약 x 0 \mathbf{x}_0 x 0   를 상수라고 인식한다면 다음과 같이 표현할 수 있다.
q σ ( x t ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(\mathbf{x}_t) = N(\sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)I) q σ  ( x t  ) = N ( α ˉ t   x 0  , ( 1 − α ˉ t  ) I )  
마찬가지로
q σ ( x t − 1   ∣   x t ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t) = N \bigg(\sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \cdot {\mathbf{x}_t - \sqrt{\bar{\alpha}_t}\mathbf{x}_0 \over \sqrt{1-\bar{\alpha}_t}}, \sigma_t^2I \bigg) q σ  ( x t − 1    ∣   x t  ) = N ( α ˉ t − 1   x 0  + 1 − α ˉ t − 1  − σ t 2   ⋅ 1 − α ˉ t   x t  − α ˉ t   x 0   , σ t 2  I )  
라 표현할 수 있으며, 수식 (2.115)에 의해
q σ ( x t − 1 ) = q σ ( x t − 1   ∣   x 0 ) = N ( α ˉ t − 1 x 0 , ( σ t 2 I + 1 − α ˉ t − 1 − σ t 2 1 − α ˉ t ⋅ ( 1 − α ˉ t ) ) I ) = N ( α ˉ t − 1 x 0 , ( 1 − α ˉ t − 1 ) I ) \begin{aligned} q_\sigma(\mathbf{x}_{t-1}) &= q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_0) \\ &=N \bigg( \sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0, \bigg( \sigma_t^2I + {1-\bar{\alpha}_{t-1}-\sigma_t^2 \over 1-\bar{\alpha}_t} \cdot (1-\bar{\alpha}_t) \bigg)I \bigg) \\ &= N(\sqrt{\bar{\alpha}_{t-1}}\mathbf{x}_0, (1-\bar{\alpha}_{t-1})I) \end{aligned} q σ  ( x t − 1  )  = q σ  ( x t − 1    ∣   x 0  ) = N ( α ˉ t − 1   x 0  , ( σ t 2  I + 1 − α ˉ t  1 − α ˉ t − 1  − σ t 2   ⋅ ( 1 − α ˉ t  ) ) I ) = N ( α ˉ t − 1   x 0  , ( 1 − α ˉ t − 1  ) I )   
이다. 따라서 수학적 귀납법에 의해, 모든 t ≤ T t \le T t ≤ T  에 대하여
q σ ( x t   ∣   x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) = N(\sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)I) q σ  ( x t    ∣   x 0  ) = N ( α ˉ t   x 0  , ( 1 − α ˉ t  ) I )  
가 성립한다.
 
[3]  q σ ( x t − 1   ∣   x t q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t q σ  ( x t − 1    ∣   x t   , x 0 ) , q σ ( x t   ∣   x 0 ) \mathbf{x}_0), q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) x 0  ) , q σ  ( x t    ∣   x 0  )  을 알고 있으므로 q σ ( x t   ∣   x t − 1 , x 0 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) q σ  ( x t    ∣   x t − 1  , x 0  )  를 실제로 구할 수 있다.
q σ ( x t   ∣   x t − 1 , x 0 ) = q σ ( x t − 1   ∣   x t , x 0 )   q σ ( x t   ∣   x 0 ) q σ ( x t − 1   ∣   x 0 ) = N ( x t   ;   μ ~ , Σ ~ )   w h e r e q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) = {q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_t, \mathbf{x}_0)~q_\sigma(\mathbf{x}_t~|~\mathbf{x}_0) \over q_\sigma(\mathbf{x}_{t-1}~|~\mathbf{x}_0)} = N(\mathbf{x}_t~;~\tilde{\mu}, \tilde{\Sigma}) \\ \space\\ where 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  )  = N ( x t    ;   μ ~  , Σ ~ )   w h e r e  
μ ~ = 1 − α ˉ t 1 − α ˉ t − 1 − σ t 2 1 − α ˉ t − 1 x t − 1 + ( α ˉ t − 1 − α ˉ t 1 − α ˉ t − 1 − σ t 2 α ˉ t − 1 1 − α ˉ t − 1 ) x 0 ,   Σ ~ = σ t 2 ( 1 − α ˉ t ) 1 − α ˉ t − 1 I \tilde{\mu} = {\sqrt{1-\bar{\alpha}_t}\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \over 1-\bar{\alpha}_{t-1}}\mathbf{x}_{t-1} + \bigg(\sqrt{\bar{\alpha}_t} - {\sqrt{1-\bar{\alpha}_t}\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2}\sqrt{\bar{\alpha}_{t-1}} \over 1-\bar{\alpha}_{t-1}}\bigg) \mathbf{x}_0, \\ \space\\ \tilde{\Sigma} = {\sigma_t^2(1-\bar{\alpha}_t) \over 1-\bar{\alpha}_{t-1}}I \kern{275pt} μ ~  = 1 − α ˉ t − 1  1 − α ˉ t   1 − α ˉ t − 1  − σ t 2    x t − 1  + ( α ˉ t   − 1 − α ˉ t − 1  1 − α ˉ t   1 − α ˉ t − 1  − σ t 2   α ˉ t − 1    ) x 0  ,   Σ ~ = 1 − α ˉ t − 1  σ t 2  ( 1 − α ˉ t  )  I  
으로, Multivariate Gaussian Distribution이다.
사실 q σ ( x t − 1 , x 0 ) q_\sigma(\mathbf{x}_{t-1}, \mathbf{x}_0) q σ  ( x t − 1  , x 0  )  에 의해 x 0 \mathbf{x}_0 x 0   를 x t − 1 \mathbf{x}_{t-1} x t − 1   로 변환할 수 있고, 이때 q σ ( x t   ∣   x t − 1 , x 0 ) q_\sigma(\mathbf{x}_t~|~\mathbf{x}_{t-1},\mathbf{x}_0) q σ  ( x t    ∣   x t − 1  , x 0  )  는 Markov process가 된다. 하지만 forward process에서 markov 여부는 크게 중요하지 않다.
 
[4]  논문에서는 Appendix B의 Theorm 1에 기술되어 있다.
 
[5]  [2] 와 같은 과정이다. t t t   대신 τ i \tau_i τ i   가, t − 1 t-1 t − 1   대신 τ i − 1 \tau_{i-1} τ i − 1   이 들어갈 뿐이다.
 
[6]  η = 0 \eta=0 η = 0  이면 σ τ i = 0 \sigma_{\tau_i}=0 σ τ i   = 0  이고, 이는 diffusion process와 denoising process 모두에서 무작위성을 넣지 않겠다는 의미이다. 오히려 생성모델의 다양성을 떨어트리는 인사이트로 보인다.
결과론적인 이야기지만 위 상황에 의미를 부여하면, 기존 DDPMs에서 denoising process는 μ θ \mu_\theta μ θ   로 denoise를 한 뒤 Σ θ \Sigma_\theta Σ θ   로 다시 노이즈를 넣었다고 볼 수 있다. Denoise 하는 데 노이즈를 다시 넣는 것이 직관에는 맞지 않으며, DDIM에서 σ τ i = 0 \sigma_{\tau_i}=0 σ τ i   = 0  으로 둠으로써 이러한 비효율을 해소했다고 해석할 수 있다.