Denoising Diffusion Probabilistic Models

Hyunsoo Lee·2023년 1월 22일
0

Generative Model

목록 보기
3/5
post-thumbnail

최근에 많은 연구가 이루어지고 있는 Diffusion Model 이 가장 먼저 제안된 논문 (Ho et al., 2020)을 리뷰해 보았다. Diffusion model 은 2020년에 처음 제안되었으며, 앞으로의 모든 포스팅에서 이 논문에서 제안된 Diffusion model 을 DDPM (Denoising Diffusion Probabilistic Model) 으로 표기할 예정이다.

1. Introduction

GAN, VAE, Flow model 과 같은 Deep generative model 들은 다양한 data 에 대해 높은 quality 의 sample 들을 생성하였다. 이미지 및 오디오를 합성하기까지 했으며, energy-based modeling 과 score matching 방법을 이용해서 GAN 의 성능을 넘어선 발전을 이루기도 하였다.

이 논문에서는 Diffusion probabilistic model (이하 “diffusion model”) 에 대해 소개한다. Diffusion model 은 매개화된 마르코프 체인으로, 일정한 시간 간격 이후의 data에 대응(match) 되는 sample 을 생성하는 variational inference 를 이용해 학습되었다. Chain 간의 transition 은 diffusion process 를 역행하도록 학습된다. 이 때 Diffusion process 란, signal 이 사라지지 않을 때 까지 data 에 noise 를 추가하는 마르코프 체인 과정을 의미하며, noise 는 sampling 과정의 역순으로 추가된다. 만약 diffusion 과정에서 작은 gaussian noise 가 지속적으로 더해진다면, sampling 이 일어나는 chain transition 을 conditional gaussian noise 가 추가되는 과정으로 볼 수 있으며 인공 신경망 매개화를 부분적으로 적용할 수 있다.

Diffusion model 은 straightforward 하게 정의되며 효율적으로 학습시킬 수 있지만, (논문이 쓰여진 시점 기준) 현재로서는 해당 모델이 높은 quality 의 sample 을 생성한다고 보장할 수는 없다. 따라서 이 논문에서는 diffusion model 이 충분히 높은 quality 의 sample 을 생성할 수 있으며, 때로는 4. 절에 제시되어 있는 기존 생성 모델보다 더 나은 결과를 산출한다는 것을 보일 것이다. 더 나아가, diffusion model 에 특정한 매개화를 적용하는 경우는 다음 두 가지 case 와 동치 (equivalent) 임을 보인다.

  • 1) Diffusion model 의 학습 (Training) 과정이, multiple noise 에 대한 denoising score matching 와 동치
  • 2) Diffusion model 의 sampling 과정이, annealed Langevin dynamics 와 동치

논문의 저자들은 4.2 절에 소개된 매개화 기법을 이용해 가장 좋은 sampling quality 를 얻었으며, 위에 나타난 동치성을 이 논문의 주요 성과로 소개하고 있다.

Diffusion model 은 양질의 sample 을 생성함에도 불구하고, likelihood 를 기반으로 하는 다른 모델들과 경쟁할 만한 log-likelihood 를 가지지 않는다. 또한, Diffusion model 은 이미지의 미세한 부분까지 묘사할 수 있음을 발견하였다. 논문에서는 현상을 ‘손실 압축 (lossy compression)' 이라는 개념을 이용해 더 정교하게 분석하며, diffusion model 의 sampling 과정은 progressive decoding1 의 한 종류임을 보인다. 이는 순차적으로 일어나는 autoregressive decoding2 과 유사하며 autoregressive model 에서 일반적으로 나타날 수 있는 현상을 일반화하는 형태이다.

2. Background

Diffusion model 은 latent variable 을 가지는 model 이며, 그 형태는 다음과 같다.

pθ(x0)pθ(x0:T)dx1:Tp_\theta\left(\mathbf{x}_0\right)≔ \int{p_{\theta}(\mathbf{x}_{0:T})d\mathbf{x}_{1:T}}

위 식에서 x1,x2,,xT\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_T 는 data x0q(x0)\mathbf{x}_0\sim q\left(\mathbf{x}_0\right) 와 같은 차원을 가지는 latent variables 이다. pθ(x0:T)p_\theta\left(\mathbf{x}_{0:T}\right) 는 joint distribution 으로 reverse process 라고 지칭하며, Gaussian transition 들로 학습된 마르코프 체인으로 정의된다. 이 때 Gaussian transition 은 다음과 같이 정의된다.

pθ(x0:T)p(xT)t=1Tpθ(xt1xt)p_\theta\left(\mathbf{x}_{0:T}\right)≔p(\mathbf{x}_T) \prod_{t=1}^T{p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_t)}
p(xT)=N(xT:0,I)p\left(\mathbf{x}_T\right)=\mathcal{N}\left(\mathbf{x}_{T}:\mathbf{0},\mathbf{I}\right)
pθ(xt1|xt)N(xt1;μθ(xt,t),Σθ(xt,t))p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)≔ \mathcal{N}(\mathbf{x}_{t-1}; \mathbf{\mu}_{\theta}(\mathbf{x}_t, t), \mathbf{\Sigma}_{\theta} (\mathbf{x}_t, t))

Diffusion model 과 다른 latent variable model 과의 차이점은 approximate posterior q(x1:T|x0)q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right) 에 있으며, 이를 forward pass 또는 diffusion process 라고 한다. 이는 Gaussian noise 를 지속적으로 더하는 마르코프 체인 과정을 따르며, gaussian noise 의 variance 는 β1,β2,,βT\beta_1,\beta_2,\cdots,\beta_T 에 의해 결정된다. 구체적인 수식은 다음과 같다.

q(x1:T|x0)t=1Tq(xtxt1)q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)≔\prod^T_{t=1} {q(\mathbf{x}_t | \mathbf{x}_{t-1})}
q(xt|xt1)N(xt:1βtxt1,βtI)q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)≔\mathcal{N}\left(\mathbf{x}_{t}:\sqrt{1-\beta_t} \mathbf{x}_{t-1}, \beta_t \mathbf{I}\right)
x0q(x0)\mathbf{x}_0\sim q\left(\mathbf{x}_0\right)

즉, 우리가 이미지를 얻기 위해서는 q(xt1|xt){q}\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) 의 값이 필요하지만, 이 값은 intractable 하다. 따라서 이를 parameterized neural network pθ{p}_{\theta} 를 이용해 표현하는 것이다. 뒤에서 다루겠지만, 현 시점에서 정성적으로 논해 보자면 pθ(xt1|xt){p}_{\theta}\left(\mathbf{x}_{{t}-{1}}\middle|\mathbf{x}_{t}\right)q(xt1|xt){q}\left(\mathbf{x}_{{t}-{1}}\middle|\mathbf{x}_{t}\right) 의 ‘거리’ 를 가깝게 하는 것이 최종적인 학습의 목표이며, 이를 위해 다양한 trick 을 사용해 computational advantage 를 부여한다. 3. 절 및 4.3. 절에서 이와 관련된 추가적인 논의를 진행한다.

모델 학습은 negative log-likelihood 로 정의된 일반적인 variational bound 를 최소화시키는 방향으로 진행된다. 수식으로 나타내면 아래와 같다.

