Contents

[Paper Review]Denoising Diffusion Implicit Models(DDIM)

개요

  1. DDPM 이후 DDPM의 샘플링 속도를 개선하여 보다 빠른 생성이 가능한 DDIM에 대하여 논문 리뷰 할 것이다.

Introduction

  1. Deep generative model은 여러 분야에서 높은 품질의 샘플을 생성할 능력을 보여준다.

  1. GAN은 다른 어떤 생성 모델보다 더 높은 품질의 샘플을 생성 할 수 있다.

  1. 그러나 GAN은 매우 특정한 최적화 기법과 네트워크 구조를 선택해야 돼서, data 분포가 여러 모드를 충분히 학습하지 못하는 현상이 발견된다.

  1. 따라서 최근 연구에선 DDPM 같은 생성 모델이 GAN과 유사한 성능을 생성할 수 있다.

  1. DDPM과 같은 모델들은 adversarial training을 하지 않고, gaussian noise가 다양한 정도로 추가된 샘플을 복원하도록 denoising autoencoder를 훈련하는 방식으로 동작한다.

  1. 샘플링 과정은 Markov chain 방식을 따르며, 처음에는 화이트 노이즈에서 시작하여 점점 denoising하여 이미지를 복원하는 방식으로 진행된다.
  • 이는 Langevin dynamicsforward diffusion과정을 역전시키는 두 가지 방식으로 구현이 된다.

  1. DDPM과 같은 모델들은 샘플을 생성하는데 많은 반복이 필요하다는 것이 문제점이다. 따라서 GAN에 비하여 속도가 매우 느리다.
  • 또한 이미지의 크기가 커질수록 더욱 심각해진다.

  1. 따라서 본 논문은 DDPMGAN효율성 차이를 줄이기 위해 DDIMs을 제안한다.

  1. DDIM암시적 확률 모델(implicit probabilistic models)(Mohamed & Lakshminarayanan, 2016)과 밀접한 관련이 있다.
  • 암시적 확률 모델DDPM과 동일한 목적 함수로 훈련된다는 점에서 유사하다.

  1. 본 논문에서는 기존 DDPMMarkov Chain 확산 과정을 Non-Markovian 확산 과정으로 일반화 한다.
  • Non-Markov를 사용하면 짧은 마르코프 체인을 구성할 수 있게 된다.
  • 이는, 샘플링 속도를 획기적으로 줄일 수 있게 된다.

  1. 따라서 동일한 신경망(목적 함수)를 사용하면서도, Markov가 아닌 다양한 확산 과정을 선택함으로써 더욱 넓은 범위의 생성 모델을 자유롭게 선택할 수 있다.

  1. 또한, DDIMDDPM과 비교하여 세 가지의 장점을 지닌다.

    • 샘플링 속도를 더욱 가속화 해도 DDPM과 비교하여 더 뛰어난 샘플 품질을 제공한다.
    • DDIM에 일관성 속성이 있기 때문에 초기 latent variable에서 출발하여 높은 수준의 특징을 공유하게 된다.
    • 초기 latent variable을 조작하여 의미적으로 유의미한 이미지 보간을 수행할 수 있다.


Background

  1. 해당 부분에서는 DDPM의 전반적인 내용에 대해서 설명을 한다. 이는 이전의 글에 더 자세히 나와 있다.

  1. DDPM의 샘플링 속도가 너무 느려 이를 해결하기 위해 DDIM이 등장하여 속도를 개선한다.

Variational Inference For Non-Markovian Forward Processes

  1. 생성 모델은 inference process역(reverse)을 추정하기 때문에, 많은 반복을 줄이기 위해 inference process에 대한 새로운 접근이 필요하다.

  1. DDPM핵심적인 관찰은 DDPM목적함수가 오직 marginal probability distribution(주변 확률 분포) $q(x_t \mid x_0)$에만 의존하고 joint distribution(공동 확률 분포) $q(x_\text{1:T}\mid x_0)$엔 직접적으로 의존하지 않는다는 점이다.

  1. 즉, 동일한 주변 확률 분포를 가지면서 다양한 공동 확률 분포가 존재하기 때문에, Markovian 특성을 갖지 않는 대체적인 생성 과정을 설계할 수 있다.
  • Non-Markovian 추론 과정을 사용하더라도 DDPM동일한 대리 목적 함수를 유지할 수 있다.

Non-Markovian Forward Porcesses

  1. 따라서 주변 확률 분포인 $q_\sigma(x_T|x_0)$ 는 $q_\sigma(x_T|x_0) = \mathcal{N}(\sqrt{\alpha_T}x_0, (1 - \alpha_T)I)$ 는 DDPMDDIM 둘 다 만족한다.

  1. 하지만 공동 확률 분포인 $q_\sigma(x_\text{1:T}|x_0)$에 대해서는 DDPMDDIM이 아래와 같이 다르게 표현되고 있다.

