목차
1. Diffusion Model 개요
Diffusion Model은 데이터(예: 이미지)에 점진적으로 노이즈를 추가(Forward)해 완전 노이즈 상태에 이른 후, 이를 거꾸로 추정(Reverse)해 노이즈를 제거하여 원본 데이터를 복원(또는 새롭게 생성)하는 확률적 생성 모델입니다.
- Forward process (정방향 확산):
\(\mathbf{x}_0 \to \mathbf{x}_1 \to \cdots \to \mathbf{x}_T\),
이때 마지막 \(\mathbf{x}_T\)는 거의 순수 노이즈. - Reverse process (역방향 복원):
\(\mathbf{x}_T \to \mathbf{x}_{T-1} \to \cdots \to \mathbf{x}_0\),
학습된 모델 \(p_\theta\)로 노이즈를 단계별로 제거.
2. Forward Process: 데이터에 노이즈 추가
2.1 정의: \(q(\mathbf{x}_t \mid \mathbf{x}_{t-1})\)
Forward process는 마코프 체인으로 정의합니다:
\[ q(\mathbf{x}_{1:T}\mid \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1}), \] \[ \boxed{ q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) = \mathcal{N}\Bigl(\mathbf{x}_t;\,\sqrt{1-\beta_t}\,\mathbf{x}_{t-1},\,\beta_t \mathbf{I}\Bigr). } \]
- \(\beta_t\)는 단계 \(t\)마다 노이즈가 섞이는 강도(‘노이즈 스케줄’).
- \(\mathbf{x}_0\)는 원본 데이터.
점차 노이즈가 추가되어, 최종 \(\mathbf{x}_T\)는 거의 순수 노이즈 상태가 됩니다.
2.2 임의 시점 샘플링
가우시안 마코프 체인이므로, 한 번에 \(x_0\to x_t\)를 샘플링할 수도 있습니다. 보통
\[ \alpha_t = 1 - \beta_t, \quad \bar{\alpha}_t = \prod_{s=1}^t \alpha_s, \] 하면,
\[ q(\mathbf{x}_t \mid \mathbf{x}_0) = \mathcal{N}\Bigl( \mathbf{x}_t;\, \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0, \,(1-\bar{\alpha}_t)\mathbf{I} \Bigr). \]
3. Reverse Process: 노이즈 제거 및 복원
3.1 정의: \(p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t)\)
Forward process는 우리가 직접 설계했지만, 역방향으로 “\(\mathbf{x}_t\)에서 \(\mathbf{x}_{t-1}\)”를 정확히 복원하는 진짜 분포는 알기 어렵습니다.
따라서, 가우시안 형태로 가정하고, 신경망(파라미터 \(\theta\))을 학습해 이를 근사합니다:
\[ p_\theta(\mathbf{x}_{0:T}) = p_\theta(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t), \] \[ \boxed{ p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t) = \mathcal{N}\Bigl( \mathbf{x}_{t-1};\,\mu_\theta(\mathbf{x}_t, t), \,\Sigma_\theta(\mathbf{x}_t, t) \Bigr). } \]
- 초기 분포 \(p_\theta(\mathbf{x}_T) = \mathcal{N}(\mathbf{0},\mathbf{I})\) (노이즈).
- 학습 후에는 \(\mathbf{x}_T\sim \mathcal{N}(\mathbf{0},\mathbf{I})\)에서 시작해, 단계별 역방향(노이즈 제거)을 수행하면 새로운 \(\mathbf{x}_0\)(이미지 등)를 얻을 수 있음.
4. 손실 함수(ELBO) 유도 과정
4.1 목표: \(-\log p_\theta(\mathbf{x}_0)\) 최소화
Diffusion Model의 학습 목표: 데이터 \(\mathbf{x}_0\) 우도 \(p_\theta(\mathbf{x}_0)\)를 최대화(혹은 \(-\log p_\theta(\mathbf{x}_0)\) 최소화).
이걸 직접 최적화하기는 어려워서, Forward process \(q\)를 이용한 변분추론 기법을 씁니다.
\[ \boxed{ - \log p_\theta(\mathbf{x}_0) \;\le\; \mathbb{E}_{q(\mathbf{x}_{1:T}\mid \mathbf{x}_0)} \Bigl[ \log \tfrac{q(\mathbf{x}_{1:T}\mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} \Bigr] \;\equiv\; L. } \]
- 우변 \(L\)을 ELBO라 부르고, 이걸 최소화하면 \(-\log p_\theta(\mathbf{x}_0)\)도 감소.
4.2 단계별 KL 분해 (상세 전개)
\[ L = \mathbb{E}_q\Bigl[ \log q(\mathbf{x}_{1:T}\mid \mathbf{x}_0) - \log p_\theta(\mathbf{x}_{0:T}) \Bigr]. \]
이때,
- Forward:
\[ q(\mathbf{x}_{1:T}\mid \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t\mid \mathbf{x}_{t-1}), \] \(\log\)를 취해 \(\sum_{t=1}^T \log q(\mathbf{x}_t\mid \mathbf{x}_{t-1})\) 형태. - Reverse:
\[ p_\theta(\mathbf{x}_{0:T}) = p_\theta(\mathbf{x}_T)\prod_{t=1}^T p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t), \] \(\log\)를 취해 \(\log p_\theta(\mathbf{x}_T) + \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t)\) 형태.
\[ L = \mathbb{E}_q \bigl[ \sum_{t=1}^T \log q(\mathbf{x}_t\mid \mathbf{x}_{t-1}) - \log p_\theta(\mathbf{x}_T) - \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t) \bigr]. \]
이제 Bayes 식으로
\[ \log q(\mathbf{x}_{t-1}\mid \mathbf{x}_t,\mathbf{x}_0) = \dots \]
을 대입해가며 단계별 묶기를 하면, 결국 KL Divergence가 생깁니다:
\[ \mathbb{E}_q\Bigl[\log\tfrac{q(\mathbf{x}_{t-1}\mid \mathbf{x}_t,\mathbf{x}_0)}{p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t)}\Bigr] = \mathrm{KL}\bigl(q\|\!p_\theta\bigr). \]
최종 결괏값은
\[ \boxed{ L = \mathrm{KL}\bigl(q(\mathbf{x}_T\mid x_0)\,\|\,p_\theta(\mathbf{x}_T)\bigr) + \sum_{t=2}^T \mathrm{KL}\bigl(q(\mathbf{x}_{t-1}\mid \mathbf{x}_t,x_0)\,\|\,p_\theta(\mathbf{x}_{t-1}\mid \mathbf{x}_t)\bigr) - \mathbb{E}_q[\log p_\theta(x_0\mid x_1)]. } \]
- 첫 항: \(\mathbf{x}_T\)분포(\(q\) vs. \(p_\theta\)) 차이
- 가운데 항: 각 단계별 KL
- 마지막 항: \(-\log p_\theta(\mathbf{x}_0\mid x_1)\) (음의 로그우도, 원본 복원 항)
4.3 실제 구현
Forward/Reverse 과정이 가우시안으로 정의되어 있어, 이 KL 항들은 가우시안 KL로 폐쇄형(Closed-form) 계산이 됩니다.
DDPM에서는 이를 더욱 단순화해, “노이즈 예측(MSE)” 형태로 최적화하기도 합니다(“Ho et al. (2020)”).
5. 결론 및 요약
- Forward process(\(q\)): 원본 데이터에 단계별로 노이즈를 섞어 \(x_T\)는 순수 노이즈 상태가 되도록 정의.
- Reverse process(\(p_\theta\)): 노이즈에서 원본으로 가는 경로를 학습(가우시안 근사).
- ELBO: \(-\log p_\theta(x_0)\) 대신
\[ L = \mathbb{E}_q\Bigl[\log \tfrac{q}{p_\theta}\Bigr] \] 를 최소화 → 각 단계에서의 분포 차이(KL)가 사라지도록 학습. - 학습 완료 후, 무작위 노이즈로부터 역방향을 진행해 데이터 샘플을 생성 가능.
핵심 포인트
- “노이즈 추가” + “노이즈 제거” = 가우시안 마코프 체인
- 손실 함수는 Forward vs Reverse 간 KL들의 합 + 마지막 복원항으로 표현
- 학습 후에는, 무작위 노이즈가 새로운 이미지(또는 텍스트·그래프 등)로 바뀔 수 있음.
6. 참고: 노이즈 예측 (실무 팁)
연구/실무에서 DDPM을 구현할 때, 각 단계 \(t\)에서 신경망이 “\(\mathbf{x}_t\)에 섞인 노이즈 \(\epsilon\)” 자체를 예측하도록 설계해,
\[ \mathcal{L} = \mathbb{E}_{t,\mathbf{x}_0,\epsilon} \bigl\|\epsilon - \epsilon_\theta(\mathbf{x}_t, t)\bigr\|^2 \]
형태로 MSE를 최소화하는 것이 학습이 간단하고 결과도 우수합니다. 이 방식은 ELBO 항들과 등가(等價)하거나 근사한 효과를 내므로, 구현 상 편리하게 쓰입니다.
7. 마무리
Diffusion Model은 위 수식 유도 과정을 통해,
- Forward로 데이터에 점진적으로 노이즈를 추가하고,
- Reverse로 노이즈를 제거해 원본을 복원하는 가우시안 마코프 체인을 구축,
- \(-\log p_\theta(x_0)\)에 대한 변분추론(ELBO)를 최소화함으로써, “무작위 노이즈 → 실제 데이터”를 잘 수행하도록 학습됩니다.
결국 그림에서 보이듯, Forward는 \(\mathbf{x}_0\to\mathbf{x}_T\) 방향(노이즈화), Reverse는 \(\mathbf{x}_T\to\mathbf{x}_0\) 방향(복원)이며, 이 두 분포의 차이를 KL Divergence로 표현해 각 단계에서 줄여나가는 것이 Diffusion Model의 핵심 아이디어라 할 수 있습니다.