E[logpθ(x0)] Eq[logpθ(x0:T)q(x1:T|x0)]=Eq[logp(xT)t1logpθ(xt1|xt)qθ(xt|xt1)] =∶ L\mathbb{E}\left[-\log{p_\theta\left(\mathbf{x}_\mathbf{0}\right)}\right]\ \le\mathbb{E}_q\left[-\log{\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}}\right]=\mathbb{E}_q\left[-\log{p\left(\mathbf{x}_T\right)}-\sum_{t\geq1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q_\theta\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)}}\right]\ =∶ \ L

부등호는 Jensen’s inequality 에 의해 성립한다. 또는 KL-Divergence 를 이용해서도 부등호가 성립함을 보일 수 있다.3


1) Jensen’s inequality 이용

E[logpθ(x0)]=Eq(x0)[logpθ(x0)]\mathbb{E}\left[-\log{p_\theta\left(\mathbf{x}_{0}\right)}\right]=\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{p_\theta\left(\mathbf{x}_{0}\right)}\right]

이 때 pθ(x0)p_\theta\left(\mathbf{x}_0\right) 의 정의에 의해

Eq(x0)[logpθ(x0)]=Eq(x0)[logpθ(x0:T)dx1:T]\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{p_\theta\left(\mathbf{x}_{0}\right)}\right]=\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{\int{{p}_\theta\left(\mathbf{x}_{0:T}\right)d\mathbf{x}_{1:T}}}\right]

가 성립한다. 식을 적절히 변형하면

Eq(x0)[log(pθ(x0:T)dx1:T)] =Eq(x0)[log(pθ(x0:T)q(x1:T|x0)q(x1:T|x0)dx1:T)]\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{\left(\int{{p}_\theta\left(\mathbf{x}_{0:T}\right)d\mathbf{x}_{1:T}}\right)}\right]\ =\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{\left(\int{\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)d\mathbf{x}_{1:T}}\right)}\right]
=Eq(x0)[log(Eq(x1:T|x0)[pθ(x0:T)q(x1:T|x0)])]=\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{\left(\mathbb{E}_{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\left[\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\right]\right)}\right]

logx-\log{x} 는 convex function 이므로, Jensen’s inequality 에 의해

Eq(x0)[log(Eq(x1:T|x0)[pθ(x0:T)q(x1:T|x0)])] Eq[log(pθ(x0:T)q(x1:T|x0))]\mathbb{E}_{q(\mathbf{x}_0)}\left[-\log{\left(\mathbb{E}_{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\left[\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\right]\right)}\right]\ \le\mathbb{E}_q\left[-\log{\left(\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\right)}\right]

가 성립한다.

2) KL-Divergence 이용

이 부분은 VAE 의 lower bound 를 증명하는 부분과 유사하다. Diffusion model 이 auto-regressive model 인 점과 Figure 2. 로부터, VAE의 latent variable ZZ 가 여기서는 x1:T\mathbf{x}_{1:T} 에 해당되고 VAE data point XiX_ix0\mathbf{x}_0 에 대응된다고 생각하면 그 과정은 동일하다.

DKL (q(x1:Tx0) pθ(x1:T|x0))=Ex1:Tq(x1:T|x0)(log(q(x1:T|x0))log(pθ(x1:T|x0)))D_{KL}\ (q(\mathbf{x}_{1:T}|\mathbf{x}_0)||\ p_\theta\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right))=\mathbb{E}_{\mathbf{x}_{\mathbf{1}:\mathbf{T}}\sim q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}(\log{\left(q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)\right)}-\log{(p_\theta\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}))

이 때 pθ(x1:T|x0)p_\theta\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right) 을 살펴보면

pθ(x1:T|x0)=pθ(x1:T, x0)pθ(x0)=pθ(x0:T)pθ(x0)p_\theta\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)=\frac{p_\theta(\mathbf{x}_{1:T},\ \mathbf{x}_0)}{p_\theta\left(\mathbf{x}_0\right)}=\frac{p_\theta(\mathbf{x}_{0:T})}{p_\theta\left(\mathbf{x}_0\right)}

가 성립한다. 이를 대입하면,

DKL (q(x1:Tx0) pθ(x1:T|x0))=Eq[log(pθ(x0:T)q(x1:T|x0))+logpθ(x0)]0D_{\text{KL}}\ (q(\mathbf{x}_{1:T}|\mathbf{x}_0)||\ p_\theta\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right))=\mathbb{E}_q\left[-\log{\left(\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\right)}+\log{p_\theta\left(\mathbf{x}_0\right)}\right]\geq\mathbf{0}

가 성립한다 (KL-Divergence 가 non-negative 라는 성질을 이용하였다). 따라서,

E[logpθ(x0)] Eq[log(pθ(x0:T)q(x1:T|x0))]\mathbb{E}\left[-\log{p_\theta\left(\mathbf{x}_\mathbf{0}\right)}\right]\ \le\mathbb{E}_q\left[-\log{\left(\frac{p_\theta\left(\mathbf{x}_{0:T}\right)}{q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right)}\right)}\right]

가 성립한다.


등호는 pθ(x0:T),q(x1:T|x0)p_\theta\left(\mathbf{x}_{0:T}\right), q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right) 의 정의에 의해 성립한다.

Forward process 의 분산 βt\beta_t 는 재매개화 (reparameterization) 을 통해 학습되거나 모델의 hyperparameter 로써 상수로 유지될 수도 있다. 또한 reverse process pθ(x0:T)p_\theta\left(\mathbf{x}_{0:T}\right) 의 expressiveness (표현력, 여기서는 performance 와 유사한 개념으로 해석) 는 pθ(xt1|xt)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) 가 나타내는 conditional gaussian distribution 에 의존한다. βt\beta_t 가 작을 때, forward / reverse process 모두 같은 함수 형태를 나타내기 때문이다. Forward process 의 중요한 특징은, 임의의 timestep tt 에서 xt\mathbf{x}_t 를 sampling 한 결과를 closed form 으로 나타낼 수 있다는 점이다. αt1βt\alpha_t≔1-\beta_t, αtˉ ∶=s=1tαs\bar{\alpha_t} \ ∶= \prod_{s=1}^{t}\alpha_s 로 치환하면

q(xt|x0)=N(xt:αtˉx0,(1 αtˉ)I)q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right)=\mathcal{N}\left(\mathbf{x}_t:\sqrt{\bar{\alpha_t}}\mathbf{x}_0,\left(1-\ \bar{\alpha_t}\right)\mathbf{I}\right)

으로 나타낼 수 있다. 이에 대한 증명은 다음과 같다.3


Reparameterization trick 을 이용해 증명할 수 있다.

q(xt|xt1)N(xt:1βtxt1,βtI)q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)≔\mathcal{N}(\mathbf{x}_t : \sqrt{1-\beta_t} \mathbf{x}_{t-1}, \beta_t \mathbf{I})

와 같이 정의되어 있음을 이용하자. ϵt1,ϵt2,N(0,I)\epsilon_{t-1},\epsilon_{t-2},\cdots\sim\mathcal{N}\left(\mathbf{0},\mathbf{I}\right) 라고 하자 (단, ϵt1,ϵt2,\epsilon_{t-1},\epsilon_{t-2},\cdots are independent).
xt\mathbf{x}_txt1\mathbf{x}_{t-1} 를 이용해 나타내면

xt=αtxt1+1αtϵt1\mathbf{x}_t=\sqrt{\alpha_t}\mathbf{x}_{t-1}+\sqrt{1-\alpha_t}\epsilon_{t-1}

