Home [Generative Model] DDPM : Denoising Diffusion Probabilistic Models
Post
Cancel

[Generative Model] DDPM : Denoising Diffusion Probabilistic Models

해당 포스트에서는 DDPM : Denoising Diffusion Probabilistic Models 논문을 함께 읽어가도록 하겠습니다. 문장마다 해석을 하기 보다는 각 문단에서 중요한 부분을 요약하는 식으로 진행하겠습니다.

논문의 핵심만 알고 싶으신 분은 Paper Review으로 이동해주세요!

Emoji의 의미는 아래와 같습니다.

🔎 : 논문에 있는 내용

💡 : 논문에 적혀있지 않은 사전지식

💭 : 저의 생각

⭐ : 중요한 내용

✅ : 나중에 확인이 필요한 내용

Abstract

🔎 해당 논문은 diffusion probability models을 사용해 높은 퀄리티의 이미지를 합성했음을 보여줍니다.

💡 Diffusion probability models : Nonequilibrium thermodynamics(비평형 열역학)로부터 영감받은 latent variable models의 한 종류

💡 Latent variable models : Latent variable을 도입해 복잡한 시스템의 동작을 모델링하는 데 사용되는 통게적 모델

💡 Nonequilibrium thermodynamics : 시간에 따라 변하는 열적 및 동적 조건을 고려하는 열역학의 한 분야로, 시스템이 평형 상태가 아닐 때의 특성을 다룹니다.

🔎 Weighted variational bound에 대한 학습을 통해 가장 좋은 결과를 얻었습니다.

  • Weighted variational bound : Diffusion probability models와 denoising score matching with Langevin dynamics의 새로운 연결

    💡 Denoising score matching with Langevin dynamics : Denoising score matching을 통해 score function을 학습하고 Langevin dynamcis를 통해 sampling을 진행하는 score-based genenerative model (✅ 추후 공부 필요)

🔎 DDPM을 autoreressive decoding의 일반화로 해석될 수 있는 progressive lossy decompression 방식을 인정합니다.

1. Introduction

🔎 Generative models : GANs, Autoregressive models, flows, VAEs, Energy-based modeling, Score matching

🔎 해당 논문에서는 diffusion probabilistic models(diffusion model)의 발전을 논하고자 합니다.

🔎 Diffusion model은 유한한 시간이후에 data와 일치하는 samples을 생성하기 위해 variational inference를 사용하여 훈련된 parameterized Markov chain입니다.

💡 Variational inference : 다루기 쉬운 매개변수 θ를 조정하여 확률분포 q(θ)를 posteroir distribution p(θ|x)에 approximation 하는 것을 말합니다.

💡 Parameterized Markov chain : Markov property를 가진 이산확률과정

💡 Markov property : 특정 상태의 확률은 오직 과거의 상태에 의존

🔎 Reverse a diffusion process(Denoising process, Transitions of markov chain)을 학습

  • Diffusion process(Forward process) : 원래의 signal(image)이 파괴될 때까지 점진적으로 data에 noise를 추가하는 markov chain
  • Diffusion process에서의 noise를 아주 작은 양의 Gaussian noise로 구성하면 denoising process 또한 conditional Gaussian으로 설정할 수 있으므로 간단한 neural network parameterization이 가능해집니다.(이전 연구에서 발견됨)

🔎 기존 diffusion model 연구의 장점과 단점

  • 장점 : Diffusion model을 정의하고 학습하기 수월

  • 단점 : High quality sample을 생성할 수 있는지 의문

🔎 DDPM에서 보여주는 diffusion model

  • ⭐ 특정 매개변수화(ϵ-prediction parameterization)를 통해 DDPM이 denoising score matching over multiple noise levels during training 그리고 annealed Langevin dynamics during sampling과 동등함을 보여줍니다.

  • 이러한 특정 매개변수화를 통해 high quality sample을 생성하였고 diffusion model이 아닌 다른 유형의 generative model보다 우수한 결과를 보여줬습니다.

  • 그러나 다른 log-likelihood-based model에 비해 경쟁력 있는 로그 가능성을 가지고 있지 않습니다.

    Log likelihoods : Energy based models & score matching < Diffusion model < Other likelihood-based models

  • DDPM의 lossless codelengths의 대부분이 감지할 수 없는 이미지 세부 정보를 설명하는데 사용된다는 것을 발견했습니다.

    💡 Codelengths

    • 모델이 데이터를 얼마나 효과적으로 표현하고 생성하는지를 나타내는 지표 (bits/dim)
    • 작은 codelengths는 데이터를 효과적으로 표현하는 모델임을 뜻하므로 작을수록 좋음

    💡 Lossless codelength : Lossless compresor를 통해 측정한 codelength
    💡 Lossless compresor의 대표적으로 NLL(Negativ Log Likelihood)이 있음

  • DDPM의 sampling 과정이 progressive lossy decompression 방식임을 보여줍니다.

