DDPM: Denoising Diffusion Probabilistic Models
DDPM: Denoising Diffusion Probabilistic Models
📅 최초 작성: 2025년 7월 13일
🔄 최종 업데이트: 2025년 7월 13일 18:42 (KST)
✨ 최근 변경사항: 임의 시점 샘플링 목표 추가, 핵심 개념 요약 설명 보강, 수식 렌더링 문제 해결
Jonathan Ho · Ajay Jain · Pieter Abbeel
Denoising Diffusion Probabilistic Models, NeurIPS 2020
arXiv 2006.11239 • GitHub Repository
📝 Abstract
DDPM(Denoising Diffusion Probabilistic Models)은 비평형 열역학의 원리에서 영감을 받아 설계된 새로운 생성 모델로, 데이터에 점진적으로 노이즈를 추가하는 forward process와 이를 역으로 제거하는 reverse process를 통해 고품질 이미지를 생성하는 혁신적인 접근법을 제시하였다.
본 연구의 핵심 기여는 확산 확률 모델(Diffusion Probabilistic Models)과 랑주뱅 다이나믹스(Langevin dynamics) 기반의 denoising score matching 간의 새로운 이론적 연결고리를 발견한 것이다. 이를 통해 가중 변분 경계(weighted variational bound)를 학습 목표로 설정하여, 복잡한 생성 문제를 수많은 단순한 노이즈 제거 문제로 분해하여 해결하는 방법론을 구축하였다. 이러한 접근은 점진적 손실 압축(progressive lossy decompression) 방식으로 해석할 수 있는 오토리그레시브 디코딩(autoregressive decoding)의 일반화를 가능하게 하였다.
실험 결과, CIFAR-10 데이터셋에서 Inception Score 9.46과 FID 3.17이라는 당시 최고 수준의 성능을 달성하였으며, 256×256 LSUN 데이터셋에서도 ProgressiveGAN과 견줄 만한 품질의 샘플을 생성하였다. 특히 기존 GAN 모델들과 달리 적대적 학습 없이도 안정적인 학습이 가능하며, 모드 붕괴(mode collapse) 문제에서 자유롭다는 장점을 보였다.
이러한 결과는 확산 모델이 기존 GAN 기반 접근법을 대체할 수 있는 현실적이고 강력한 대안임을 입증하였으며, 현재 Stable Diffusion, Midjourney 등 최신 AI 이미지 생성 도구들의 핵심 기술로 자리잡게 된 토대를 마련하였다. 전체 구현 코드는 GitHub에 공개되어 있어, 연구자들이 손쉽게 재현하고 확장할 수 있도록 하였다.
여러 복잡한 단어들이 많이 나온다. 차근차근 알아보자.
Langevin Dynamics: 물 분자들이 꽃가루를 무작위로 충돌시킴 (노이즈) -> 중력이나 점성이 특정 방향으로 끌어당김 (복원력) 와 같이 노이즈 이후에 복원 하는 동역학. DDPM에서는 가우시안 노이즈를 추가하고 학습된 방향성을 따라 점진적으로 원본 이미지를 복원하는 방식으로 활용
📝 Introduction
최근 몇 년간 딥러닝 생성 모델 분야는 다양한 데이터 모달리티에서 고품질 샘플을 생성하는 놀라운 발전을 이루었다. GAN(Generative Adversarial Networks), 오토리그레시브 모델(autoregressive models), 정규화 플로우(normalizing flows), VAE(Variational Autoencoders) 등이 놀라운 이미지와 오디오 샘플을 합성해냈으며, 에너지 기반 모델링(energy-based modeling)과 점수 매칭(score matching) 분야에서도 GAN에 견줄 만한 이미지 품질을 달성하는 주목할 만한 진전이 있었다.
이러한 배경에서 등장한 것이 바로 확산 확률 모델(Diffusion Probabilistic Models)이다. 확산 모델은 변분 추론(variational inference)을 사용해 학습된 매개변수화된 마르코프 체인(parameterized Markov chain)으로, 유한한 시간 후에 데이터와 일치하는 샘플을 생성한다. 이 체인의 전이는 확산 과정(diffusion process)을 역으로 수행하도록 학습되는데, 확산 과정은 신호가 완전히 파괴될 때까지 샘플링과 반대 방향으로 데이터에 점진적으로 노이즈를 추가하는 마르코프 체인(Markov chain)이다. 확산이 소량의 가우시안 노이즈(small amounts of Gaussian noise)로 구성될 때, 샘플링 체인의 전이도 조건부 가우시안(conditional Gaussians)으로 설정하는 것으로 충분하며, 이는 특히 간단한 신경망 매개변수화를 가능하게 한다.
DDPM(Denoising Diffusion Probabilistic Models)은 확산 모델의 놀라운 잠재력을 실제로 입증한 혁신적인 연구다. 확산 모델은 정의하기 직관적이고 효율적으로 학습할 수 있지만, 고품질 샘플을 생성할 수 있다는 것이 실증되지 않았었다. 본 논문은 확산 모델이 실제로 고품질 샘플을 생성할 수 있으며, 때로는 다른 유형의 생성 모델들의 공개된 결과보다 더 나은 성능을 보인다는 것을 보여준다.
더욱 중요한 것은, 저자들이 확산 모델의 특정 매개변수화가 다중 노이즈 레벨에서의 노이즈 제거 점수 매칭(denoising score matching over multiple noise levels)과 훈련 중 랑주뱅 다이나믹스(annealed Langevin dynamics)와의 동등성을 드러낸다는 것을 발견했다는 점이다. 이 매개변수화를 사용해 최고의 샘플 품질 결과를 얻었으므로, 이러한 동등성을 주요 기여 중 하나로 간주한다.
그러나 모델의 한계점도 명확하다. 샘플 품질이 우수함에도 불구하고, 우도 기반 모델들(likelihood-based models)과 비교해 경쟁력 있는 로그 우도를 갖지 못한다. 흥미롭게도, 모델의 무손실 코드 길이(lossless codelengths)의 대부분이 지각할 수 없는 이미지 세부사항을 설명하는 데 사용된다는 것을 발견했다. 이는 확산 모델이 손실 압축(lossy compression)에 탁월한 귀납적 편향(inductive bias)을 가지고 있음을 시사한다.
아래는 DDPM이 실제로 생성한 샘플 이미지입니다.