$$ \begin{aligned} DDPM &: q(x_\text{1:T} | x_0) := \prod_\text{t=1}^T q(x_t | x_\text{t-1}) \\ DDIM &: q(x_\text{1:T} | x_0) := q_\sigma(x_T|x_0) \prod_\text{t=2}^T q_\sigma(x_\text{t-1} | x_t,x_0) \end{aligned} $$

DDIM의 공동 확률 분포 증명 확인
  • 각 시간 단계 $x_t$가 단순히 $x_\text{t-1}$에만 의존하는 것이 아니라, $x_0$에 대한 직접적인 정보도 포함하도록 식을 변형 하려고 한다. $$ \begin{aligned} q_{\sigma}(x_{1:T} | x_0) &:= q(x_1 | x_0) q(x_2 | x_1, x_0) q(x_3 | x_2, x_0) \dots q(x_T | x_{T-1}, x_0) \\ &:= \cancel{q(x_1 | x_0)} \frac{q(x_1 | x_2, x_0) \cancel{q(x_2 | x_0)}} {\cancel{q(x_1 | x_0)}} \frac{q(x_2 | x_3, x_0) \cancel{q(x_3 | x_0)}}{\cancel{q(x_2 | x_0)}} \dots \frac{q(x_{T-1} | x_T, x_0) q(x_T | x_0)}{\cancel{q(x_{T-1} | x_0)}} \\ &(\therefore q(x_T | x_{T-1}, x_0) = \frac{q(x_{T-1} | x_T, x_0) q(x_T | x_0)}{q(x_{T-1} | x_0)} \text{From Bayes’ rule})\\ &:= q_\sigma(x_T|x_0) \prod_\text{t=2}^T q_\sigma(x_\text{t-1} | x_t,x_0) \end{aligned} $$

  1. 따라서 DDPMMarkovian의 특성을 가지고 있지만, DDIMNon-Markovian의 특징을 가지고 있다는 것을 알 수 있다.
  • q의 분포가 $x_t$가 $x_\text{t-1}$와 $x_0$에 의존하기 때문에 더이상 markovian이 아니게 되는 것이다.
  • Forward Process위 식과 같이 정의하는 것은 직접적인 성능 향상을 주는 것은 아니다. Reverse Process에서 결정론적 샘플링과 빠른 샘플링을 가능하게 하려면 Forward Process를 이렇게 Non-Markovian을 사용하여 정의가 되어야 하기 때문이다.

  1. DDIM에서 위 식을 만족하면 mean function아래의 식을 만족하게 된다.

$$q_{\sigma}(x_{t-1} | x_t, x_0) = \mathcal{N} \left( \sqrt{\alpha_{t-1}} x_0 + \sqrt{1 - \alpha_{t-1} - \sigma_t^2} \cdot \frac{x_t - \sqrt{\alpha_t} x_0}{\sqrt{1 - \alpha_t}}, \sigma_t^2 I \right)$$

증명 확인

$$ \begin{aligned} x_{t-1} &= \sqrt{\bar{\alpha_{t-1}}} x_0 + \sqrt{1 - \bar{\alpha_{t-1}}} \mathbf{z_{t-1}} \\ &= \sqrt{\bar{\alpha_{t-1}}} x_0 + \sqrt{1 - \bar{\alpha_{t-1}} - \sigma_t^2} \mathbf{z_t} + \sigma_t \mathbf{z} \quad (\therefore \text{reparameterization trick})\\ &= \sqrt{\bar{\alpha_{t-1}}} x_0 + \sqrt{1 - \bar{\alpha_{t-1}} - \sigma_t^2} \frac{x_t - \sqrt{\bar{\alpha_t}} x_0}{\sqrt{1 - \bar{\alpha_t}}} + \sigma_t \mathbf{z} \quad (\therefore x_{t} = \sqrt{\bar{\alpha_{t}}} x_0 + \sqrt{1 - \bar{\alpha_{t}}} \epsilon)\\ q_{\sigma}(x_{t-1} | x_t, x_0) &= \mathcal{N} \left( x_{t-1}; \sqrt{\bar{\alpha_{t-1}}} x_0 + \sqrt{1 - \bar{\alpha_{t-1}} - \sigma_t^2} \frac{x_t - \sqrt{\bar{\alpha_t}} x_0}{\sqrt{1 - \bar{\alpha_t}}}, \sigma_t^2 I \right) \end{aligned} $$


  1. DDPM에서 $q$에 대해서 평균과 분산을 구해서 정의를 내렸지만, DDIM에서는 바로 위 식처럼 가우시안 식으로 정의를 내릴 수 있다.
  • $DDPM : q(x_{t-1} | x_t, x_0) = \mathcal{N} \left( x_{t-1} ; \tilde{\mu}_t(x_t, x_0), \tilde{\beta}_t I \right)$

  1. $\sigma$의 값은 forward process가 얼마나 stochastic한지 컨트롤 하며, 이 값이 0에 가까워질수록 $x_\text{t-1}$값이 fix 되며 deterministic해진다.

