DDPM: Denoising Diffusion Probabilistic Models

📅 최초 작성: 2025년 7월 13일
🔄 최종 업데이트: 2025년 08월 13일 19:20 (KST)
✨ 최근 변경사항: 임의 시점 샘플링 목표 추가, 핵심 개념 요약 설명 보강, 수식 렌더링 문제 해결

Jonathan Ho · Ajay Jain · Pieter Abbeel
Denoising Diffusion Probabilistic Models, NeurIPS 2020
arXiv 2006.11239GitHub 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

최근 몇 년간 딥러닝 생성 모델 분야는 다양한 데이터 모달리티에서 고품질 샘플을 생성하는 놀라운 발전을 이루었다. GA\mathcal{N}(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이 생성한 샘플 이미지

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

DDPM 그래프 구조

이 글에서는 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)$
DDPM 순방향 과정
왼쪽 항$q(x_t x_{t-1})$ 은 위에서 정의한 마르코프 성질이고, 오른쪽 항 $\mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)$ 은 가우시안 노이즈를 가하는 과정입니다. 이전 이미지 $x_{t-1}$ 을 $\sqrt{1-\beta_t}$ 만큼 누그러뜨리고, $\beta_t$ 만큼 노이즈를 더하는 것으로, $\sqrt{1-\beta_t}$ 와 $\beta_t$ 는 각각 가우시안 분포의 평균과 분산으로 해석할 수 있습니다.

🏗️ 역방향 과정(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} \mid x_t)$ 역방향 전이 확률 이전 상태 예측
$\mu_{\theta}(x_t, t)$ 예측 평균 신경망이 예측하는 평균
$\Sigma_{\theta}(x_t, t)$ 예측 공분산 보통 고정값 사용
$p(x_T)$ 초기 노이즈 분포 표준 정규분포
DDPM 역방향 과정

생성 모델의 공통 목표는 데이터$X$ 에 대한 Likelihood $P(X)$ 최대화입니다. Forward 과정이 가우시안이면 Reverse 과정도 가우시안이라는 것이 Feller et al.에서 증명되었습니다. 하지만 Reverse의 평균과 분산을 해석적으로 구하기 어려워서, 딥러닝 모델로 평균과 분산을 학습하여 실제 역방향 분포에 근사하는 것이 핵심입니다.

🎯 변분 경계(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)으로 근사하여 최적화한다. 이 경계를 최소화함으로써 실제 데이터 분포와 모델이 생성하는 분포 간의 차이를 줄여나간다:

우도함수란?

Negative Log Likelihood:$\mathbb{E}_{x_T \sim q(x_T x_0)}[-\log p_\theta(x_0)]$1단계: 베이즈 정리 적용
$$= \mathbb{E}_{x_T \sim q(x_T x_0)}\left[-\log \frac{p_\theta(x_{0:T})}{p_\theta(x_{1:T} x_0)}\right] \quad \because p(a) = \frac{p(a,b)}{p(b a)} \tag{1}$$2단계: 보조 분포$ q(x_{1:T} x_0)$를 분모 분자에 곱해줌
$$= \mathbb{E}_{x_T \sim q(x_T x_0)}\left[-\log \frac{p_\theta(x_{0:T})}{q(x_{1:T} x_0)} \ast \frac{q(x_{1:T} x_0)}{p_\theta(x_{1:T} x_0)}\right] \quad \because 1 = \frac{q(x_{1:T} x_0)}{q(x_{1:T} x_0)} \tag{2}$$3단계: KL Divergence 분리

2단계의 곱셈을 로그 법칙으로 분해:$\log(A \times B) = \log A + \log B$ \(= \mathbb{E}_{x_T \sim q(x_T|x_0)}\left[-\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)} - \log \frac{q(x_{1:T}|x_0)}{p_\theta(x_{1:T}|x_0)}\right]\)

기댓값 선형성 적용:$\mathbb{E}[A + B] = \mathbb{E}[A] + \mathbb{E}[B]$ \(= \mathbb{E}_{x_T \sim q(x_T|x_0)}\left[-\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right] + \mathbb{E}_{x_T \sim q(x_T|x_0)}\left[-\log \frac{q(x_{1:T}|x_0)}{p_\theta(x_{1:T}|x_0)}\right]\)

두 번째 항이 KL divergence:$D_{KL} = \mathbb{E}_q\left[\log \frac{q}{p}\right]$ 정의에 의해

