Denoising Diffusion Probabilistic Models (1)

놔놔·2024년 8월 8일

DDPM

목록 보기
1/2
post-thumbnail

Abstract

DDPM은 비평형 열역학에서 영감을 받은 이미지 생성 방법이다. 이 모델은 흐릿한 이미지를 점점 선명하게 만드는 과정으로 이미지를 생성한다. 마치 우리가 스케치에서 시작해서 완성된 그림을 그리는 과정과 비슷하다.

이 모델을 잘 작동하게 하려고 논문에서는 가중 변분 경계를 사용했다. 이는 확산 확률 모델과 노이즈를 제거하는 방법인 스코어 매칭을 결합한 방법이다. 이 모델은 CIFAR10 데이터 셋에서 9.46이라는 높은 점수를 받았고, FID점수도 3.17로 낮아서 이미지 품질이 뛰어나다는걸 보여줬다.

Introduction

Diffusion model은 Markov chain을 매개 변수화 해서 훈련시키는 방식을 사용한다. 이 모델은 데이터에 점점 노이즈를 추가하는 확산 과정을 역으로 학습해서, 최종적으로는 원본 데이터와 일치하는 샘플을 생성하게 된다. 쉽게 얘기해서, 아주 조금씩 노이즈를 추가하면서 데이터를 흐리게 만들고, 이 과정을 거꾸로 진행해서 원래의 깨끗한 이미지를 복원하는 방법을 말한다.

Background

Diffusion model(확산 모델)은 밑의 수식 형태를 가진 latent variable 모델이다.

pθ(x0)=:pθ(x0:T)dx1:Tp_\theta(x_0)=:\int p_\theta(x_{0:T})dx_{1:T}

x1,...,xTx_1,...,x_T 얘네들이 같은 차원의 데이터 x0 q(x0)x_0 ~ q(x_0)의 latent variable들이다.
joint distribution pθ(x0:T)p_\theta(x_{0:T})은 reverse process라고 부른다. 그리고 이 수식 학습된 가우시안 전이를 갖는 마르코프 체인으로 정의되며, p(xT)=N(xT;0,I):p(x_T)=\mathcal{N}(x_T;\mathbf{0,I}):에서 시작한다.

pθ(x0:T):=p(xT)t=1Tpθ(xt1xt),pθ(xt1xt):=N(xt1;μθ(xt,t),θ(xt,t))(1)p_\theta(x_{0:T}):=p(x_T)\prod_{t=1}^T p_\theta(x_{t-1}|x_t),\,\, p_\theta(x_{t-1}|x_t):=\mathcal{N}(x_{t-1};\mu_\theta(x_t,t), \textstyle\sum_{\theta}(x_t,t)) \,\,\,\,(1)

이 확산 모델이 다른 latent variable 모델들과 구별되는 점은 forward process혹은 diffusion process라고 불리는 근사 posterior q(x1:Tx0)q(x_{1:T}|x_0)가 고정된 마르코프 체인이라는 것이다. 이 과정(forward or diffusion process)은 variance schedule β1,...,βT:\beta_1,...,\beta_T:에 따라 데이터에 점진적으로 가우시안 노이즈를 추가한다.

q(x1:Tx0):=t=1Tq(xtxt1),q(xtxt1):=N(xt;1βtxt1,βtI)(2)q(x_{1:T}|x_0):=\prod_{t=1}^T q(x_t|x_{t-1}), \,\,q(x_t|x_{t-1}):=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_t\mathbf{I})\,\,\,\,(2)

훈련은 negative log likelihood의 variational bound를 최적화 하면서 진행된다. 아래 수식은 모델의 파라미터 θ\theta를 조정하여 모델이 주어진 데이터 x0x_0에 대해 가능한 최선의 예측을 하도록 한다.
variational bound의 개념에 대해서 짧게 설명하자면 복잡한 분포의 정확한 계산을 간단하게 근사하는 방법이다. 이 논문에서는 KL발산을 사용해 실제 분포와 근사 분포 간의 차이를 최소화 하려고 한다.

E[logpθ(x0)]Eq[logpθ(x0:T)q(x1:Tx0)]=Eq[logp(xT)t1logpθ(xt1xt)q(xtxt1)]=:L(3)\Bbb{E}\lbrack-log \,p_\theta(x_0)\rbrack\le\Bbb{E_q}\bigg\lbrack-log\frac{p_\theta(x_{0:T})}{{q(x_{1:T}|x_0)}}\bigg\rbrack=\Bbb{E_q}\bigg\lbrack -log\,p(x_T)\,\sum_{t\ge1}log\frac{p_\theta(x_{t-1}|x_t)}{q(x_t|x_{t-1})} \bigg\rbrack=:L\,\,\,\,\,(3)

