해당 포스트에서는 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 : 다루기 쉬운 매개변수
를 조정하여 확률분포 를 posteroir distribution 에 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 해가는 과정이며 학습의 대상이라고 볼 수 있습니다.
2.1.1 Formula (1), (2), (3)
먼저 표기법에 대해 알아보면
아래에 기술되어 있는 공식(chain rule)을 사용하면 (1)
, (2)
, (3)
을 쉽게 이해할 수 있습니다.
2.1.2 Formula (4)
Reverse process는 markov property를 만족하기 때문에 markov process에 의해서 (4)
처럼 (3)
을 변경할 수 있습니다.
2.1.3 Formula (5)
Timestep (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로 고정되어 있다는 점입니다.
2.2.1 Formula (1), (2), (3)
아래에 기술되어 있는 공식(chain rule)을 사용하면 (1)
, (2)
, (3)
을 쉽게 이해할 수 있습니다.
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
Variational transform
- 비선형 함수
를 다루기 쉬운 선형 함수 로 바꾸는 것을 variational transform이라 합니다. - Variational transform의 한 예로
함수를 일차함수로 변경해보겠습니다. 함수를 일차함수로 나타낸다는 것은 함수 위에 있는 모든 점을 일차함수로 표현할 수 있음을 뜻합니다. 함수의 접선은 로 나타낼 수 있을 것입니다.- 이 때 일차함수인 접선의 절편은 기울기
에 따라 달라지기 때문에 로 표현됩니다. - 접점을 찾는 공식은 아래와 같이 나타낼 수 있습니다.
- 이제 접점 구해보겠습니다.(간단하게
함수이 밑이 이라 가정)
- 정리를 해보면
인 모든 좌표에서 함수를 일차함수로 표현할 수 있습니다.
- 그러나 variationa transform에서 중요한 특징이 하나 있습니다.
- 그것은 바로 함수가 convex하거나 concave해야만 가능합니다.
만약 비선형 함수
가 convex하지 않고 concave하지도 않다면 접선 에는 두 개 이상의 접점이 생기기 때문입니다. - 이러한 특징 때문에 duality를 통해 variational tranform이 가능합니다.
- 만약 convex하지 않거나 concave하지 않은 함수가 있다면
를 사용해 concave한 함수를 만들어 사용할 수 있습니다. - Deep Learning을 공부하다보면
를 사용하는 이유에는 곱을 합으로 변경해주는 이유도 있지만 concave한 특징을 사용해 variational transform하는 이유도 있다는 것을 기억하면 좋을 것 같습니다.
- 만약 convex하지 않거나 concave하지 않은 함수가 있다면
- Variational transform을 정리해보면 다음과 같습니다.
- Variational parameter
를 도입하여 비선형 함수인 를 선형으로 변경 하는 것을 variational transform이라 할 수 있습니다.
- Variational parameter
- 비선형 함수
Variational Inference
- Variational inference는 다루기 쉬운 매개변수
를 조정하여 확률분포 를 posteroir distribution 에 approximation 하는 것을 말합니다. - Variational inference의 방법으로는 KL-Divergence이 있습니다.
- Variational inference는 다루기 쉬운 매개변수
2.3.2 Variational Inference at DDPM
DDPM에서 variational inference가 적용되는 부분을 살펴보겠습니다.
2.3.3 Optimization Function 구하기
Section 2.1과 section 2.2를 사용해 위에서 variational inference를 통해 찾은 ELBO term을 아래와 같이 풀어 쓸 수 있습니다.
지금까지 많은 공식들이 나와 헷갈릴 수 있으니 지금까지 증명했던 공식을 간단히 나타내면 아래와 같이 나타낼 수 있습니다.
2.4 Variance schedule
🔎
🔎
🔎 Diffusion process에서 주목할만 한 점은 diffusion process를 임의의 timestep
🔎 어떻게 closed form으로 나타낼 수 있는지 아래 증명과 함께 알아보겠습니다.
2.4.1 Reparameterziation Trick
딥러닝에서 필수적인 계산이라 함은 바로 chain rule에 의한 backpropagation입니다.
Backpropagation을 사용하기 위해서는 미분이 필수적인데 확률변수
그렇기 때문에 reparameterization trick을 사용해 미분이 가능하도록 해 backpropagation을 진행합니다.
정리를 해보면 확률변수
2.4.2 Diffusion Proecess with reprameterization trick
먼저 diffusion proecess의 time step
이제 reparameterization trick을 활용해 timestep
2.5 Rewriting
🔎 위에서 정의한 optimization function
2.5.1 Formula (2), (3) : Rewriting
🔎
2.6 What probability distribution follows
위의 식
🔎 결과적으로 optimization function
3. Diffusion models and denoising autoencoders
🔎 Diffusion models : 제약이 있는 latent variable models의 한 종류로 보일 수 있지만 구현에서 많은 자유도를 허용합니다.
Forward process(Diffusion process)의 variances
(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
🔎 Section 2.5에서의
🔎
🔎 따라서
⭐ 그렇기 때문에
3.2 Reverse process and
🔎 Section 2.5에서의
3.2.1
🔎 먼저
DDPM에서는 reverse process의 분포를 Gaussian distribution으로 설정했고 해당 분포의 평균과 분산을
로 정의를 했습니다.
🔎 해당 논문의 저자들은 먼저
🔎 이때 실험적으로 1
번 : 2
번 :
🔎 1
번의 경우 모든 t에서 독립적이므로
🔎 2
번의 경우 이전 t에 대해서 영향을 받으므로(
🔎 1
번과 2
번은 reverse process에 대해 각각 upper bound와 lower bound에 해당합니다.(이전 연구)
3.2.2
🔎
🔎 KL-Divergence의 비교 대상인 두 분포가 분산이 같은 Gaussian distribution이므로
🔎 즉,
🔎 위에서 다시 정의한
🔎 변경된
🔎 즉 아래와 같이
🔎 이를 통해 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
🔎
🔎 그럼에도 불구하고
3.3 Data scaling, reverse process decoder, and
🔎 이미지의 구성 원소
🔎 Discrete log likelihhod를 얻기 위해 reverse process의 마지막 과정을 Gaussian distirubtion(
🔎 이러한 discrete log likelihood는 variational bound가 discrete data에 대해 lossless codelength을 보장합니다.
🔎 Sampling이 끝나면
3.4 Simplified training objective
🔎 결과적으로 학습을 진행해야 하는 부분은
🔎
🔎
🔎
4. Experiments
🔎 Time step
🔎 Forward process variances to constants increasing linearly (
🔎
💭 Signal-to-noise ratio를 가능한 작게
로 유지한다는 것은 원래의 이미지를 찾을 수 없을 정도로 noise가 잘 추가된 것을 의미하는 것 같습니다.
🔎 U-Net backbone (similar to an unmasked PixelCNN++) with group normalization 사용
🔎 Transformer sinusoidal position embedding을 사용해서 parameter를 공유
🔎
4.1 Sample quality
4.2 Reverse process parameterization and training objective ablation
🔎
🔎
💡 상수로 고정 시킨 경우 notation : fixed isotropic
💡 학습 대상인 경우 notation : learned diagonal
🔎
4.3 Progressive coding
🔎 Train과 test 사이에 최대
🔎 Diffusion (original)보다는 낮은 lossless codelengths를 가지지만 다른 likelihood-based model보다는 여전히 높은 lossless codelengths를 가집니다.
🔎 그럼에도 불구하고 우리의 sample은 high quality이기 때문에 diffusion model은 훌륭한 lossy compressors를 만드는 inductive bias를 가지고 있다고 저자들은 결로 지었습니다.
🔎
🔎 또한 distortion이 lossless codelengths의 절반 이상을 차지하고 있습니다.(
4.3.1 Progressive lossy compression
🔎 Progressive lossy code를 통해 rate-distortion에 대해 더 조사했습니다.
🔎 Receiver는 어느
논문의 공식 4번에서
로 식을 정리하면 아래와 같이 나타낼 수 있습니다.
🔎 Distortion(RMSE) :
🔎 Rate-distortion plot에서 rate가 작은 부분에서 distortion이 매우 급격하게 줄어들었는데 이것은 비트의 대부분이 실제로 감지할 수 없는 distortion에 할당되었음을 나타냅니다.
🔎 Rate : Cumulative number of bits received so far at time
4.3.2 Progressive generation
🔎 Object의 형체가 먼저 나타나고 이후 detail 정보들이 나타납니다.
🔎 이것들이 conceptual compression의 힌트일 것입니다.
4.3.3 Connection to autoregressive decoding
🔎 논문의 공식 5번의
🔎 Noise를 이미지에 추가할 때 Gaussian noise가 masking noise보다 자연스럽기 때문에 더 나은 효과를 보인 것 같습니다.
🔎 또한 Gaussian diffusion length는 데이터 차원과 동일하지 않아도 되므로 빠른 sampling을 위해 더 짧게 또는 모델 표현성을 위해 더 길게 만들 수 있습니다.
💭 Autoregressive model의 경우 데이터 차원과 동일할 수 밖에 없기 때문에 Gaussian diffusion의 장점을 말하는 것으로 보입니다.
4.4 Interpolation
🔎 Image space :
🔎 Diffused space :
🔎 Linearly interpolated latent :
🔎 Reverse process를 통해 image space로 보낸 결과 (최종 결과) :