Denoising Diffusion Probabilistic Models (DDPM) 阅读笔记
约 1672 个字 14 行代码 预计阅读时间 11 分钟
论文信息
- 标题:Denoising Diffusion Probabilistic Models
- 作者:Jonathan Ho, Ajay Jain, Pieter Abbeel
- 会议:NeurIPS 2020
- 链接:arXiv
摘要
本文提出了一种基于扩散概率模型的高质量图像生成方法。扩散模型是一类受非平衡热力学启发的潜变量模型。通过训练一个加权的变分下界,我们获得了最佳结果,这个下界基于扩散概率模型与去噪分数匹配和Langevin动力学之间的新联系。我们的模型自然地允许一个渐进的有损解压缩方案,可以解释为自回归解码的推广。在无条件CIFAR10数据集上,我们获得了9.46的Inception分数和3.17的FID分数,达到了最先进水平。
预备知识学习
概率论与数理统计
1. 贝叶斯定理
贝叶斯定理的标准形式:
扩展形式(全概率公式展开):
2. 马尔科夫链
马尔科夫链是一个随机过程,具有无记忆性:
转移概率矩阵:
3. KL散度(相对熵)
KL散度用于衡量两个概率分布的差异:
连续形式:
4. 极大似然估计(MLE)
给定观测数据\(X\),寻找参数\(\theta\)使得似然函数最大:
对数似然函数:
信息论基础
1. 熵(Entropy)
离散随机变量的熵:
连续随机变量的微分熵:
2. 互信息(Mutual Information)
互信息衡量两个随机变量的依赖程度:
连续形式:
3. 交叉熵(Cross Entropy)
交叉熵用于衡量两个概率分布之间的差异:
连续形式:
随机过程
1. 马尔可夫过程
马尔可夫过程是一个随机过程,其未来状态只依赖于当前状态:
2. 扩散过程
扩散过程可以用随机微分方程描述:
其中:
- \(\mu(X_t, t)\)是漂移项
- \(\sigma(X_t, t)\)是扩散项
- \(W_t\)是维纳过程(布朗运动)
核心概念
扩散模型的基本思想
扩散模型是一种受非平衡热力学启发的潜变量模型。其基本思想是通过两个过程:
- 前向过程(扩散过程):逐步向数据添加噪声
- 反向过程(去噪过程):学习如何从噪声中恢复数据
马尔可夫链
马尔可夫链是一个序列,其中每个节点的状态只与上一个状态有关: \(\(p(x_t|x_{t-1},x_{t-2},...,x_0) = p(x_t|x_{t-1})\)\)
前向过程详解
前向过程(扩散过程)
前向过程是一个固定的马尔可夫链,逐步向数据添加高斯噪声:
其中: \(q(x_t|x_{t-1}) := \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_tI)\)
- \(x_0\): 原始数据(如图像)
- \(x_t\): 第t步的噪声数据
- \(\beta_t\): 噪声调度参数,控制每一步添加的噪声量
- \(\mathcal{N}\): 高斯分布
- \(I\): 单位矩阵
- 任意时刻t的分布可以直接计算:\(q(x_t|x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)\)
- 其中 \(\alpha_t = 1-\beta_t\), \(\bar{\alpha}_t = \prod_{s=1}^t \alpha_s\)
- 当t足够大时,\(x_t\)趋近于标准高斯分布
反向过程详解
反向过程(去噪过程)
反向过程是一个可学习的马尔可夫链,用于从噪声中恢复数据:
其中: \(p_\theta(x_{t-1}|x_t) := \mathcal{N}(x_{t-1}; \mu_\theta(x_t,t), \Sigma_\theta(x_t,t))\)
- \(\theta\): 神经网络参数
- \(\mu_\theta\): 神经网络预测的均值
- \(\Sigma_\theta\): 神经网络预测的方差
- \(p(x_T)\): 标准高斯分布
- 预测噪声比预测均值效果更好
- 方差可以固定为\(\beta_t\)或\(\tilde{\beta}_t\)
- 使用简化的训练目标可以获得更好的样本质量
训练目标详解
变分下界(ELBO)
扩散模型的训练目标是最小化变分下界:
ELBO可以重写为:
其中:
- \(L_T = D_{KL}(q(x_T|x_0) \| p(x_T))\)
- \(L_{t-1} = D_{KL}(q(x_{t-1}|x_t,x_0) \| p_\theta(x_{t-1}|x_t))\)
- \(L_0 = -\log p_\theta(x_0|x_1)\)
作者发现使用简化的训练目标可以获得更好的样本质量:
技术细节
网络架构
U-Net架构
- 使用U-Net作为主干网络
- 包含组归一化
- 在16×16特征图分辨率上使用自注意力机制
- 使用Transformer的正弦位置编码来表示时间步
超参数设置
- T = 1000
- β₁ = 10⁻⁴
- β_T = 0.02
- β_t线性增加
- 图像数据缩放到[-1, 1]
- 使用离散解码器处理最终输出
实验结果
模型 | IS | FID | NLL |
---|---|---|---|
DDPM | 9.46 | 3.17 | ≤3.75 |
StyleGAN2 | 9.74 | 3.26 | - |
- Church: FID=7.89
- Bedroom: FID=4.90
总结与展望
- 样本质量高
- 训练稳定
- 实现简单
- 可解释性强
- 扩展到其他数据模态
- 作为其他生成模型的组件
- 探索更高效的采样方法