마찬가지로 xt1\mathbf{x}_{t-1}xt2\mathbf{x}_{t-2} 를 이용해 나타내면

xt1=αt1xt2+1αt1ϵt2\mathbf{x}_{t-1}=\sqrt{\alpha_{t-1}}\mathbf{x}_{t-2}+\sqrt{1-\alpha_{t-1}}\epsilon_{t-2}

이제 xt\mathbf{x}_txt2\mathbf{x}_{t-2} 를 이용해 나타내면

xt=αtαt1xt2+1αtϵt1+αt1αt1ϵt2\mathbf{x}_t=\sqrt{\alpha_t\alpha_{t-1}}\mathbf{x}_{t-2}+\sqrt{1-\alpha_t}\epsilon_{t-1}+\sqrt{\alpha_t}\sqrt{1-\alpha_{t-1}}\epsilon_{t-2}

이 때

1αtϵt1+αt1αt1ϵt21αtαt1ϵˉt2\frac{\sqrt{1-\alpha_t}\epsilon_{t-1}+\sqrt{\alpha_t}\sqrt{1-\alpha_{t-1}}\epsilon_{t-2}}{\sqrt{1-\alpha_t\alpha_{t-1}}}≔\bar{\epsilon}_{t-2}

로 정의하면 여전히

ϵˉt2N(0,I)\bar{\epsilon}_{t-2} \sim\mathcal{N}\left(\mathbf{0},\mathbf{I}\right)

이다.

위 과정을 귀납적으로 적용해, xt\mathbf{x}_tx0\mathbf{x}_0 를 이용해 나타내면 ϵ0ˉN(0,I)\bar{\epsilon_0}\sim\mathcal{N}\left(\mathbf{0},\mathbf{I}\right) 에 대해

xt=αtˉx0+1αtˉϵ0ˉ\mathbf{x}_t=\sqrt{\bar{\alpha_t}}\mathbf{x}_0+\sqrt{1-\bar{\alpha_t}}\bar{\epsilon_0}

가 성립한다.

q(xt|x0)=N(xt:αtˉx0,(1 αtˉ)I)\therefore q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right)=\mathcal{N}\left(\mathbf{x}_t:\sqrt{\bar{\alpha_t}}\mathbf{x}_0,\left(1-\ \bar{\alpha_t}\right)\mathbf{I}\right)

목적 함수 L의 각 항을 SGD 를 이용해 최적화함으로써 training 을 진행한다. L의 각 항을 KL-Divergence 를 이용해 다시 쓰면 아래와 같다.

Eq[DKL(q(xT|x0)|p(xT))LT+t>1DKL(q(xt1|xt, x0)|pθ(xt1|xt))Lt1 logpθ (x0 | x1)L0]\mathbb{E}_q\left[{\underbrace{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\middle|\mathbf{x}_0\right)\middle| p\left(\mathbf{x}_T\right)\right)}}_{L_T}+\sum_{t>1}{\underbrace{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\ \mathbf{x}_0\right)\middle|| p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\right)}}_{L_{t-1}}\ {\underbrace{-\log{p_\theta\ \left(\mathbf{x}_0\ \middle|\ \mathbf{x}_1\right)}}}_{L_0}\right]

위 식을 유도하는 자세한 과정은 부록 A. 에 나타나 있다. 과정을 나타내면 아래와 같다.


L = Eq[log(pθ(x0:T)q(x1:T|x0))]=Eq[logp(xT) t  1logpθ(xt1|xt)q(xt|xt1)]L\ =\ \mathbb{E}_q\left[-\log{\left(\frac{p_\theta\left(\mathbf{x}_{{0}:{T}}\right)}{q\left(\mathbf{x}_{{1}:{T}}\middle|\mathbf{x}_{0}\right)}\right)}\right]=\mathbb{E}_{q}\left[-\log{p\left(\mathbf{x}_T\right)}\ -\sum_{t\ \geq\ 1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)}}\right]

두 번째 등호는 2. Background 에서 정의한 pθ(x0:T)p_\theta\left(\mathbf{x}_{0:T}\right)q(x1:T|x0)q\left(\mathbf{x}_{1:T}\middle|\mathbf{x}_0\right) 의 정의로부터 성립한다. 식을 이어서 전개해 나가자. Σ\Sigma 에서 t=1t=1 에 해당하는 항을 별도의 항으로 분리하면,

L = Eq[logp(xT) t >1logpθ(xt1|xt)q(xt|xt1)logpθ(x0|x1)q(x1|x0)]L\ =\ \mathbb{E}_q\left[-\log{p\left(\mathbf{x}_T\right)}\ -\sum_{t\ >1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)}}-\log{\frac{p_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_1\right)}{q\left(\mathbf{x}_1\middle|\mathbf{x}_0\right)}}\right]

조건부 확률의 성질에 의해

L=Eq[logp(xT) t >1logpθ(xt1|xt)q(xt1|xt, x0)q(xt1|x0)q(xt|x0)logpθ(x0|x1)q(x1|x0)]L=\mathbb{E}_q\left[-\log{p\left(\mathbf{x}_T\right)}\ -\sum_{t\ >1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\ \mathbf{x}_0\right)}\cdot\frac{q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_0\right)}{q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right)}}-\log{\frac{p_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_1\right)}{q\left(\mathbf{x}_1\middle|\mathbf{x}_0\right)}}\right]

log 의 성질과 telescoping 을 통해 식을 정리하면 아래 식이 성립한다.

L=Eq[logp(xT)q(xT|x0) t >1logpθ(xt1|xt)q(xt1|xt, x0)logpθ(x0|x1)]L=\mathbb{E}_q\left[-\log{\frac{p\left(\mathbf{x}_T\right)}{q\left(\mathbf{x}_T\middle|\mathbf{x}_0\right)}}\ -\sum_{t\ >1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\ \mathbf{x}_0\right)}}-\log{p_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_1\right)}\right]

마지막으로 KL-Divergence 의 정의를 이용하면,

Eq[DKL(q(xT|x0)|p(xT))+t>1DKL(q(xt1|xt, x0)|pθ(xt1|xt))logpθ (x0 | x1)]\mathbb{E}_q\left[D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\middle|\mathbf{x}_0\right)\middle| p\left(\mathbf{x}_T\right)\right)+\sum_{t>1}{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\ \mathbf{x}_0\right)\middle|| p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\right)}-\log{p_\theta\ \left(\mathbf{x}_0\ \middle|\ \mathbf{x}_1\right)}\right]

결과적으로 KL-Divergence 를 이용한 식에서, forward process 의 posterior q(xt1|xt)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) (measure 할 수 없는 값) 와 pθ(xt1|xt)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) 를 직접적으로 비교할 수 있다. Posterior 는 q(xt1|xt)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) 자체로는 계산할 수 없지만, x0\mathbf{x}_0 에 대한 condition 이 주어졌을 때 베이즈 정리를 이용해 계산 가능하며 그 값은 아래와 같다.

q(xt1|xt,x0)=q(xt|xt1,x0)q(xt1|x0)q(xt|x0)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right)=\frac{q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1},\mathbf{x}_0\right)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_0\right)}{q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right)}

then

q(xt1|xt,x0)=N(xt1;μtˉ(xt,x0),βtˉI)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right)=\mathcal{N}\left(\mathbf{x}_{t-1};\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_0\right),\bar{\beta_t} \mathbf{I}\right)

where

