Ho et al. · UC Berkeley · NeurIPS 2020 · arXiv:2006.11239

DDPM Denoising Diffusion Probabilistic Models

한 줄 요약: 이미지에 노이즈를 조금씩 더하는 과정(Forward)을 역으로 학습(Reverse)하면, 순수한 랜덤 노이즈에서 이미지를 생성할 수 있다.

왜 Diffusion인가 — 물리학에서 온 아이디어

물리학에서 확산(diffusion)은 농도가 높은 곳에서 낮은 곳으로 물질이 퍼져나가는 현상이다. 잉크 한 방울을 물에 떨어뜨리면 점점 퍼져나가 결국 균일한 농도가 된다. 이를 역으로 실행하면 — 균일하게 퍼진 상태에서 시작해 잉크 방울로 수렴시킬 수 있을까?

DDPM은 이 아이디어를 이미지 생성에 적용한다. 이미지에 가우시안 노이즈를 T번 반복해서 더하면(Forward), 이미지 정보가 완전히 소멸하고 순수한 노이즈가 된다. 이 Forward 과정은 수학적으로 정확히 정의할 수 있으므로, 이를 역전(Reverse)하는 것을 신경망으로 학습한다.

GAN과의 차이

  • GAN: 한 번에 이미지 생성 (불안정)
  • Diffusion: 1000번에 걸쳐 조금씩 정제 (안정적)
  • GAN: 훈련 불안정, mode collapse
  • Diffusion: 훈련 안정적, 다양성 우수

VAE와의 차이

  • VAE: 잠재 공간이 고정적
  • Diffusion: 잠재 "공간"이 고차원 노이즈 시퀀스
  • VAE: 샘플 품질 낮음 (블러리)
  • Diffusion: 현재 최고 수준의 이미지 품질

Forward vs Reverse Process

x₀ 원본 x_{T/4} x_{T/2} · · · x_T 순수 노이즈 → Forward q(x_t|x_{t-1}): 노이즈 추가 (학습 없음) ← Reverse p_θ(x_{t-1}|x_t): U-Net이 노이즈 예측 (학습)

노이즈 추가 과정 시뮬레이션

슬라이더를 움직여 timestep t에 따른 노이즈 변화를 확인해 보세요.

t = 0
t=0: 원본 이미지 — 신호 100%, 노이즈 0%

핵심 수식 — 단계별 이해

① Forward Process (고정된 마르코프 체인, 학습 없음):

각 스텝 t에서 이전 이미지 $x_{t-1}$에 가우시안 노이즈를 조금씩 더한다. $\beta_t$는 노이즈 강도로, 논문에서는 $\beta_1=10^{-4}$에서 $\beta_T=0.02$까지 선형 증가하는 스케줄 사용.

$$q(x_t \mid x_{t-1}) = \mathcal{N}\!\left(x_t;\,\sqrt{1-\beta_t}\,x_{t-1},\,\beta_t I\right)$$

$\sqrt{1-\beta_t}$는 원본 신호의 스케일 감소, $\beta_t I$는 추가되는 노이즈의 분산이다.

② 핵심 트릭: 임의 t로 바로 샘플링 (reparameterization):

$\bar\alpha_t = \prod_{s=1}^t (1-\beta_s)$로 정의하면, T번 반복하지 않고 임의의 timestep으로 한 번에 점프할 수 있다:

$$x_t = \sqrt{\bar\alpha_t}\,x_0 + \sqrt{1-\bar\alpha_t}\,\varepsilon,\qquad \varepsilon\sim\mathcal{N}(0,I)$$

이것이 학습을 가능하게 하는 핵심이다. 매 배치마다 t를 랜덤 샘플링해서 $x_t$를 즉시 계산할 수 있다.

③ 학습 목표 (단순화된 손실):

원래 손실함수는 복잡한 ELBO이지만, Ho et al.은 이를 단순화해서 "더해진 노이즈를 예측하는 MSE"로 줄일 수 있음을 보였다:

$$\mathcal{L}_{\rm simple} = \mathbb{E}_{t,x_0,\varepsilon}\bigl[\|\varepsilon - \varepsilon_\theta(x_t,\,t)\|^2\bigr]$$

U-Net $\varepsilon_\theta$는 노이즈가 섞인 이미지 $x_t$와 현재 timestep $t$를 받아, 거기에 섞인 노이즈 $\varepsilon$를 예측한다. 이 예측한 노이즈를 빼면 약간 더 깨끗한 이미지를 얻을 수 있다.

직관적 정리:
학습 시: 원본 이미지 $x_0$ → 랜덤 t 선택 → $x_t$ 계산 (한 번에) → U-Net이 "이 안에 어떤 노이즈가 있나?" 예측 → MSE 손실
추론 시: 순수 노이즈 $x_T \sim \mathcal{N}(0,I)$에서 시작 → U-Net이 각 스텝에서 예측한 노이즈를 조금씩 제거 → 1000번 반복 → 이미지 $x_0$ 완성

Reverse Process — 노이즈를 어떻게 제거하나

Forward는 수학적으로 고정되어 있지만, Reverse $p_\theta(x_{t-1}|x_t)$는 학습해야 한다. 이상적인 역방향 분포도 가우시안이지만, 그 평균과 분산을 정확히 계산하려면 전체 데이터 분포를 알아야 한다. 대신 U-Net $\varepsilon_\theta$로 노이즈를 예측하고, 그 예측값으로 평균을 계산해 역방향 샘플링을 수행한다.

U-Net 노이즈 예측기 구조

x_t, t Down 1 64ch Down 2 128ch Down 3 Attn +t emb Up 3 Up 2 Up 1 ε_θ 출력 skip connections
U-Net을 쓰는 이유: 일반 MLP나 단순 CNN이 아닌 U-Net을 쓰는 이유는 두 가지다. ① Skip connection이 고주파 디테일(엣지, 텍스처)을 잃지 않고 보존한다. ② 인코더(다운샘플링)는 전역 구조를, 디코더(업샘플링)는 세밀한 디테일을 담당해서 다중 스케일 정보를 동시에 활용한다.

Timestep Embedding: 현재 t를 U-Net에 조건으로 줌으로써, "t=900(거의 노이즈)일 때"와 "t=100(거의 완성)일 때" 다르게 동작하도록 한다. 주로 Sinusoidal Embedding → MLP → 각 ResBlock에 더하는 방식.

DDPM 이후 — 더 빠르고 더 좋게

속도 개선

  • DDIM (2020): 결정론적 샘플링으로 50스텝으로 감소. 같은 노이즈에서 같은 이미지 생성 (재현성)
  • DPM-Solver (2022): 10~20스텝으로 고품질 생성
  • Consistency Models: 단 1~2스텝

품질/기능 개선

  • Stable Diffusion: 픽셀 대신 VAE 잠재 공간에서 동작 → 64배 효율적
  • Classifier-Free Guidance: 텍스트 조건부 생성 품질 극대화
  • DALL-E 2, Imagen: 텍스트-이미지 생성
DDPM은 T=1000번 추론으로 느리지만, 훈련 안정성과 생성 품질 측면에서 GAN을 처음으로 크게 능가했다. Stable Diffusion, Midjourney, DALL-E 등 현대 이미지 생성 AI 모두 Diffusion 모델을 기반으로 한다.