Diffusion Model 완벽 가이드 | Diffusion Model 설명과 증명 과정
1. Diffusion Model이란 무엇인가요?
Diffusion Model은 딥 러닝을 활용한 생성 모델(Deep Generative Model) 중 하나로, 데이터(예: 이미지)에 점진적으로 노이즈를 더해가며(\(q\): Forward Process) 완전한 노이즈 상태를 만든 뒤, 다시 그 노이즈에서 원본 데이터로 복원(\(p_\theta\): Reverse Process)하는 과정을 학습하는 방식입니다. 쉽게 말해, 원본 이미지를 점차 흐릿하게 만들었다가 다시 선명하게 복구하는 과정을 통해 새로운 데이터를 생성합니다.
- Forward Process \((q)\)
데이터 \(\mathbf{x}_0\)에 가우시안 노이즈를 조금씩 더해가며 \(\mathbf{x}_T\) (순수 노이즈 상태)에 이르는 마코프 체인입니다. - Reverse Process \((p_\theta)\)
위 과정을 반대로 추정하여, \(\mathbf{x}_T\)로부터 원본 데이터 \(\mathbf{x}_0\)에 가깝게 복원해 나가는 과정입니다.
이를 그림으로 표현하면 아래와 같은 흐름입니다.
- \(\mathbf{x}_0\): 실제 데이터(예: 얼굴 이미지)
- \(\mathbf{x}_T\): 완전한 노이즈(표준정규분포를 따르는 무작위 텐서)
- \(\mathbf{x}_t\): 중간 단계에서 노이즈가 포함된 데이터 형태의 잠재 변수(latent variable)
학습이 완료되면, 임의의 노이즈 \(\mathbf{x}_T\)에서 시작해 고해상도 이미지를 생성하거나, 다른 형태의 데이터(음성, 텍스트 등)까지 생성할 수 있게 됩니다.
2. Forward Process (노이즈를 더해가는 과정)
2.1 정의
Forward Process \(\;q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)\)는 다음과 같은 마코프 체인(Markov chain) 형태로 정의됩니다.
\[ q(\mathbf{x}_{1:T} \mid \mathbf{x}_0) = \prod_{t=1}^{T} q(\mathbf{x}_t \mid \mathbf{x}_{t-1}), \]
여기서 각 전이 확률은 가우시안 분포를 따르며:
\[ 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\)는 각 단계에서 추가되는 노이즈의 양을 결정하는 하이퍼파라미터입니다.
2.2 한 번에 \(\mathbf{x}_t\) 샘플링하기
Forward Process를 활용하면, \(\mathbf{x}_0\)가 주어졌을 때 임의의 시점 \(t\)에서 \(\mathbf{x}_t\)를 직접 샘플링할 수 있습니다. 이를 증명하기 위해, \(q(\mathbf{x}_t \mid \mathbf{x}_0)\)를 유도하면 다음과 같습니다:
각 단계가 가우시안 분포를 따르고 마코프 특성을 가짐에 따라, \(\mathbf{x}_t\)는 \(\mathbf{x}_0\)에 대한 가우시안 분포로 표현됩니다. \(q(\mathbf{x}_t \mid \mathbf{x}_{t-1})\)를 반복 적용하면:
\[ 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), \]
여기서 \(\bar{\alpha}_t = \prod_{s=1}^t (1 - \beta_s)\)이고, \(\alpha_s = 1 - \beta_s\)입니다. 이는 각 단계의 노이즈 누적 효과를 반영하며, \(\mathbf{x}_t\)가 \(\mathbf{x}_0\)에서 점진적으로 변형된 분포임을 보여줍니다.
3. Reverse Process (노이즈에서 데이터로 복원)
3.1 정의
Reverse Process \(\;p_\theta(\mathbf{x}_{0:T})\)는 \(\mathbf{x}_T\) (거의 노이즈 상태)에서부터 \(\mathbf{x}_0\) (원본 데이터)에 이르는 확률분포를 학습합니다. 이는 다음과 같이 표현됩니다:
\[ p_\theta(\mathbf{x}_{0:T}) = p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t), \]
여기서 \(p(\mathbf{x}_T) = \mathcal{N}(\mathbf{x}_T; \mathbf{0}, \mathbf{I})\)는 표준정규분포로 초기화되며, 각 단계의 조건부 분포는 가우시안으로 가정됩니다:
\[ p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) = \mathcal{N}\bigl(\mathbf{x}_{t-1}; \boldsymbol{\mu}_\theta(\mathbf{x}_t, t), \Sigma_\theta(\mathbf{x}_t, t)\bigr), \]
\(\boldsymbol{\mu}_\theta\)와 \(\Sigma_\theta\)는 신경망으로 파라미터화되어 학습됩니다.
3.2 직관
Reverse Process는 Forward Process로 인해 생긴 노이즈를 단계적으로 제거하며 원본 데이터에 가까워지는 과정입니다. 학습이 끝나면, 무작위 노이즈 \(\mathbf{x}_T\)에서 시작해 \(\mathbf{x}_0\)를 생성할 수 있습니다.
4. ELBO(Variational Lower Bound)로 보는 학습 과정
4.1 학습 목표
Diffusion Model은 모델이 생성한 분포 \(p_\theta(\mathbf{x}_0)\)가 실제 데이터 분포에 가깝도록 학습합니다. 이를 위해 Variational Lower Bound (ELBO)를 최소화하며, 이는 로그 가능도 \(\log p_\theta(\mathbf{x}_0)\)를 최대화하는 데 연결됩니다.
4.2 ELBO 도출 및 항별 분석
ELBO를 도출하기 위해 Forward Process \(q\)와 Reverse Process \(p_\theta\) 간의 차이를 분석합니다. 아래는 단계별 증명입니다.
ELBO 정의
ELBO는 \(-\log p_\theta(\mathbf{x}_0)\)의 하한으로 정의되며, KL Divergence를 이용해 표현할 수 있습니다. Jensen 부등식을 적용하면:\[ \log p_\theta(\mathbf{x}_0) = \log \int p_\theta(\mathbf{x}_{0:T}) d\mathbf{x}_{1:T}. \]
이를 \(q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)\)로 근사하면:
\[ \log p_\theta(\mathbf{x}_0) \geq \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \right]. \]
부호를 바꾸면:
\[ -\log p_\theta(\mathbf{x}_0) \leq -\mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \right]. \]
여기서 \(p_\theta(\mathbf{x}_{0:T}) = p_\theta(\mathbf{x}_0, \mathbf{x}_{1:T})\)이고, \(p_\theta(\mathbf{x}_0) = \int p_\theta(\mathbf{x}_{0:T}) d\mathbf{x}_{1:T}\)를 고려하면:
\[ -\log p_\theta(\mathbf{x}_0) \leq \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} \right] + \log p_\theta(\mathbf{x}_0). \]
\(\log p_\theta(\mathbf{x}_0)\)를 양변에서 빼면:
\[ -\log p_\theta(\mathbf{x}_0) \leq \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} \right], \]
이를 \(L_{\mathrm{VLB}}\)로 정의합니다.
ELBO의 분해
\(p_\theta(\mathbf{x}_{0:T})\)를 전개하면:\[ p_\theta(\mathbf{x}_{0:T}) = p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t), \]
\(q(\mathbf{x}_{1:T} \mid \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1})\)이므로:
\[ \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} = \frac{\prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1})}{p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)}. \]
로그를 취하면:
\[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} = \log \prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) - \log \left( p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) \right). \]
기댓값을 적용하면:
\[ \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} \right] = \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \sum_{t=1}^T \log q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) - \log p(\mathbf{x}_T) - \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) \right]. \]
이를 재정리하면:
\[ = -\mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log p(\mathbf{x}_T) + \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) - \sum_{t=1}^T \log q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) \right]. \]
이제 \(\mathbf{x}_0\)에 대한 마진라이제이션을 고려하여:
\[ \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log p_\theta(\mathbf{x}_{0:T}) \right] = \log p_\theta(\mathbf{x}_0) + \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{p_\theta(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \right], \]
여기서 KL Divergence를 사용하면:
\[ D_{\mathrm{KL}}(q(\mathbf{x}_{1:T} \mid \mathbf{x}_0) \| p_\theta(\mathbf{x}_{1:T} \mid \mathbf{x}_0)) = \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \right]. \]
따라서:
\[ -\log p_\theta(\mathbf{x}_0) \leq D_{\mathrm{KL}}(q(\mathbf{x}_{1:T} \mid \mathbf{x}_0) \| p_\theta(\mathbf{x}_{1:T} \mid \mathbf{x}_0)). \]
이를 더 전개하면:
\[ -\log p_\theta(\mathbf{x}_0) \leq \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T}) / p_\theta(\mathbf{x}_0)} \right]. \]
\(\log p_\theta(\mathbf{x}_0)\)를 양변에서 빼면:
\[ -\log p_\theta(\mathbf{x}_0) \leq \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} + \log p_\theta(\mathbf{x}_0) \right] - \log p_\theta(\mathbf{x}_0), \]
최종적으로:
\[ -\log p_\theta(\mathbf{x}_0) \leq \mathbb{E}_{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} \right]. \]
대안적인 ELBO 도출
또 다른 관점에서 \(-\log p_\theta(\mathbf{x}_0)\)의 상한을 구하면:\[ \mathbb{E}\bigl[-\log p_\theta(\mathbf{x}_0)\bigr] \leq \mathbb{E}_q \biggl[-\log \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}\biggr]. \]
\(p_\theta(\mathbf{x}_{0:T}) = p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)\)이고, \(q(\mathbf{x}_{1:T} \mid \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1})\)이므로:
\[ -\log \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)} = -\log p(\mathbf{x}_T) - \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) + \sum_{t=1}^T \log q(\mathbf{x}_t \mid \mathbf{x}_{t-1}). \]
기댓값을 적용하면:
\[ \mathbb{E}_q \biggl[-\log \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}\biggr] = \mathbb{E}_q \biggl[-\log p(\mathbf{x}_T) - \sum_{t=1}^T \log \frac{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)}{q(\mathbf{x}_t \mid \mathbf{x}_{t-1})}\biggr]. \]
이를 \(L\)로 정의하면:
\[ \mathbb{E}\bigl[-\log p_\theta(\mathbf{x}_0)\bigr] \leq L. \]
ELBO의 항별 분해
ELBO를 더 구체적으로 분해하면:\[ L_{\mathrm{VLB}} = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \frac{q(\mathbf{x}_1 \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_0 \mid \mathbf{x}_1)} \right]. \]
\(q(\mathbf{x}_{1:T} \mid \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1})\)이고, \(p_\theta(\mathbf{x}_{0:T}) = p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)\)이므로:
\[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} = \log \frac{\prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1})}{p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)}. \]
이를 전개하면:
\[ = \log \prod_{t=1}^T q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) - \log p(\mathbf{x}_T) - \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t). \]
기댓값을 적용하면:
\[ \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \log \frac{q(\mathbf{x}_{1:T} \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_{0:T})} \right] = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ \sum_{t=1}^T \log q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) - \log p(\mathbf{x}_T) - \sum_{t=1}^T \log p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) \right]. \]
이를 재정리하면:
\[ = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log p(\mathbf{x}_T) + \sum_{t=1}^T \log \frac{q(\mathbf{x}_t \mid \mathbf{x}_{t-1})}{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)} \right]. \]
여기서 \(\mathbf{x}_0\)에 대한 조건부를 분리하면:
\[ = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log p(\mathbf{x}_T) + \sum_{t=2}^T \log \frac{q(\mathbf{x}_t \mid \mathbf{x}_{t-1})}{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)} - \log \frac{q(\mathbf{x}_1 \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_0 \mid \mathbf{x}_1)} \right]. \]
\(q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0)\)를 고려하면 Bayes 정리를 사용해:
\[ q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0) = \frac{q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) q(\mathbf{x}_{t-1} \mid \mathbf{x}_0)}{q(\mathbf{x}_t \mid \mathbf{x}_0)}, \]
이를 대입하면:
\[ \log \frac{q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0)}{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)} = \log \frac{q(\mathbf{x}_t \mid \mathbf{x}_{t-1})}{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)} + \log \frac{q(\mathbf{x}_{t-1} \mid \mathbf{x}_0)}{q(\mathbf{x}_t \mid \mathbf{x}_0)}. \]
이를 전체 합에 적용하면:
\[ L_{\mathrm{VLB}} = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log p(\mathbf{x}_T) + \sum_{t=2}^T \log \frac{q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0)}{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)} + \sum_{t=2}^T \log \frac{q(\mathbf{x}_t \mid \mathbf{x}_0)}{q(\mathbf{x}_{t-1} \mid \mathbf{x}_0)} - \log \frac{q(\mathbf{x}_1 \mid \mathbf{x}_0)}{p_\theta(\mathbf{x}_0 \mid \mathbf{x}_1)} \right]. \]
합을 재조정하면:
\[ = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ -\log p(\mathbf{x}_T) + \log \frac{q(\mathbf{x}_T \mid \mathbf{x}_0)}{p(\mathbf{x}_T)} + \sum_{t=2}^T \log \frac{q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0)}{p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)} - \log p_\theta(\mathbf{x}_0 \mid \mathbf{x}_1) \right], \]
KL Divergence로 변환하면:
\[ L_{\mathrm{VLB}} = \mathbb{E}_{q(\mathbf{x}_{0:T})} \left[ D_{\mathrm{KL}}(q(\mathbf{x}_T \mid \mathbf{x}_0) \| p(\mathbf{x}_T)) + \sum_{t=2}^T D_{\mathrm{KL}}(q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0) \| p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)) - \log p_\theta(\mathbf{x}_0 \mid \mathbf{x}_1) \right], \]
마지막으로 기댓값을 밖으로 빼면:
\[ L_{\mathrm{VLB}} = \underbrace{D_{\mathrm{KL}}(q(\mathbf{x}_T \mid \mathbf{x}_0) \| p(\mathbf{x}_T))}_{L_T} + \sum_{t=2}^T \underbrace{D_{\mathrm{KL}}(q(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0) \| p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t))}_{L_{t-1}} - \underbrace{\log p_\theta(\mathbf{x}_0 \mid \mathbf{x}_1)}_{L_0}. \]
각 항의 의미는 다음과 같습니다:
- \(L_T\): \(\mathbf{x}_T\)의 초기 분포 차이를 나타내며, Forward Process와 모델의 초기 노이즈 분포 간의 KL Divergence입니다.
- \(L_{t-1}\): 각 중간 단계에서 Forward와 Reverse Process 간의 분포 차이를 측정합니다.
- \(L_0\): \(\mathbf{x}_0\)를 복원하는 최종 단계의 로그 가능도 항입니다.
따라서, \(L_{\mathrm{VLB}}\)를 최소화함으로써 모델이 노이즈에서 데이터를 자연스럽게 복원하도록 학습됩니다.
5. 실제 활용 및 장단점
5.1 다양한 응용 분야
| 응용 분야 | 설명 | 특징 |
|---|---|---|
| 이미지 생성 | 무작위 노이즈로부터 얼굴, 풍경, 예술적 이미지 생성 | 높은 해상도·사실감, 모드 붕괴 적음 |
| 음성 합성 | TTS(Text-To-Speech) 등에서 보다 안정적인 음질 구현 | GAN 대비 학습 안정성 우수 |
| Inpainting | 부분적으로 가려지거나 손상된 이미지·영상 복원 | 단계적 노이즈 제거로 자연스러운 결과 |
| 시계열 데이터 | 주가·기상 등 시계열 생성 모델로 확장 가능 | 연구가 활발히 진행 중 |
| 기타 영역 | 텍스트, 그래프 구조 생성 등에 적용 가능 | 융통성 높은 생성 모델 |
5.2 장점
- 학습 안정성: 다른 생성 모델(GAN 등)에 비해 모드 붕괴가 거의 없고, 훈련 자체가 비교적 안정적으로 진행됩니다.
- 표현력: 점진적으로 노이즈를 제거해가므로 높은 해상도와 사실감을 갖춘 샘플을 생성할 수 있습니다.
5.3 단점
- 생성 속도: \(T\)단계를 모두 거쳐야 샘플링하므로, 샘플 생성이 상대적으로 느립니다.
- 메모리 및 계산량: 큰 모델에 많은 단계가 겹치면 연산량이 커질 수 있습니다. (이를 보완하는 다양한 기법들, 예: DDIM, Latent Diffusion 등이 연구되고 있습니다.)
6. 마무리
지금까지 Diffusion Model의 전반적인 아이디어부터 Forward/Reverse Process, 그리고 ELBO를 통해 학습 손실을 구성하는 과정까지 살펴보았습니다.
- Forward Process: 데이터를 노이즈로 단계적으로 변환합니다.
- Reverse Process: 노이즈에서 원본 데이터를 복원하는 분포를 학습합니다.
- ELBO 최소화: Forward와 Reverse 간의 분포 차이를 최소화하며, 데이터 복원 성능을 극대화합니다.
이미지, 음성, 텍스트 등 다양한 분야에서 우수한 성능을 발휘하므로, 생성 모델에 관심이 있다면 이론과 실습을 병행해 보시길 권장드립니다. PyTorch와 같은 프레임워크를 활용하면 Diffusion Model의 실질적인 구현을 경험할 수 있습니다.
