본문 바로가기
AI/AI Paper review

[NIPS-2020] Denoising Diffusin Probabilistic Models

by 노마드공학자 2024. 1. 29.

논문 전문 : https://papers.nips.cc/paper_files/paper/2014/hash/5ca3e9b122f61f8f06494c97b1afccf3-Abstract.html

[출처] https://doi.org/10.48550/arXiv.2006.11239

 

※ The picture and content of this article are from the original paper.

This article is more of an intuitive understanding than academic analysis.


 

[논문 요약]
Denoising Diffusion Probablistic Models

 

 

2020년 이후 나온 논문들 중 가장 핫한 AI 모델을 꼽으라면 당연코 Diffusion Model 일것입니다.

Diffusion Model 이라는 컨셉은 2015년에 나왔지만, 본 논문(이하 DDPM)을 통해 본격적으로 활용되기 시작했고, Stable Diffusion으로 알려진 Latent Diffusion Model 이라는 기술을 통해 현재까지 사용되고 있습니다.

GAN에서 Generator에 입력으로 인가하던 'Z' 라는 벡터를, 원본 데이터에 Noise를 추가하는 형식으로 만들어주며 생성 데이터가 GAN 보다 훨씬 원본 데이터의 분포를 잘 추종하도록 설계가된 기술입니다.

 

Contents

 

생성 AI에 큰 혁신을 일으킨 기술입니다.

이전에 정리했던 GAN(Generative Adversarial Nets)은 One Shot으로 Discriminator와 Generator간의 경쟁학습을 통해 이미지를 생성해냈다면, DDPM은 여러 단계에 걸쳐 Noise를 추가하고 제거하는 방식을 통해 이미지를 생성해냅니다.

 

 

원본 이미지에서 Noise를 입히는 과정 (X_0 → X_T)을 Forward Process라고 하며, 반대로 Noise에서 이미지를 생성해내는 과정(X_T → X_0)을 Reverse Process 라고합니다.

즉, 학습할때는 Forward/Reverse Process를 모두 거치지만 학습이 완료된 모델에서 이미지를 생성할때는 Reverse Process만 사용합니다. (GAN에서도 학습 완료 후에는 Generator만 사용하는것과 동일한 개념)

 

1. Forward Process

 

Forward Process는 원본 이미지에 Noise를 더해가며 완전한 Noise로 만들어가는 과정을 의미합니다.

Normal Distribution Noise를 추가하기에, 평균과 분산만 주어지면 여러단계에 걸쳐 노이즈를 추가하는 방식입니다.

Forward Process에서는 평균은 0이고, 분산은 Beta로 표현되는데 여러 단계(본 논문은 1,000 단계)에 거쳐 균등하게 이미지가 노이즈화(Diffusion) 되도록 Beta값을 스케쥴링 해줍니다.

이를 통해, 결국 X_0라는 원본 이미지에서 노이즈가 중첩되어 X_T라는 노이즈 데이터가 만들어지게 됩니다.

 

2. Reverse Process

 

Reverse Process는 노이즈 X_T에서 원본 데이터 X_0를 다시 유추해내는 방법을 학습합니다.

Forward/Reverse 모두 Noise를 추가/제거하는 과정에서 Markov Chain이 핵심적인 역할을 하는데, 다음 상태를 결정하는데는 현재 상태만 정확하게 알면된다는 확률 과정의 한 종류입니다.

수식도 X_t-1과 X_t. 즉, 직전값과 현재값에 의한 연계과정만 기재되어있는데, 이것이 Markov Chain 형태를 의미합니다.

따라서 각 단계에서 원래 데이터로의 복원은 오직 직전 데이터에만 의존합니다.

말이 어려운데, 결국 시간순으로 사슬처럼 엮여있어서 T+100시점에서 T시점을 원큐에 추정할 수 없고, T+99, T+98 ... 사슬을 차례대로 풀어나가야 한다는 의미입니다.

이러한 방식으로 DDPM은 복잡한 데이터 분포를 학습하고 높은 퀄리티의 새로운 데이터를 생성할 수 있게됩니다.

(Markov Chain형식의 기술들은 사슬을 순서대로 풀어나가야 하기에 HW연산 속도 관점에서는 가장 악조건에 속하는 편입니다. 이런 Markov 형식을 벗어난 DDPM기술로는 DDIM(Denoising Diffusion Implicit Model)도 있습니다.)

 

[종합] DDPM Loss

 

Forward/Reverse Process 종합하여, DDPM이 학습하는 과정에서의 Loss식은 상기와 같습니다.

 

1. L_T

L_T는 Forward Process에 해당되나, 정해진 Beta값에 따라 Normal Distribution Noise를 차례차례 더해주는 것이기 때문에 Learnable Parameter가 없습니다. 따라서, 이 값은 학습과정에서 유의미한 영향을 끼치진 않습니다.

 

2. L_t-1

L_t-1은 Reverse Process에 해당됩니다. Reverse Process에서의 목적은 Forward Process에서 Add된 Noise들을 추정하는 것이며, 추정하는 형태는 Gaussian을 가정하고 평균과 분산입니다.

즉, 각 픽셀별로 Forward Process에서 Add된 Noise들을 Reverse Process에서 평균과 분산으로 역추적해내도록 학습됩니다. 이 과정에서 데이터의 분포를 추정하는 방식을 학습합니다.

 

3. L_0

가장 중요한 부분인데, 결국 X_0의 원본이미지를 생성해내는게 학습 목표입니다. 따라서, L_0는 Reverse Process의 제일 마지막 부분으로, 결국 원본이미지를 생성하기 위한 최종 단계이며, KL-Divergence를 통해 두 분포 X_0, X_1간 차이를 학습합니다.

 

 

결과적으로는 Noise로부터 Reverse Process를 통해 이미지를 생성해내는 모습을 보입니다.

Markov Chain 때문에 연산방식은 비효율적이지만, 학습해야하는 데이터의 분포를 Noise add 과정을 통해 만들어준다는 방식이 아주 효과적이기때문에 여러 변형과 난제 해결을 통해 현재까지도 많이 사용되고 있는 논문입니다.

 

Results

2020년대의 슈퍼논문입니다.

Stable Diffusion을 필두로, Diffusion Model에는 저희의 일상에 영향을 주는 기술들에도 적극 활용되고 있습니다.

노이즈를 추가함으로써, 원본데이터의 분포를 살리는 노이즈를 얻고, 역과정을 통해 다시 원본데이터로 복원함으로써, 학습이 완료되면 노이즈로부터 새로운 이미지를 생성할 수 있다는 방식이 아주 인상적입니다.

 

 

참조

[1] https://doi.org/10.48550/arXiv.2006.11239

댓글