Generative Process and Unified Variational Inference Objective

  1. 다음으로 학습 가능한 생성 과정인 $p_\theta(x_\text{0:T})$를 정의한다. 이때 $ p_{\theta}^{(t)}(x_{t-1} | x_t)$는 $ q_{\sigma}(x_{t-1} | x_t, x_0)$ (reverse conditional distribution)에 대해 알고있는 정보를 활용한다.
  • reverse conditional distribution: noisy한 $ x_t$ 가 있을 때, $ x_0$를 이용해 $ x_{t-1}$를 샘플링

  1. 따라서 $p_\theta(x_\text{0:T})$ 가 수행되기 위하여 노이즈 관측 값인 $ x_t$에 대해 우리는 가장 먼저 대응하는 $x_0$를 예측하고, $ q_{\sigma}(x_{t-1} | x_t, x_0)$을 통하여 샘플 $ x_{t-1}$을 얻는다.

  1. 다음은 위 과정을 조금 더 자세하게 설명한 부분이다.

  1. $ x_0 \sim q(x_0)$와 $ \epsilon_t \sim \mathcal{N}(0, I)$에 대해 $ x_t = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon$을 수행하여 $ x_t$를 얻어낼 수 있다.
  • 모델 $ \epsilon_{\theta}^{(t)}(x_t)$는 $ x_0$에 대한 정보 없이 $ x_t$로부터 $ \epsilon_t$를 예측한다.

  1. 위 식을 $ x_0$에 대해 다시 표현하면 우리는 $x_t$에 대한 $ x_0$의 예측 값인 denoised observation 을 알 수 있다.

$$f_{\theta}^{(t)}(x_t) := \frac{x_t - \sqrt{1 - \alpha_t} \cdot \epsilon_{\theta}^{(t)}(x_t)}{\sqrt{\alpha_t}}$$

  1. 내가 이해한 대로 정리하자면, 기존 DDPM에서 사용되었던 Forward Process$(x_t = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon )$ 의 식을 $x_0$ 식으로 변경하여 생성 과정$(p_\theta(x_\text{0:T}))$ 시 $f_{\theta}^{(t)}(x_t) := x_0$를 샘플링하여(denoised observation = 노이즈가 제거된 관측값) 사용(추정)하겠다는 의미이다.
  • DDIM에서 기존 DDPM에서의 Forward Process에서의 과정은 변함이 없다.
  • 모델 $(\epsilon_{\theta}^{(t)}(x_t))$의 역할(노이즈 예측)도 동일히다.

  1. 또한 fixed prior인 $ p_{\theta}(x_T) = \mathcal{N}(0, I)$를 통해 generative process를 아래와 같이 정의할 수 있다. $$p_{\theta}^{t}(x_{t-1} | x_t) = \begin{cases} \mathcal{N}(f_\theta^{1}(x_1), \sigma_1^2 I) & \text{if } t = 1 \\ q_\sigma(x_{t-1} | x_t, f_{\theta}^{t}(x_t)) & \text{otherwise} \end{cases} $$
  • 항상 generative process를 보장하기 위해 $t = 1$ 일 때 gaussian noise$( \sigma_1^2 I )$를 추가해준다.
  • $f_{\theta}^{t}$가 $x_0$을 대체했다.

  1. 아래는 generative process를 최적화 시키기 위해 이용되는 variational lower bound의 형태이다.

  1. 해당 논문에서는 $\sigma$를 어떻게 선택하느냐에 따라서 다른 목적 함수가 되는데, 만약, $\sigma$가 0보다 크다면 DDPMELBO와 같은 형태가 되고, 0이면 DDIM의 목적 함수이다.
  • DDIM에서는 non-markovian을 위해서 $\sigma$를 0으로 설정한다.

  1. 해당 정보를 사용하여 본 논문은 Theorem 1을 정의하였다.

