Awesome-Diffusion-models 레포의 Introductory Posts에서 How diffusion models work: the math from scratch를 읽고 정리해본다.
- Diffusion 모델은 다양한 고해상도 이미지를 생성할 수 있는 새로운 생성형 모델이다.
- 이미 다양한 diffusion 기반의 아키텍쳐가 많이 있지만, 이 포스트에서는 DDPM(Denoising Diffusion Probabilistic Models)에 중점을 두어 설명한다.
- Diffusion 방식이 처음 제안된 논문 : Deep Unsupervised Learning using Nonequilibrium Thermodynamics
- DDPM 논문 : Denoising Diffusion Probabilistic Models
Diffusion 모델은 기존의 생성형 모델들과 기본적으로 차이점이 있다. 이미지 생성 과정(샘플링)을 많은 수의 작은 "노이즈 제거(denoising)" 단계로 분해하는 것을 목표로 한다.
- 모델은 이러한 작은 단계를 거쳐가면서 스스로를 수정해가고, 점진적으로 좋은 샘플을 생성하게 된다.
- 하지만 반복적인 단계로 인하여 GAN과 같은 방식과 비교할 때, 샘플링 과정이 느리다는 단점이 있을 수 있다.
Diffusion Process
- forward process
- 입력 이미지 $\mathbf{x}_0$에 점차적으로 가우시안 노이즈(Gaussian noise)를 연속된 $T$ 단계에 걸쳐 추가해간다.
- 이 과정은 학습시킬 신경망이 사용할 타겟을 생성하기 위해 필요하다.
- $T$보다 작은 $t$ 만큼의 노이즈 추가 단계가 적용된 이미지
- 이 과정은 학습시킬 신경망이 사용할 타겟을 생성하기 위해 필요하다.
- 신경망은 노이즈 추가 단계를 반대로 진행하여, 원래의 데이터(=원본 이미지)를 복구시키도록 훈련된다.
- 이처럼 반대과정을 모델링함으로써, (학습된 생성모델을 통해) 새로운 데이터를 생성할 수 있게 된다.
- 노이즈를 제거하는 단계를 reverse diffusion process라고 부르며, 생성 모델의 샘플링 과정에 해당한다.
- 입력 이미지 $\mathbf{x}_0$에 점차적으로 가우시안 노이즈(Gaussian noise)를 연속된 $T$ 단계에 걸쳐 추가해간다.
Forward diffusion
- Diffusion models은 잠재 변수 모델(latent variable models)로 볼 수 있다.
- 숨겨진 연속된 특성 공간을 잠재(latent) (공간)으로 부른다.
- 이러한 측면에서 diffusion model은 VAE(Variational Auto-Encoder)와 유사하게 생각할 수 있다.
- Diffusion models은 $T$ 단계의 마르코프 연쇄(Markov chain)로써 표현할 수 있다.
- 마르코프 연쇄는 각 단계의 상태는 오직 바로 이전 단계에만 의존한다는 가정을 가진다.
- Diffusion models은 특정한 종류의 신경망을 사용할 수 있는 flow-based 생성모델과 달리, 사용할 수 있는 신경망에 제한을 받지 않는다.
- 실제 데이터 분포 $q(x)$에서 뽑은 데이터 포인트 $\mathbf{x}_0$에 대해서 생각한다.
- 이 데이터는 원래의 데이터 확률 분포를 따른다는 의미에서 $\mathbf{x}_0 \sim q(x)$ 로 표시한다.
- forward diffusion process는 노이즈를 추가하는 과정으로 정의할 수 있다.
- 특히 마르코프 연쇄의 각 단계에서, 이전 단계의 데이터 $\mathbf{x}_{t-1}$에 분산 $\beta_t$를 가진 가우시안 노이즈(Gaussian Noise)를 추가하여, 조건부 확률분포 $q(\mathbf{x}_t | \mathbf{x}_{t-1})$로부터의 새로운 잠재 변수 $\mathbf{x}_t$를 생성한다.
댓글