[논문] Denoising Diffusion Impilicit Models (DDIM)

melan·2024년 3월 8일
0

paper_review

목록 보기
5/5
post-thumbnail

배경

DDPM은 높은 품질의 이미지를 생성해내지만 그 과정이 markov chain에 의한 수많은 iteration을 필요로 한다. GAN과 같은 기술과의 차이를 줄이기 위해서는 생성 시간을 단축할 필요가 있다.

DDIM은 forward process를 재정의함으로써 DDPM을 설명할 수 있는 일반화된 objective function을 제안한다. 또한 파라미터를 조정하여 결과물을 deterministic하게 만들어내는 generative process를 제안함으로써 생성된 이미지의 품질은 유지하되 iteration 횟수를 줄여 computational cost를 줄였다.

아이디어

Non-markovian forward process

DDIM에서는 forward process를 아래 식의 좌변과 같은 방식으로 정의하여 DDPM의 markov chain을 끊어낸다. 식의 우변은 좌변을 Bayes’ rule로 풀어서 표현한 것이다.

  • Markov chain이 끊어졌다고 표현하는 이유 이전 상태(xt1\textbf x_{t-1})에 의해서 그 다음 상태(xt\textbf x_{t})가 결정된다는 정의를 벗어나기 때문이다. 조건에 x0\textbf x_{0}가 들어가 있는 것을 알 수 있는데, 이것이 그 이유이다.
qσ(xtxt1,x0)=qσ(xt1xt,x0)qσ(xtx0)qσ(xt1x0)q_\sigma(\textbf{x}_{t}|\textbf{x}_{t-1}, \textbf{x}_{0})=\frac{q_\sigma(\textbf{x}_{t-1}|\textbf{x}_{t}, \textbf{x}_{0})q_\sigma(\textbf{x}_t|\textbf{x}_0)}{q_\sigma(\textbf{x}_{t-1}|\textbf{x}_0)}

여기서 우변에 있는 qσ(xt1xt,x0)q_\sigma(\textbf{x}_{t-1}|\textbf{x}_{t}, \textbf{x}_{0})qσ(xtx0)q_\sigma(\textbf{x}_{t}|\textbf{x}_{0})에서 유도하여 정의한다.

xt1=αt1x0+1αt1ϵt1=αt1x0+1αt1σt2ϵt+σtϵ=αt1x0+1αt1σt2xtαtx01αt1+σtϵ\begin{aligned} \textbf x_{t-1} &= \sqrt{\alpha_{t-1}}\textbf x_{0}+\sqrt{1-\alpha_{t-1}}\epsilon_{t-1}\\ &= \sqrt{\alpha_{t-1}}\textbf x_{0}+\sqrt{1-\alpha_{t-1}-\sigma_t^2}\epsilon_{t}+\sigma_t\epsilon\\ &= \sqrt{\alpha_{t-1}}\textbf x_{0}+\sqrt{1-\alpha_{t-1}-\sigma_t^2}\cdot\frac{\textbf x_{t}-\sqrt{\alpha_t}\textbf x_{0}}{\sqrt{1-\alpha_{t-1}}}+\sigma_t\epsilon\\ \end{aligned}

(1) 식: qσ(xt1x0)q_\sigma(\textbf{x}_{t-1}|\textbf{x}_{0})에 따라서 xt1\textbf{x}_{t-1}x0\textbf{x}_{0}으로 표현한 것이다.

(2) 식: 1αt1ϵt1\sqrt{1-\alpha_{t-1}}\epsilon_{t-1}을 Gaussian distribution의 property에 의해서 변형한 것이다.

  • 자세한 설명 Gaussian distribution에서 성립하는 연산 중 다음과 같이 분산에 대한 연산이 가능하다.
    N(0,σ12I)+N(0,σ22I)=N(0,(σ12+σ22)I)N(0, \sigma_1^2I)+N(0, \sigma_2^2I)=N(0, (\sigma_1^2+ \sigma_2^2)I)
    이 성질을 (1)식의 분산 부분에 녹여보면 다음과 같이 표현할 수 있다.
    N(0,1αt12I)=N(0,1αt1σt22I)+N(0,σt2I)N(0, \sqrt{1-\alpha_{t-1}}^2I) = N(0, \sqrt{1-\alpha_{t-1}-\sigma_t^2}^2I)+N(0, \sigma_t^2I)
    좌변이 (1) 식의 표준편차 부분이고 우변이 (2)의 바뀐 표준편차 부분이다.

