教材讲解 第十七章

第十七章 扩散模型背后的数学理论

上一章用手感走了一遍加噪和去噪。这一章只留两句硬的:正向可以一步跳到任意 t;反向的真实分布没有解析解,所以才训练网络。β 太大,反向会变成多峰,更难近似。

  1. q(xt|xt−1) 是高斯。连乘之后仍是高斯。
  2. 于是 xt = √ᾱt x0 + √(1−ᾱt) ε。
  3. q(xt−1|xt) 一般没有闭式,图 17.4。
  4. 预测噪声和预测原图是同一件事的两种说法。

书 §17.1–17.2 · 图 17.2–17.6 · p.297–310

17.1 正向:一步采样到 xt

每一步混入噪声,系数由 βt 管。令 αt = 1 − βt,ᾱt 是 α 连乘。高斯相加还是高斯,所以不必从 0 走到 t,可以直接:

xt = √ᾱt x0 + √(1−ᾱt) ε,ε ∼ N(0, I) 图 17.2–17.3 · p.298。原图的权重 √ᾱ 随 t 变小,噪声权重 √(1−ᾱ) 变大。

书 §17.1 · 图 17.2–17.3 · p.298

拖 t,看两份权重

示意调度:ᾱ 从 1 降到接近 0。不是书上某一张具体表,用来建立「此消彼长」。

0.30
√ᾱ x0
√(1−ᾱ) ε

训练时随机抽 t,用这个公式造 xt,再让网络猜 ε。

接下节。倒放为什么不能写成同样漂亮的一行?

17.2 反向没有解析解

想从 xt 回到 xt−1,需要 q(xt−1|xt)。贝叶斯能写形式,但边缘 q(xt−1) 是数据分布——复杂、多峰。图 17.4:去噪的解析解算不了。

图 17.5:βt 大(正向噪声大),反向分布呈多峰。图 17.6:βt 小,反向接近高斯,网络才好学。所以扩散要把每一步的噪声加得很碎。

实践中网络可以预测 ε,也可以预测 x0 或均值。它们由上面那行公式连着,可以互相换算。

书 §17.2 · 图 17.4–17.7 · p.300–303

切换训练目标的说法

两种说法对着同一行公式。工程上预测 ε 更常见,和上一章一致。

下一章。无条件生成只会「随便出一张图」。加上类别或文本,才听得懂「画一只猫」。

合上这一章

  1. 正向一步到位。xt 是原图和噪声的加权。
  2. 反向无闭式。才需要 U-Net。
  3. β 要小步。反向才接近高斯。

章末自测

讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。

第十八章 条件扩散模型 · 原书 p.311–336

打开第十八章 回到目录