Back to blog

Denoising Diffusion Probabilistic Models (DDPM)

去噪扩散概率模型

Denoising Diffusion Probabilistic Models (DDPM)

一、论文概述

项目内容
标题Denoising Diffusion Probabilistic Models
作者Jonathan Ho, Ajay Jain, Pieter Abbeel
机构UC Berkeley
论文arXiv:2006.11239
代码GitHub
发布2020年6月19日
主题cs.LG, stat.ML
引用19,949(截至 2026年)
会议NeurIPS 2020

二、核心思想

问题定义

生成模型的目标是学习数据分布 p(x)p(\mathbf{x}) 并从中采样。现有方法(如 GAN、VAE)各有优缺点:

  • GAN: 高质量样本,但训练不稳定,模式崩溃
  • VAE: 稳定训练,但样本质量较低
  • 自回归模型: 高质量,但采样速度慢

解决方案概述

DDPM (Denoising Diffusion Probabilistic Models) 是一类潜变量模型,灵感来自非平衡热力学:

  • 前向过程: 逐步向数据添加高斯噪声,直到变为纯噪声
  • 反向过程: 学习逐步去噪,从噪声生成数据
  • 训练目标: 预测每步添加的噪声

核心性能

指标数值
CIFAR-10 FID3.17(当时 SOTA)
CIFAR-10 IS9.46
LSUN 256×256质量接近 ProgressiveGAN
CelebA-HQ 256×256高质量人脸生成

三、技术架构

核心公式

前向过程 (Forward Process)

逐步向数据添加高斯噪声:

q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)q(\mathbf{x}_t | \mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1-\beta_t}\mathbf{x}_{t-1}, \beta_t \mathbf{I})

其中 βt\beta_t 是噪声调度 (noise schedule)。

关键性质: 可以直接采样任意时间步 tt 的噪声版本:

q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)q(\mathbf{x}_t | \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_t; \sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)\mathbf{I})

其中 αt=1−βt\alpha_t = 1 - \beta_t,αˉt=∏s=1tαs\bar{\alpha}_t = \prod_{s=1}^t \alpha_s。

反向过程 (Reverse Process)

学习从噪声逐步去噪:

pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),σt2I)p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t) = \mathcal{N}(\mathbf{x}_{t-1}; \boldsymbol{\mu}_\theta(\mathbf{x}_t, t), \sigma_t^2 \mathbf{I})

训练目标

简化损失函数 (predict noise):

Lsimple=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2]L_{\text{simple}} = \mathbb{E}_{t, \mathbf{x}_0, \boldsymbol{\epsilon}} \left[ \| \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) \|^2 \right]

其中 ϵ\boldsymbol{\epsilon} 是添加的噪声,ϵθ\boldsymbol{\epsilon}_\theta 是模型预测的噪声。

算法

训练算法:

repeat:
  1. 采样 x_0 ~ q(x_0)
  2. 采样 t ~ Uniform({1, ..., T})
  3. 采样 ε ~ N(0, I)
  4. 计算 x_t = √(ᾱ_t) * x_0 + √(1-ᾱ_t) * ε
  5. 计算损失 ||ε - ε_θ(x_t, t)||²
until 收敛

采样算法:

1. 采样 x_T ~ N(0, I)
2. for t = T, ..., 1:
   a. 采样 z ~ N(0, I) if t > 1, else z = 0
   b. 计算 x_{t-1} = (1/√α_t) * (x_t - (β_t/√(1-ᾱ_t)) * ε_θ(x_t, t)) + σ_t * z
3. return x_0

模型架构

U-Net 架构:

  • 编码器-解码器结构
  • 跳跃连接 (skip connections)
  • 位置嵌入 (positional embedding) for timestep tt
  • 残差块 (residual blocks)
  • 注意力层 (attention layers)

四、核心创新

创新点说明理论/实验依据
简化训练目标预测噪声而非均值更好的样本质量
与去噪分数匹配的联系建立理论联系统一框架
渐进有损解压缩可解释的压缩方案多粒度重建
线性噪声调度简单有效的调度策略β_t 从 10⁻⁴ 到 0.02

五、实验结果

CIFAR-10 无条件生成

方法FID↓IS↑
PixelCNN++3.179.46
StyleGAN2-ADA2.429.21
NVAE23.5-
DDPM3.179.46

关键结果:

  • FID 3.17,当时无条件生成 SOTA
  • IS 9.46,与 GAN 方法相当

LSUN 数据集

数据集分辨率样本质量
LSUN-Bedroom256×256接近 ProgressiveGAN
LSUN-Church256×256接近 ProgressiveGAN
LSUN-Cat256×256接近 ProgressiveGAN