2. Background

2.1 Reverse Process

🔎 Reverse Process : Standard normal distribution에서 학습 data로 denoising 해가는 과정이며 학습의 대상이라고 볼 수 있습니다.

(1)pθ(x0:T)=pθ(x0|x1:T)pθ(x1:T)(2)=pθ(x0|x1:T)pθ(x1|x2:T)pθ(x2:T)(3)=pθ(x0|x1:T)pθ(x1|x2:T)pθ(xT1|xT)Pθ(xT)(4)=pθ(x0|x1)pθ(x1|x2)pθ(xT1|xT)pθ(xT)(5)=pθ(x0|x1)pθ(x1|x2)pθ(xT1|xT)p(xT)(6)=p(xT)t=1Tpθ(xt1|xt)

2.1.1 Formula (1), (2), (3)

먼저 표기법에 대해 알아보면 pθ(x0:T)는 매개변수 θ,x0,x1,,xT의 결합확률에서 θ를 고정시켰을 때의 주변확률이라고 할 수 있습니다.

아래에 기술되어 있는 공식(chain rule)을 사용하면 (1), (2), (3)을 쉽게 이해할 수 있습니다.

P(A,B,C)=P(ABC)=P(A(BC))=P(A|BC)P(BC)=P(A|B,C)P(B,C)

2.1.2 Formula (4)

Reverse process는 markov property를 만족하기 때문에 markov process에 의해서 (4)처럼 (3)을 변경할 수 있습니다.

2.1.3 Formula (5)

Timestep T에서의 xTθ와 상관없이 N(0,I)이기 때문에 θ를 지워 (5)처럼 나타낼 수 있습니다.

2.1.4 Formula (6)

(5)를 일반화 시키면 (6)으로 정리할 수 있습니다.

2.2 Forward Process (Diffusion Process)

🔎 Forward Process(Diffusion process) : Data에서 noise를 추가해 standard normal distribution으로 가는 과정입니다.

🔎 다른 유형의 latent variable models과 diffusion model의 다른 점은 noise가 Gaussian noise로 고정되어 있다는 점입니다.

(1)q(x1:T|x0)=q(x2:T|x0,x1)q(x1|x0)(2)=q(x3:T|x0:2)q(x2|x0,x1)q(x1|x0)(3)=q(xT|x0:T1)q(xT1|x0:T2)q(x1|x0)(4)=q(xT|xT1)q(xT1|xT2)q(x1|x0)(5)=t=1Tq(xt|xt1)

2.2.1 Formula (1), (2), (3)

아래에 기술되어 있는 공식(chain rule)을 사용하면 (1), (2), (3)을 쉽게 이해할 수 있습니다.

P(A,B,C|D)=P(ABC|D)=P(ABCD)P(D)=P(AB|CD)P(CD)P(D)=P(A,B|C,D)P(C|D)

2.2.2 Formula (4)

Forward process는 markov property를 만족하기 때문에 markov process에 의해서 (4)처럼 (3)을 변경할 수 있습니다.

2.2.3 Formula (5)

(4)를 일반화 시키면 (5)으로 정리할 수 있습니다.

2.3 Optimization Function

🔎 NLL(Negative Log Likelihood)에 대한 variational bound로 최적화를 수행합니다.

💡 Log Likelihood를 Negative Log Likelihood로 변경한 이유 : 우도를 최대화하는 문제를 최소화하는 문제로 바꾸기 위해