또한, DDPM의 핵심 구조는 아래와 같이 Forward/Reverse Process의 마르코프 체인으로 시각화할 수 있습니다.

이 글에서는 DDPM의 핵심 아이디어와 수식, 그리고 실제로 이미지를 생성하는 과정을 쉽고 체계적으로 설명한다.
마찬가지로 여러 개념들이 등장한다. Diffusion models learn distributions generated by complex Langevin dynamics 의 논문에 기반하였는데 backgorund 지식이 어느정도 필요하다. 하나하나 알아보자.
🔧 Background
DDPM을 이해하기 위해서는 먼저 확산 확률 모델(Diffusion Probabilistic Models)의 기본 개념을 파악해야 한다. 확산 모델은 foward process, reverse process 두 가지 과정으로 구성되는데, 먼저 순방향 과정과 주로 사용하는 개념인 markov chain 에 대해 알아보자.
마르코프 체인(Markov Chain)
\[P(X_t | X_{t-1}, X_{t-2}, \ldots, X_0) = P(X_t | X_{t-1})\]마르코프 체인(Markov Chain)은 DDPM의 기본 구조를 이루는 핵심 개념이다. 현재 상태 $X_t$가 오직 바로 이전 상태 $X_{t-1}$에만 의존하며, 그 이전의 모든 과거 히스토리는 무시하는 “기억 상실” 특성을 갖는다. 이러한 단순화 덕분에 복잡한 다단계 과정을 수학적으로 다루기 쉬워진다.