\(= \mathbb{E}_{x_T \sim q(x_T|x_0)}\left[-\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right] - D_{KL} \tag{3}\) 4단계: Jensen’s Inequality 적용 ($D_{KL} \geq 0$) \(\leq \mathbb{E}_{x_T \sim q(x_T|x_0)}\left[-\log \frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right] \quad \because D_{KL} \geq 0 \tag{4}\)ELBO: 4번의 식은 3번의 식보다 같거나 큰 값으로, ELBO로 사용

식 (5): 순방향/역방향 과정을 곱의 형태로 전개

$$= \mathbb{E}q\left[-\log \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})}\right] \quad \because p(x_{0:T}) = p(x_T)\prod_{t=1}^T p_\theta(x_{t-1} x_t), \; q(x_{1:T} x_0) = \prod_{t=1}^T q(x_t x_{t-1}) \tag{5}$$식 (6): 로그의 곱셈 법칙 적용
$$= \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] \quad \because \log\left(\frac{\prod_t^T p_\theta(x_{t-1} x_t)}{\prod_t^T q(x_t x_{t-1})}\right) = \sum_{t=1}^T \log\frac{p_\theta(x_{t-1} x_t)}{q(x_t x_{t-1})} \tag{6}$$## 🔬 순방향 과정의 임의 시점 샘플링

$q(x_t|x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I) \tag{4}$<div style="margin-top:20px"></div>

수식 (4)는 DDPM의 가장 중요한 혁신이다. 이 공식을 통해 원본 이미지$x_0$ 에서 중간 단계 없이 바로 임의의 시점 $t$ 로 점프할 수 있다. 기존 확산 모델들이 $x_0 → x_1 → … → x_t$ 순차적으로 거쳐야 했던 것과 달리, 단 한 번의 계산으로 원하는 노이즈 레벨에 도달 가능하다.

정리: 매개변수$\alpha_t := 1 - \beta_t$, $\bar{\alpha}t := \prod{s=1}^t \alpha_s$ 에 대하여, 다음이 성립한다:$$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)$$재매개변수화(Reparameterization): 가우시안 분포의 재매개변수화 공식에 의해

$$

x_t = \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}\epsilon_{t-1}, \quad \epsilon_{t-1} \sim \mathcal{N}(0, I)$$—

Step 1:$x_{t-1}$ 를 $x_{t-2}$ 로 전개

\[x_{t-1} = \sqrt{\alpha_{t-1}}x_{t-2} + \sqrt{1-\alpha_{t-1}}\epsilon_{t-2}, \quad \epsilon_{t-2} \sim \mathcal{N}(0, I)\]

이를$x_t$ 식에 대입하면:\(\begin{align} 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} \end{align}\)—

Step 2: 독립적 가우시안 노이즈의 선형결합

보조정리:$\epsilon_{t-2}, \epsilon_{t-1}$ 가 독립이고 $\epsilon_{t-2}, \epsilon_{t-1} \sim \mathcal{N}(0, I)$ 이면,\(\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 = \alpha_t(1-\alpha_{t-1}) + (1-\alpha_t) = 1 - \alpha_t\alpha_{t-1}\)

따라서 새로운 노이즈$\epsilon’_{t-2} \sim \mathcal{N}(0, I)$ 에 대해: \(x_t = \sqrt{\alpha_t\alpha_{t-1}}x_{t-2} + \sqrt{1-\alpha_t\alpha_{t-1}}\epsilon'_{t-2}\)—

Step 3: 귀납적 일반화

동일한 방법으로$x_{t-2}$ 를 $x_{t-3}$ 로, $x_{t-3}$ 를 $x_{t-4}$ 로 계속 전개하면, 일반적으로: \(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}\) —

Step 4: 극한 전개 ($n = t$)

$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 \epsilon'_0 \sim \mathcal{N}(0, I)\)—

Step 5: 확률분포 변환

재매개변수화된 형태를 확률분포로 변환하면:$$\boxed{q(x_t x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)} \quad \blacksquare

$$—

한 번에 샘플링이 가능하므로 stochastic gradient descent을 이용하여 효율적인 학습이 가능하다. L 을 다음과 같이 다시 쓰면 분산 감소로 인해 추가 개선이 가능하다.