2.3.1 Variational Inference

  1. Variational transform

    • 비선형 함수 f(x)를 다루기 쉬운 선형 함수 g(x)로 바꾸는 것을 variational transform이라 합니다.
    • Variational transform의 한 예로 f(x)=log함수를 일차함수로 변경해보겠습니다.
      • log 함수를 일차함수로 나타낸다는 것은 log함수 위에 있는 모든 점을 일차함수로 표현할 수 있음을 뜻합니다.
      • log 함수의 접선은 g(x)=λx+b(λ)로 나타낼 수 있을 것입니다.
      • 이 때 일차함수인 접선의 절편은 기울기 λ에 따라 달라지기 때문에 b(λ)로 표현됩니다.
      • 접점을 찾는 공식은 아래와 같이 나타낼 수 있습니다.
      y=minx{g(x)f(x)}
      • 이제 접점 구해보겠습니다.(간단하게 log함수이 밑이 10이라 가정)
      ddx{g(x)f(x)}=0ddx{λx+b(λ)ln x}=0λ1x=0x=1λ
      • 정리를 해보면 x=1λ인 모든 x좌표에서 log 함수를 일차함수로 표현할 수 있습니다.
    • 그러나 variationa transform에서 중요한 특징이 하나 있습니다.
    • 그것은 바로 함수가 convex하거나 concave해야만 가능합니다.

      만약 비선형 함수 f(x)가 convex하지 않고 concave하지도 않다면 접선 g(x)에는 두 개 이상의 접점이 생기기 때문입니다.

    • 이러한 특징 때문에 duality를 통해 variational tranform이 가능합니다.
      • 만약 convex하지 않거나 concave하지 않은 함수가 있다면 log를 사용해 concave한 함수를 만들어 사용할 수 있습니다.
      • Deep Learning을 공부하다보면 log를 사용하는 이유에는 곱을 합으로 변경해주는 이유도 있지만 concave한 특징을 사용해 variational transform하는 이유도 있다는 것을 기억하면 좋을 것 같습니다.
    • Variational transform을 정리해보면 다음과 같습니다.
      • Variational parameter λ를 도입하여 비선형 함수인 log를 선형으로 변경 하는 것을 variational transform이라 할 수 있습니다.
  2. Variational Inference

    • Variational inference는 다루기 쉬운 매개변수 θ를 조정하여 확률분포 q(θ)를 posteroir distribution p(θ|x)에 approximation 하는 것을 말합니다.
    • Variational inference의 방법으로는 KL-Divergence이 있습니다.

2.3.2 Variational Inference at DDPM

DDPM에서 variational inference가 적용되는 부분을 살펴보겠습니다.

ExT  q(xT|x0)[log pθ(x0)]=(log pθ(x0))q(xT|x0) dxT=(log pθ(x0:T)pθ(x1:T|x0))q(xT|x0) dxTChain Rule=(log pθ(x0:T)pθ(x1:T|x0)q(x1:T|x0)q(x1:T|x0))q(xT|x0) dxT=(log pθ(x0:T)q(x1:T|x0)q(x1:T|x0)pθ(x1:T|x0))q(xT|x0) dxT=(log pθ(x0:T)q(x1:T|x0))q(xT|x0) dxT+(log q(x1:T|x0)pθ(x1:T|x0))q(xT|x0) dxTlog ab=log a+log b=(log pθ(x0:T)q(x1:T|x0))q(xT|x0) dxT(log q(x1:T|x0)pθ(x1:T|x0))q(xT|x0) dxT=(log pθ(x0:T)q(x1:T|x0))q(xT|x0) dxTDKL(q(x1:T|x0) || pθ(x1:T|x0))(log pθ(x0:T)q(x1:T|x0))q(xT|x0) dxT DKL0=ExT  q(xT|x0)[log pθ(x0:T)q(x1:T|x0)]=ELBO

2.3.3 Optimization Function 구하기

Section 2.1section 2.2를 사용해 위에서 variational inference를 통해 찾은 ELBO term을 아래와 같이 풀어 쓸 수 있습니다.

ExT  q(xT|x0)[log pθ(x0)]ExT  q(xT|x0)[log p(x0:T)q(x1:T|x0)]=ExT  q(xT|x0)[log p(xT)t=1Tpθ(xt1|xt)t=1Tq(xt|xt1)]Section 2.1 & Section2.2=ExT  q(xT|x0)[log p(xT)logt=1Tpθ(xt1|xt)q(xt|xt1)]log ab=log a+log b=ExT  q(xT|x0)[log p(xT)(logpθ(x0|x1)q(x1|x0)+logpθ(x1|x2)q(x2|x1)++logpθ(xT1|xT)q(xT|xT1))]log ab=log a+log b=ExT  q(xT|x0)[log p(xT)t=1Tlogpθ(xt1|xt)q(xt|xt1)]=:L