μtˉ(xt,x0)αˉt1βt1αˉtx0+αt(1αˉt1)1αˉtxt\bar{\mathbf{\mu}_{t}}\left(\mathbf{x}_t,\mathbf{x}_0\right)≔ \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}\mathbf{x}_0 + \frac{\sqrt{\alpha_t} (1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t} \mathbf{x}_t

and

βtˉ1αˉt11αˉtβt\bar{\beta_t}≔\frac{1-\bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t}\beta_t

3. Diffusion models and denoising autoencoders

Diffusion model 은 마치 latent variable model 중 제한된 일부만을 나타내는 것처럼 보이지만, 그 구현에 있어서는 자유도가 매우 높다. 구현을 위해서는 다음과 같은 값들을 결정해야 한다.

  • 1) 분산 βt\beta_t
  • 2) 모델 구조
  • 3) Reverse process 에서 나타나는 Gaussian distribution 의 매개화 (μθ(xt,t),Σθ(xt,t)\mathbf{\mu}_\theta\left(\mathbf{x}_{t},t\right),\mathbf{\Sigma}_\theta\left(\mathbf{x}_{t},t\right) 부분)

논문의 경우, diffusion model 과 denoising score matching 간의 직접적인 연결을 도입하였으며, 이를 통해 simplified, weighted variational bound L=LT+t=1T1Lt+L0L=L_T+\sum_{t=1}^{T-1}L_t+L_0 를 유도하였다. 이러한 design 이 적합함을 단순함 (simplicity)과 경험적인 결과 측면에서 보였다.

3.1. Forward process and LT{L}_{T}

우선, 3.1. 에서는 βt\beta_t 를 모두 학습 불가능한 상수로 가정한다. 따라서 이 경우 approximate posterior q(x1:T|x0)q\left(\mathbf{x}_{{1}:{T}}\middle|\mathbf{x}_0\right) 에는 학습 가능한 파라미터가 존재하지 않으므로 (q(x0)q\left(\mathbf{x}_0\right) 의 경우 Data 의 분포이므로 역시 학습가능한 파라미터에서는 제외된다), 그 값은 상수이며 LTL_T 역시 학습이 진행되는 전 과정에서 상수이다. 따라서 optimization 관점에서는 LTL_T 가 무시될 수 있다.

3.2. Reverse process and L1:T1{L}_{1:T-1}

3.2.1. Training

이제 1 < t T1\ <\ t\ \le T 에 대해, pθ(xt1|xt)N(xt1:μθ(xt,t),Σθ(xt,t))p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)≔\mathcal{N}(\mathbf{x}_{t-1}: \mathbf{\mu}_{\theta}(\mathbf{x}_t, t), \mathbf{\Sigma}_{\theta}(\mathbf{x}_t, t)) 를 결정하는 과정을 살펴보자. 첫 번째로,

Σθ(xt,t)=σt2I\mathbf{\Sigma}_\theta\left(\mathbf{x}_{t},t\right)=\sigma_t^2\mathbf{I}

와 같이 timestep 에만 의존하고 학습되지 않는 상수로 두자. σt2\sigma_t^2 값의 경우, 두 가지 값 (βt\beta_t1αˉt11αˉtβt\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t)을 모두 시도해 본 결과 유의미한 차이는 나타나지 않았다.

두 번째로,

μθ(xt,t)\mathbf{\mu}_\theta\left(\mathbf{x}_{t},t\right)

을 고려해 보자. 위 항의 경우, 특정한 매개화를 통해 나타낼 수 있으며 (θ\theta에 대해 parameterized 된 neural networks 를 이용) 매개화 된 모델은 위에서 계산한 forward process posterior mean μtˉ(xt,x0)\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_{0}\right) 를 예측한다. KL-Divergence 의 정의를 생각해 보았을 때 t=2, 3, , Tt=2,\ 3,\ \cdots,\ T 에 대해 두 분포 q(xt1|xt,x0)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right)pθ(xt1|xt)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) 의 ‘거리’ 가 가까워야 하므로 pθp_\theta의 평균값이 q(xt1|xt,x0)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right) 의 평균값 μtˉ(xt,x0)\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_{0}\right) 와 ‘가까워져야’ 하는 것이다.

결과적으로 pθ(xt1|xt)N(xt1:μθ(xt,t),σt2I)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)≔\mathcal{N}(\mathbf{x}_{t-1}:\mathbf{\mu}_{\theta}(\mathbf{x}_t, t), \sigma_t^2 \mathbf{I}), q(xt1|xt,x0)=N(xt1: μtˉ(xt,x0), βtˉI)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right)=\mathcal{N}\left(\mathbf{x}_{{t}-{1}}:\ \bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_{0}\right),\ \bar{\beta_t}\mathbf{I}\right) 에 대해 Lt1L_{t-1}

Lt1=Eq[12σt2μtˉ(xt,x0)μθ(xt,t)2]+CL_{t-1}=\mathbb{E}_q\left[\frac{1}{2\sigma_t^2}\left|\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_0\right)-\mathbf{\mu}_\theta\left(\mathbf{x}_t,t\right)\right|^2\right]+C

와 같이 나타낼 수 있다. 이 과정에서 다음 식이 사용된다.


원래 Lt1L_{t-1} 은 KL-Divergence 형태였음을 기억하자.

DKL(N(μ1,Σ1)  N(μ2,Σ2)) =12(log(detΣ2detΣ1)d+tr(Σ21Σ1)+(μ2μ1)Σ21(μ2μ1))D_{\text{KL}}(\mathcal{N}(\mu_1,\mathrm{\Sigma}_1)\ ||\ \mathcal{N}(\mu_2,\mathrm{\Sigma}_2))\ =\frac{1}{2}\left(\log\left(\frac{\det{\mathrm{\Sigma}_2}}{\det{\mathrm{\Sigma}_1}}\right)-d+\text{tr}\left(\mathrm{\Sigma}_2^{-1}\mathrm{\Sigma}_1\right)+\left(\mu_2-\mu_1\right)^{\intercal}\mathrm{\Sigma}_2^{-1}\left(\mu_2-\mu_1\right)\right)

위 식에 pθ(xt1|xt)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right), q(xt1|xt,x0)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right) 의 정규분포 식을 대입하면 Lt1L_{t-1} 에 대한 식을 얻을 수 있다.


CC는 parameter θ\theta에 의존하지 않는 항들을 모두 expectation 밖으로 정리한 상수이다. 이 때 위 식을 더욱 계산하기 적합한 형태로 정리할 수 있다. q(xt|x0)=N(xt:αtˉx0,(1 αtˉ)I)q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right)=\mathcal{N}\left(\mathbf{x}_t:\sqrt{\bar{\alpha_t}}\mathbf{x}_0,\left(1-\ \bar{\alpha_t}\right)\mathbf{I}\right) 에 reparameterization trick 을 적용해 보자. ϵN(0,I)\mathbf{\epsilon}\sim\mathcal{N}\left(\mathbf{0},\mathbf{I}\right) 에 대해 xt(x0,ϵ)=αtˉx0+1αtˉϵ\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right)=\sqrt{\bar{\alpha_t}}\mathbf{x}_0+\sqrt{1-\bar{\alpha_t}}\mathbf{\epsilon} 로 치환하면

