Overview

추론 속도가 매우 느리지만, 현존하는 생성 모델 중 가장 높은 수준의 데이터 품질을 보여준다. 아래 수식을 보면 알겠지만 forward process는 markov chain 형태이다.

Diffusion Model

Diffusion Model은 데이터에 점진적으로 노이즈를 추가하는 Forward Process와 그 노이즈를 점진적으로 제거하여 데이터를 복원하는 Reverse Process를 학습하는 생성 모델이다.

Forward Process

Forward Process는 실제 데이터 $x_0$에 점진적으로 Gaussian Noise를 추가하여 데이터가 Noise로 변해가는 수학적 경로를 제공한다.

Noise Schedule

Noise Schedule은 각 step에서 추가되는 noise의 크기이다. 이를 활용하여 Forward Process를 매번 순차적으로 계산할 필요 없이 $x_0$에서 바로 $x_t$를 만들 수 있다.

$\alpha_t = 1-\beta_t$

$\displaystyle \bar{\alpha}t = \prod{s=1}^t \alpha_s$

$\displaystyle \therefore x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon$

Reverse Process

Reverse Process는 Noise 상태에서 점진적으로 Noise를 제거하며 원본 데이터 분포에 속하는 새로운 데이터를 생성한다.

Loss Function

Diffusion Model의 Loss Function은 다양하게 존재하지만, 가장 간단한 Loss Function은 Noise에 대한 MSE Loss이다.