지금까지 많은 공식들이 나와 헷갈릴 수 있으니 지금까지 증명했던 공식을 간단히 나타내면 아래와 같이 나타낼 수 있습니다.

ExT  q(xT|x0)[log pθ(x0)]ExT  q(xT|x0)[log p(x0:T)q(x1:T|x0)]=ExT  q(xT|x0)[log p(xT)t=1Tlogpθ(xt1|xt)q(xt|xt1)]=:L

2.4 Variance schedule βt

🔎 βt는 reparameterization을 통해 학습될 수 있고 hyperparameter로 두고 학습할 수 있습니다.

🔎 βt가 매우 작을 때 diffusion process와 reverse process는 동일한 형태를 가지고 있기 때문에 reverse process의 표현성은 diffusion process의 gaussian conditionals에 의해서 부분적으로 보장됩니다. ( 이전 연구)

🔎 Diffusion process에서 주목할만 한 점은 diffusion process를 임의의 timestep t에서 closed form으로 나타낼 수 있다는 점입니다.

🔎 어떻게 closed form으로 나타낼 수 있는지 아래 증명과 함께 알아보겠습니다.

2.4.1 Reparameterziation Trick

딥러닝에서 필수적인 계산이라 함은 바로 chain rule에 의한 backpropagation입니다.

Backpropagation을 사용하기 위해서는 미분이 필수적인데 확률변수 Z는 기본적으로 미분이 불가능해 backpropagation을 할 수 없습니다.

그렇기 때문에 reparameterization trick을 사용해 미분이 가능하도록 해 backpropagation을 진행합니다.

정리를 해보면 확률변수 Z를 standard normal distribution에서 sampling 하는 과정이 미분 가능하도록 만들어 backpropagation을 가능하게 만드는 것이 reparameterization trick이며 아래와 같이 나타낼 수 있습니다.

ZN(μ,σ2)Z=μ+σϵ(ϵN(0,I))

2.4.2 Diffusion Proecess with reprameterization trick

먼저 diffusion proecess의 time step t에서의 확률분포를 다시 한 번 살펴보겠습니다.

Diffusion process:q(xt|xt1):=N(xt;1βtxt1,βtI)

이제 reparameterization trick을 활용해 timestep t에서 diffusion process를 closed form으로 나타내보도록 하겠습니다.

xt=1βtxt1+βtϵt1(ϵt1N(0,I))Reparameterization Trick=αtxt1+1αtϵt1αt:=1βt=αt(αt1xt2+1αt1ϵt2)+1αtϵt1=αtαt1xt2+αt(1αt1)ϵt2+1αtϵt1=αtαt1xt2+αt(1αt1)+1αtϵ¯t2ϵ1N(0,σ12I)&ϵ2N(0,σ22I)ϵ¯:=ϵ1+ϵ2N(0,(σ12+σ22)I)=αtαt1xt2+1αtαt1ϵ¯t2==α¯tx0+1α¯tϵα¯t:=αtαt1α1

2.5 Rewriting L

🔎 위에서 정의한 optimization function L을 변경함으로써 효율적인 학습이 가능합니다.

(1)L=ExT  q(xT|x0)[log p(xT)t=1Tlogpθ(xt1|xt)q(xt|xt1)](2)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt|xt1)logpθ(x0|x1)q(x1|x0)]t=1분리(3)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)q(xt1|x0)q(xt|x0)logpθ(x0|x1)q(x1|x0)]Section 2.5.1(4)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)t=2Tlogq(xt1|x0)q(xt|x0)logpθ(x0|x1)q(x1|x0)]log ab=log a+log b(5)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)(logq(x1|x0)q(x2|x0)+logq(x2|x0)q(x3|x0)+logq(xT1|x0)q(xT|x0))logpθ(x0|x1)q(x1|x0)](6)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)logq(x1|x0)q(xT|x0)logpθ(x0|x1)q(x1|x0)]logab+logbc=logac(7)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)logq(x1|x0)q(xT|x0)logpθ(x0|x1)q(x1|x0)](8)=ExT  q(xT|x0)[log p(xT)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)logpθ(x0|x1)q(xT|x0)]logab+logbc=logac(9)=ExT  q(xT|x0)[logp(xT)q(xT|x0)t=2Tlogpθ(xt1|xt)q(xt1|xt,x0)log pθ(x0|x1)](10)=ExT  q(xT|x0)[logp(xT)q(xT|x0)]+t=2TExT  q(xT|x0)[logpθ(xt1|xt)q(xt1|xt,x0)]+ExT  q(xT|x0)[log pθ(x0|x1)](11)=DKL(q(xT|x0)||p(xT))+t=2TDKL(q(xt1|xt,x0)||pθ(xt1|xt))+ExT  q(xT|x0)[log pθ(x0|x1)]DKL(Q|P)=Ex  Q(x)[logP(x)Q(x)]=Q(x)(logP(x)Q(x))(12)=LT+t=2TLt1+L0(13)=LT+L1:T1+L0