Lt1C=Ex0,ϵ[12σt2μtˉ(xt(x0,ϵ),1αtˉ(xt(x0,ϵ)1αtˉϵ))μθ(xt(x0,ϵ),t)2]L_{t-1}-C=\mathbb{E}_{\mathbf{x}_0,\mathbf{\epsilon}}\left[\frac{1}{2\sigma_t^2}\left|\bar{\mathbf{\mu}_{t}}\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right),\frac{1}{\sqrt{\bar{\alpha_t}}}\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right)-\sqrt{1-\bar{\alpha_t}}\mathbf{\epsilon}\right)\right)-\mathbf{\mu}_\theta\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right),t\right)\right|^2\right]
=Ex0,ϵ[12σt21αt(xt(x0,ϵ)βt1αtˉϵ)μθ(xt(x0,ϵ),t)2]=\mathbb{E}_{\mathbf{x}_0,\mathbf{\epsilon}}\left[\frac{1}{2\sigma_t^2}\left|\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right)-\frac{\beta_t}{\sqrt{1-\bar{\alpha_t}}}\mathbf{\epsilon}\right)-\mathbf{\mu}_\theta\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right),t\right)\right|^2\right]

Distribution qq에 대한 expectation 이 x0,ϵ\mathbf{x}_0,\mathbf{\epsilon} 에 대한 expectation 으로 치환된다. 첫 번째 등호는 단순히 변수 치환을 이용해 식을 전개한 것이고, 두 번째 등호의 경우 위에서 계산한 forward process posterior mean μtˉ(xt,x0)\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_\mathbf{0}\right) 에 대한 식을 대입해 계산한 결과이므로 성립한다.

Computational 관점에서 더욱 계산하기 간결한 형태로 정리할 수 있다. 위 식으로부터 매개화된 μθ\mathbf{\mu}_\theta 의 예측 결과값이

1αˉt(xtβt1 αtˉϵ)\frac{1}{\sqrt{\bar{\alpha}_t}}\left(\mathbf{x}_t-\frac{\beta_t}{\sqrt{1-\ \bar{\alpha_t}}}\mathbf{\epsilon}\right)

가 되어야 한다는 점을 알 수 있다. 아래 식과 같은 매개화를 생각하자. μθ\mathbf{\mu}_\thetaxt\mathbf{x}_t에 의존하므로, xt\mathbf{x}_t 로부터 우리가 가정한 분포 ϵ\mathbf{\epsilon}을 예측하는 functional approximator ϵθ\mathbf{\epsilon}_\theta network 를 생각하자. 즉 ϵθ\mathbf{\epsilon}_\theta 내부의 파라미터 값을 학습시켜, μθ\mathbf{\mu}_\theta 의 예측값이 목표한 값이 되도록 매개화 한 것이다.

μθ(xt,t)=μtˉ(xt,1αtˉ(xt1αtˉϵθ(xt)))=1αt(xt(x0,ϵ)βt1αtˉϵθ(xt))\mathbf{\mu}_{\theta}\left(x_t,t\right)=\bar{\mathbf{\mu}_{t}}\left(\mathbf{x}_t,\frac{1}{\sqrt{\bar{\alpha_t}}}\left(\mathbf{x}_t-\sqrt{1-\bar{\alpha_t}}\mathbf{\epsilon}_{\theta}\left(\mathbf{x}_{t}\right)\right)\right)=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t\left(\mathbf{x}_0,\mathbf{\epsilon}\right)-\frac{\beta_t}{\sqrt{1-\bar{\alpha_t}}}\mathbf{\epsilon}_\mathbf{\theta}\left(\mathbf{x}_{t}\right)\right)

첫 번째 등호는 xt=αtˉx0+1αtˉϵ\mathbf{x}_t=\sqrt{\bar{\alpha_t}}\mathbf{x}_0+\sqrt{1-\bar{\alpha_t}}\mathbf{\epsilon}x0\mathbf{x}_0에 대해 정리하고 μˉ\bar{\mu} 에 대입한 결과이고, 두 번째 등호는 모델의 예측값이

1 αtˉ(xtβt1 αtˉϵ)\frac{1}{\sqrt{\ \bar{\alpha_t}}}\left(\mathbf{x}_t-\frac{\beta_t}{\sqrt{1-\ \bar{\alpha_t}}}\mathbf{\epsilon}\right)

가 되어야 한다는 논리를 적용시킨 것이다. 위 수식을, Lt1L_{t-1} 을 전개한 식에 대입하면 Lt1CL_{t-1}-C 의 값은

Ex0,ϵ[βt22σt2αt(1αtˉ)ϵϵθ(αtˉx0+1αtˉϵ,t)2]\mathbb{E}_{\mathbf{x}_0,\mathbf{\epsilon}}\left[\frac{\beta_t^2}{2\sigma_t^2\alpha_t\left(1-\bar{\alpha_t}\right)}\left|\mathbf{\epsilon}-\mathbf{\epsilon}_\theta\left(\sqrt{\bar{\alpha_t}}\mathbf{x}_0+\sqrt{1-\bar{\alpha_t}}\mathbf{\epsilon},{t}\right)\right|^2\right]

와 같이 나타난다 (단, t=2, 3, , Tt=2,\ 3,\ \cdots,\ T). 위 식은 Langevin-like reverse process 의 variational bound 와 같다. 3.4. 절에서 더 간결한 형태의 training object 를 유도하고, 구체적인 학습 알고리즘에 대해 설명을 이어 나간다.

3.2.2. Sampling

이제 Sampling process 를 살펴보자. xt\mathbf{x}_t 로부터 xt1\mathbf{x}_{t-1} 을 sampling 하면 되므로 이에 관련된 분포를 다시 한번 살펴보자.

pθ(xt1|xt)N(xt1:μθ(xt,t),σt2I)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)≔\mathcal{N}(\mathbf{x}_{t-1}: \mathbf{\mu}_{\theta}(\mathbf{x}_t, t), \sigma_t^2 \mathbf{I})
μθ(xt,t)=1αt(xtβt1αtˉϵθ(xt,t))\mathbf{\mu}_\theta\left(\mathbf{x}_{t},t\right)=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha_t}}}\epsilon_\theta\left(\mathbf{x}_t,t\right)\right)

여기서도 reparameterization trick 을 사용하면 분포

zN(0,I)\mathbf{z}\sim\mathcal{N}\left(\mathbf{0},\mathbf{I}\right)

에 대해

xt1=1αt(xtβt1αtˉϵθ(xt,t))+σtz\mathbf{x}_{t-1}=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha_t}}}\epsilon_\theta\left(\mathbf{x}_t,t\right)\right)+\sigma_t\mathbf{z}

을 계산하는 과정이 바로 sampling 이다. ϵθ\mathbf{\epsilon}_\theta의 경우 train된 network 이므로 ϵθ(xt,t)\mathbf{\epsilon}_\theta\left(\mathbf{x}_t,t\right) 의 값은 direct 하게 구할 수 있다. t = T, T1, , 1t\ =\ T,\ T-1,\ \cdots,\ 1 에 대해 위 과정을 반복하며, 이를 pseudo-code 로 나타내면 아래와 같다.

3.2.3. Summary

Reverse process (noise 로부터 image 를 sampling 하는 과정) 은 두 가지 방법 중 하나를 이용해 학습시킬 수 있다.

1) θ\theta-parameterized reverse process mean function approximator μθ\mathbf{\mu}_\thetaq(xt1|xt,x0)q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\mathbf{x}_0\right) 의 평균값 μtˉ(xt,x0)\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_\mathbf{0}\right) 에 가까워지게 끔