forward process의 분산 βt\beta_t는 reparameterization을 통해 학습하거나, 하이퍼 파라미터로 설정할 수도 있다. reverse process의 expressiveness(모델이 데이터의 복잡한 구조를 얼마나 잘 표현하는지)는 pθ(xt1xt)p_\theta(x_{t-1}|x_t)에서 가우시안 conditionals을 선택함으로 부분적으로 보장된다. 쉽게 말해서 reverse process에서 상태를 예측하는 과정이 수학적으로 잘 정의되고, 계산이 간단해지며 모델의 표현력이 어느정도 보장된다는뜻과 같다.

이는 βt\beta_t가 작을때 두 과정이 동일한 함수 형태를 가지기 때문이다. forward process의 중요한 특징 중 하나는 임의의 시간 t에서 xtx_t를 특정 수식으로 명확하게 계산할 수 있다는 것이다. αt:=1βt\alpha_t:=1-\beta_t 그리고 αˉt:=s=1tαs\bar{\alpha}_t\,:=\prod_{s=1}^t\,\alpha_s 이 정의를 사용해서 수식으로 명확하게 xtx_t를 계산 할 수 있다.

q(xtx0)=N(xt;αˉtx0,(1αˉt)I)(4)q(x_t|x_0)=\mathcal{N}(x_t;\sqrt{\bar{\alpha}_t}\,x_0,(1-\bar{\alpha}_t)\,\mathbf{I})\,\,\,\,\,(4)

모델 훈련은 LL을 stochastic gradient descent로 최적화 하면서 이루어진다. (3)번 수식의 LL을 재작성하여 분산을 줄임으로 식을 개선할 수 있다.

Eq[DKL(q(xTx0)p(xT))LT+t>1DKL(q(xt1xt,x0)pθ(xt1xt))Lt1logpθ(x0x1)L0](5)\Bbb{E}_q\bigg\lbrack \underbrace{D_{KL}(q(x_T|x_0)||\,p(x_T))}_{L_T}+\sum_{t>1}\underbrace{D_{KL}(q(x_{t-1}|x_t,x_0)||p_\theta(x_{t-1}|x_t))}_{L_{t-1}}\underbrace{-log\,p_\theta(x_0|x_1)}_{L_0}\bigg\rbrack \,\,\,\,(5)

(자세한 내용은 부록 A를 참조)
식(5)는 KL발산을 사용하여 pθ(xt1xt)p_\theta(x_{t-1}|x_t)와 forward process의 posteriors(관찰된 데이터 x0x_0를 기반으로 변수xt1x_{t-1}의 분포)를 비교한다. 이 posteriors는 x0x_0에 조건화된 경우 해석 가능하다. 이 말은 x0x_0가 주어졌을때 xt1x_{t-1}의 분포를 계산하거나 이해하는 게 가능하다는 것이다.

q(xt1xt,x0)=N(xt1;μ~t(xt,x0),β~tI),(6)q(x_{t-1}|x_t,x_0)=\mathcal{N}(x_{t-1};\tilde{\mathbf{\mu}}_t(x_t,x_0),\tilde{\beta}_t\mathbf{I}),\,\,\,\,\,(6)
whereμ~t(xt,x0):=αˉt1βt1αˉtx0+αt(1αˉt1)1αˉtxtandβ~t:=1αˉt11αˉtβt(7)where\,\,\,\,\,\, \tilde{\mathbf{\mu}}_t(x_t,x_0):=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar\alpha_t}x_0\,+\,\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}x_t\,\,\,\, and \,\,\,\,\tilde\beta_t:=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\,\beta_t\,\,\,\,(7)

결과적으로 식(5)의 모든 KL발산은 가우시안 분포 간의 비교이므로, 높은 분산의 몬테카를로 추정 대신 닫힌 형태(직접 계산 가능)의 표현을 사용하여 Rao-Blackwellized방식으로 계산할 수 있다. 요약하면 그냥 직접 계산 가능한 형태로 (3)번 수식을 변환했다는 얘기다.

적다보니 너무 길어져서 나눠서 올려겠다....

profile
5238D8K7

0개의 댓글