2.5.1 Formula (2), (3) : Rewriting q(xt|xt1)

🔎 q(xt|xt1)에 condition으로 x0을 추가함으로써 다루기 쉽도록 해 KL divergence(Lt1)를 통해 직접적으로 pθ(xt1|xt)와 비교할 수 있게 만들었습니다.

q(xt|xt1)=q(xt|xt1,x0)=q(xt,xt1,x0)q(xt1,x0)=q(xt,xt1,x0)q(xt1,x0)q(xt,x0)q(xt,x0)=q(xt,xt1,x0)q(xt,x0)q(xt,x0)q(xt1,x0)=q(xt,xt1,x0)q(xt,x0)q(xt|x0)q(x0)q(xt1|x0)q(x0)=q(xt,xt1,x0)q(xt,x0)q(xt|x0)q(xt1|x0)=q(xt1|xt,x0)q(xt|x0)q(xt1|x0)

2.6 What probability distribution q(xt1|xt,x0) follows

q(xt1|xt,x0)=q(xt|xt1)q(xt1|x0)q(xt|x0)Section 2.5.1=12πβtexp((xt1βtxt1)22βt)12π(1α¯t1)exp((xt1α¯t1x0)22(1α¯t1))2π(1α¯t)exp((xtα¯tx0)22(1α¯t))xN(μ,σ2)f(x)=12πσ2exp((xμ)22σ2)exp((xt1βtxt1)22βt)exp((xt1α¯t1x0)22(1α¯t1))exp((xtα¯tx0)22(1α¯t))상수 제거=exp(12(xt1βtxt1)2βt+(xt1α¯t1x0)2(1α¯t1)(xtα¯tx0)2(1α¯t))exp aexp b=exp(a+b)=exp(12((αtβt+11α¯t1)xt12(2αtβtxt+2α¯t11α¯t1x0)xt1+C(xt,x0)))Condition으로 xt와 x0가 주어졌을 때 xt1의 확률분포를 찾고자 함=exp(12(axt12bxt1+C(xt,x0)))=exp(a2(xt1ba)2)+C(xt,x0)12π1aexp((xt1ba)221a)+C(xt,x0)

위의 식 q(xt1|xt,x0)을 정리해보면 평균이 b/a이고 분산이 1/a인 gaussian distribution임을 알 수 있습니다. 논문에 있는 식으로 정리를 해보면 아래와 같이 정리할 수 있습니다.

q(xt1|xt,x0)=N(xt1;μ~t(xt,x0),β~tI)whereβ~:=1a=1α¯t11α¯tβtandμ~t(xt,x0):=b/a=α¯t1βt1α¯tx0+αt(1α¯t1)1α¯txt

🔎 결과적으로 optimization function L의 모든 DKL은 gaussian distribution 비교이므로 high variance Monte Carlo estimates 대신 closed form을 사용하여 Rao-Blackwellized 방식으로 계산할 수 있습니다.

3. Diffusion models and denoising autoencoders

🔎 Diffusion models : 제약이 있는 latent variable models의 한 종류로 보일 수 있지만 구현에서 많은 자유도를 허용합니다.

Forward process(Diffusion process)의 variances βt(Section 3.1)

Reverse process의 Gaussian distribution parameterization(Section 3.2, 3.3, 3.4)

Model Architecture(Section 4)

🔎 해당 논문의 선택을 안내하기 위해 diffusion models과 denoising score matching 사이의 새로운 연결을 확립하고 이 새로운 연결은 단순하고 가중화된 variational bound objective로 이어집니다.

🔎 DDPM은 단순성과 경험적 결과에 의해 정당화됩니다.

3.1 Forward process and LT

🔎 Section 2.5에서의 LT를 살펴보면 아래와 같습니다.