CelebA-HQ

  • 256×256 高质量人脸生成
  • 支持插值和重建
  • 潜在空间编码有意义的高层属性

压缩能力

渐进有损解压缩:

  • 控制压缩程度
  • 多粒度重建
  • 从粗到细的插值

六、理论贡献

与去噪分数匹配的联系

DDPM 的训练目标等价于去噪分数匹配 (denoising score matching):

∇xlog⁡q(xt∣x0)=−ϵ1−αˉt\nabla_{\mathbf{x}} \log q(\mathbf{x}_t | \mathbf{x}_0) = -\frac{\boldsymbol{\epsilon}}{\sqrt{1-\bar{\alpha}_t}}

这意味着模型隐式学习了数据分布的分数函数 (score function)。

与 Langevin 动力学的联系

采样过程类似于 Langevin 动力学:

xt−1=xt+η2∇xlog⁡p(xt)+ηz\mathbf{x}_{t-1} = \mathbf{x}_t + \frac{\eta}{2} \nabla_{\mathbf{x}} \log p(\mathbf{x}_t) + \sqrt{\eta} \mathbf{z}

变分下界

DDPM 的训练目标是变分下界 (variational bound) 的加权版本:

L=L0+L1+L2+⋯+LT−1+LTL = L_0 + L_1 + L_2 + \cdots + L_{T-1} + L_T

其中:

  • L0=−log⁡pθ(x0∣x1)L_0 = -\log p_\theta(\mathbf{x}_0 | \mathbf{x}_1)
  • Lt−1=DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))L_{t-1} = D_{KL}(q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) \| p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t))
  • LT=DKL(q(xT∣x0)∥p(xT))L_T = D_{KL}(q(\mathbf{x}_T | \mathbf{x}_0) \| p(\mathbf{x}_T))

七、与现有方法对比

方面GANVAE自回归DDPM
训练稳定性不稳定稳定稳定稳定
样本质量高中等高高
采样速度快快慢慢
模式覆盖差好好好
似然估计无有有有
压缩能力无有有有

八、影响与后续发展

直接影响

工作贡献
DALL-E 2文本到图像生成
Stable Diffusion开源文本到图像模型
ImagenGoogle 的文本到图像模型
Midjourney商业图像生成服务

技术扩展

方向代表工作
条件生成Classifier-guided diffusion
文本到图像GLIDE, DALL-E 2, Imagen
视频生成Video Diffusion, Sora
3D 生成DreamFusion, Magic3D
音频生成DiffWave, WaveGrad
加速采样DDIM, DPM-Solver

理论发展

方向贡献
分数匹配统一框架
Flow Matching连续时间扩展
一致性模型单步生成
Rectified Flow直线路径

九、相关工作

相关工作与本文关系
Sohl-Dickstein et al. (2015)原始扩散概率模型
Song & Ermon (2019)去噪分数匹配
Kingma et al. (2021)扩展变分下界
Nichol & Dhariwal (2021)改进 DDPM
Song et al. (2020)DDIM 加速采样

十、总结

核心贡献

  1. 简化训练目标: 预测噪声的简化损失函数
  2. 理论联系: 建立与去噪分数匹配和 Langevin 动力学的联系
  3. SOTA 性能: CIFAR-10 FID 3.17,无条件生成 SOTA
  4. 压缩能力: 渐进有损解压缩,多粒度重建
  5. 奠基性工作: 开启扩散模型时代

技术影响

  • 开创性: 扩散模型的基础性工作
  • 广泛应用: 图像、视频、音频、3D 等领域
  • 产业影响: Stable Diffusion、DALL-E、Midjourney 等
  • 理论基础: 为后续扩散模型研究提供理论框架

局限性

  • 采样速度慢(需要数百步去噪)
  • 计算成本高
  • 需要大量训练数据
  • 高分辨率生成仍有挑战

十一、关键公式速查

公式说明
$q(\mathbf{x}_t\mathbf{x}{t-1}) = \mathcal{N}(\sqrt{1-\beta_t}\mathbf{x}{t-1}, \beta_t \mathbf{I})$
$q(\mathbf{x}_t\mathbf{x}_0) = \mathcal{N}(\sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)\mathbf{I})$
Lsimple=E[∥ϵ−ϵθ∥2]L_{\text{simple}} = \mathbb{E}[\|\boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta\|^2]简化损失
xt−1=1αt(xt−βt1−αˉtϵθ)+σtz\mathbf{x}_{t-1} = \frac{1}{\sqrt{\alpha_t}}(\mathbf{x}_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta) + \sigma_t \mathbf{z}采样公式

十二、参考资源