(3) 식: qσ(xtx0)q_\sigma(\textbf{x}_{t}|\textbf{x}_{0})을 reparameterization trick을 이용해 만든 식에서 ϵt\epsilon_t를 좌변으로 놓고 정리한 것을 대입한 것이다.

  • 자세한 설명 Reparameterization trick으로 표현하면 다음과 같다.
    xt=αtx0+1αtϵt\textbf x_{t}=\sqrt{\alpha_t}\textbf x_{0}+\sqrt{1-\alpha_t}\epsilon_t\\
    ϵt\epsilon_t에 대한 식으로 정리하면 다음과 같다.
    ϵt=xtαtx01αt\epsilon_t = \frac{\textbf x_{t}-\sqrt{\alpha_t}\textbf x_{0}}{\sqrt{1-\alpha_t}}

마지막 식에서 xt1\textbf x_{t-1}x0\textbf x_{0}xt\textbf x_{t}로 표현된 것을 알 수 있다.

이렇게 정의한 식으로 다음과 같이 joint distribution을 정의할 수 있다.

qσ(x1:Tx0)=qσ(xTx0)t=2Tqσ(xt1xt,x0)q_\sigma(\textbf{x}_{1:T}|\textbf{x}_0)=q_\sigma(\textbf{x}_T|\textbf{x}_0)\prod^T_{t=2}q_\sigma(\textbf{x}_{t-1}|\textbf{x}_t, \textbf{x}_0)

Generative process and unified variational objective

Generative process를 직관적으로 설명하면 크게 두 과정으로 이야기해볼 수 있다.

  1. 노이즈가 낀 상태인 xt\textbf x_{t}에서 초기 이미지인 x0\textbf x_{0}를 추론한다.
  2. DDIM의 forward process(qσ(xt1xt,x0)q_\sigma(\textbf{x}_{t-1}|\textbf{x}_{t}, \textbf{x}_{0}))를 이용해서 이전 단계의 이미지를 추론한다.

순서대로 이야기하겠다.

1. 노이즈가 낀 상태인 xt\textbf x_{t}에서 초기 이미지인 x0\textbf x_{0}를 추론한다.

Time step tt일 때 추론한 노이즈를 xt\textbf x_t에서 빼면서 x0\textbf x_0를 계산한다.

fθ(t)(xt)=(xt1αtϵθ(t)(xt))/αtf_\theta^{(t)}(\textbf x_{t})=(\textbf x_{t}-\sqrt{1-\alpha_t}\cdot\epsilon_\theta^{(t)}(\textbf x_{t}))/\sqrt{\alpha_t}

2. DDIM의 forward process(qσ(xt1xt,x0)q_\sigma(\textbf{x}_{t-1}|\textbf{x}_{t}, \textbf{x}_{0}))를 이용해서 이전 단계의 이미지를 추론한다.

위에서 x0\textbf x_{0}를 추론하는 fθ(t)(xt)f_\theta^{(t)}(\textbf x_{t})를 정의했다. 이 함수를 forward의 condition에 있는 x0\textbf x_{0}를 대신하여 넣어주면서 generative process를 다음과 같이 정의한다.

새롭게 정의된 pθ(t)(xt1xt)p_\theta^{(t)}(\textbf x_{t-1}|\textbf x_{t})는 objective function을 정의할 때 이용된다.

이렇게 정의한 objective function JσJ_\sigma는 DDPM의 objective function인 LγL_\gamma에서 γ=1\gamma=1인 경우와 동일하다. 여기서 γ\gamma는 DDPM 논문에서 simplify하는 과정에서 1로 대체되는 값으로, DDPM의 objective function은 L1L_1이고 DDIM과 동일하다.

DDPM의 γ=1\gamma=1 다시 보기

아래 보이는 식이 DDPM의 Lt1L_{t-1}ϵ,ϵθ\epsilon, \epsilon_\theta로 풀어서 정리한 형태이다.

식에서 standard gaussian에서 샘플링한 노이즈(ϵ\epsilon)와 예측한 노이즈(ϵθ\epsilon_\theta)에 대한 MSE 앞에 α,β,σ\alpha, \beta, \sigma로 구성된 항을 볼 수 있는데 이 부분이 DDIM에서 γ\gamma로 표현된 부분이며 DDPM 논문에서는 weighted variational bound라고 한다.