LT=DKL(q(xT|x0)||p(xT))=ExT  q(xT|x0)[logp(xT)q(xT|x0)]=ExT  q(xT|x0)[logϵα¯Tx0+1α¯Tϵ]p(xT)=N(xT;0,I)&q(xT|x0)=N(xT;α¯Tx0,(1α¯T)I)

🔎 βt가 학습 가능한 파라미터임을 무시하고 상수로 사용합니다.

🔎 따라서 q는 학습 파리미터를 가지고 있지 않습니다.

⭐ 그렇기 때문에 LT는 학습하지 않고 무시합니다.

3.2 Reverse process and L1:T1

🔎 Section 2.5에서의 Lt1를 살펴보면 아래와 같습니다.

Lt1=DKL(q(xt1|xt,x0)||pθ(xt1|xt))=ExT  q(xT|x0)[logpθ(xt1|xt)q(xt1|xt,x0)]

3.2.1 Σθ(xt,t)

🔎 먼저 pθ(xt1|xt)=N(xt1;μθ(xt,t),Σθ(xt,t)) for 1<tT에 대해서 논해보고자 합니다.

DDPM에서는 reverse process의 분포를 Gaussian distribution으로 설정했고 해당 분포의 평균과 분산을 μθ(xt,t),Σθ(xt,t)로 정의를 했습니다.

🔎 해당 논문의 저자들은 먼저 Σθ(xt,t)를 학습하지 않아도 되는 time dependent constants인 σt2I로 설정했습니다.

🔎 이때 실험적으로 1번 : σt2=βt2번 : σt2=β~t=1α¯t11α¯tβt2의 결과가 비슷함을 발견했습니다.

🔎 1번의 경우 모든 t에서 독립적이므로 x0N(0,I)의 경우 최적이 됩니다.

🔎 2번의 경우 이전 t에 대해서 영향을 받으므로(α¯t) 결정론적으로 한 점으로 설정된 경우 최적이 됩니다.

🔎 1번과 2번은 reverse process에 대해 각각 upper bound와 lower bound에 해당합니다.(이전 연구)

3.2.2 μθ(xt,t)

🔎 σt2=β~t을 활용해서 알고 있는 정보들을 정리하면 아래와 같습니다.

pθ(xt1|xt)=N(xt1;μθ(xt,t),σt2I)=N(xt1;μθ(xt,t),β~tI) q(xt1|xt,x0)=N(xt1;μ~t(xt,x0),β~tI)

🔎 KL-Divergence의 비교 대상인 두 분포가 분산이 같은 Gaussian distribution이므로 Lt1을 아래와 같이 간단하게 다시 정의할 수 있습니다.

Lt1=ExT  q(xT|x0)[12σt2μ~t(xt,x0)μθ(xt,t)2]+Cwhere C is a constant that does not depend on θ

🔎 즉, μθ의 가장 간단한 parameterization은 forward process posterior mean인 μ~θ를 예측하는 모델임을 알 수 있습니다.

🔎 위에서 다시 정의한 Lt1을 reparameterization trick을 사용해 변경하면 아래와 같습니다.

L1:T1=ExT  q(xT|x0)[12σt2μ~t(xt,x0)μθ(xt,t)2]+C=ExT  q(xT|x0)[12σt2α¯t1βt1α¯tx0+αt(1α¯t1)1α¯txtμθ(xt,t)2]+Cμ~t(xt,x0)=α¯t1βt1α¯tx0+αt(1α¯t1)1α¯txt=ExT  q(xT|x0)[12σt2α¯t1βt1α¯txt1α¯tϵα¯t+αt(1α¯t1)1α¯txtμθ(xt,t)2]+Cxt=α¯tx0+1α¯tϵx0=xt1α¯tϵα¯t=ExT  q(xT|x0)[12σt2βt1α¯txt1α¯tϵαt+αt(1α¯t1)1α¯txtμθ(xt,t)2]+C=ExT  q(xT|x0)[12σt2(βt(1α¯t)αt+αt(1α¯t1)1α¯t)xtβt1α¯tϵ(1α¯t)αtμθ(xt,t)2]+C=ExT  q(xT|x0)[12σt2(βt(1α¯t)αt+αt(1α¯t1)1α¯t)xtβtϵ1α¯tαtμθ(xt,t)2]+C=ExT  q(xT|x0)[12σt21αt((βt1α¯t+αt(1α¯t1)1α¯t)xtβtϵ1α¯t)μθ(xt,t)2]+C=ExT  q(xT|x0)[12σt21αt((1αt1α¯t+αt(1α¯t1)1α¯t)xtβtϵ1α¯t)μθ(xt,t)2]+C=ExT  q(xT|x0)[12σt21αt((1αt1α¯t+αtα¯t1α¯t)xtβtϵ1α¯t)μθ(xt,t)2]+C=ExT  q(xT|x0)[12σt21αt(xtβt1α¯tϵ)μθ(xt,t)2]+CExT  q(xT|x0)[12σt21αt(xtβt1α¯tϵ)μθ(xt,t)2]