🔄 변분 경계 L의 변형 과정$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}$ 식 (5)는 변분 경계$L$ 을 KL 발산(Kullback-Leibler divergence)들의 합으로 분해한 핵심적인 형태이다. 이 분해를 통해 복잡한 최적화 문제를 해석 가능한 여러 개의 작은 문제들로 나누어 해결할 수 있다.

📋 각 항의 의미:

수식 의미 특성
$L_T$ $ D_{KL}(q(x_T|x_0) \parallel p(x_T))$ 최종 노이즈 매칭 학습 불가능 (고정)
$L_{t-1}$ $ D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))$ 중간 단계 디노이징 학습 가능
$L_0$ $-\log p_\theta(x_0|x_1)$ 최종 복원 우도 학습 가능

출발점: 식 (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]$$1단계: 기댓값 분리 및 합의 정리

$$

L = \mathbb{E}q[-\log p(x_T)] + \mathbb{E}_q\left[- \sum{t=1}^T \log \frac{p_\theta(x_{t-1} x_t)}{q(x_t x_{t-1})}\right] \tag{L1}$$2단계: 베이즈 정리 활용
$$\frac{p_\theta(x_{t-1} x_t)}{q(x_t x_{t-1})} = \frac{p_\theta(x_{t-1} x_t) \cdot q(x_{t-1} x_0)}{q(x_{t-1} x_t, x_0) \cdot q(x_t x_0)} \quad \because q(x_t x_{t-1}) = \frac{q(x_{t-1} x_t, x_0) \cdot q(x_t x_0)}{q(x_{t-1} x_0)} \text{ (베이즈 정리)} \tag{L2}$$3단계: 로그 분해 적용
$$\log \frac{p_\theta(x_{t-1} x_t)}{q(x_t x_{t-1})} = \log \frac{p_\theta(x_{t-1} x_t)}{q(x_{t-1} x_t, x_0)} + \log \frac{q(x_{t-1} x_0)}{q(x_t x_0)} \tag{L3}$$4단계: 망원급수 정리 (Telescoping Series) 적용
망원급수 상세 설명$$\sum_{t=1}^T \log \frac{q(x_{t-1} x_0)}{q(x_t x_0)} = \sum_{t=1}^T [\log q(x_{t-1} x_0) - \log q(x_t x_0)] \tag{L4}$$

망원급수 전개: 각 항을 명시적으로 나열하면

\[= [\log q(x_0|x_0) - \log q(x_1|x_0)] + [\log q(x_1|x_0) - \log q(x_2|x_0)] + \cdots + [\log q(x_{T-1}|x_0) - \log q(x_T|x_0)]\]

망원급수 상쇄: 중간 항들이 모두 상쇄됨

\[= \log q(x_0|x_0) - \log q(x_T|x_0) \quad \because \text{중간 항들이 } +\log q(x_k|x_0) \text{와 } -\log q(x_k|x_0) \text{로 상쇄} \tag{L5}\]
확률의 성질:$q(x_0 x_0) = 1$(자기 자신에 대한 조건부 확률)$$= \log 1 - \log q(x_T x_0) = -\log q(x_T x_0) \tag{L6}$$5단계: 합의 분해 및 망원급수 결과 대입

3단계 결과에$\sum_{t=1}^T$ 를 적용하면: \(\sum_{t=1}^T \log \frac{p_\theta(x_{t-1}|x_t)}{q(x_t|x_{t-1})} = \sum_{t=1}^T \log \frac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t, x_0)} + \sum_{t=1}^T \log \frac{q(x_{t-1}|x_0)}{q(x_t|x_0)} \tag{L7}\)

망원급수 결과 대입: 4-6단계에서 구한 결과 활용

$$= \sum_{t=1}^T \log \frac{p_\theta(x_{t-1} x_t)}{q(x_{t-1} x_t, x_0)} + (-\log q(x_T x_0)) \quad \because \sum_{t=1}^T \log \frac{q(x_{t-1} x_0)}{q(x_t x_0)} = -\log q(x_T x_0) \tag{L8}$$6단계: 원래 변분 경계에 대입 및 항 재배열

1단계 결과에 5단계 결과를 대입하면:$$