이 부분의 영향은 standard variational bound에 비해서 recontruction의 다른 측면을 강조하는 것이라고 한다. 이 항을 1로 고정시키는 것은 time step tt가 작을 때의 weight를 줄이는 동시에 tt가 클 때의 비중을 높여서 더 어려운 denoising task에서 득이 된다고 한다.

이런 목적으로 simplify한 DDPM의 objective는 다음과 같다.

Sampling from generalized generative process

지금까지 새로 정의한 Non-markovian process를 바탕으로 reverse process를 비롯해서 objective function까지 DDPM을 표현할 수 있음을 이야기했고, 이것을 근거로 사전 학습된 DDPM을 이용해도 문제가 없다는 것을 강조한다. 그리고 σ\sigma에 따라 generative process의 형태가 달라지기 때문에 적절한 σ\sigma를 찾는데 집중한다.

Denoising Diffusion Implicit Models

샘플 xtx_t에서 xt1x_{t-1}를 생성해내는 식은 다음과 같다.

이 식은 reverse process를 정의할 때 t1t\neq1인 경우에 해당하는 식과 동일하다. 여기서 주목할 점은 σ\sigma이다. σ=(1αt1)/(1αt)1αt/αt1\sigma=\sqrt{(1-\alpha_{t-1})/(1-\alpha_t)}\cdot\sqrt{1-\alpha_t/\alpha_{t-1}}인 경우에는 forward process가 markovian이 되기 때문에 DDPM과 같아진다.

다른 경우로 σ=0\sigma=0일 때는 식의 가장 우측의 random noise 항이 사라지면서 이 항이 담당하는 무작위성이 사라지게 된다. 즉 xt\textbf x_t에서 일정한(consistent) 샘플이 추출된다는 의미이며 이를 deterministic하다고 표현하고, 이런 모델을 implicit model이라고 한다. 따라서 σ=0\sigma=0인 경우에 DDIM이 된다.

Accelerated generation process

위에서 denoising objective L1L_1을 정의했다. 이 식이 다른 식에 의존하지 않고 qσ(xtx0)q_\sigma(\textbf x_t|\textbf x_0)가 변하지 않는다면, 모델을 바꾸지 않고 TT보다 짧은 길이로 forward process를 정의할 수 있다. 그리고 forward process에 대응되는 generative process를 가속화할 수 있다.

가속화하는 방법은 몇 개의 노드를 뛰어 넘는 generative process를 정의하는 것이다. 과정을 설명하기 전에 사용된 기호들을 이야기하겠다.

  • τ\tau: [1,...,T][1,...,T]의 sub-sequence이며 총 길이가 S인 배열이다.
  • τˉ\bar\tau: [1,...,T][1,...,T]에서 τ\tau를 제외한 나머지 배열이다.
  • τS\tau_S: TT이다.

새로운 sequencial forward process는 샘플링하고자 하는 latent variables xτ1,...,xτS\textbf x_{\tau_1},...,\textbf x_{\tau_S}에 대해서 정의하며, 이 역순으로 generative process를 수행하게 된다.

+ 건너 뛰면서 샘플링이 가능한 이유 (Appendix C.1 내용)

forward process

가속화하기 위해서는 다음과 같이 샘플링하려는 time step인 τ\tau를 이용해서 forward process를 재구성한다.

논문에서는 이 부분을 직관적으로 표현하면 {xτi}i=1S\{x_{\tau_i}\}^S_{i=1}x0x_0는 graphical model 중 chain의 형태이고 {xt}tτˉ\{x_t\}_{t\in\bar\tau}x0x_0와 star의 형태라고 이야기한다.

이 말은 샘플링하려는 latent variables는 non markovian이지만 이전 상태를 알아야 하는 구조이기 때문에 그런 것 같고, 나머지에 대해서는 x0x_0만 있으면 계산해낼 수 있기 때문인 것 같다.

Generative process

Generative process는 다음과 같이 정의된다.

이 식에서 실제로 이용되는 부분은 표기되어 있는 우변의 첫 번째 항이다. pθp_\thetaqσ,τq_{\sigma, \tau}fθ(t)f_\theta^{(t)}로 표현할 수 있다.

이렇게 {xτi}i=1S\{x_{\tau_i}\}^S_{i=1}{xt}tτˉ\{x_t\}_{t\in\bar\tau}로 나눠서 정의된 식으로 variational objective JJ을 구성해도 기존의 LγL_\gamma와 동일하게 변환이 된다.

profile
🤨 내가 한 거

0개의 댓글

관련 채용 정보