跳转至

1.4 扩散变体与非高斯噪声

所属章节:第 1 章 扩散模型基础
课时:90 分钟
前置:1.2、1.3
对应面试题:D2(主)、D3(Flow 铺垫)、A11(Flow 铺垫)
一句话目标:学完能回答“高斯是不是必须的”,并说清 Cold Diffusion、D3PM、Flow Matching 的区别与代价。


1. 学习目标

学完本节,你应该能够:

  1. 解释 高斯噪声在 DDPM 中承担的“便利性”角色;
  2. 说明 换非高斯噪声后,前向、后验、损失、采样分别要改什么;
  3. 比较 Gaussian DDPM、Cold Diffusion、D3PM、Poisson/Gamma 扩散、Flow Matching;
  4. 回答 “能不能用其他噪声”,并给出 3 个具体例子;
  5. 解释 为什么工程上仍然默认高斯;
  6. 区分 “换噪声分布”和“换生成框架”;
  7. 用 90 秒回答 D2,并接住“为什么不用均匀噪声”“Flow Matching 是不是 Diffusion”等追问。

2. 为什么这一节重要

D2 是一道很能区分“背过 DDPM”和“理解扩散”的题。

低分回答:

“不行,扩散模型必须加高斯噪声。”

高分回答:

“可以。扩散的本质是定义一个可学习的破坏—恢复过程,高斯不是理论必需;但换噪声会改变后验形式、训练目标和采样方式,高斯因为闭式、共轭、最大熵等性质成为默认选择。比如 Cold Diffusion 用模糊/遮挡,D3PM 用离散转移矩阵,Flow Matching 用任意概率路径。”

这一节就是把这个高分回答拆开讲清楚。


3. 高斯噪声在 DDPM 里到底做了什么

高斯不是“随便选的”,它同时满足了很多工程需求:

  1. 闭式边缘:\(q(x_t\mid x_0)\) 是高斯,任意时刻可一步采样;
  2. 闭式后验:高斯先验 + 高斯似然,后验仍是高斯;
  3. KL 可算:两个高斯的 KL 有解析式;
  4. score 简单:\(\nabla_{x_t}\log q(x_t\mid x_0)=-\epsilon/\sqrt{1-\bar\alpha_t}\);
  5. 最大熵:在给定均值方差下,高斯是熵最大的连续分布,破坏信息最“温和”;
  6. 热方程/CLT:高斯核是扩散方程的基本解,很多微小扰动叠加趋近高斯;
  7. 方差保持:归一化数据下,信号方差 + 噪声方差 = 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 用直线路径简化:
\[ x_t=(1-t)x_0+t\epsilon, \qquad v=\epsilon-x_0. \]

与 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. 为什么工程上仍然默认高斯

  1. 可计算性:闭式边缘、闭式后验、闭式 KL;
  2. 稳定性:噪声尺度好控制,训练不容易爆;
  3. 通用性:图像/视频/音频都可以用;
  4. 生态:U-Net/DiT、采样器、CFG、ControlNet 都围绕高斯扩散设计;
  5. 理论成熟:变分界、score matching、SDE 都有完整工具;
  6. 最大熵:高斯在给定方差下破坏信息最“平滑”。

所以:

  • 研究上:可以探索非高斯、离散、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. 常见误区

  1. “扩散必须高斯”:高斯是选择,不是定义。
  2. “换噪声只改采样”:后验、损失、反向都要改。
  3. “Flow Matching 只是另一种 sampler”:它是另一套训练/生成框架。
  4. “Cold Diffusion 没有噪声,所以不是扩散”:扩散可以推广为一般退化过程。
  5. “D3PM 是 VQ-VAE”:两者都离散,但 D3PM 是扩散过程,VQ-VAE 是自编码器。
  6. “非高斯一定更好”:要看数据匹配和工程成本,图像生成仍以高斯/Flow 为主。

11. 课堂练习

答案见 06-章节练习与答案。

  1. 列出高斯噪声的 4 个工程优势。
  2. 如果换成均匀噪声,后验会变成什么?为什么难算?
  3. Cold Diffusion 的“前向”和“反向”分别是什么?
  4. D3PM 适合什么数据?转移矩阵可以怎么设计?
  5. Flow Matching 和 DDPM 的相同点/不同点各说 3 个。
  6. 用 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.

15. 下一节

章节面试题库