디퓨전 모델과 ELBO 정리: DDPM 논문을 중심으로
학교에서 있을 GDGoC 딥러닝 세미나를 준비하면서, 생성형 AI에 대해 다시 공부하게 되었다. 특히, 확률적 생성 모델이 어떻게 최적화되는지를 이해하는 과정에서 디퓨전 모델(Diffusion Model)의 ELBO(Evidence Lower Bound) 유도 방식이 궁금했다.
디퓨전 모델의 핵심 아이디어는 데이터를 점진적으로 노이징 하는 Forward Process(확산 과정)과 이를 복원하는 Reverse Process(역확산 과정, 디노이징 과정)을 학습하는 것이다. 이 과정은 DDPM 논문("Denoising Diffusion Probabilistic Models")에서 수식적으로 체계적으로 정리되어 있다. 논문의 핵심 내용을 정리하면서 ELBO 도출 과정을 중심으로 디퓨전 모델이 어떻게 학습되는지 정리해 본다.
확산 과정(Forward Process)
디퓨전 모델에서 Forward Process는 데이터 $x_0$에 점진적으로 노이즈를 추가하는 과정이다. 이 과정은 Markov Chain으로 모델링 되며, 각 시간 스텝 $t$에서 다음과 같이 정의된다.
$$q(x_t|x_{t-1} = \mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1}, \beta_t I)$$
여기서
- $x_0$는 원본 데이터,
- $x_T$는 완전한 가우시안 노이즈,
- $\beta_t$는 노이즈의 크기를 조절하는 하이퍼파라미터이다.
Forward Process는 사전에 정의된 확률 과정이며, 학습되지 않는다.
이 과정을 여러 스텝 반복하면, $x_t$는 원본 데이터와 노이즈가 혼합된 형태가 된다. 특히, 다양한 $x_t$를 직접 샘플링할 수 있도록 닫힌 형태의 분포를 유도할 수 있다.
$$q(xt∣x0)= \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1 - \bar{\alpha}_t) I)$$
여기서 $\bar{\alpha}_t = \prod_{i=1}^{t} (1 - \beta_i)$이며, 이는 원본 데이터의 정보가 시간에 따라 어떻게 희석되는지를 나타낸다.
역확산 과정(Reverse Process)
Reverse Process는 Forward Process의 반대 방향으로 진행되며, 완전한 노이즈 $x_T$에서 점진적으로 원본 데이터 $x_0$을 복원하는 과정이다. 이 과정은 아래와 같은 확률 분포로 모델링 된다.
$$p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 I)$$
여기서 $\mu_\theta(x_t, t)$는 학습된 신경망이 예측하는 평균값, $\sigma_t^2$는 보통 고정된 값으로 설정된다.
이 과정은 Forward Process와 달리 학습이 필요하며, 모델이 노이즈를 제거하는 방법을 학습하도록 최적화된다.
ELBO 도출 과정: DDPM 논문의 핵심 전개
디퓨전 모델은 VAE처럼 ELBO(Evidence Lower Bound)를 최대화하는 방식으로 학습된다. 목표는 로그 가능도 $\log p_\theta(x_0)$를 최대화하는 것이지만, 이를 직접 계산하는 것은 어렵다.
$$\log p_\theta(x_0) = \log \int p_\theta(x_{0:T}) dx_{1:T}$$
여기서 중간 변수 $x_1, \dots, x_T$가 포함된 joint distribution $p_\theta(x_{0:T})$를 사용하지만, 이 적분을 직접 계산하는 것은 불가능하다. 따라서 변분 분포 $q(x_{1:T} | x_0)$를 도입하여 ELBO를 유도한다.
$$\log p_\theta(x_0) = \log \int q(x_{1:T} | x_0) \frac{p_\theta(x_{0:T})}{q(x_{1:T} | x_0)} dx_{1:T}$$
여기서 Jensen's Inequality를 적용하면,
$$\log p_\theta(x_0) \geq \mathbb{E}_{q(x_{1:T} | x_0)} \left[ \log \frac{p_\theta(x_{0:T})}{q(x_{1:T} | x_0)} \right]$$
즉, ELBO는 다음과 같이 정리된다.
$$\mathbb{E}_{q(x_{1:T} | x_0)} \left[ \sum_{t=1}^{T} D_{\text{KL}}(q(x_t | x_{t-1}) || p_\theta(x_t | x_{t-1})) + \log p(x_T) \right]$$
이 식은 디퓨전 모델 학습의 핵심이며, KL 발산을 통해 Forward Process와 Reverse Process 간의 차이를 최소화하는 방향으로 모델을 최적화한다.
ELBO 최적화와 Noise Prediction Formulation
DDPM 논문에서는 ELBO 최적화를 효율적으로 수행하기 위해, 노이즈 예측 문제로 변환하였다.
Forward Process에서 $x_t$를 샘플링할 때,
$$x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)$$
즉, $x_t$는 원본 데이터 $x_0$와 노이즈 $\epsilon$의 선형 조합으로 표현된다.
이를 기반으로, Reverse Process에서 $x_0$을 직접 복원하는 것이 아니라, 노이즈 $\epsilon$을 예측하는 방식으로 학습하는 것이 효과적임을 보였다.
$$\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right)$$
즉, 모델은 $\epsilon_\theta(x_t, t)$을 예측하며, 이를 기반으로 $x_{t-1}$을 샘플링하는 구조로 설계되었다.
정리
DDPM 논문에서 디퓨전 모델의 ELBO는 Forward Process와 Reverse Process 간의 KL 발산을 최소화하는 방식으로 유도되었다. 또한, 모델이 직접 데이터를 복원하는 것이 아니라 노이즈를 예측하는 방식으로 학습하는 것이 더 효과적임을 보였다.
이 과정에서:
- Forward Process는 고정된 확률 과정이며, 학습되지 않는다.
- Reverse Process는 신경망이 학습하는 과정으로, 노이즈를 제거하는 방향으로 최적화된다.
- ELBO는 Jensen's Inequality를 통해 도출되며, Forward Process와 Reverse Process 간의 차이를 최소화하는 방향으로 학습이 진행된다.
- DDPM 논문에서는 노이즈 예측 문제로 변환하여 효율적으로 학습하는 방식을 제안했다.
이제 디퓨전 모델의 학습 방식과 ELBO 유도 과정이 조금 더 명확해졌다. DDPM 논문의 수식 전개를 중심으로 정리하면서, 생성형 AI가 단순한 데이터 변환이 아니라 확률적 최적화를 기반으로 한다는 점을 다시 한번 확인할 수 있었다.
'개인공부&프로젝트' 카테고리의 다른 글
GPU 병렬화 기법 (0) | 2025.02.04 |
---|---|
GMM에서 VAE로: EM 알고리즘 한계 극복하기 (1) | 2025.01.19 |
GPT, Gemma, Llama3 모델 특징 비교 (0) | 2025.01.05 |
파인튜닝 개념 (1) | 2025.01.04 |
멀티헤드 어텐션 & 피드포워드 (0) | 2025.01.04 |
댓글