L = \mathbb{E}q[-\log p(x_T)] + \mathbb{E}_q\left[-\left(\sum{t=1}^T \log \frac{p_\theta(x_{t-1} x_t)}{q(x_{t-1} x_t, x_0)} - \log q(x_T x_0)\right)\right] \quad \because \text{5단계 결과 대입} \tag{L10}$$부호 정리: 괄호 안의 마이너스 부호 분배
$$= \mathbb{E}_q[-\log p(x_T)] + \mathbb{E}_q[\log q(x_T x_0)] + \mathbb{E}q\left[-\sum{t=1}^T \log \frac{p_\theta(x_{t-1} x_t)}{q(x_{t-1} x_t, x_0)}\right] \tag{L11}$$7단계: KL divergence 인식 및 최종 형태

첫 두 항 결합: KL divergence 정의 활용

\[\mathbb{E}_q[-\log p(x_T)] + \mathbb{E}_q[\log q(x_T|x_0)] = \mathbb{E}_q\left[\log \frac{q(x_T|x_0)}{p(x_T)}\right] = D_{KL}(q(x_T|x_0) \parallel p(x_T)) \quad \because D_{KL}(P\parallel Q) = \mathbb{E}_P[\log\frac{P}{Q}] \tag{L12}\]

세 번째 항 정리: 부호 변환 및 KL divergence 형태

\[\mathbb{E}_q\left[-\sum_{t=1}^T \log \frac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t, x_0)}\right] = \sum_{t=1}^T \mathbb{E}_q\left[\log \frac{q(x_{t-1}|x_t, x_0)}{p_\theta(x_{t-1}|x_t)}\right] = \sum_{t=1}^T D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t)) \tag{L13}\]

최종 결과: 식 (5) 도출

\[\boxed{L = D_{KL}(q(x_T|x_0) \parallel p(x_T)) + \sum_{t=1}^T D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))} \tag{5}\]

항목별 분해: 합을$t=1$ 과 $t>1$ 로 분리하면: \(\sum_{t=1}^T D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t)) = \underbrace{D_{KL}(q(x_0|x_1, x_0) \parallel p_\theta(x_0|x_1))}_{t=1} + \sum_{t=2}^T D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))\) $L_0$ 정의:$t=1$ 일 때 $D_{KL}(q(x_0|x_1, x_0) \parallel p_\theta(x_0|x_1)) = -\log p_\theta(x_0|x_1) =: L_0$ 따라서 최종적으로:\(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}\)

DDPM 역방향 과정
  • $L_T$ (Regularization): VAE의 KL 정규화 항과 대응되며, 잠재 공간이 사전 분포(표준 정규분포)에 가깝도록 제약
  • $L_{t-1}$ (Denoising): 핵심 학습 목표로, 각 시점에서 노이즈 제거 과정을 학습하는 다단계 재구성 손실
  • $L_0$(Reconstruction): VAE의 재구성 손실과 대응되며, 최종 출력이 원본 데이터를 정확히 복원하는지 측정
  • 다단계 확장: VAE가 단일 인코더-디코더 구조라면, DDPM은 이를$T$ 개의 연속적인 디노이징 단계로 확장한 모델

🔄 VAE vs DDPM: 변분 경계 비교

VAE의 ELBO (Evidence Lower BOund): $L_{VAE} = \underbrace{D_{KL}(q_{\phi}(z|x) \parallel p(z))}{\text{Regularization}} + \underbrace{-\mathbb{E}{q_{\phi}(z|x)}[\log p_{\theta}(x|z)]}{\text{Reconstruction}}$DDPM의 변분 경계:$ L{DDPM} = \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}$

🔍 VAE와의 구조적 대응

DDPM의 변분 경계는 VAE의 ELBO(Evidence Lower BOund)와 구조적으로 대응된다:

📋 항별 대응 관계:

VAE 항 DDPM 항 역할 설명
Regularization $L_T$(Regularization) 잠재 공간 정규화 VAE:$ q_{\phi}(z|x) \parallel p(z)$
DDPM: $ q(x_T|x_0) \parallel p(x_T)$
Reconstruction $L_0$(Reconstruction) 데이터 복원 VAE:$-\mathbb{E}[\log p_{\theta}(x|z)]$
DDPM: $-\log p_\theta(x_0|x_1)$
N/A $\sum_{t>1} L_{t-1}$(Denoising) 다단계 디노이징 VAE에는 없는 DDPM만의 고유한 항