2) 재매개화를 통해 functional approximator ϵθ\mathbf{\epsilon}_\theta network 를 학습시킨다 :

μtˉ(xt,x0)=1αt(xtβt1αˉtϵθ(xt,t))\bar{\mathbf{\mu}_t}\left(\mathbf{x}_t,\mathbf{x}_\mathbf{0}\right)=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\mathbf{\epsilon}_\theta\left(\mathbf{x}_t,t\right)\right)

위 두 가지 방법 모두 pθ(xt1|xt)p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right) 의 매개화를 이용하는 방법이다. 4. 절에서 2) 의 방법이 1)의 방법보다 더 효과적임을 보인다. 분포 ϵ\mathbf{\epsilon} 를 예측하도록 하는 것은 training 과정의 object ( = variational bound) 를 denoising score matching 의 object 와 동일하게 만들고, sampling 과정이 Langevin dynamics 가 되게 해 준다. 이 내용에 대해서는 Score-Based Generative Modeling through Stochastic Differential Equations 논문을 참고하자.

3.3. Data scaling, reverse process decoder, and L0{L}_{0}

모든 이미지의 픽셀 값은 [-1, 1] 로 scaling 되었다고 가정한다. 이는 p(xT)p\left(\mathbf{x}_T\right) 로부터 시작되는, 모든 reverse process 가 항상 scaling 된 input 에 대해 일어난다는 것을 보장한다. 또한 이산적인 log-likelihood 를 얻기 위해, reverse process 의 가장 마지막 과정 (x1\mathbf{x}_1 으로부터 x0\mathbf{x}_0 를 sampling 하는 과정) 은 정규분포 N(x0;μθ(x1,1),σ12I)\mathcal{N}\left(\mathbf{x}_0;\mathbf{\mu}_\theta\left(\mathbf{x}_1,1\right),\sigma_1^2\mathbf{I}\right)를 사용하는, 이전과 독립적인 discrete decoder 를 이용한다.

pθ(x0|x1)=i=1Dδ(x0i)δ+(x0i)N(x;μθi(x1,1),σ12)dxp_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_1\right)=\prod_{i=1}^{D}\int_{\delta_-\left(x_0^i\right)}^{\delta_+\left(x_0^i\right)}\mathcal{N}\left(x;\mu_\theta^i\left(\mathbf{x}_1,{1}\right),\sigma_1^2\right)dx

이 때

δ+(x) = {    if x=1 x+1255  if x<1 \delta_{+}(x)\ =\ \begin{cases}\ \infty\ \ &\ \text{if}\ x=1\ \\ x+\frac{1}{255}\ &\ \text{if}\ x<1\ \end{cases}
δ(x) = {     if x=1 x1255  if x>1 \delta_{-}(x)\ =\ \begin{cases}\ -\ \infty\ \ &\ \text{if}\ x=-1\ \\ x-\frac{1}{255}\ &\ \text{if}\ x>-1\ \end{cases}

D 는 데이터의 차원을 의미한다. 비록 conditional autoregressive model 처럼 매우 powerful 한 decoder 를 사용할 수도 있지만 이 논문에서는 해당 아이디어를 사용하지는 않았다. VAE 의 decoder 와 같이, 논문에서 정의한 decoder 는 Diffusion model 의 variational bound 가 data 에 별도로 noise 를 더하거나 log-likelihood 에 scaling 연산에 대한 야코비 행렬을 대입하지 않아도 이산적인 데이터의 lossless codelength 가 됨을 보장해 준다. Sampling 의 마지막 단계에서는 μθ(x1,1)\mu_\theta\left(\mathbf{x}_1,1\right)별도의 noise 를 추가하지 않고 이를 그대로 출력한다. 위 내용으로부터

L0=logpθ(x0|x1)L_0=-\log{p_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_1\right)}

를 얻을 수 있다.

3.4. Simplified training object

3.1. 절 부터 3.3. 절 까지의 과정을 통해 얻은 variational bound (Lt,L0L_t, L_0) 는 모두 θ\theta 에 대해 미분 가능하고 학습 과정에서 사용된다. 그러나, 아래 식과 같은 variational bound 의 ‘변형’ 을 이용해 학습한다면 더욱 간단한 구현 과정을 통해 동일한 performance 를 얻을 수 있음이 확인되었다.

Lsimple(θ)Et,x0,ϵ[ϵϵθ(αˉtx0+1αˉtϵ,t)2]L_{\mathrm{simple}}\left(\theta\right)≔\mathbb{E}_{t, \mathbf{x}_0, \mathbf{\epsilon}} [|| \mathbf{\epsilon} - \mathbf{\epsilon}_{\theta}(\sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t} \mathbf{\epsilon}, t)||^2]
for tUniform(1,,T)\text{for } t\sim\mathrm{Uniform}\left(1,\cdots,T\right)

결과적으로 Diffusion model 에 대한 Training object 는

EtUniform(1,,T),x0,ϵ[ϵϵθ(αˉtx0+1αˉtϵ,t)2]+Const\mathbb{E}_{t\sim\mathrm{Uniform}\left(1,\cdots,T\right),\mathbf{x}_0,\mathbf{\epsilon}}\left[||\mathbf{\epsilon}-\mathbf{\epsilon}_\theta\left(\sqrt{\bar{\alpha}_t}\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\mathbf{\epsilon},t\right)||^2\right]+\text{Const}

이다. Const 는 parameter θ\theta에 의존하지 않는 항들을 의미한다. SGD 를 이용해 학습을 진행할 때는 미분값

 ϵϵθ(αˉtx0+1αˉtϵ,t) 2   for tUniform(1, ,T)\nabla||\ \mathbf{\epsilon}-\mathbf{\epsilon}_\theta\left(\sqrt{\bar{\alpha}_t}\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\mathbf{\epsilon},t\right)\ ||^2\ \; \text{for } t ∼\text{Uniform}(1, \ \cdots,T)

을 계산하면 된다. Pseudo-code 는 아래와 같다.

학습시키고자 하는 network 는 ϵθ\mathbf{\epsilon}_\theta 임을 다시 한번 확인할 수 있다.

4. Experiments

모든 실험 과정에서 T=1000T=1000 으로 설정하였다. Forward process 의 분산 βt\beta_t 들은 모두 상수로 두었다. β1=104\beta_1={10}^{-4}, βT=0.02\beta_T=0.02 로 두고 다른 값들은 linear scale 로 계산하였다. 위 값들은 xT\mathbf{x}_T의 SNP 가 충분히 작은 값이 되게끔 설정한 값들이다.

LT=DKL(q(xt|x0)N(0,I))105L_T=D_{\text{KL}}(q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right) \left||\mathcal{N}\left(\mathbf{0},\mathbf{I}\right)\right)\simeq{10}^{-5}

Reverse process 에 사용된 NN 의 경우, U-Net 을 기반으로 한 PixelCNN++ 의 구조를 기반으로 구현하였다.

  • weight normalization 대신 group normalization 사용
  • Self-attention block 도입
  • Time step t의 경우 Transformer 에서 도입된 positional encoding 을 기반으로 사용
  • CIFAR10, LSUN, CelebA-HQ Dataset 에 대해 학습 진행

4.1. Sample quality

Diffusion model 의 FID score 는 다른 논문에서 제시된 모델들과 비교했을 때 높은 값을 나타냈다.

