본문 바로가기

논문 리뷰

[DDPM] Diffusion Models Beat GANs on Image Synthesis 논문 리뷰

728x90
반응형

 

 

Diffusion Model에 사용되는 아주 기본 공식들(여기를 클릭)

 

공부하기 전에 알아두면 좋은 DPM 기본 공식들 (여기를 클릭)

 

 

Abstract

 

diffusion model이 현재의 state-of-the-art generative model보다 우수한 [이미지 샘플 퀄리티]를 가진다.

일련의 절제(ablation)를 통해, 더 나은 아키텍처로 unconditional image synthesis을 수행한다. 

conditional image synthesis을 위해, 분류 지침을 통해, 샘플 품질을 추가적으로 개선한다. 

-> 분류 지침(clssifier guidance) : 분류기로부터 gradient를 사용하여, 다양성을 교환. 간단하고 효율적 방법

 

 

Diffusion Process

 

1) 원래의 이미지를 아주 약간(nearly infinitesimal) 노이즈화시킨다.

2) 이 노이즈화를 다회 반복하여, 원래 이미지와 거의 독립적인 noise로 만든다. 

** neural network에서는 diffusion process의 역과정인 reverse process의 coefficient를 학습한다. 

 

 

DDPM

 

noising process의 역과정을 수학적으로 나타내서, 역과정을 학습하는 방법

 

 

 

1) Forward process model, q

 

q : difusion process, 미세한 Gaussian noise를 추가하는 과정

-> q에는 trainable parameter가 없다.

    (VAE에서 사용하는 reparameterization trick으로 학습할 수 있으나, hyperparameter를 사용했기 때문)

-> q는 점점 걷어내지는 과정 상에서 Markov chain이다. 

    (x[T-1]이 condition이라면, x[T-1] 이전의 값들에 독립적이다.)

-> x의 아래 첨자는 0에서 T까지의 process 과정을 표현한다.

-> x0은 noise가 없는 데이터, t가 커지면 점점 noise가 생기며, xT는 Gaussian noise가 된다. 

 

2) Reverse process model(our purpose), p

 

p : reverse process, 미세한 Gaussian noise를 걷어내는 과정

-> 아래 첨자로

 

** 정리하자면

1) DDPM의 핵심 : neural network로 표현되는 p 모델이 q를 보고 noise를 걷어내는 과정을 학습하는 것

2) q는 noise를 아주 조금 추가하는 과정이다.

3) [noise를 추가하는 과정]을 보고 어떻게 [noise를 걷어내는 과정, denoising process]가 학습될까?

 

 

DDPM Loss

 

<VAE  loss 수식 유도>

 

ELBO 수식에서 latent KL divergence를 제외한 나머지가 reconstruction term으로 남아, 두 loss term으로 표현이 가능하다.

 

-> VAE loss는 latent를 z로 표현하기 때문에

    유도 과정에서 보이는 XT를 z라고 생각한다면, 이전에 우리가 유도했던 VAE loss 공식과 일치하다. 

VAE에 대한 깊은 개념을 알고 싶다면 여기를 클릭

 

<DDPM loss 수식 유도>

 

 

-> Q. [noise를 추가하는 과정]을 보고 어떻게 [noise를 걷어내는 과정, denoising process]가 학습될까?

    에 대한 답을 얻을 수 있다. 

-> A. 두 분포의 condition과 target variable이 서로 반대이다. 

위의 내용을 수식으로 풀어낸 과정, 결과는 동일하다.

 

-> 5번에서, p와 q가 markov chain임을 이용하여 Markov chain의 성질을 사용했다. 

Markov chain을 모른다면 여기를 클릭

 

 

-> * 부분 : Markov chain의 성질로 나타낼 수 잇는 부분. 사실상 loss term을 만들어낼 때의 핵심 구간

    (이 과정을 통해서 [p와 q distribution]이 [같은 condition]으로부터 [같은 target distribution]을 나타냄)

-> 총 3개의 term이 나옴을 알 수 있다. 

 

<Loss term 설명>

 

 

-> 1번 : VAE의 KL divergence와 비슷한 term

-> 2번 : reverse process와 diffusion process의 분포를 매칭시키는(=KL divergence를 낮추는) loss

    (2번 식에서 [아래의 수식] 유도 과정은 나중에 하자 [여기를 참고] )

-> 3번 : reverse process의 마지막 과정, VAE의 reconstruction loss에 대응되는 term

 

<Loss 설명 및 training technique>

-> 이 loss term을 최적화시키는 방법, 더 좋은 generative model이 되도록 loss modification 시행

 

 

->  에 대한 reparameterization 형태 ? 무슨 의미인지 모르겠다면 여기를 클릭

-> Q. neural net의 output이 Gaussian noise에 수렴하도록 한다?

    A. neural net의 output도 reparameterization을 수행, diffusion porcess q 또한 reparameterization을 수행

        두 reparameterization의 불확실성인 Gaussian을 matching시키는 것

-> loss의 계수(coefficient)는 t와 반비례한다.

    따라서 coefficient를 제거하면, t가 큰 process의 loss가 더 커짐 -> larger t의 process에 집중

    [이미지에 가까운, 덜 noisy한 것에서 noise를 제거하는 것]보다 

    [noise가 심한 이미지에서 noise를 제거하는 것]에 더 집중하는 모델이 성능이 좋을 것이다 !

 

 

 

결과 및 discussion

 

<결과>

좋은 샘플을 만들어냈고, FID 결과가 좋았다. 

 

-> IS(inceptino score) :

    생성된 image로부터 classification을 할 때, 얼마나 특정 class로 추정을 잘 하는지에 대한 score

    (classification 성능이 좋으면서, 전체 class를 고르게 생성해낼수록 IS score가 높다.)

-> FID(Frechet Inception Distance) : 

    실제 데이터 분포를 참고하여 평균, 공분산을 비교. 낮을수록 좋다. 

 

<Discussion>

FID는 좋지만, NLL 결과는 좋지 않았다.

-> NLL이 높다 = 이미지 픽셀당 평균 확률이 낮다, 불확실하다. 

 

출처 : Blue collar Developer

 

 

Langevin dynamics

 

여기를 클릭하면 랑주뱅 동역학이 무엇인지 알 수 있음!

 

 

 

출처 논문 : 

https://paperswithcode.com/paper/diffusion-models-beat-gans-on-image-synthesis

 

Papers with Code - Diffusion Models Beat GANs on Image Synthesis

#3 best model for Image Generation on ImageNet 64x64 (FID metric)

paperswithcode.com

 

같이 참고하면 좋을 듯한 논문 : 

https://www.dbpia.co.kr/pdf/pdfView.do?nodeId=NODE10529690&googleIPSandBox=false&mark=0&ipRange=false&accessgl=Y&language=ko_KR&hasTopBanner=true 

 

DBpia

논문, 학술저널 검색 플랫폼 서비스

www.dbpia.co.kr

 

 

728x90
반응형