🎯 핵심 차이점

  1. Regularization:
    • VAE: 인코더$q_{\phi}(z|x)$ 가 사전분포 $p(z)$ 에 가깝도록 제약
    • DDPM: 최종 노이즈 $q(x_T|x_0)$ 가 표준정규분포 $p(x_T)$ 에 가깝도록 제약
  2. Reconstruction:
    • VAE: 디코더 $p_{\theta}(x|z)$ 가 원본 데이터를 정확히 복원
    • DDPM: 최종 단계 $p_\theta(x_0|x_1)$ 가 노이즈에서 원본 복원
  3. Denoising (DDPM만의 고유한 항):
    • 각 시점 $t$ 에서 $x_t$ 를 $x_{t-1}$ 로 디노이징하는 과정
    • VAE의 단일 인코더-디코더를 $T$ 개의 연속적인 디노이징 단계로 확장

🔑 핵심 통찰: DDPM은 VAE의 단일 잠재변수 $z$ 를 다단계 잠재변수 시퀀스 $x_1, x_2, …, x_T$ 로 확장한 모델이다.

📊 수학적 대응

VAE의 변분 경계: $L_{VAE} = \underbrace{D_{KL}(q_{\phi}(z|x) \parallel p(z))}{\text{Regularization}} + \underbrace{-\mathbb{E}{q_{\phi}(z|x)}[\log p_{\theta}(x|z)]}{\text{Reconstruction}}$DDPM의 변분 경계:$ L{DDPM} = \underbrace{D_{KL}(q(x_T|x_0) \parallel p(x_T))}{\text{Regularization}} + \sum{t>1} \underbrace{D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))}{\text{Denoising}} - \underbrace{\log p\theta(x_0|x_1)}{\text{Reconstruction}}$📋 구조적 대응: VAE의 정규화+재구성 구조를 DDPM이 다단계로 확장. 핵심 차이는$\sum{t>1} L_{t-1}$ (다단계 디노이징) 항의 추가.


🎯 변분 경계 항들의 실제 구현

📊 Regularization ($L_T$): 사실상 불필요한 항

VAE의 Regularization Error: $D_{KL}(q_{\phi}(z|x) \parallel p(z))$ VAE에서는 prior distribution$p(z)$ 를 $\mathcal{N}(0, I)$ 로 고정하고, 인코더 $q_{\phi}(z|x)$ 와 KL-Divergence로 정규화 과정을 진행했습니다.

DDPM의 Regularization Error: $L_T = D_{KL}(q(x_T|x_0) \parallel p(x_T))$ 하지만 DDPM에서는 이 Regularization Error가 사실상 필요 없습니다. 이유는 다음과 같습니다:

🔍 노이즈화 과정의 수학적 특성:

이미지를 수많은 노이즈화를 진행시켜$x_T$ 를 만들면, 완전한 노이즈 형태가 형성되고 이는 $p(x_T) = \mathcal{N}(0, I)$ 와 비슷한 형태의 가우시안 분포를 띕니다.

수학적 증명: $q(x_T|x_0) = \mathcal{N}(x_T; \sqrt{\bar{\alpha}_T}x_0, (1-\bar{\alpha}_T)I)$

$T$ 가 충분히 클 때 $\bar{\alpha}T = \prod{s=1}^T \alpha_s \to 0$ 이므로: $q(x_T|x_0) \approx \mathcal{N}(0, I) = p(x_T)$ 따라서$L_T \approx 0$ 이 되어 이 Regularization Error term은 학습에서 제외합니다.

🎯 Denoising ($L_{t-1}$): 핵심 학습 목표

Denoising Error의 식: $L_{t-1} = D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))$ 앞의 시그마 항을 떼고 가져오면:$L_{t-1} = D_{KL}(q(x_{t-1}|x_t, x_0) \parallel p_\theta(x_{t-1}|x_t))$🔍 가우시안 분포 간의 KL-Divergence:

먼저$q$ 와 $p$ 는 둘 다 가우시안 분포이므로, 이미 정해져있는 두 가우시안 분포에 대한 KL-Divergence를 구하는 식으로 아래와 같이 나타낼 수 있습니다:

$D_{KL}(\mathcal{N}(\mu_1, \Sigma_1) \parallel \mathcal{N}(\mu_2, \Sigma_2)) = \frac{1}{2}\left[\log\frac{ \Sigma_2 }{ \Sigma_1 } - d + \text{tr}(\Sigma_2^{-1}\Sigma_1) + (\mu_2-\mu_1)^T\Sigma_2^{-1}(\mu_2-\mu_1)\right]$🔍 Diffusion 과정의 노이즈 수식 재고찰:

처음에 Diffusion 과정에서 노이즈를 넣던 수식을 생각해봅시다:$x_t = \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}\epsilon_t$ 여기서 분산 부분을 사전 정의된$\beta_t = 1-\alpha_t$ 만큼의 분산으로 가우시안 노이즈가 씌워지는 것을 볼 수 있습니다. 이렇게 사전 정의된 값에 대해서는 굳이 학습으로 구할 필요가 없기 때문에, 데이터의 분포를 알아내기 위한 평균만을 학습으로 구하는 것으로 간추려집니다.

🔍 두 평균에 대한 MSE 문제로 단순화:$L_{t-1} = \frac{1}{2}\left[(\mu_2-\mu_1)^T\Sigma_2^{-1}(\mu_2-\mu_1)\right] = \frac{1}{2}\left[(\mu_2-\mu_1)^2\right]$ 두 평균에 대한 MSE 문제로 식이 간단해졌습니다. 그리고$\mu_1$ 과 $\mu_2$ 는 아래와 같이 나타낼 수 있습니다:

사후 분포의 평균 ($\mu_1$): $\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$

모델이 예측하는 평균 ($\mu_2$): $\mu_\theta(x_t, t) = \text{학습 가능한 신경망}$🔍 최종 Loss 구성:

다음 대입하면 아래와 같은 간단한 수식으로 Loss가 구성됩니다:$L_{t-1} = \mathbb{E}{x_0, \epsilon_t}\left[\frac{1}{2}\left(\mu\theta(x_t, t) - \tilde{\mu}_t(x_t, x_0)\right)^2\right]$

📋 핵심 통찰:

  1. Regularization ($L_T$): 사실상 불필요 → 학습에서 제외
  2. Denoising ($L_{t-1}$): 핵심 학습 목표 → 평균 예측만 학습
  3. 단순화: 복잡한 KL-Divergence → 간단한 MSE 문제

🔍 순방향 과정의 사후 분포(Posterior)

KL 발산을 계산하기 위해서는 순방향 과정의 사후 분포(Posterior) $q(x_{t-1} x_t, x_0)$ 를 구해야 한다. 이는 놀랍게도 해석적으로 계산 가능하며, 가우시안 분포로 표현된다:
$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}$ 여기서 평균과 분산은 다음과 같이 정의된다:$\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}$📋 변수 설명:

변수 의미 설명
$q(x_{t-1}|x_t, x_0)$ 순방향 사후 분포 $ x_t$와 $ x_0$가 주어졌을 때 $ x_{t-1}$의 분포
$\tilde{\mu}_t(x_t, x_0)$ 사후 평균 $ x_0$와 $ x_t$의 가중 평균
$\tilde{\beta}_t$ 사후 분산 $ x_0$가 알려져 불확실성이 감소된 분산

🎲 Rao-Blackwell 정리의 활용

모든 KL 발산이 가우시안들 간의 비교이므로, 몬테카르를 추정(Monte Carlo estimation) 대신 닫힌 형태의 해석식(closed form expressions)으로 계산할 수 있다. 이는 Rao-Blackwell 정리에 의한 분산 감소 효과를 가져온다:

$D_{KL}(\mathcal{N}(\mu_1, \Sigma_1) \parallel \mathcal{N}(\mu_2, \Sigma_2)) = \frac{1}{2}\left[\log\frac{ \Sigma_2 }{ \Sigma_1 } - d + \text{tr}(\Sigma_2^{-1}\Sigma_1) + (\mu_2-\mu_1)^T\Sigma_2^{-1}(\mu_2-\mu_1)\right]$> Rao-Blackwell 정리: 조건부 기댓값을 이용해 추정량의 분산을 줄이는 통계학 정리

🔑 핵심 장점:

  1. 분산 감소: 고분산 몬테카를로 추정 → 저분산 해석적 계산
  2. 계산 효율성: 복잡한 적분 → 단순한 행렬 연산
  3. 안정적 학습: 일관된 기울기 → 안정적인 수렴

3. 확산 모델과 디노이징 오토인코더

확산 모델은 잠재 변수 모델(latent variable models)의 제한적인 클래스처럼 보일 수 있지만, 실제로는 구현에서 많은 자유도를 허용한다. 다음과 같은 핵심 선택사항들이 있다:

  1. 순방향 과정의 분산$\beta_t$ 설정
  2. 모델 아키텍처 선택
  3. 역방향 과정의 가우시안 분포 매개변수화 방법

