1.4 扩散变体与非高斯噪声¶
所属章节:第 1 章 扩散模型基础
课时:90 分钟
前置:1.2、1.3
对应面试题:D2(主)、D3(Flow 铺垫)、A11(Flow 铺垫)
一句话目标:学完能回答“高斯是不是必须的”,并说清 Cold Diffusion、D3PM、Flow Matching 的区别与代价。
1. 学习目标¶
学完本节,你应该能够:
- 解释 高斯噪声在 DDPM 中承担的“便利性”角色;
- 说明 换非高斯噪声后,前向、后验、损失、采样分别要改什么;
- 比较 Gaussian DDPM、Cold Diffusion、D3PM、Poisson/Gamma 扩散、Flow Matching;
- 回答 “能不能用其他噪声”,并给出 3 个具体例子;
- 解释 为什么工程上仍然默认高斯;
- 区分 “换噪声分布”和“换生成框架”;
- 用 90 秒回答 D2,并接住“为什么不用均匀噪声”“Flow Matching 是不是 Diffusion”等追问。
2. 为什么这一节重要¶
D2 是一道很能区分“背过 DDPM”和“理解扩散”的题。
低分回答:
“不行,扩散模型必须加高斯噪声。”
高分回答:
“可以。扩散的本质是定义一个可学习的破坏—恢复过程,高斯不是理论必需;但换噪声会改变后验形式、训练目标和采样方式,高斯因为闭式、共轭、最大熵等性质成为默认选择。比如 Cold Diffusion 用模糊/遮挡,D3PM 用离散转移矩阵,Flow Matching 用任意概率路径。”
这一节就是把这个高分回答拆开讲清楚。
3. 高斯噪声在 DDPM 里到底做了什么¶
高斯不是“随便选的”,它同时满足了很多工程需求:
- 闭式边缘:\(q(x_t\mid x_0)\) 是高斯,任意时刻可一步采样;
- 闭式后验:高斯先验 + 高斯似然,后验仍是高斯;
- KL 可算:两个高斯的 KL 有解析式;
- score 简单:\(\nabla_{x_t}\log q(x_t\mid x_0)=-\epsilon/\sqrt{1-\bar\alpha_t}\);
- 最大熵:在给定均值方差下,高斯是熵最大的连续分布,破坏信息最“温和”;
- 热方程/CLT:高斯核是扩散方程的基本解,很多微小扰动叠加趋近高斯;
- 方差保持:归一化数据下,信号方差 + 噪声方差 = 1,训练稳定。
一句话:高斯把“破坏”和“学习破坏的逆”都变得可计算。
4. 换噪声后,哪些东西会变¶
假设把 \(\epsilon\sim\mathcal N(0,I)\) 换成另一个分布 \(p(\epsilon)\),并不是只改一行采样代码。至少有五处要改:
| 环节 | 高斯 DDPM | 非高斯扩散 |
|---|---|---|
| 前向转移 | 高斯核 | 自定义核/转移矩阵 |
| 边缘 \(q(x_t\mid x_0)\) | 闭式高斯 | 可能没有闭式 |
| 真实后验 | 高斯 | 可能非高斯/多峰 |
| 反向变分族 | 高斯 | 需要匹配后验形式 |
| 训练目标 | 噪声 MSE / KL | score matching / 变分 / 交叉熵 |
| 采样 | 高斯采样 | 自定义转移/确定性恢复 |
所以面试时要说:“可以,但不是简单替换;换噪声是换整个概率模型。”
5. 五种代表性路线¶
5.1 Gaussian DDPM¶
- 前向:高斯加噪;
- 反向:高斯去噪;
- 训练:噪声 MSE;
- 适用:图像、视频、连续数据;
- 优点:简单、稳定、闭式;
- 缺点:采样慢、对离散数据不自然。
5.2 Cold Diffusion¶
Cold Diffusion 的核心思想:
不一定要加噪声,任何“确定性退化”都可以作为前向过程。
常见退化:
- 模糊(blur);
- 遮挡(mask);
- 下采样(downsample);
- 超分退化;
- 压缩伪影。
训练:
- 给定退化后的 \(x_t\),网络学习恢复 \(x_0\);
- 反向可以是确定性的,也可以是随机的;
- 不依赖高斯后验;
- 可以用“恢复算子”而不是“噪声预测”。
优点:
- 灵活,适合图像修复/超分/去模糊;
- 前向可解释;
- 不要求高斯。
缺点:
- 理论保证弱于高斯扩散;
- 退化过程设计需要领域知识;
- 采样/训练目标要重新设计。
面试要点:Cold Diffusion 把“加噪”推广成“退化”,是“扩散不一定高斯”的强例子。
5.3 D3PM:离散扩散¶
D3PM 面向离散数据(token、类别、文本):
- 状态空间是离散的;
- 前向用转移矩阵 \(Q_t\);
- 可以是均匀转移、吸收态(mask)、类别转移;
- 反向学习离散分布;
- 训练常用变分下界/交叉熵。
优点:
- 天然适合文本/token;
- 可以设计吸收态,类似 BERT 的 mask;
- 不需要把离散数据硬套高斯。
缺点:
- 转移矩阵设计影响大;
- 高维离散状态计算复杂;
- 采样步数和质量需要调。
面试要点:D3PM 不是“给 token 加高斯”,而是“给 token 加离散噪声”。
5.4 Poisson / Gamma 扩散¶
适用:
- 计数数据;
- 非负数据;
- 医学成像、天文、低光成像。
特点:
- 前向使用 Poisson/Gamma 等非负分布;
- 反向不再是高斯;
- 需要对应的变分/score 形式;
- 工程上比高斯复杂得多。
面试要点:这类扩散说明“噪声分布应该匹配数据类型”,但通用图像生成仍以高斯/Flow 为主。
5.5 Flow Matching / Rectified Flow¶
Flow Matching 不是“把高斯换成另一种噪声”,而是换一种生成框架:
- 定义从噪声 \(x_1\) 到数据 \(x_0\) 的概率路径;
- 学习速度场 \(v_\theta(x_t,t)\);
- 采样是解 ODE;
- Rectified Flow 用直线路径简化:
与 DDPM 的关系:
- 都属于“从噪声到数据”的连续生成模型;
- DDPM 用随机前向 + 去噪;
- Flow Matching 用确定性路径 + 速度回归;
- SD3 使用 Rectified Flow;
- Flow 不一定需要高斯后验,但通常仍以高斯为起点。
面试要点:Flow Matching 是更一般的连续变换框架,不是“另一种采样器”。
6. 一张表对比¶
| 路线 | 前向破坏 | 反向 | 训练目标 | 适用 | 主要代价 |
|---|---|---|---|---|---|
| Gaussian DDPM | 高斯加噪 | 高斯去噪 | 噪声 MSE | 图像/连续 | 采样慢 |
| Cold Diffusion | 模糊/遮挡/下采样 | 恢复算子 | 重建/恢复 | 修复/超分 | 理论弱、需设计 |
| D3PM | 离散转移 | 离散 reverse | 变分/交叉熵 | token/类别 | 转移矩阵复杂 |
| Poisson/Gamma | 非负噪声 | 非高斯 reverse | 变分/score | 计数/非负 | 工程复杂 |
| Flow Matching | 概率路径 | ODE 速度场 | 速度回归 | 图像/视频 | 需要 ODE 求解 |
7. 为什么工程上仍然默认高斯¶
- 可计算性:闭式边缘、闭式后验、闭式 KL;
- 稳定性:噪声尺度好控制,训练不容易爆;
- 通用性:图像/视频/音频都可以用;
- 生态:U-Net/DiT、采样器、CFG、ControlNet 都围绕高斯扩散设计;
- 理论成熟:变分界、score matching、SDE 都有完整工具;
- 最大熵:高斯在给定方差下破坏信息最“平滑”。
所以:
- 研究上:可以探索非高斯、离散、Cold Diffusion;
- 工程上:图像生成默认高斯/Flow;
- 面试上:先回答“可以”,再回答“为什么默认高斯”。
8. 90 秒回答:能否使用其他噪声¶
面试官问:扩散模型中添加的是高斯噪声,能否使用其他噪声?
参考回答:
“可以。扩散的本质是定义一个破坏过程,再学习它的逆过程,高斯不是理论必需。比如 Cold Diffusion 用模糊、遮挡、下采样等确定性退化;D3PM 用离散转移矩阵,适合 token;Poisson/Gamma 扩散适合计数或非负数据;Flow Matching 则用任意概率路径和速度场。但换噪声不是改一行代码:前向边缘、真实后验、反向变分族、训练目标和采样方式都要重写。高斯之所以成为默认,是因为它有闭式边缘、闭式后验、可算 KL、score 简单,而且在给定方差下熵最大、训练稳定。所以结论是:可以,但工程上高斯最省事。”
9. 追问与回答¶
追问 1:为什么不用均匀噪声?¶
均匀噪声也可以定义前向,但反向后验通常不再是简单的高斯,KL/score 的计算更麻烦;而且均匀分布的支撑有界,和图像归一化后的分布不匹配,工程上不划算。
追问 2:Laplace 噪声可以吗?¶
理论上可以,但同样失去高斯共轭性,后验和 KL 更复杂;除非数据/任务有明确的 Laplace 先验,否则没有明显收益。
追问 3:Flow Matching 是不是 Diffusion?¶
它和 Diffusion 同属“从噪声到数据”的连续生成模型,但前向通常是确定性的概率路径,训练目标是速度回归,采样是解 ODE。可以把它看成 Diffusion 的“广义连续变换”版本,而不是 DDPM 的一个小改动。
追问 4:Cold Diffusion 和 DDPM 最大的区别?¶
DDPM 的破坏是随机高斯加噪,反向是高斯去噪;Cold Diffusion 的破坏可以是模糊/遮挡等确定性退化,反向学习恢复。它把“加噪”推广成“退化”。
追问 5:如果数据是离散 token,应该用什么?¶
优先考虑离散扩散(D3PM/吸收态)或自回归/掩码生成;不要直接把 token 当连续值加高斯。
10. 常见误区¶
- “扩散必须高斯”:高斯是选择,不是定义。
- “换噪声只改采样”:后验、损失、反向都要改。
- “Flow Matching 只是另一种 sampler”:它是另一套训练/生成框架。
- “Cold Diffusion 没有噪声,所以不是扩散”:扩散可以推广为一般退化过程。
- “D3PM 是 VQ-VAE”:两者都离散,但 D3PM 是扩散过程,VQ-VAE 是自编码器。
- “非高斯一定更好”:要看数据匹配和工程成本,图像生成仍以高斯/Flow 为主。
11. 课堂练习¶
答案见 06-章节练习与答案。
- 列出高斯噪声的 4 个工程优势。
- 如果换成均匀噪声,后验会变成什么?为什么难算?
- Cold Diffusion 的“前向”和“反向”分别是什么?
- D3PM 适合什么数据?转移矩阵可以怎么设计?
- Flow Matching 和 DDPM 的相同点/不同点各说 3 个。
- 用 90 秒回答“能否使用其他噪声”。
12. 自测清单¶
- [ ] 能说出高斯噪声的 4 个优势;
- [ ] 能说出换噪声后要改的 4 个环节;
- [ ] 能解释 Cold Diffusion;
- [ ] 能解释 D3PM;
- [ ] 能解释 Flow Matching 与 DDPM 的关系;
- [ ] 能回答“为什么默认高斯”;
- [ ] 能 90 秒回答 D2。
13. 本节材料为什么这样设计¶
- 先讲“高斯做了什么”:才能理解换噪声的代价。
- 五路线对比:覆盖 D2 的常见追问,不局限在“加噪”。
- 把 Flow Matching 放进来:为 SD3/A11 做铺垫,也避免把 Flow 误认为“另一种采样器”。
- 强调“换整个模型”:防止低分回答“可以,换成均匀噪声就行”。
- 不写代码:本节是概念边界,代码会偏离面试目标。
详细设计理由见 08-材料设计理由。
14. 延伸阅读¶
- Bansal et al., Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise, 2022.
- Austin et al., Structured Denoising Diffusion Models in Discrete State-Spaces(D3PM), 2021.
- Lipman et al., Flow Matching for Generative Modeling, 2022.
- Liu et al., Rectified Flow: A Marginal Preserving Approach to Optimal Transport, 2022.
- Esser et al., Scaling Rectified Flow Transformers for High-Resolution Image Synthesis(SD3), 2024.