扩散模型
扩散模型学习在各噪声水平去噪,再用这些知识从随机噪声生成新样本。一次去噪估计可能平均多个合理来源,落在数据群之间;本课单次估计集中在空心区域,反复估计才让样本靠近八个群。
想象八座城镇围着湖。模糊的位置报告可能对应任一城镇,平均位置却在湖里。均值可以是合理估计,却不是合理的投递地点。这就是估计与样本的区别。
数据与解析去噪器
样本是二维点,来自八个高斯群,中心在半径 2 的圆上,每个坐标标准差 0.12。一个点就是一个完整样本;图像模型对应更长的像素或潜在向量。
这里已知精确分布,直接计算理想去噪器,不训练神经网络。这样排除训练误差,只研究理想条件均值能做什么,以及采样器如何使用它。
已知目标的加噪
取干净样本 x₀ 和标准高斯噪声 ε:
xₜ = √a(t) · x₀ + √(1 − a(t)) · ε
a(t) 是累计信号方差。系数的平方和为一,不是普通和,也不是点数比例。t = 0 为干净数据;t = 1 时 a = 0.0001,信号系数 0.01,分布接近标准高斯。
因为 ε 是自己采样的,可训练 ε̂(xₜ,t) 最小化与已知噪声的期望平方差。输入必须包含噪声水平,见 DDPM 论文。本课用精确 E[ε | xₜ,t]:与当前观测相容的噪声的条件均值。多个干净来源可能产生近似观测,最优平方误差预测不必等于这一次实际加入的噪声。
估计、移动、再估计
生成从独立新噪声 x₁ ~ Normal(0,I) 开始,没有原始干净点要恢复。由预测噪声计算:
x̂₀ = (xₜ − √(1 − a(t)) · ε̂) / √a(t)
高噪声时,这个干净估计可能平均远离的群,落在空心处。八根来源概率条表示当前单个点在当前噪声水平来自各群的可能性。条相近表示来源模糊;均值在群内和群间取期望,不是把 48 个生成点平均,也不是预先为每点指定终点。
确定性 DDIM 将它移到更低噪声水平 s:
xₛ = √a(s) · x̂₀ + √(1 − a(s)) · ε̂
然后在新的 (xₛ,s) 重新估计,直到 s = 0,此时噪声系数为零,输出等于最新干净估计。这是 η = 0 的 DDIM,初始化后不再加新随机量,与随机 DDPM 不同,见 DDIM 论文。
空心标记表示干净估计,加号是算出的下一样本,橙点移向加号。早期两种位置可差很远,即使采样位移很小。
逐步演示
默认 种子 42、32 个采样步、48 个样本。前向加噪用独立固定随机流,改变生成种子不会改变教学训练例。
先展示 t = 0.25、0.5、0.75、1 的加噪数据。各水平具有正确前向边缘分布,但复用同一噪声便于对比,不是逐步随机 DDPM 马尔可夫轨迹。
训练小窗回到 t = 0.5 的记录:干净点 (-1.835,0.278),噪声 (0.185,-2.110),观测 (-1.174,-1.287)。精确条件噪声预测为 (-0.437,-0.488),该对平方误差 3.018。条件均值最优也能在单个样本有正误差,隐藏噪声不能总被唯一恢复。
接着从新噪声生成,跟踪样本 0:
| 评估 | 噪声时间 | 当前样本 | 干净估计 | 下一样本 |
|---|---|---|---|---|
| 1 | 1.000000 | (-1.840449,-2.912688) | (-0.037056,-0.058644) | (-1.839170,-2.910664) |
| 2 | 0.968750 | (-1.839170,-2.910664) | (-0.214013,-0.338696) | (-1.842158,-2.915393) |
第一次估计接近中心,下一样本仍带噪。第二次用新位置和水平重新预测。每步不一定靠近最近群中心;这是采样轨迹,不是对最近中心距离做梯度下降。
第一次评估中,八群各占该点来源概率约 12–13%,动画先停留在这些权重,再展示单步输出。到第 25 次、t = 0.25,左下斜向的第 6 群约占 99.8%。输入和噪声水平变了,去噪器没有重训,换种子也可能选中别群。
第 3–32 次重复同一公式,两次来源查看只是解释已有预测。样本 0 最终为 (-1.523356,-1.695873)。48 个中 43 个距某个群中心不超过 0.24,八个邻域都有点;五个在外,高斯有尾部,不是硬边界。
单步对照用完全相同的初始噪声和去噪器,直接返回最初干净估计,0/48 进入八邻域,结果集中在群间中心。区别来自采样轨迹,不来自模型变化。
采样预算与诊断
步数改变固定噪声日程上的去噪评估次数,不改变训练时间。种子 42 时,4 步有 33/48 靠近群,32 步有 43/48。可按“只做一步 → 粗步长采样 → 逐步去噪”比较,再用“换一批噪声”换初始批次。比较预算时先固定模型和起始噪声。
靠近计数不是生成质量的充分标准。同种子下 8 步有 45 个、64 步有 42 个,不能据此说 8 步分布更好。把全部点压到一个中心也会全部“靠近”,却丢七群和群内变化。邻域占用数提供第二个检查,两项都不能独立证明分布正确。
32 步时,种子 21 有 45 个靠近、占满八群;137 也有 45 个,却只占七群。小批次存在波动。结论是这些实验中反复去噪能分出群,不是每个种子都必须占满八群。
解析混合模型生成 M 点、N 步、K 分量的时间为 O(NMK)。数值采样工作空间可为 O(MK),逐点处理还可减少;动画另存 O(NM) 快照以供回拖。图像模型的成本由网络和张量尺寸决定,不能直接套这个混合分布公式。
边界情况
- 一步:主轨道与对照相同,均返回初始干净估计,界面说明相等。
- 精确中心:对称性使各噪声水平的估计为零,确定性采样保留零点。连续高斯抽到精确零的概率为零,但这个边界说明均值不自动是合理样本。
- 终端噪声有限:
a(1)很小但非零,所以标准高斯起点只是终端前向分布的近似。 - 相同种子和步数:重放、变速、回拖均确定。非零 η 的 DDIM 和随机 DDPM 有不同随机性约定。
- 可选范围:步数 1–64、种子 1–9999 是界面边界,不是扩散模型限制。
常见错误
- 把生成当倒放已保存的加噪过程。生成不读取前向例的干净点或实际噪声。
- 直接
x − ε̂,漏掉日程系数。这里组合的是下一水平的干净估计与噪声分量。 - 把中间干净估计当当前样本。当前样本一般仍带噪,直到终点。
- 期待条件均值等于每例隐藏噪声。平方误差最优是条件平均。
- 从本例推出单步生成不可能。失败只针对这里的高噪声条件均值与采样器,专门训练的单步模型不在结论中。
模型范围
二维已知高斯混合、解析理想去噪器、确定性 DDIM,不训练网络、不生成图像。真实图像或潜在模型还包括学习网络、训练、条件与引导,潜在系统也可能用自编码器,采样方式各异。训练循环另讲优化,本课只隔离去噪估计怎样用于生成样本。