스터디 영상: https://youtu.be/sNkVRr56MtI

DDPM의 시초격인 논문입니다. 사실 원조는 <Deep unsupervised learning using nonequilibrium thermodynamics> 이 논문인데, 2015년에 나오고서 그 뒤로는 묻혔고 본 논문이 다시 꺼내서 DDPM이 이미지 생성을 꽤 잘한다는 것을 보였죠.

Contribution

  1. Posterior가 $\tilde\mu_t$ 대신 $\epsilon$ 예측, 여기서 NCSM과의 연결점 찾음.
  2. Reweighted VLB 사용.
  3. Lossy compression과의 연결

Untitled

DDPM은 $T$개의 latent variable을 가지는 latent variable generative model

$p_{\theta}(x_0):=\int p_{\theta}(x_{0:T})dx_{1:T}$이다. DDPM은 기본적으로 hierarchical VAE인데, DDPM만의 차별점은 다음과 같다.

  1. VAE는 encoding이 뉴럴넷을 통해 이루어지지만 DDPM에서는 노이즈를 조금씩 입히는 fix된 forward process이다.
  2. VAE와 달리 마지막 latent variable $x_T$가 반드시 $N(0,I)$를 따른다.
  3. VAE의 decoder는 각 layer마다 개별적인 파라미터를 가지지만, DDPM에서는 모든 time step t에 대해 같은 모델이 사용된다.
  4. 일반적인 VAE와 달리 DDPM에서는 latent variable들의 dimension이 data dimension과 같다 (bottleneck이 없다는 말).

그렇다면 VAE는 성능이 안좋은 반면 DDPM은 sharp한 이미지도 생성할 수 있는 이유는 무엇일까? Diffusion process의 총 time step $T$에 대해 DDPM은 $T$-layer의 hierarchical VAE라고 할 수 있다. 각 diffusion process는 정해진 noise schedule을 따라서 조금씩 signal을 파괴한다. 따라서 이를 뒤집는 reverse process의 난이도가 일반적인 VAE에 비해 쉽다. 반면 VAE에서는 encoder가 어떤 layer에서는 signal을 전혀 파괴하지 않을 수도 있고 혹은 너무 많이 파괴할 수도 있다. 이를 뒤집는 decoding step의 난이도는 무척 쉽거나 혹은 무척 어려울 수 있다. 다시 말해, DDPM은 VAE의 generation process를 $T$개의 쉬운 markov process로 쪼갰다고 말할 수 있다.

Forward Process

Untitled

Forward process는 위와 같이 정의된다. 여기서 $\beta_t$는 $\beta_1=10^{-4}$에서 $\beta_T=0.02$까지 linear하게 증가하게 사전에 설정된다. 이 값은 learnable parameter로 둘 수도 있지만 이 논문의 저자가 상수로 두어도 큰 차이가 없다는 것을 발견하였다. 가령 $\beta_t=0.01$이라면 $x_t=\sqrt{0.99}x_{t-1} + 0.1\epsilon$으로 reparameterize 될 것이다. 이런 식으로 점차 signal을 손상시킨다. 논문에서는 $T=1000$으로 설정하였고, 이런 forward process를 1000 step 밟으면 $x_T$는 거의 완전히 gaussian distribution을 따르게 된다.