이러한 선택을 안내하기 위해, 저자들은 확산 모델과 디노이징 점수 매칭(denoising score matching) 간의 새로운 명시적 연결을 수립한다 (Section 3.2). 이는 확산 모델을 위한 단순화된 가중 변분 경계 목표로 이어진다 (Section 3.4).

최종적으로, 저자들의 모델 설계는 단순함과 실증적 결과로 정당화된다 (Section 4). 논의는 식 (5)의 각 항들로 분류하여 진행한다.

3.1 순방향 과정과$L_T$### 🔧 순방향 과정 분산의 고정

저자들은 순방향 과정의 분산$\beta_t$ 가 재매개변수화에 의해 학습 가능하다는 사실을 무시하고, 대신 이들을 상수로 고정한다 (자세한 내용은 Section 4 참조).

따라서 DDPM 구현에서:

  • 근사 사후 분포 $q$ 는 학습 가능한 매개변수가 없음
  • $L_T$ 는 학습 중 상수이므로 무시할 수 있음

📊 $L_T$ 항의 의미와 특성$L_T = D_{KL}(q(x_T|x_0) \parallel p(x_T))$📋$ L_T$분석:

구성요소 수식 설명
$q(x_T|x_0)$ $\mathcal{N}(x_T; \sqrt{\bar{\alpha}_T}x_0, (1-\bar{\alpha}_T)I)$ 원본에서 최종 노이즈까지의 분포
$p(x_T)$ $\mathcal{N}(x_T; 0, I)$ 표준 정규분포 (목표 분포)
$D_{KL}$ 쿨백-라이블러 발산 두 분포 간의 차이 측정

🎯 실제적 의미$L_T$ 가 상수인 이유:

  1. $\beta_t$ 고정: 순방향 과정이 완전히 결정됨 2.$T$ 충분히 클 때:$\bar{\alpha}T \approx 0$ 이므로 $q(x_T|x_0) \approx \mathcal{N}(0, I) = p(x_T)$3. KL 발산 최소화: 두 분포가 거의 동일하므로$ L_T \approx 0$### 🔍 수학적 분석$ T$가 충분히 클 때, $\bar{\alpha}_T = \prod{s=1}^T \alpha_s = \prod_{s=1}^T (1-\beta_s) \to 0$ 이므로: \(q(x_T|x_0) = \mathcal{N}(x_T; \sqrt{\bar{\alpha}_T}x_0, (1-\bar{\alpha}_T)I) \to \mathcal{N}(x_T; 0, I) = p(x_T)\)
따라서:$$L_T = D_{KL}(q(x_T x_0) \parallel p(x_T)) \to D_{KL}(\mathcal{N}(0,I) \parallel \mathcal{N}(0,I)) = 0$$### 💡 설계 철학

이러한 설계 선택은 다음과 같은 실용적 이점을 제공한다:

  1. 학습 단순화: 하나의 손실 항 제거
  2. 계산 효율성:$L_T$ 계산 불필요
  3. 안정성 향상: 고정된 순방향 과정으로 예측 가능한 동작
  4. 구현 편의성: 복잡한 분산 스케줄 최적화 불필요

🎲 분산 스케줄의 중요성$\beta_t$ 가 고정됨에도 불구하고, 적절한 분산 스케줄 선택은 여전히 중요하다:

  • 너무 작은 $\beta_t$: 느린 확산, 긴 체인 필요
  • 너무 큰 $\beta_t$: 급격한 정보 손실, 복원 어려움
  • 적절한 $\beta_t$: 점진적 확산, 효율적 학습

일반적으로 선형 스케줄 또는 코사인 스케줄을 사용한다: \(\beta_t = \beta_1 + \frac{t-1}{T-1}(\beta_T - \beta_1) \quad \text{(선형 스케줄)}\)### 🔗 다음 단계 예고$ L_T$를 무시할 수 있으므로, 실제 최적화는 다음 항들에 집중된다:

  • $L_{t-1}$ 항들: 중간 단계 디노이징 (가장 중요) -$L_0$ 항: 최종 복원 우도

다음 섹션에서는 이러한 항들을 어떻게 효율적으로 최적화하는지 살펴볼 것이다.

Leave a comment