🔎 변경된 Lt1에서 βt가 상수이고 xt가 주어진 값이기 때문에 ϵ을 예측하는 function approximator인 ϵθ를 통해 최소화 할 수 있습니다.

🔎 즉 아래와 같이 Lt1을 다시 표현할 수 있습니다.

Lt1ExT  q(xT|x0)[12σt21αt(xtβt1α¯tϵ)μθ(xt,t)2]=ExT  q(xT|x0)[12σt21αt(xtβt1α¯tϵ)1αt(xtβt1α¯tϵθ)2]=ExT  q(xT|x0)[βt22σt2αt(1α¯t)ϵϵθ2]

🔎 이를 통해 Diffusion probability models와 denoising score matching with Langevin dynamics의 새로운 연결을 확인 할 수 있었습니다.

🔎 Sampling 절차(Algorithm 2 - denoising score mtaching)는 data density의 학습된 기울기로서 ϵθ을 갖는 Langevin dynamics(Variational bound for the Langevin-like reverse process)와 유사합니다.

🔎 요약하자면 reverse process mean function approximator μθ를 훈련하여 μ~t를 예측할 수 있으며 ϵ을 예측하도록 훈련할 수 있습니다.

🔎 ϵ을 예측하도록 한 ϵ-prediction parameterization이 Langevin dynamics와 유사한 것을 보여줬고 diffusion model의 variational bound를 denoising score matching과 유사한 objective로 단순화하는 것을 보여줬습니다.

🔎 그럼에도 불구하고 pθ(xt1|xt)의 또 다른 parameterization일 뿐이기 때문에 ϵ-prediction과 μ~t-prediction을 비교해 ϵ-prediction의 효과를 Section 4에서 ablation을 통해 검증합니다.

3.3 Data scaling, reverse process decoder, and L0

🔎 이미지의 구성 원소 0,1,,255의 범위를 [1,1]로 변경함으로써 reverse process가 일관된 스케일의 입력에서 작동하도록 보장합니다.

🔎 Discrete log likelihhod를 얻기 위해 reverse process의 마지막 과정을 Gaussian distirubtion(N(x0;μθ(x1,1),σ12I))에서 파생된 독립적인 discrete decoder로 설정합니다.

🔎 이러한 discrete log likelihood는 variational bound가 discrete data에 대해 lossless codelength을 보장합니다.

🔎 Sampling이 끝나면 μθ(x1,1)를 noise 없이 표시합니다.

3.4 Simplified training objective

🔎 결과적으로 학습을 진행해야 하는 부분은 Lt1L0임을 알 수 있는데 두 objective를 합쳐 표현할 수 있습니다.

Lsimple(θ):=E[ϵϵθ2]where t is uniform between 1and T

🔎 t=1인 경우 L0에 해당하고 Gaussian probability density function을 approximation하는 discrete decoder를 integral한 것으로 생각할 수 있습니다.

🔎 t>1인 경우 Lt1에서 앞의 상수를 제거한 것으로 생각할 수 있습니다.

🔎 Lt1에서 앞의 상수를 제거하기 때문에 denoising 작업에 더 집중할 수 있도록 network를 훈련 시키는 것을 Section 4에서 실험을 통해 보여줍니다.

4. Experiments

🔎 Time step T=1000

🔎 Forward process variances to constants increasing linearly (βt=1040.02)

🔎 βt[1,1]로 scaling된 data에 비해 상대적으로 작게 선택되어 reverse process와 forward process가 거의 동일한 기능 형태를 가지면서 signal-to-noise ratio를 가능한 작게 xT로 유지할 수 있습니다.