마르코프 체인의 차수(Order):
- 0차 마르코프: 각 상태가 완전히 독립적 (과거에 전혀 의존하지 않음)
- 1차 마르코프: 현재 상태가 바로 이전 1개 상태에만 의존 ← DDPM이 사용하는 방식
- 2차 마르코프: 현재 상태가 이전 2개 상태에 의존
- n차 마르코프: 현재 상태가 이전 n개 상태에 의존
DDPM에서의 마르코프 체인:
- 각 노이즈 레벨이 하나의 ‘상태’
- 순방향: 원본 이미지 → 점진적 노이즈 추가 → 완전한 노이즈
- 역방향: 완전한 노이즈 → 점진적 노이즈 제거 → 원본 이미지
- 각 단계는 오직 이전 단계에만 의존
순방향 과정(Forward Process) - 확산 과정
\[q(x_{1:T}\|x_0) := \prod_{t=1}^T q(x_t\|x_{t-1}), \quad q(x_t\|x_{t-1}) := \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I) \tag{1}\]순방향 과정(Forward Process)은 확산 모델의 출발점이다. 이는 확산 과정(Diffusion Process)이라고도 불리며, 원본 데이터 $x_0$에서 시작하여 점진적으로 가우시안 노이즈를 추가해 완전한 노이즈 $x_T$까지 도달하는 고정된 마르코프 체인이다. 학습 가능한 매개변수는 존재하지 않으며, 단순히 데이터를 파괴하는 과정이지만 이후 역방향 과정이 이를 모방하도록 학습한다:
\[q(x_{1:T}\|x_0) := \prod_{t=1}^T q(x_t\|x_{t-1})\]각 단계에서의 노이즈 추가는 다음과 같이 정의된다:
\[q(x_t\|x_{t-1}) := \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)\]여기서 $\beta_1, \ldots, \beta_T$는 분산 스케줄(Variance Schedule)이다.
📋 변수 설명:
변수 | 의미 | 설명 |
---|---|---|
$q$ | 순방향 분포 | 고정된, 학습되지 않는 분포 |
$p$ | 역방향 분포 | 학습 가능한 분포 |
$x_0$ | 원본 데이터 | 완전한 이미지 |
$x_t$ | 시점 t 데이터 | 노이즈가 추가된 이미지 |
$T$ | 확산 단계 수 | 일반적으로 1000 |
$\beta_t$ | 분산 스케줄 | 노이즈 추가 정도 제어 |
$\mathcal{N}(x; \mu, \sigma^2)$ | 가우시안 분포 | 평균 $\mu$, 분산 $\sigma^2$ |
$I$ | 단위 행렬 | 각 픽셀에 독립적 노이즈 |
$\epsilon$ | 가우시안 노이즈 | $\sim \mathcal{N}(0, I)$ |

🏗️ 역방향 과정(Reverse Process) - 생성 과정
\[p_\theta(x_{0:T}) := p(x_T) \prod_{t=1}^T p_\theta(x_{t-1}|x_t), \quad p_\theta(x_{t-1}|x_t) := \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) \tag{2}\]역방향 과정(Reverse Process)은 확산 모델의 핵심이자 생성 과정이다. 이는 디노이징 과정(Denoising Process)이라고도 불리며, 완전한 가우시안 노이즈에서 시작하여 점진적으로 노이즈를 제거해 원본 데이터를 복원하는 학습 가능한 마르코프 체인이다. 순방향 과정과 달리 신경망 매개변수 $\theta$가 존재하며, 이를 통해 각 단계의 전이 확률을 학습한다.
Diffsuion model 은 $p_\theta(x_0) := \int p_\theta(x_{0:T}) dx_{1:T}$ 형태의 latent variable model 이다.
\[p_{\theta}(x_{0:T}) := p(x_T) \prod_{t=1}^T p_{\theta}(x_{t-1}\|x_t)\]여기서 각 전이 확률은 학습 가능한 가우시안 분포로 설정된다:
\[p_{\theta}(x_{t-1}\|x_t) := \mathcal{N}(x_{t-1}; \mu_{\theta}(x_t, t), \Sigma_{\theta}(x_t, t))\]그리고 시작점은 표준 정규분포를 사용한다:
\[p(x_T) = \mathcal{N}(x_T; 0, I)\]📋 변수 설명:
변수 | 의미 | 설명 |
---|---|---|
$p_\theta$ | 역방향 분포 | 학습 가능한 분포 (매개변수 $\theta$) |
$\theta$ | 신경망 매개변수 | U-Net 구조의 모든 가중치 |
$x_{0:T}$ | 전체 변수 집합 | $(x_0, x_1, \ldots, x_T)$ |
$p_{\theta}(x_{t-1} | x_t)$ | 역방향 전이 확률 | 이전 상태 예측 |
$\mu_{\theta}(x_t, t)$ | 예측 평균 | 신경망이 예측하는 평균 |
$\Sigma_{\theta}(x_t, t)$ | 예측 공분산 | 보통 고정값 사용 |
$p(x_T)$ | 초기 노이즈 분포 | 표준 정규분포 |