4.2. Reverse process parameterization and training object ablation

직접 μˉ\bar{\mu} 값을 예측 시키는 경우, Simplified learning object 처럼 RMSE 를 이용하는 경우 (μμθˉ2\left|\left|\mathbf{\mu}-\bar{\mathbf{\mu}_\theta}\right|\right|^2) 학습이 진행되지 않았으며 simplify 되기 전의 true variational bound 를 이용하는 경우에만 학습이 진행됨이 확인되었다.

Variational bound 에 Σθ(xt)\mathbf{\Sigma}_\theta\left(\mathbf{x}_t\right) 에 대한 항을 직접적으로 포함시키고 대각행렬 Σθ\mathbf{\Sigma}_\theta 자체를 학습시키는 것은 높은 성능을 가져다 주지 못함이 확인되었으며, 학습 역시 불안정하게 진행되었다. 따라서 3.2.1. 절에 나타난 바와 같이, 분산 σt2\sigma_t^2 을 고정된 상수 βt\beta_t 또는 1αˉt11αˉtβt\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t 로 두고 학습을 진행하였다.

가장 좋은 FID Score 는 LsimpleL_{\mathrm{simple}} 을 training object 로 이용한 경우에 얻어졌다.

4.3. Progressive coding

Table 1. 에는 CIFAR-10 데이터셋에 대한 모델의 성능과 실행 속도에 대한 지표 (codelength, Table 1. 상에서 NLL)가 bits/dim 단위로 나타나 있다. Train 과 test 의 차이는 최대 0.03 bits/dim 으로, 이때까지 발표된 likelihood 기반의 모델들과 비교할 만한 값을 나타내며 과적합이 일어나지 않았다는 것을 알 수 있다. 그러나, codelength 가 다른 likelihood 기반의 생성 모델 (Sparse transformer 등)에 비해서는 뒤쳐진다. 이에 대한 자세한 내용은 부록 D 에 서술되어 있다.

그럼에도 불구하고 논문에서 제시한 DDPM 은 높은 품질의 샘플을 생성하므로, diffusion model 이 좋은 lossy compressor 로 써 작용하게 하는 inductive bias4 가 존재한다고 결론지을 수 있다. L0L_0 를 distortion 으로 취급하고, L1+L2++LTL_1+L_2+\cdots+L_T 를 rate 로 본다면 CIFAR-10 데이터셋에 대한 모델의 rate 는 (전체 NLL 3.75 중) 1.78 bits/dim, distortion 은 1.97 bits/dim5 이다. 즉 codelength 의 절반 이상 (1.97/3.75 > 0.51.97/3.75\ >\ 0.5)이 imperceptible distortions 을 표현한다.

4.3.1. Progressive lossy compression

Diffusion Model 의 training object 에 대응되는 lossy compression 을 통해, rate-distortion 양상을 조사해 볼 수 있다. 우선 다음과 같은 Algorithm 3, 4 를 생각해 보자.

Algorithm 3, 4 는 임의의 두 분포 p, qp,\ q 에 대해 receiver 에 주어진 분포가 pp 뿐일 때 (즉, 분포 qq가 주어지지 않았을 때) DKL(q(x)|p(x))D_{\text{KL}}\left(q\left(\mathbf{x}\right)\middle| p\left(\mathbf{x}\right)\right) 의 bit 로 xq(x)\mathbf{x}\sim q\left(\mathbf{x}\right) 를 sampling 하는 과정을 나타낸다. x0q(x0)\mathbf{x}_\mathbf{0}\sim q\left(\mathbf{x}_\mathbf{0}\right) 가 주어졌을 때, Sender 에서는 xT,xT1,,x0\mathbf{x}_T,\mathbf{x}_{T-1},\cdots,\mathbf{x}_0 를 순차적으로 Receiver 에게 보낸다. 각각은 pθ(xt|xt+1)p_\theta\left(\mathbf{x}_t\middle|\mathbf{x}_{t+1}\right) 을 이용해서 sampling 된다. Receiver 에서는 순차적으로 receive 되는 각각의 xT,xT1,\mathbf{x}_T,\mathbf{x}_{T-1},\cdots 에 대해 순차적으로 x0\mathbf{x}_0 를 estimate 한다. 앞서 xt=αˉtx0+1αˉtϵ\mathbf{x}_t=\sqrt{\bar{\alpha}_t}\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\mathbf{\epsilon} 와 같이 치환했으므로,

x0x^0=(xt1αtˉϵθ(xt))/αtˉ\mathbf{x}_0\simeq\widehat{\mathbf{x}}_0=\left(\mathbf{x}_t-\sqrt{1-\bar{\alpha_t}}\mathbf{\epsilon}_\theta\left(\mathbf{x}_t\right)\right)/\sqrt{\bar{\alpha_t}}

와 같이 estimate value 를 산출할 수 있다. 물론

x0pθ(x0|xt)\mathbf{x}_0\sim p_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_t\right)

를 이용한 stochastic reconstruction 을 진행할 수도 있지만, computation 이 복잡하기에 논문에서는 다루지 않는다. 이 때 매 timestep tt 에서 distortion 의 경우 RMSE 값으로 정의되어

distortion=RMSE=x0x^02D\mathrm{distortion}=\mathrm{RMSE}=\sqrt{\frac{\left|\left|\mathbf{x}_0-\widehat{\mathbf{x}}_0\right|\right|^2}{D}}

와 같이 계산되고, rate 는 "Timestep tt 까지 receive 된 bit 수의 누적 합" 으로 계산된다. Timestep 이 경과함에 따라 distortion 이 감소하고, rate 가 증가하는 과정이 Figure 5. 에 나타나 있다. Rate-distortion 그래프의 경우, rate 값이 낮은 영역에서 distortion 값이 급격하게 감소하는 양상이 나타난다. 이는 대부분의 bit 가 imperceptible distortion 에 할당되어 있음을 나타낸다. 이 부분에 대한 자세한 내용은 LDM 을 소개한 Rombach et al. 2022 에도 나타나 있다.

4.3.2. Progressive generation

Figure 6. 은 Algorithm 2 를 이용한 sampling (reverse process) 의 각 시점에서 x^0\widehat{\mathbf{x}}_0를 추출해보자. 큰 scale 의 feature (전체적인 이미지의 형태) 가 먼저 생성되고, 세부적인 부분이 나중에 나타나는 것을 확인할 수 있다.

Figure 7. 은 여러 가지 값의 t에 대해 x0pθ(x0|xt)\mathbf{x}_0\sim p_\theta\left(\mathbf{x}_0\middle|\mathbf{x}_t\right) 를 추출한 결과를 보여준다.

작은 값의 tt에 대해서는 세부적인 detail 이 모두 유지된 반면, 큰 값의 tt에 대해서는 전체적인 이미지 형태만 보존된다. 이를 통해 conceptual compression 에 대한 아이디어를 얻을 수 있다.

4.3.3. Connection to autoregressive decoding

Variational bound

Eq[DKL(q(xT|x0)|p(xT))+t>1DKL(q(xt1|xt, x0)|pθ(xt1|xt)) logpθ (x0 | x1)]\mathbb{E}_q\left[{{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\middle|\mathbf{x}_0\right)\middle| p\left(\mathbf{x}_T\right)\right)}}+\sum_{t>1}{{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t,\ \mathbf{x}_0\right)\middle|| p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\right)}}\ {{-\log{p_\theta\ \left(\mathbf{x}_0\ \middle|\ \mathbf{x}_1\right)}}}\right]

