https://arxiv.org/abs/2105.05233
Diffusion Models Beat GANs on Image Synthesis
We show that diffusion models can achieve image sample quality superior to the current state-of-the-art generative models. We achieve this on unconditional image synthesis by finding a better architecture through a series of ablations. For conditional imag
arxiv.org
참고 영상 : https://www.youtube.com/watch?v=gN1FQhQsUTE

### GAN vs Diffusion
image generation task에서 사용하는 metric인 FID,IS, Precision은 image diversity 를 제대로 반영하지 못한다는 단점이 있음.
GAN은 likelihood based model에 비해 diversity 가 떨어지는 치명적인 단점이 존재한다. 이에 따라 GAN의 전형적인 단점으로 손꼽히는 mode collapse 문제가 발생하기 쉽다.
반면에 diffusion model은 likelihood based model 중 하나로 signal 로 부터 noise를 점진적으로 제거하는 방식으로 새로운 sample을 생성하는 방식을 취한다. 해당 논문 전엔 CIFAR 10 에서는 SOTA를 달성했으나 LSUN이나 ImageNet에선 GAN에게 밀리는 성능을 보여왔다.
따라서 본 논문의 저자들은 GAN은 fidelity를 위해 diversity를 희생한 것이라고 생각하였다. 그래서 이를 극복하기 위해 diversity를 일부 희생하며 fidelity를 높일 수 있는 scheme를 개발하였다.
여기서 fidelity는 precision과 비슷한 개념으로 generative image 들이 얼마나 real image distribution에 속하는를 판단하는 것이다. 반대로 recall 과 비슷한 개념인 diversity는 generative image들의 분포가 얼마나 넓게 퍼져 있는지를 측정하는 것이다.
### DDPM

DDPM은 init image
간단한 수식을 보면, forward 에서 이미지의 noise를 추가하는 것은 다음과 같다.
따라서 이를 수식적으로 다시 정리하자면 다음과 같은 guassian distribution을 따르게 정리한다.
하지만 이는 너무 많은 반복을 하게 되므로 computation time 이 길게 소요된다. 따라서, init image
로 표현이 된다. 따라서 skip time step 이 가능해진다.
다음으로 reverse 과정을 수식적으로 표현해보자.
backward 과정은 forward 와 반대로
로 정의된다.
따라서 이러한 reverse 과정을 neural network 에 학습을 시켜서 풀고자 하는 것인데,
따라서 해당 분포의 \( \mu_{\theta}(x_t , t) \) 와
따라서 이를 학습시키기 위한 loss term 은 다음과 같다. model의 distribution
전체 loss :
init loss :
t-1 loss :
T loss :
이러한 loss 를 따른다. 그러나 실제로는 이를 simplify 한 loss 를 사용한다. 그리고
이다.
그래서 결국
그리고 이를 학습하는 neural network 는 U-Net 구조를 따른다.
### Improved DDPM
Improved DDPM 은 DDPM 에서 2가지를 고치면서 성능을 높인 방법이다.
먼저, DDPM 에서의 covariance값을 constant 로 사용하였는데, 이를 개선하여 covariance도 학습을 시키는 방법을 제안하였다.
여기서 v 는 model의 output 값이다.
그리고 기존 DDPM 에서 loss term 을 수정하였는데, 이는 다음과 같다.
### DDIM
참고
https://happy-jihye.github.io/diffusion/diffusion-2/
[Paper Review] DDIM: Denoising Diffusion Implicit Models 논문 리뷰
jihye’s study blog
happy-jihye.github.io
DDIM 에서는 DDPM과 동일하게 marginal distribution을 구성하지만 inference 과정에서 사용되는 joint distribution 과정을 다르게 distribution을 구성하였다.
DDPM은
최근엔 DDPM 으로 학습을 하고, DDIM 으로 sampling 하는 과정을 주로 사용하기 때문에 sampling 과정만 보겠다.
왜냐하면 DDIM은 sampling 속도가 빠르기 때문이다.
빠른 이유에 대해서 보면, non-markovian chain 으로 임의의 step에 대해서만 모델을 학습했기 때문에, generative process 에서도 일부만 sampling 할 수 있어서 sampling 을 빠르게 할 수 있다. 그러나 이러한 방식으로 인해, training process 에서는 더 많은 step 에 대해 필요하다. 따라서 주로 DDPM으로 학습시키고 DDIM 으로 sampling 하는 과정을 쓰는 것이다.
### To make diffusion models beat GAN
Classifier Guidance 를 이용
diffusion model에 classifier
그러면 이걸 어떻게 condition을 줄까? 바로 calssifier 의 gradient 를 전달해주는 것이다.
conditional reverse process 는 다음과 같다.
여기서
그러면 이 식을 계산의 용이성을 위해 log를 취하여 풀어쓰면
처럼 된다. 여기서 C 는 constant 이고, g는 gradient of classifier를 의미한다. 이런 식으로 classifier의 gradient 를 전달해주는 방식으로 conditional reverse process 가 진행된다. 즉, gradient의 covariance 만큼 mean 을 이동시켜서 condition 을 주게 하는 것이다.

Algorithm 1 은 DDPM method 를 사용하였을 때, classifier guide 를 주는 알고리즘 박스이고, Algorithm 2 는 DDIM 을 사용하였을 때 classifier guide 를 주는 알고리즘 박스이다.
Algorithm 1 에선
그리고 Algorithm 2 에서도 마찬가지로 normalization 한 상태로 class condition을 주어서 sampling을 한다.
댓글