💭 Signal-to-noise ratio를 가능한 작게 xT로 유지한다는 것은 원래의 이미지를 찾을 수 없을 정도로 noise가 잘 추가된 것을 의미하는 것 같습니다.

🔎 U-Net backbone (similar to an unmasked PixelCNN++) with group normalization 사용

🔎 Transformer sinusoidal position embedding을 사용해서 parameter를 공유

🔎 16×16 feature map resolution에서 self-attetion 사용

4.1 Sample quality

4.2 Reverse process parameterization and training objective ablation

🔎 μ~-prediction은 L을 단순화 하기 전에서만 잘 작동한다는 것을 발견

🔎 Σθ(xt,t)를 상수로 고정시키지 않고 학습시키는 경우 학습이 불안정하며 sample quality가 저하되는 것을 알 수 있었습니다.

💡 상수로 고정 시킨 경우 notation : fixed isotropic Σ

💡 학습 대상인 경우 notation : learned diagonal Σ

🔎 ϵ-prediction은 lsimple로 학습을 진행할 때 가장 좋은 결과를 얻었습니다.

4.3 Progressive coding

🔎 Train과 test 사이에 최대 0.03bits/dim 차이가 있지만 다른 likelihood-based model과 비슷한 차이이며 이는 diffusion model이 overfitting 되지 않았음을 알 수 있습니다.

🔎 Diffusion (original)보다는 낮은 lossless codelengths를 가지지만 다른 likelihood-based model보다는 여전히 높은 lossless codelengths를 가집니다.

🔎 그럼에도 불구하고 우리의 sample은 high quality이기 때문에 diffusion model은 훌륭한 lossy compressors를 만드는 inductive bias를 가지고 있다고 저자들은 결로 지었습니다.

🔎 L1+  +LT를 rate로, L0를 distortion으로 처리하면 CIFAR10 model은 1.78bits/dim의 rate와 1.97bits/dim의 distortion을 가지며, 이는 0에서 255까지의 척도에서 0.95(MSE)에 해당합니다.

🔎 또한 distortion이 lossless codelengths의 절반 이상을 차지하고 있습니다.(1.97/3.75)

4.3.1 Progressive lossy compression

🔎 Progressive lossy code를 통해 rate-distortion에 대해 더 조사했습니다.

🔎 Receiver는 어느 t에서든지 부분 정보를 완전히 사용할 수 있으며 점진적으로 추정이 가능합니다.

논문의 공식 4번에서 x0로 식을 정리하면 아래와 같이 나타낼 수 있습니다.

x0x^0=(xt1α¯tϵ)/α¯t

🔎 Distortion(RMSE) : x0x^02/D

🔎 Rate-distortion plot에서 rate가 작은 부분에서 distortion이 매우 급격하게 줄어들었는데 이것은 비트의 대부분이 실제로 감지할 수 없는 distortion에 할당되었음을 나타냅니다.

🔎 Rate : Cumulative number of bits received so far at time t

4.3.2 Progressive generation

🔎 Object의 형체가 먼저 나타나고 이후 detail 정보들이 나타납니다.

🔎 이것들이 conceptual compression의 힌트일 것입니다.

4.3.3 Connection to autoregressive decoding

🔎 논문의 공식 5번의 Lt1을 통해 Gaussian diffusion model을 좌표 순서를 reordering한 일종의 autoregressive model로 해석할 수 있습니다.

🔎 Noise를 이미지에 추가할 때 Gaussian noise가 masking noise보다 자연스럽기 때문에 더 나은 효과를 보인 것 같습니다.

🔎 또한 Gaussian diffusion length는 데이터 차원과 동일하지 않아도 되므로 빠른 sampling을 위해 더 짧게 또는 모델 표현성을 위해 더 길게 만들 수 있습니다.

💭 Autoregressive model의 경우 데이터 차원과 동일할 수 밖에 없기 때문에 Gaussian diffusion의 장점을 말하는 것으로 보입니다.

4.4 Interpolation

🔎 Image space : x0,x0q(x0)

🔎 Diffused space : xt,xtq(xt|x0)

🔎 Linearly interpolated latent : x¯t=(1λ)x0+λx0

🔎 Reverse process를 통해 image space로 보낸 결과 (최종 결과) : x¯0p(x0|x¯t)

This post is licensed under CC BY 4.0 by the author.

[Generative Model] CycleGAN : Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

[Generative Model] DDPM : Denoising Diffusion Probabilistic Models