$$\textbf{Theorem 1. \quad} \textit{For all } \sigma > 0, \textit{ there exists } \gamma \in \mathbb{R_\geq^T} \textit{ and } C \in \mathbb{R}, \textit{ such that } J_\sigma = L_\gamma + C$$

  1. $\gamma = 1$이라면, objective functionDDPMvariational lower bound와 같다.
  • $L_1 = J_\sigma$

  1. $J_\sigma$는 $L_\gamma$의 일종인데, 이는 $\gamma = 1$일 때 DDIM에서도 ($L_1$) 최적의 값을 가져서 최적의 학습이 가능하다는 뜻이다.
  • objective function의 $\gamma = 1$일때 최적의 값은 DDPM에서 언급 된 내용이다.

Sampling From Generalized Generative Process

  1. 35번에서 말한대로 $\gamma = 1$ 일 때 optimal을 구할 수 있으므로 $L_1$을 objective function으로 두고 사용하는 경우를 살펴보자.

  1. 그럴 경우 $\sigma$를 어떻게 설정하느냐에 따라 forward processmarkovian이나 non-markovian으로 학습 시킬 수 있게 된다.
  • 이때 $\sigma$ 의 값과는 상관 없이 학습해야하는 parameter는 $\theta$ 라는 점이다.
    • 모델($\theta$)이 학습하는 것은 forward process의 형태와는 독립적이다.
  • 결론적으로 markovian process로 학습시킨 DDPM의 학습한 모델($\theta$)를 DDIMgenerative process에서 사용할 수 있게 된다는 것이다.

  1. DDIM새로운 학습 방식을 제안한 것이 아니라, 새로운 샘플링 방법을 제안한 것이다.

Denoising Diffusion Implicit Model

  1. 21번 식($q_\sigma(x_\text{t-1}|x_t, x_0)$)과 $x_t = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon$ 의 조합으로 아래의 식을 유도할 수 있게 된다.

  • 위 식은 $x_t$로부터 $x_\text{t-1}$을 sampling하는 과정을 뜻한다.

  1. $\sigma$의 값에 따라서 다른 process가 되며, 같은 $\epsilon_\theta$를 사용하기 때문에 재학습은 불필요하다.

  1. $\sigma$가 0이 아니라면, markovian에 따라서 DDPM이 된다. $\sigma$가 0이라면, random noise가 0이 되기 때문에 stochastic확률적인 변수가 없어지기 때문에 sampling process($x_T$ -> $x_0$)가 고정이 된다.
  • $\sigma$가 0이 된다면, forward process가 $x_\text{t-1}, x_0$에 대해 deterministic해진다.
    • 이 부분이 Implicit Probabilistic Model이 되는 이유이다.
    • 명시적으로 확률 분포를 정의하지 않지만, 특정한 함수 형태로 확률적인 특성을 암시적으로 표현하는 모델을 의미한다.
  • reverse process진행 시 노이즈($x_T$)랑 이미지($x_0$)가 1:1 매칭이 된다고 이해하면 될 것 같다.

Accelerated Generation Processes

  1. Forward process에서 T step을 가지고 있다고 해도 sampling과정에서 모든 스텝을 사용할 필요는 없다.
  • 왜냐하면 forward process($q(x_t|x_0)$)이 고정되면, 모델의 재학습을 할 필요 없이 샘플링 과정만 최적화 하면 된다.

  1. 일부 스텝만 선택해서 샘플링하면 비슷한 품질의 데이터를 DDPM과 비교하여 훨씬 빠르게 생성 가능하다.

  1. 위 그림은 DDPMDDIM의 차이점에 대한 내용을 나타낸 것이다. 그림을 보면 알 수 있듯이 다른 과정은 같고, sampling 과정만 다른 것을 알 수 있다.

Experiments

  1. 위 사진은 왼쪽이 DDIM이고 오른쪽이 DDPM의 성능을 비교한 사진이다.

  1. DDPM1000step 정도 필요한 품질을 만드는 반면에 DDIM20step이면 생성할 수 있다.
  • DDIMDDPM보다 50배 빠른 속도이다.

  1. 위 사진은 $x_T$는 이미지의 중요한 high-level의 정보를 담고 있는 latent encoding의 역할을 한다고 알 수 있다.

  1. 왜냐하면 같은 $x_T$에서 시작하고, 샘플링 경로가 다르더라도 고수준(high-level)특징을 가지는 이미지가 비슷하게 나오기 때문이다.
  • 대부분 20step의 sample이 1000step의 sample 이랑 유사해진다.

  1. 따라서 위 사진 처럼 semantic interpolation이 가능하다는 사실을 볼 수 있다.
  • $x_T$사이에서 두 샘플 사이interpolation이 가능하다는 사실을 알 수 있다. (GAN에서도 할 수 있다.)
  • 가운데 사진을 보면 양쪽 이미지의 특성이 적절히 섞여있는 것을 알 수 있다.

Implement

  1. 코드에 대한 구현은 여기에 해두었다.


Reference