SDE vs ODE: Score-based Diffusion의 수학적 기초

SDE vs ODE: Score-based Diffusion의 수학적 기초
확률적(Stochastic) vs 결정적(Deterministic). 같은 분포, 다른 경로.
TL;DR
- SDE (Stochastic DE): 노이즈가 포함된 확률적 경로, DDPM의 이론적 기반
- ODE (Ordinary DE): 결정적 경로, DDIM과 Flow Matching의 기반
- Probability Flow ODE: SDE와 동일한 marginal 분포를 갖는 ODE
- 핵심 차이: SDE는 다양성↑ 품질↓, ODE는 다양성↓ 품질↑ 속도↑
1. 왜 미분방정식인가?
Diffusion의 본질
Diffusion 모델은 두 분포 사이의 변환입니다:
- Forward: 데이터 $p_{\text{data}}$ → 노이즈 $\mathcal{N}(0, I)$
- Reverse: 노이즈 $\mathcal{N}(0, I)$ → 데이터 $p_{\text{data}}$
이 변환을 연속 시간으로 모델링하면 미분방정식이 됩니다.
이산 vs 연속
DDPM (이산):
$$x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t, t)\right) + \sigma_t z$$
연속 시간 SDE:
$$dx = f(x, t)dt + g(t)dw$$
연속 시간 관점이 더 유연하고, 다양한 샘플러 설계가 가능합니다.
2. Forward SDE: 데이터에서 노이즈로
Variance Preserving SDE (VP-SDE)
DDPM에 해당하는 연속 SDE:
$$dx = -\frac{1}{2}\beta(t)x \, dt + \sqrt{\beta(t)} \, dw$$
여기서:
- $\beta(t)$: noise schedule (시간에 따른 노이즈 강도)
- $dw$: Wiener process (브라운 운동)
Variance Exploding SDE (VE-SDE)
SMLD/NCSN에 해당하는 SDE:
$$dx = \sqrt{\frac{d[\sigma^2(t)]}{dt}} \, dw$$
여기서 $\sigma(t)$는 시간에 따라 증가하는 노이즈 스케일.
Forward Process의 해
VP-SDE의 경우, 시간 $t$에서의 분포는:
$$x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon$$
여기서 $\bar{\alpha}_t = e^{-\int_0^t \beta(s)ds}$
이것이 DDPM의 forward process와 정확히 일치합니다!
3. Reverse SDE: 노이즈에서 데이터로
Anderson's Theorem
놀라운 사실: Forward SDE를 시간 역순으로 진행하면, 이것도 SDE입니다!
Forward:
$$dx = f(x, t)dt + g(t)dw$$
Reverse:
$$dx = [f(x, t) - g(t)^2 \nabla_x \log p_t(x)]dt + g(t)d\bar{w}$$
여기서:
- $\nabla_x \log p_t(x)$: Score function (핵심!)
- $d\bar{w}$: 시간 역방향 Wiener process
Score Function이란?
$$\nabla_x \log p_t(x) = -\frac{\epsilon}{\sqrt{1-\bar{\alpha}_t}}$$
Score는 "현재 위치에서 데이터 방향으로의 기울기"입니다.
DDPM의 노이즈 예측 $\epsilon_\theta$와 score의 관계:
$$s_\theta(x_t, t) = -\frac{\epsilon_\theta(x_t, t)}{\sqrt{1-\bar{\alpha}_t}}$$
4. Probability Flow ODE
핵심 발견
Song et al. (2021)의 중요한 발견:
SDE와 **같은 marginal 분포** $p_t(x)$를 갖는 **결정적 ODE**가 존재한다!
$$dx = \left[f(x, t) - \frac{1}{2}g(t)^2 \nabla_x \log p_t(x)\right]dt$$
노이즈 항 $g(t)dw$가 사라지고, drift만 수정됩니다.
VP-SDE의 Probability Flow ODE
$$dx = \left[-\frac{1}{2}\beta(t)x - \frac{1}{2}\beta(t)\nabla_x \log p_t(x)\right]dt$$
Score를 $\epsilon_\theta$로 치환하면:
$$dx = \left[-\frac{1}{2}\beta(t)x + \frac{\beta(t)}{2\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x, t)\right]dt$$
이것이 DDIM의 $\eta=0$ 케이스와 동일합니다!
5. SDE vs ODE: 특성 비교
샘플링 경로
수학적 관계
SDE ODE
┌───────────┐ ┌───────────┐
z ~ │ Reverse │ z ~ │ Probability│
N(0,I)│ SDE │ N(0,I) │ Flow ODE │
│ │ │ │
└─────┬─────┘ └─────┬─────┘
│ │
▼ ▼
x ~ p_data x ~ p_data
같은 marginal 분포, 다른 경로!DDPM vs DDIM
DDIM의 $\eta$ 파라미터:
- $\eta = 0$: 순수 ODE (결정적)
- $\eta = 1$: 순수 SDE (DDPM과 동일)
- $0 < \eta < 1$: 중간
6. Score Matching: Score 학습하기
Denoising Score Matching
Score function을 직접 학습하기는 어렵습니다. 대신 Denoising Score Matching을 사용:
$$\mathcal{L} = \mathbb{E}_{t, x_0, \epsilon}\left[\|\epsilon - \epsilon_\theta(x_t, t)\|^2\right]$$
이것이 DDPM의 학습 목표와 동일합니다!
Score와 노이즈 예측의 동치성
$$\text{Score: } s_\theta(x, t) \approx \nabla_x \log p_t(x)$$
$$\text{Noise: } \epsilon_\theta(x, t) \approx \epsilon$$
관계:
$$s_\theta = -\frac{\epsilon_\theta}{\sigma_t}$$
따라서 노이즈 예측 = Score 예측 (스케일만 다름)
7. 수치적 해법 (Solvers)
SDE Solvers
Euler-Maruyama (가장 기본):
$$x_{t-\Delta t} = x_t + f(x_t, t)\Delta t + g(t)\sqrt{\Delta t} \cdot z$$
Predictor-Corrector (Song et al.):
- Predictor: Euler step
- Corrector: Langevin dynamics로 보정
ODE Solvers
Euler (1차):
$$x_{t-\Delta t} = x_t + f(x_t, t)\Delta t$$
Heun (2차):
$$\tilde{x} = x_t + f(x_t, t)\Delta t$$
$$x_{t-\Delta t} = x_t + \frac{1}{2}[f(x_t, t) + f(\tilde{x}, t-\Delta t)]\Delta t$$
DPM-Solver (특화된 고차 solver):
- Diffusion ODE의 구조를 활용
- 10-20 스텝으로 고품질 생성
Solver 비교
8. Flow Matching과의 연결
Conditional Flow Matching
Flow Matching도 ODE 기반:
$$dx = v_\theta(x, t)dt$$
차이점:
- Diffusion ODE: Score에서 유도된 drift
- Flow Matching: 직접 velocity 학습
동일한 결과, 다른 경로
둘 다 $p_{\text{noise}} \to p_{\text{data}}$ 변환이지만:
9. 실용적 선택 가이드
언제 SDE를 쓸까?
- 다양성이 중요할 때
- 충분한 compute가 있을 때
- Inpainting 같은 stochastic refinement가 필요할 때
언제 ODE를 쓸까?
- 속도가 중요할 때
- 결정적 결과가 필요할 때 (재현성)
- Latent interpolation이 필요할 때
현대 모델들의 선택
10. 고급 주제
Continuous Normalizing Flows (CNF)
ODE 관점에서 보면, diffusion은 일종의 Normalizing Flow:
$$\log p_0(x_0) = \log p_T(x_T) - \int_0^T \text{div}(f(x_t, t)) dt$$
이를 통해 likelihood 계산도 가능합니다.
Optimal Transport 관점
Probability Flow ODE는 Optimal Transport와 연결:
- 두 분포 사이의 "최단 경로"
- Wasserstein distance와 관련
Guidance in SDE vs ODE
Classifier-Free Guidance도 SDE/ODE 모두 적용 가능:
$$\tilde{s}(x, t) = s(x, t) + w \cdot (s(x, t | c) - s(x, t))$$
결론
핵심 인사이트: SDE와 ODE는 같은 문제를 다른 방식으로 푸는 것입니다. Probability Flow ODE 덕분에 우리는 SDE의 이론적 장점을 유지하면서 ODE의 실용적 장점을 얻을 수 있습니다.
References
- Song, Y., et al. "Score-Based Generative Modeling through Stochastic Differential Equations" (ICLR 2021)
- Ho, J., et al. "Denoising Diffusion Probabilistic Models" (NeurIPS 2020)
- Song, J., et al. "Denoising Diffusion Implicit Models" (ICLR 2021)
- Lipman, Y., et al. "Flow Matching for Generative Modeling" (ICLR 2023)
- Lu, C., et al. "DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling" (NeurIPS 2022)