는 다음 식과 동치이다.

L=DKL(q(xT)|p(xT))+Eq[t1DKL(q(xt1|xt)|pθ(xt1|xt))]+H(x0)L=D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\right)\middle| p\left(\mathbf{x}_T\right)\right)+\mathbb{E}_q\left[\sum_{t\geq1}{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\middle|| p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\right)}\right]+H\left(\mathbf{x}_0\right)

이 때 H(x0)H\left(\mathbf{x}_0\right) 는 Entropy term 이다. 증명은 아래와 같다.


L =Eq[logp(xT) t  1logpθ(xt1|xt)q(xt|xt1)]L\ =\mathbb{E}_q\left[-\log{p\left(\mathbf{x}_T\right)}\ -\sum_{t\ \geq\ 1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)}}\right]

베이즈 정리에 의해,

L =Eq[logp(xT) t  1logpθ(xt1|xt)q(xt1|xt)q(xt1)q(xt)]L\ =\mathbb{E}_q\left[-\log{p\left(\mathbf{x}_T\right)}\ -\sum_{t\ \geq\ 1}{\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}}\cdot\frac{q\left(\mathbf{x}_{t-1}\right)}{q\left(\mathbf{x}_t\right)}}\right]

log 의 성질을 이용해 식을 정리하고, KL-Divergence 및 Entropy 의 정의를 이용하면 다음과 같다.

L =Eq[logp(xT)q(xT) t  1logpθ(xt1|xt)q(xt1|xt)logq(x0)]L\ =\mathbb{E}_q\left[-\log{\frac{p\left(\mathbf{x}_T\right)}{q\left(\mathbf{x}_T\right)}}\ -\sum_{t\ \geq\ 1}\log{\frac{p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}{q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)}}-\log{q\left(\mathbf{x}_0\right)}\right]
=DKL(q(xT)|p(xT))+Eq[t1DKL(q(xt1|xt)|pθ(xt1|xt))]+H(x0)=D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\right)\middle|| p\left(\mathbf{x}_T\right)\right)+\mathbb{E}_q\left[\sum_{t\geq1}{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\middle|| p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\right)}\right]+H\left(\mathbf{x}_0\right)

이 때, T=DT=D 로 두는 상황을 생각해 보자. Forward process 의 q(xt|xt1)q\left(\mathbf{x}_t\middle|\mathbf{x}_{t-1}\right)tt-th pixel 을 mask out 하도록 해당 과정을 정의하면, p(xT)p\left(\mathbf{x}_T\right) 는 noise 만이 존재하는 black image 가 되고 Reverse process 의 경우 매 step 마다 하나의 pixel 을 sampling 하게 된다. 따라서,

DKL (q(xT)  p(xT)) = 0D_{\text{KL}}\ (q(\mathbf{x}_T)\ ||\ p(\mathbf{x}_T))\ =\ 0

이 성립하고,

minimize DKL (q(xt1|xt)  pθ(xt1|xt))\mathrm{minimize}\ D_{\text{KL}}\ (q\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right)\ ||\ p_\theta\left(\mathbf{x}_{t-1}\middle|\mathbf{x}_t\right))

와 같은 과정을 통해, pθp_\thetat+1, t+2, , Tt+1,\ t+2,\ \cdots,\ T step 의 pixel 을 copy 하고 t+1, t+2, , Tt+1,\ t+2,\ \cdots,\ T step 의 pixel 값을 이용해 tt step 의 pixel 을 예측하는 방향으로 학습된다. 결과적으로, T=DT=D 와 같은 설정이 적용된 Diffusion model 에서 pθp_\theta 가 학습되는 과정은 autoregressive model 을 학습시키는 과정이다. 결과적으로 Gaussian Diffusion model 을 autoregressive model 의 한 종류로 해석할 수 있다.

4.4. Interpolation

Source image x0\mathbf{x}_0x0q(x0)(=distribution of data points)\mathbf{x}_0^\prime\sim q\left(\mathbf{x}_0\right)\left(=\mathrm{distribution\ of\ data\ points}\right) 를 latent space 에서 보간할 수 있다 (단 qq는 stochastic encoder). 각각의 latent space representation 을 xt,xtq(xt|x0)\mathbf{x}_t,\mathbf{x}_t^\prime\sim q\left(\mathbf{x}_t\middle|\mathbf{x}_0\right) 라고 하면, linearly interpolated latent xˉt\bar{\mathbf{x}}_t

xˉt=λx0+(1λ)x0\bar{\mathbf{x}}_t=\lambda\mathbf{x}_0^\prime+\left(1-\lambda\right)\mathbf{x}_0

와 같이 정의하고 이에 대해 reverse process 를 적용해

xˉ0p(x0|xˉt)\bar{\mathbf{x}}_0\sim p\left(\mathbf{x}_0\middle|{\bar{\mathbf{x}}}_t\right)

를 얻을 수 있다. 이 과정이 Figure 8. (Left) 에 나타나 있다. Figure 8. (Right) 에 256 ×256256\ \times256 size 의 CelebA-HQ 이미지에 대한 보간 결과가 나타나 있다. 서로 다른 λ\lambda 값을 이용해 보간을 진행하였으며, 이 때 모든 과정에서 xt\mathbf{x}_txt\mathbf{x}_t^\prime 을 같게 해 주기 위해 noise 는 고정시켰다.

더 큰 값의 TT 를 사용해 다양한 보간 결과를 얻을 수 있다. Appendix D. 에 결과가 제시되어 있다.

6. Conclusion

이 논문에서는 높은 품질의 이미지를 생성하는 Diffusion model (DDPM) 을 소개하였다. DDPM 과 마르코프 체인과의 관련성을 논하였으며, 학습 과정이 denoising score matching 을 따르고, inference 과정이 annealed Langevin dynamics 와 동치라는 점 역시 논하였다. 더 나아가, diffusion model 이 lossy compression 및 autoregressive decoding 의 관점으로 해석될 수 있다는 점 역시 보였다. Diffusion model 이 이미지에 대해 좋은 inductive biases 를 가지는 것으로 보이며, 새로운 종류의 생성 모델로서 다른 데이터와 결합되어 사용되거나 후속 연구가 진행되기를 기대한다.

Reference

[1] Jonathan Ho, Ajay Jain, and Pieter Abbeel. Denoising diffusion probabilistic models. arXiv Preprint arXiv:2006.11239 (2020).

Footnotes

1: Provides the ability to incrementally decode portions of an image from an incomplete image (Windows App Development, https://learn.microsoft.com/en-us/windows/win32/wic/-wic-progressive-decoding, 2022.04.06.).

2: 이전 time step 의 정보를 바탕으로 decoding 을 진행해, 현재 time step 에 해당되는 sample 을 생성하는 과정

3: Lilian Weng, “What are Diffusion Models?”, https://lilianweng.github.io/posts/2021-07-11-diffusion-models/, 2021.07.11.

4: Inductive bias is the set of assumptions that the model uses to predict outputs of given inputs that it has not encountered. (Wikipedia, Inductive bias, https://en.wikipedia.org/wiki/Inductive_bias). In case of CNN, translation invariance is corresponding inductive bias.

5: 이 값을 [0,255][0, 255] scale 의 RMSE 로 변환하면 0.95 이다.

0개의 댓글