前置知识
生成模型试图学习数据分布,使我们能从简单随机变量出发得到新的样本。DDPM 的入口不是“一次把噪声变成图像”,而是把任务拆成很多个局部步骤。
读论文前先掌握:
- 马尔可夫过程的下一步只依赖当前状态;
- 高斯分布在线性变换和加性噪声下具有可计算的组合形式;
- 前向过程
q是固定的加噪定义,反向过程p_θ才需要学习; - U-Net 的多尺度路径与跳跃连接用于同时处理整体结构和局部细节,时间嵌入告诉网络当前噪声阶段。
如果变分下界暂时阻塞阅读,可以先理解闭式加噪、噪声预测和训练/采样算法,再回头追推导;但不能因此把 ELBO 与简化 MSE 说成完全相同的目标。
核心问题
为什么逐步加噪、再学习逐步去噪能够构成生成模型?需要分别回答:任意 x_t 为什么可以直接采样、反向过程如何参数化、为什么训练常改写为预测噪声,以及采样为什么必须按时间步串行执行。
本页固定链接 Jonathan Ho、Ajay Jain 与 Pieter Abbeel 的 Denoising Diffusion Probabilistic Models:arXiv:2006.11239v2 abstract 和 官方 PDF。阅读时重点定位式 (4)、式 (11)、式 (14)、Algorithm 1 与 Algorithm 2。
逐节中文精读导读
引言:用逐步可逆的学习问题替代一步生成
论文把数据逐渐扰动到近似高斯噪声,再训练模型近似反向转移。这个叙事把复杂生成拆成许多局部去噪问题。读引言时先记清“前向无需学习、反向需要学习”,否则后面的两个分布很容易混淆。
第 2 节:扩散过程给出可计算的训练样本
每一步以前一状态为均值附近加入少量高斯噪声。高斯组合让 q(x_t | x_0) 有闭式表达,因此训练可随机选择 t 并直接构造 x_t,不必从 1 顺序模拟到 t。这是训练可行性的关键工程点。
第 3.1 节:变分目标连接正向与反向过程
这一节把负对数似然上界拆成多个可处理项。第一次阅读可以先追每一项对应哪个时间步和条件分布,不必立刻完成全部代数。需要保留的边界是:后续的简单噪声 MSE 与完整变分目标有关,但经过了参数化与权重处理,不能随意互换。
第 3.2 节:预测噪声的参数化
模型以 x_t 和时间步 t 为输入,预测加入的噪声 ε。这样可以通过已知系数还原反向均值。Algorithm 1 描述训练抽样,Algorithm 2 描述从 x_T 开始逐步采样;一个是并行抽取随机时间步学习,另一个是按时间步串行生成。
第 4 节与附录:架构和实验是条件,不是装饰
论文使用 U-Net 类去噪网络、残差块、时间嵌入和部分注意力。噪声日程、模型容量、训练步数与评测方法共同决定结果。本项目的小型脚本没有复制这些规模条件,因此不会复述论文样本质量为自己的观察。
关键公式与结构
任意时间步的前向采样可以写成:
x_t = sqrt(alpha_bar_t) x_0 + sqrt(1 - alpha_bar_t) epsilon
epsilon ~ N(0, I)
常见简化训练目标为:
L_simple = E || epsilon - epsilon_theta(x_t, t) ||^2
这让网络学习识别当前样本中的噪声分量。采样时仍需依据时间步计算反向更新;t > 0 时保留随机项,最后一步不再额外加噪。U-Net 与时间嵌入属于反向模型实现,前向加噪闭式本身并不依赖 U-Net。
最小复现
paper-deep-dive 固定提交 2b8b41e63608725e6d4f25a44599014b1c22596e 提供 Python 3.11 小型离线 smoke。它在合成数据上经过训练和反向采样路径,不下载数据集;它不能代表论文发表指标的复现,也不能评价大规模图像生成质量。
git clone https://github.com/momo0205/paper-deep-dive.git
cd paper-deep-dive
git checkout 2b8b41e63608725e6d4f25a44599014b1c22596e
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e .
python3 code/ddpm/simple_ddpm.py --smoke --offline --output-dir /tmp/paper-deep-dive-ddpm
运行时记录随机种子、噪声步数、loss 和样本形状。工作台曾记录 tiny 配置中的 MSE 变化与数字形态输出;在没有同样参数和输出文件的情况下,不应把这些数字写成稳定结论。
自测与能力边界
本章当前是“框架已发布”。自测应能写出闭式前向采样,解释为什么不必逐步得到 x_t,区分完整变分目标与 L_simple,说明采样为何较慢,并指出 U-Net 与时间嵌入分别解决什么输入条件。
尚未公开验证噪声日程、采样步数、模型容量、随机种子或数据集变化对生成质量的影响,也没有声称完整掌握全部变分推导。
一页纸总结
DDPM 用固定前向过程逐渐破坏数据,再学习反向条件分布。高斯闭式使训练可以直接采样任意时间步;噪声预测参数化把学习问题化为可操作的回归目标;生成阶段则从噪声开始逐步运行反向更新。
目前公开内容覆盖概念、固定原文和可运行的最小链路。论文规模的样本质量、评测表格与个人消融仍属于下一阶段,而不是当前页面已经证明的事实。