| 摘要短语 | 对应原文章节 | 对应精读章节 |
|---|---|---|
| "flexibility 与 tractability 难以兼得" | §1 引言 | 第二章 失效模式与动机 |
| "iterative forward diffusion process 破坏结构" | §2.1–2.2 前向轨迹 | 第三章 前向扩散 |
| "learn a reverse diffusion process 恢复结构" | §2.3 反向轨迹 | 第四章 反向过程与训练目标 |
| "rapidly learn, sample, evaluate probabilities" | §2.4–2.6 概率评估与下界 | 第四章 |
| "conditional and posterior probabilities" | §3 分布相乘与后验 | 第五章 后验采样与修复 |
| "thousands of layers or time steps" | §4 实验(T=200/1000/2000) | 第六章 实验精读 |
| "open source reference implementation" | §1.2 / GitHub 链接 | 第七章 批判性阅读 |
| # | 论文声称的贡献 | 预评证据强度 |
|---|---|---|
| 1 | 提出"前向扩散破坏结构+学习反向过程复原"的生成建模范式,兼得灵活性与易处理性 | 仅有消融级实验支撑(玩具数据+小规模图像) |
| 2 | 精确采样与廉价概率评估(借助准静态极限下单样本评估) | 有主实验支撑(Table 1 各数据集对数似然) |
| 3 | 可方便地与其他分布相乘、计算条件/后验分布 | 仅一个修复演示(bark 数据集 inpainting) |
| 4 | 每时间步熵产生存在可解析的上下界(式 25) | 理论主张+附录推导 |
| 5 | 在真实图像数据上达到可比或更优的似然 | 有对比实验(Dead Leaves 胜 MCGSM;MNIST Parzen 口径居第二) |
此预评将在"综合考核·证据审计"中回看修正。
必读主线:§1 → §2.1–2.3(前向/反向轨迹)→ §2.4–2.6(K 下界与训练)→ §4 图像实验。跳过主线将无法理解后续 DDPM 的推导起点。
可跳支线:二项扩散细节(§附录 App.1)、熵界推导(附录 A)、Theano/SFO 实现细节——跳过不影响理解核心思想,但做离散数据扩散时二项部分必读。
来源:论文 §1(引言),解读者补充了背景串联。
学习目标:学完本章你应能——①说出"易处理但不灵活 / 灵活但不易处理"两类模型各自的代表与代价;②不看书列出本文宣称的四大优势;③解释"学习微小扰动比显式刻画整个分布更易处理"这句话的含义。
直觉与类比:把雕像打碎成粉末很容易(每次敲掉一小片),但从粉末精确复原雕像是难的——不过如果每一次"敲碎"都足够小、足够简单,那么"倒放"每一步也足够简单:只需估计"这一小锤子怎么敲的"。扩散模型就是把"生成"定义为"逐步去噪"的倒放。类比在哪里失效:雕像复原需要记住原始形状,而扩散链的反向过程不需要额外存储——每一步的条件高斯由神经网络当场从带噪状态预测出来;且倒放不是确定性回放,而是从纯噪声出发的一次全新采样,同一批噪声能生成不同样本。
四大优势(§1.1,【论文声称】):①模型结构极端灵活;②精确采样;③易与其他分布相乘(算后验);④对数似然与单点概率可廉价评估。相对 VAE 类方法的差异化定位(§1.2):框架源自物理学的准静态过程与退火重要性采样而非变分贝叶斯;把前向过程限制为简单函数形式,使反向过程自动具有相同函数形式——解决了变分推断里"推断网络难训"的不对称问题;且直接训练上千层(时间步)的模型。【论文声称】【实验支持:T=2000 的二值序列实验确实跑通】
常见误读:①"这是变分自编码器的一种"——作者明确划清界限:概率模型被定义为链的终点本身,不是用链去逼近某个预先定义的模型;②"反向过程需要知道数据分布才能逆转"——不需要,逆转通过回归每步的小扰动实现,任何平滑目标分布都存在这样的扩散过程;③"步数越多越像 VAE"——恰恰相反,步数越大每步扰动越小、越接近准静态极限,似然下界越紧。
主张 vs 事实:"可以拟合任意数据分布"是【论文声称】(依赖平滑性假设与足够小的 β);"在 MNIST/Dead Leaves 上似然可比 SOTA"是【实验支持】;"这将成为主流生成范式"是后世事实、当时无人担保(【解读者推断】:此文 2015 年发表后沉寂五年才被 DDPM 点燃)。
一句话蒸馏:与其硬算一个复杂分布,不如学一条"从噪声走到数据"的马尔可夫链,把难题拆成一千个简单的小步。
闭卷自检:不看材料我能说出——四大优势?相对 VAE 的五点差异中的三条?"学习微小扰动"为什么更易处理?
来源:论文 §2.1–2.2 及附录 App.1 表格。
学习目标:学完本章你应能——写出高斯与二项两种扩散核的前向条件分布;解释 βt 的作用与二项情形 βt=1/(T−t+1) 的来历;说出前向过程的终点分布是什么。
设数据分布 q(x(0)),选定一个解析易处理的分布 π(y)。反复施加保持 π 不变的马尔可夫核:
q(x(t)|x(t−1)) = Tπ(x(t)|x(t−1); βt) , 前向轨迹 q(x(0…T)) = q(x(0))∏t=1T q(x(t)|x(t−1))公式手术(高斯扩散核):
| 符号 | 它是什么 | 直觉 |
|---|---|---|
| x(t) ∈ ℝd | 第 t 步的状态向量 | d 维图像被拉平后的向量;形状恒为 d,全程不变 |
| x(t−1)√(1−βt) | 条件均值 | 旧信号按 √(1−β) 缩水一点——方差守恒的关键 |
| βtI | 条件协方差(对角阵) | 补回的新鲜高斯噪声;Σβt 大则信息彻底埋葬 |
| T 步后的稳态 | 𝒩(0, I) | 单位协方差高斯,即 π(x(T)) |
二项版本(离散数据):x(t) ~ ℬ(x(t); x(t−1)(1−βt)+0.5βt),终点为独立的 p=0.5 伯努利分布。二项情形没有连续参数可调梯度,作者让每一步擦除原始信号的固定比例 1/T:βt = (T−t+1)−1(如 T=2000 时首步 β₁=1/2000,末步 βT=1)。【实验支持:Binary Heartbeat 用此调度】
直觉与类比:前向像往一杯浓茶里一次次少量兑水——每次兑一点点,茶味(数据结构)缓慢变淡,最终得到白开水(高斯)。类比在哪里失效:兑水的稀释是确定性的,而扩散每步还主动注入新噪声;且 √(1−β) 因子的作用正是防止"越兑越浑"(若只加噪不缩幅,方差会随步数膨胀,反向网络的输入尺度就不稳定了——这一点后来被 DDPM 附录 C 明确列为与 score-based 方法的关键差异)。
常见误读:①以为前向过程要学习——它是固定的、无参数(除 β 调度外);②以为必须走完全程才能训练——训练目标对整条轨迹积分,但每步 KL 只涉及边缘量;③把 π 当成"任意噪声"——必须是所选核的不动点分布,否则链不会收敛到它。
一句话蒸馏:前向过程是一条无参数、固定形式的"毁容流水线",唯一的设计自由度是每步的扩散率 βt。
闭卷自检:不看材料我能写出高斯前向核并指出哪个因子负责方差守恒吗?二项调度的公式?前向终点的分布?
来源:论文 §2.3(反向轨迹)、§2.5(学习即回归);"同函数形式"的理论依据(Kolmogorov 前向/后向方程)见 §1.2 相关工作段。
学习目标:学完本章你应能——解释为什么反向核可以用与前向核相同的函数形式;写出反向高斯核及其待学习的两个函数;说明"训练=估计一系列微小扰动"这句话落在哪些具体参数上。
p(x(T)) = π(x(T)) , p(x(0…T)) = p(x(T))∏t=1T p(x(t−1)|x(t)) p(x(t−1)|x(t)) = 𝒩(x(t−1); fμ(x(t),t), fΣ(x(t),t))关键性质【论文声称,物理依据为 Kolmogorov 后向方程】:当 β 足够小(连续扩散极限)时,反向转移核的函数形式与前向核相同。于是学习被压缩为估计三个函数之一:高斯的均值函数 fμ 与协方差函数 fΣ,或二项的翻转率函数 fb。计算成本 = 单次函数求值成本 × T。论文用 MLP / 多尺度卷积网实现这些函数。
失效模式先行:如果试图一步从高斯直接跳到数据(T=1),那正是经典生成建模的老大难——需要一个能同时表达所有模式的映射。把 T 放大到几百上千步后,每步只需挪动极小距离,回归目标变得平滑简单;代价是采样要过 T 次网络(这笔账在批判性阅读章结算)。
直觉与类比:下山一万级、每级一厘米的台阶,和一级十米的悬崖——总落差相同,但前者每一步都能靠局部感知安全迈出。扩散的反向就是逐级下台阶,fμ/fΣ 是每级的"落脚点预报员"。类比在哪里失效:台阶是固定的而扩散路径不是——同一个 x(t) 可以来自许多不同的 x(0),所以单独条件于 x(t) 的反向核并不等于真后验 q(x(t−1)|x(t),x(0));训练目标里之所以能出现后者,是因为对 x(0) 求了期望(下一章)。
一句话蒸馏:反向核与前向核同形式,于是"学生成模型"坍缩成"给每个时间步配一个小回归器"。
闭卷自检:不看材料我能说明"同函数形式"依赖什么极限条件吗?反向过程要学习的参数清单是什么?
来源:论文式 (6)(9)(13)(15)(16);熵界式 (25) 属 §2.6/附录 A。
学习目标:学完本章你应能——写出对数似然下界 K 并逐项解释其构成;解释准静态极限为何让不等号变等号;手推"任务归结为回归"的逻辑链。
模型概率需要对整条隐轨迹积分 p(x(0))=∫dx(1…T)p(x(0…T))。直接积不出来;借鉴退火重要性采样与 Jarzynski equality,改写为前向轨迹上的期望:
p(x(0)) = ∫ dx(1…T) q(x(1…T)|x(0)) · p(x(T)) ∏t=1T [p(x(t−1)|x(t)) / q(x(t)|x(t−1))] (式 9)当 β→0 时前后向轨迹重合(统计物理中的准静态过程),单个前向轨迹样本即可精确评估。对数似然经 Jensen 不等式得到可解析化简的下界:
L ≥ K = −∑t=2T Eq(x⁽⁰⁾,x⁽ᵗ⁾)[ DKL( q(x(t−1)|x(t),x(0)) ‖ p(x(t−1)|x(t)) ) ] + H_q(X(T)|X(0)) − H_q(X(1)|X(0)) − H_p(X(T)) (式 15)公式手术:
| 成分 | 它是什么 | 直觉 |
|---|---|---|
| ∑ DKL(q‖p) | 逐时间步的 KL 散度之和 | 惩罚"真实反向步"与"网络反向步"的差距——每一项都是高斯间 KL,可闭式计算 |
| H_q(X(T)|X(0)) | 前向注入的总熵 | 把数据变成噪声总共灌进去多少随机性(可解析) |
| −H_q(X(1)|X(0)) − H_p(X(T)) | 熵修正项 | 扣除首步注入与先验熵,避免重复计账 |
由于两项均可解析,无需高方差的蒙特卡洛估计,梯度可直接反传到 fμ、fΣ 和(高斯情形的)β 调度。训练即 argmax K(式 16)。高斯情形 β₂⋯T 通过对 K 做梯度上升学习,第一步方差 β₁ 固定为小常数防过拟合,并采用 frozen noise 技巧(噪声作为辅助变量在求偏导时保持恒定)。【实验支持】准静态极限下 Jensen 不等号变为等号——这是"单样本精确评估"的理论根基。
常见误读:①把 K 当成"损失函数的发明"——它只是对数似然的变分下界,形式与后来的 ELBO 同族,真正新颖的是逐项全部可解析;②以为训练要对 T 个时间步串行迭代——各项期望共享同一条前向轨迹的采样,实际实现中对随机抽样的 (x(0),x(t)) 对并行计算;③以为熵界(式 25)只是装饰——它给出了每步反向过程熵的上下界,且只依赖前向轨迹、可解析计算,这正是后来 DDPM 里 σt2=βt 与 β̃t 分别对应"上界/下界"说法的源头。
一句话蒸馏:K 把"学一条生成链"翻译成一串可解析的 KL 散度加熵簿记,训练从此有了闭式梯度。
闭卷自检:不看材料我能写出 K 的三大组成吗?准静态极限改变的是什么?Binary Heartbeat 的理论似然是多少?
来源:论文 §3 式 (17)(23)(62);inpainting 实验见 §4.5。
学习目标:学完本章你应能——描述给反向过程乘入约束 r(x(0)) 的操作方式;解释为什么 r 对高斯核只是"小扰动";说出 bark 修复实验的设置。
想采样 p̃(x(0)) ∝ p(x(0))r(x(0))(例如"中心 100×100 区域必须是噪声占位"这类约束),做法是把每个中间分布也乘上对应的 r(x(t)),反向核变为归一化的 p̃(x(t)|x(t+1)) = p(x(t)|x(t+1))r(x(t))/Z̃t(式 23)。关键观察【论文声称,附录 C 一阶 Taylor 展开】:每步扩散相对 r 非常尖锐,故 r 只移动高斯均值、不改归一化常数,修正量为 fΣ·∂log r/∂x(式 62)。若 r 本身可与高斯/δ 函数闭式相乘(inpainting 正是如此),则完全精确。
类比:像在导航途中每经过一个路口就重新输入一次目的地约束——路线整体仍是那条反向链,只是每个路口微调方向。类比失效处:导航约束是硬性的,这里的 r 若过于尖锐(与高斯不可闭式相乘)Taylor 近似就会失真,方法不再精确。
常见误读:以为后验采样需要重新训练模型——不需要,同一个训好的反向链配上不同的 r 即可用于去噪、修复等任务(CIFAR-10 去噪演示:对留出图像加方差 1 的高斯噪声 SNR=1 后从后验采样恢复)。
一句话蒸馏:乘约束 = 在反向链每一站给均值做一次微小偏移,生成模型天然自带"条件生成"接口。
来源:论文 §4 实验设置、Table 1、Table 2。所有数字复述自原文,未外部核验。
学习目标:学完本章你应能——复述六个数据集各自的任务类型与关键数字;判断哪些比较公平、哪些口径存疑;完成 K 与 K−L_null 的换算。
| 数据集 | K | K − L_null(相对基线提升) | 备注 |
|---|---|---|---|
| Swiss Roll(2D 玩具) | 2.35 bits | 6.45 bits | 40 步高斯扩散,单隐层 16 单元 RBF 网 |
| Binary Heartbeat | −2.414 bits/seq. | 12.024 bits/seq. | 理论上限 −2.322,几乎打满 |
| Bark 纹理 | −0.55 bits/pixel | 1.5 bits/pixel | T=500;演示 inpainting |
| Dead Leaves | 1.489 bits/pixel | 3.536 bits/pixel | 与 MCGSM 同数据对比,见下 |
| CIFAR-10 | 5.4±0.2 bits/pixel | 11.5±0.2 bits/pixel | 按 Theis et al. 建议加均匀噪声去量化 |
数字对账:由两列可反推各自的零假设基线 L_null——CIFAR-10:5.4 − 11.5 = −6.1 bits/pixel;Dead Leaves:1.489 − 3.536 = −2.047 bits/pixel。注意这里 K 是对数似然(越大越好),与通常"NLL 越小越好"的记法方向相反——读者对照后世文献时务必换算(【解读者推断】CIFAR-10 的 5.4 bits/pixel 似然相当于约 −5.4 bits/dim 的 NLL 量级,但像素缩放方式不同,不能直接与 DDPM 的 3.7 比较)。
Dead Leaves(与 Theis et al. 2012 完全相同的训练/测试划分):MCGSM 1.244 bits/pixel,Diffusion 1.489 bits/pixel——本文胜出,作者称达到该数据集 state of the art。【实验支持】
MNIST(用 Goodfellow et al. 2014 的 Parzen window 代码估计,单位 bits,越高越好):Stacked CAE 174±2.3;DBN 199±2.9;Deep GSN 309±1.6;Diffusion 317±2.7;Adversarial net 325±2.9;Perfect model 349±3.3。本文排第二,落后 GAN 约 8 bits、距理论上限约 32 bits。对账:349−317=32,325−317=8 ✓。
口径警示(批判性阅读预告):MNIST 的 Parzen 估计本身是出了名的粗代理指标(带宽敏感、只测局部密度),作者沿用它是"为了与先前工作直接比较"——这在当时是惯例,今天看说服力有限。
图像实验统一采用多尺度卷积网络:多尺度均值池化降采样→各尺度卷积→上采样求和→soft relu;时间信息经 bump 函数 gj(t)=exp(−(t−τj)²/2w²)/Σkexp(−(t−τk)²/2w²) 注入(T=1000,bark 为 500);均值与方差以前向扩散核为基准做扰动参数化(Σ 对角)。除 CIFAR-10 用 RMSprop 外其余用 SFO 优化器;开源参考实现发布于 GitHub。闭卷自检:不看材料我能说出 T 在三类数据上分别取多少吗?MNIST 排名与分差?
一句话蒸馏:玩具数据验证机制正确,Dead Leaves 拿下严格对比的胜利,MNIST/CIFAR-10 给出"有竞争力"级别的证据——2015 年的证据强度,撑得起范式宣言但撑不起"碾压"叙事。
Swiss Roll / Heartbeat:测"机制能否学到已知结构的分布"——自出题自批改性质的演示(作者自己构造、自己验证),属于最低证据等级的主内评测。Dead Leaves:测多尺度遮挡结构的密度估计,优点是解析可解、比较对象(MCGSM)使用完全相同的数据划分,是全文最干净的一组对比。MNIST Parzen:测的是"Parzen 窗口估计下的密度相似度",与样本质量、真实似然都只有弱关联;GAN 论文当年用它排名本身就饱受争议,本文沿用属随大流。CIFAR-10:报告的是 K 而非与其他方法同表的对比数字,只能与自身基线 L_null 比,跨论文可比性弱。
论文几乎没有讨论计算成本:T=1000 意味着采样需 1000 次网络前向;相比之下 GAN 一次前向出图、VAE 一次。训练同样要在 T 步上循环。【解读者推断】这正是此文被冷落五年、而 GAN 成为 2014–2019 主流的重要原因之一——样本质量/速度的权衡在当时不利于扩散。此外似然数字依赖"加均匀噪声去量化"的口径选择(CIFAR-10 脚注坦承早期版本因学会了 8-bit 量化而报告了虚高的似然),提醒我们:预处理口径本身就是可被"调"的自由度。
主结果表(Table 1/2)=作者内部评测为主;唯一的第三方可比基准是 Dead Leaves 对 MCGSM。没有第三方复现,没有大规模自然图像(ImageNet 级)实验,没有样本质量的图灵测验式人评。
以上均为基于原文结构与脚注的批判性梳理;引用数字仅复述原文,未做外部验证。
请独立完成以下交叉验证,再展开答案:(a) Heartbeat 的 K−L_null=12.024 与 K=−2.414 能否反推出 L_null?(b) MNIST 上 Diffusion 与 Perfect model、Adversarial net 的分差各是多少?(c) Swiss Roll 的 L_null 是多少?