🎯 변분 경계(Variational Bound)
\[\mathbb{E}[-\log p_\theta(x_0)] \leq \mathbb{E}_q\left[-\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}\|x_0)}\right] = \mathbb{E}_q\left[-\log p(x_T) - \sum_{t \geq 1} \log \frac{p_\theta(x_{t-1}\|x_t)}{q(x_t\|x_{t-1})}\right] =: L \tag{3}\]변분 경계(Variational Bound)는 DDPM 학습의 핵심 목표 함수이다. 직접 계산이 불가능한 음의 로그 우도를 변분 추론을 통해 상한(upper bound)으로 근사하여 최적화한다. 이 경계를 최소화함으로써 실제 데이터 분포와 모델이 생성하는 분포 간의 차이를 줄여나간다:
수식을 하나하나 풀어서 확인해보자
1단계: 우리가 계산하고 싶은 것, diffusion model (latent varibale)
\[p_\theta(x_0) = \int p_\theta(x_{0:T}) dx_{1:T}\]2단계: 보조 분포 끼워넣기 (변분 추론의 핵심 아이디어)
\[p_\theta(x_0) = \int p_\theta(x_{0:T}) dx_{1:T} = \int q(x_{1:T}|x_0) \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} dx_{1:T}\]적분을 기댓값으로 변환
\[\int q(x_{1:T}|x_0) \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} dx_{1:T} = \int \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \cdot q(x_{1:T}|x_0) dx_{1:T}\]기댓값 정의 활용 \(f(x_{1:T}) = \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}, \quad p(x_{1:T}) = q(x_{1:T}|x_0)\)
따라서 기댓값 정의 $\mathbb{E}_p[f(x)] = \int f(x) \cdot p(x) dx$ 에 의해:
\[\int \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \cdot q(x_{1:T}|x_0) dx_{1:T} = \mathbb{E}_{q(x_{1:T}|x_0)} \left[ \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \right]\]3단계: 로그를 취하고 젠센 부등식 적용
\[\log p_\theta(x_0) = \log \mathbb{E}_{q} \left[ \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \right] \geq \mathbb{E}_{q} \left[ \log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \right]\]4단계: 음수를 곱해서 최소화 문제로 변환 (부등호 방향 바뀜)
\[-\log p_\theta(x_0) \leq -\mathbb{E}_{q} \left[ \log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} \right] =: L\]로그 안의 (1),(2)식 이용
\[\frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} = \frac{p(x_T) \prod_{t=1}^T p_\theta(x_{t-1}|x_t)}{\prod_{t=1}^T q(x_t|x_{t-1})}\]로그 적용하여 곱셈을 덧셈으로 변환
\[\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} = \log p(x_T) + \sum_{t=1}^T \log p_\theta(x_{t-1}|x_t) - \sum_{t=1}^T \log q(x_t|x_{t-1})\]분수 형태로 정리
\[\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} = \log p(x_T) + \sum_{t=1}^T \log \frac{p_\theta(x_{t-1}|x_t)}{q(x_t|x_{t-1})}\]음수 붙이고 기댓값 적용
\[L = -\mathbb{E}_q\left[\log p(x_T) + \sum_{t=1}^T \log \frac{p_{\theta}(x_{t-1}|x_t)}{q(x_t|x_{t-1})}\right]\](3) 의 식과 동일한 최종 형태 \(L = \mathbb{E}_q\left[-\log p(x_T) - \sum_{t \geq 1} \log \frac{p_{\theta}(x_{t-1}|x_t)}{q(x_t|x_{t-1})}\right]\)
🔬 순방향 과정의 임의 시점 샘플링
\[q(x_t\|x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I) \tag{4}\]수식 (4)는 DDPM의 가장 중요한 혁신이다. 이 공식을 통해 원본 이미지 $x_0$에서 중간 단계 없이 바로 임의의 시점 $t$로 점프할 수 있다. 기존 확산 모델들이 $x_0 → x_1 → … → x_t$ 순차적으로 거쳐야 했던 것과 달리, 단 한 번의 계산으로 원하는 노이즈 레벨에 도달 가능하다.
순방향 과정의 분산 $\beta_t$는 두 가지 방법으로 설정할 수 있다:
- 학습 가능한 매개변수: 재매개변수화(reparameterization)를 통해 학습
- 고정 하이퍼파라미터: 미리 정의된 스케줄 사용 (논문에서는 이 방식 채택)
🎯 임의 시점 샘플링의 핵심 목표
수식 (4)의 혁신적 의의: 이 단순해 보이는 공식이 DDPM을 기존의 확산 모델들과 완전히 차별화시키는 핵심 혁신이다. 기존 방식에서는 $x_0$에서 $x_t$에 도달하기 위해 모든 중간 단계 $x_1, x_2, …, x_{t-1}$를 순차적으로 거쳐야 했지만, 수식 (4)는 이 모든 과정을 한 번에 뛰어넘을 수 있게 해준다.
1. 🚀 학습 효율성의 극대화
- 기존 문제점: $x_0 → x_1 → x_2 → … → x_t$ 순차 진행으로 인한 계산 비효율
- DDPM 해결책: $x_0 → x_t$ 직접 점프로 1000배 빠른 샘플링 달성
- 상세 설명: 1000 스텝의 확산 과정이 있다면, 기존에는 각 스텝마다 신경망을 거쳐야 했지만 이제는 한 번의 계산으로 임의 시점으로 바로 이동 가능. 학습 시 매번 전체 시퀀스를 계산할 필요가 없어 GPU 연산량이 획기적으로 감소.
2. ⚡ GPU 병렬 처리 최적화
- 기존 문제점: 각 단계별 순차 계산이 필수적이어서 병렬화 불가능
- DDPM 해결책: 모든 시점 $t$에서 독립적으로 동시 학습 가능
- 상세 설명: 하나의 배치에서 서로 다른 시점들($t=10, t=500, t=999$ 등)을 동시에 처리할 수 있어 GPU의 병렬 처리 성능을 최대한 활용. 이는 특히 대규모 이미지나 긴 시퀀스에서 학습 속도를 비약적으로 향상시킴.
3. 💾 메모리 사용량의 대폭 감소
- 기존 문제점: 중간 상태 $x_1, x_2, …, x_{t-1}$ 모두를 메모리에 저장해야 함
- DDPM 해결책: 중간 과정이 완전히 불필요하여 메모리 효율성 극대화
- 상세 설명: 1000 스텝 확산 과정에서 999개의 중간 상태를 저장할 필요가 없어짐. 고해상도 이미지(예: 1024×1024)를 다룰 때 이는 수십 GB의 메모리 절약을 의미하며, 더 큰 배치 크기나 더 높은 해상도로 학습 가능.
4. 🎲 확률적 경사 하강법(SGD) 최적화
- 기존 문제점: 고정된 순서로만 학습하여 편향된 최적화 발생
- DDPM 해결책: 랜덤하게 선택된 시점 $t$에서 학습하여 더 안정적인 수렴
- 상세 설명: 매 학습 스텝마다 $t \sim \text{Uniform}(1, T)$에서 랜덤 시점을 선택하여 학습. 이는 모든 노이즈 레벨에서 균등하게 학습이 이루어지도록 보장하며, 특정 시점에 과적합되는 것을 방지. 결과적으로 더 robust하고 일반화 성능이 뛰어난 모델을 만들어냄.
🔬 표기법 정의:
- $\alpha_t := 1 - \beta_t$ (노이즈가 아닌 신호의 비율)
- $\bar{\alpha}t := \prod{s=1}^t \alpha_s$ (누적 신호 보존율)
- 중간 단계를 거치지 않고 원본 $x_0$에서 바로 $x_t$로 점프 가능
- 학습 시 임의의 시점 $t$를 랜덤하게 선택하여 효율적 학습 가능
- $t$가 클수록 $\bar{\alpha}_t \to 0$이므로 완전한 노이즈에 수렴
📊 효율적 학습: 분산 감소를 통한 개선
확률적 경사 하강법(SGD)으로 $L$의 랜덤 항들을 최적화함으로써 효율적인 학습이 가능하다.
추가 개선: $L$ (식 3)을 다음과 같이 재작성하여 분산 감소(variance reduction) 달성:
개선된 손실 함수 (5): \(L = \underbrace{D_{KL}(q(x_T|x_0) \parallel p(x_T))}_{L_T} + \sum_{t>1} \underbrace{D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))}_{L_{t-1}} + \underbrace{(-\log p_\theta(x_0|x_1))}_{L_0} \tag{5}\)
각 항목의 의미:
항목 | 기호 | 의미 | 설명 |
---|---|---|---|
사전 매칭 | $L_T$ | $q(x_T \mid x_0)$와 $p(x_T)$ 매칭 | 마지막 단계에서 표준 정규분포 매칭 |
디노이징 | $L_{t-1}$ | 순방향 사후분포와 역방향 예측 매칭 | 핵심 디노이징 학습 |
재구성 | $L_0$ | 첫 번째 단계에서 원본 복원 | 최종 이미지 품질 |
🔍 순방향 사후분포: 해석적 해
식 (5)는 KL 발산을 사용하여 $p_\theta(x_{t-1} | x_t)$를 순방향 과정 사후분포와 직접 비교한다. |
$x_0$에 조건화된 순방향 사후분포 (6): \(q(x_{t-1}|x_t, x_0) = \mathcal{N}(x_{t-1}; \tilde{\mu}_t(x_t, x_0), \tilde{\beta}_t I) \tag{6}\)
핵심 매개변수들 (7): \(\tilde{\mu}_t(x_t, x_0) := \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}x_0 + \frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t \tag{7a}\)
\[\tilde{\beta}_t := \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t \tag{7b}\]수식 (7a)의 직관적 해석:
- 첫 번째 항: $x_0$의 영향 (원본 정보)
- 두 번째 항: $x_t$의 영향 (현재 노이즈 상태)
- 두 정보를 가중 평균하여 최적의 이전 상태 예측
🎯 Rao-Blackwell 추정: 닫힌 형태 계산의 장점
Rao-Blackwell 추정은 DDPM의 학습 안정성을 보장하는 핵심 기법이다. 모든 KL 발산이 가우시안 분포 간의 비교이므로 몬테카를로 샘플링의 높은 분산 문제 없이 정확한 닫힌 형태 공식으로 계산할 수 있다. 이는 학습 과정에서 노이즈를 줄이고 수렴을 안정화시킨다.
Rao-Blackwell 방식의 이점:
- ✅ 정확한 계산: 근사 없이 정확한 KL 발산 계산
- ✅ 낮은 분산: 몬테카를로 노이즈 제거
- ✅ 빠른 계산: 해석적 공식 사용으로 속도 향상
- ✅ 안정적 학습: 분산 감소로 더 안정적인 최적화
가우시안 간 KL 발산 공식: \(D_{KL}(\mathcal{N}(\mu_1, \sigma_1^2) \parallel \mathcal{N}(\mu_2, \sigma_2^2)) = \log\frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1-\mu_2)^2}{2\sigma_2^2} - \frac{1}{2}\)
이러한 설계 덕분에 DDPM은 계산 효율성과 학습 안정성을 동시에 달성할 수 있었다.
🧮 수식 (4)의 상세 증명: 임의 시점 샘플링이 가능한 이유
수식 (4)인 $q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)$가 왜 성립하는지 단계별로 증명해보자. |
🔍 재매개변수화 트릭(Reparameterization Trick)
출발점: 순방향 과정의 정의 \(q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I) = \mathcal{N}(x_t; \sqrt{\alpha_t}x_{t-1}, (1-\alpha_t) I)\)
재매개변수화를 통해 샘플링 과정을 명시적으로 표현하면: \(x_t = \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}\epsilon_{t-1} \quad \text{where } \epsilon_{t-1} \sim \mathcal{N}(0, I)\)
📈 단계별 역추적 과정
1단계: $x_t$를 $x_{t-2}$로 표현 \(x_t = \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}\epsilon_{t-1}\)
$x_{t-1}$을 같은 방식으로 전개하면: \(x_{t-1} = \sqrt{\alpha_{t-1}}x_{t-2} + \sqrt{1-\alpha_{t-1}}\epsilon_{t-2}\)
이를 대입하면: \(x_t = \sqrt{\alpha_t}(\sqrt{\alpha_{t-1}}x_{t-2} + \sqrt{1-\alpha_{t-1}}\epsilon_{t-2}) + \sqrt{1-\alpha_t}\epsilon_{t-1}\)
\[= \sqrt{\alpha_t\alpha_{t-1}}x_{t-2} + \sqrt{\alpha_t(1-\alpha_{t-1})}\epsilon_{t-2} + \sqrt{1-\alpha_t}\epsilon_{t-1}\]🎯 가우시안 노이즈 결합의 핵심
중요한 성질: 독립적인 가우시안 노이즈들의 선형결합도 가우시안이다!
\[\sqrt{\alpha_t(1-\alpha_{t-1})}\epsilon_{t-2} + \sqrt{1-\alpha_t}\epsilon_{t-1} \sim \mathcal{N}(0, \sigma^2 I)\]여기서 분산 $\sigma^2$는: \(\sigma^2 = \alpha_t(1-\alpha_{t-1}) + (1-\alpha_t) = \alpha_t - \alpha_t\alpha_{t-1} + 1 - \alpha_t = 1 - \alpha_t\alpha_{t-1}\)
따라서: \(x_t = \sqrt{\alpha_t\alpha_{t-1}}x_{t-2} + \sqrt{1-\alpha_t\alpha_{t-1}}\epsilon'_{t-2} \quad \text{where } \epsilon'_{t-2} \sim \mathcal{N}(0, I)\)
🔄 패턴 인식과 일반화
패턴 발견: 같은 방식으로 계속 전개하면 \(x_t = \sqrt{\alpha_t\alpha_{t-1}\alpha_{t-2}}x_{t-3} + \sqrt{1-\alpha_t\alpha_{t-1}\alpha_{t-2}}\epsilon'_{t-3}\)
일반적 형태: $n$단계 역추적하면 \(x_t = \sqrt{\prod_{s=t-n+1}^t \alpha_s} \cdot x_{t-n} + \sqrt{1-\prod_{s=t-n+1}^t \alpha_s} \cdot \epsilon'_{t-n}\)
🏁 최종 결과: 원본까지 역추적
완전한 역추적: $n = t$로 설정하여 $x_0$까지 역추적하면 \(x_t = \sqrt{\prod_{s=1}^t \alpha_s} \cdot x_0 + \sqrt{1-\prod_{s=1}^t \alpha_s} \cdot \epsilon'_0\)
표기법 활용: $\bar{\alpha}t := \prod{s=1}^t \alpha_s$를 사용하면 \(x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon'_0 \quad \text{where } \epsilon'_0 \sim \mathcal{N}(0, I)\)
✅ 최종 증명 완료
재매개변수화 형태에서 확률분포로 변환하면: \(\boxed{q(x_t|x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)}\)
🎯 증명의 핵심 아이디어
단계 | 핵심 아이디어 | 수학적 원리 |
---|---|---|
재매개변수화 | 확률분포 → 결정적 변환 | $X \sim \mathcal{N}(\mu, \sigma^2) \Rightarrow X = \mu + \sigma \epsilon$ |
역추적 | 재귀적 대입 | 마르코프 체인의 연쇄 법칙 |
노이즈 결합 | 가우시안의 선형결합 | $aX + bY \sim \mathcal{N}(a\mu_X + b\mu_Y, a^2\sigma_X^2 + b^2\sigma_Y^2)$ |
누적 효과 | 곱셈의 누적 | $\bar{\alpha}t = \prod{s=1}^t \alpha_s$ |
결론: 이 증명 덕분에 DDPM은 중간 단계 없이 바로 원본 $x_0$에서 임의 시점 $x_t$로 점프할 수 있어 학습 효율성이 극대화된다! 🚀
Leave a comment