扩散原野DIFFUSION FIELD
0/8
01Foundations

先学会描述“不确定”。

扩散模型不是把图像一步步变模糊,而是在概率分布之间设计一条可计算的路径。高斯、条件分布、马尔可夫链与 ELBO 是这条路径的语法。

学完你应该能

解释 N(0,I)\mathcal N(0,I) 中每个符号;说清条件分布为何不是唯一答案;判断马尔可夫依赖;计算一维高斯 KL;从边缘似然走到 ELBO。

1. 高斯分布:中心、尺度与方向

它在做什么:用少量参数描述一团连续随机变量可能出现在哪里。均值 μ 是中心;一维标准差 σ 是宽度;多维协方差矩阵 Σ 同时描述每个方向的尺度以及维度之间的相关性。

μ\mu均值μ\mu · 均值shape: 标量或 [D]

分布中心;DDPM 反向网络会参与预测条件均值。

σ2\sigma^2方差σ2\sigma^2 · 方差shape: 标量

一维随机变量围绕均值的离散程度。

Σ\Sigma协方差Σ\Sigma · 协方差shape: [D,D]

多维尺度与方向;单位阵 II 表示各向同性。

II单位阵II · 单位阵shape: [D,D]

各维方差为 1、不同维度协方差为 0。

Probability lab

拖动一条高斯曲线

qp
分布 qq
分布 pp
DKL(qp)D_{\mathrm{KL}}(q\Vert p)1.398
DKL(pq)D_{\mathrm{KL}}(p\Vert q)0.707

交换方向后数值通常不同:KL 散度不是对称距离。

二维高斯等密度线Σ\Sigma
x1x_1x2x_2
2D covariance

协方差决定“云团朝哪里伸展”

标准差控制两个轴的尺度;相关系数 ρ\rho 控制倾斜方向。单位阵 II 对应各向同性:每个方向的方差相同,等密度线是圆。

Σ=[1.210.270.270.30]\Sigma=\begin{bmatrix}1.21&0.27\\0.27&0.30\end{bmatrix}
N(xT;0,I)\mathcal N(x_T;0,I) 怎么读:这是“在 xTx_T 处评价均值为 00、协方差为 II 的高斯密度”。分号后的 00II 是分布参数,不是额外随机变量。
停下来想 30 秒

把二维协方差从 II 改成 diag(4,0.25)\operatorname{diag}(4,0.25),等密度线会怎样?

2. 条件概率:给定 xtx_t,也不只有一个答案

pθ(xt1xt)=N ⁣(xt1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1}\mid x_t)=\mathcal N\!\left(x_{t-1};\mu_\theta(x_t,t),\Sigma_\theta(x_t,t)\right)
换一种方式理解

为什么模型不直接输出唯一的 xₜ₋₁?

同一片云可以有多种清晰解释

严重加噪后,不同原图可能得到相似 xtx_t。反向必须保留多种可能性,而不是假装答案唯一。

给定条件 ≠ 消除所有随机性

3. 马尔可夫链:给定上一步,就不再追问更早历史

马尔可夫性质不是说“系统没有历史”,而是说:在已经知道当前状态时,更早历史不再为下一状态提供额外条件信息。

点击状态查看条件依赖

x2x_2只依赖 x1x_1

给定 x1x_1 后,与 x0x_0 条件独立。

q(x2x1)q(x_2\mid x_1)
q(x1:Tx0)=t=1Tq(xtxt1)q(x_{1:T}\mid x_0)=\prod_{t=1}^{T}q(x_t\mid x_{t-1})
停下来想 30 秒

闭式公式能从 x0x_0 直接采样 xtx_t,这是否破坏前向过程的马尔可夫定义?

4. KL 散度:方向为什么重要

上方一维实验同时给出了 DKL(q∥p) 与 DKL(p∥q)。前者用 q 的高概率区域加权“p 是否覆盖它”;交换方向后,加权区域也交换,因此结果通常不同。KL 非负,但不是对称距离。

5. 重参数化:把随机性单独拿出来

x=μ+σε,εN(0,I)x=\mu+\sigma\varepsilon,\qquad \varepsilon\sim\mathcal N(0,I)

随机采样集中在 ε\varepsilonμ\muσ\sigma 成为可微的确定量。对于 DDPM,xtx_t 的闭式采样正是同一个结构:缩放后的信号 + 缩放后的标准噪声。

6. 为什么需要 ELBO

DDPM 引入 x1,,xTx_1,\ldots,x_T 作为潜变量后,真正想最大化的是边缘似然 pθ(x0)p_\theta(x_0)。但要把所有潜变量路径积分掉,直接计算很困难。ELBO 的作用不是“换一个无关目标”,而是构造一个可计算、可优化的下界。

逐步推导

从 log pθ(x₀) 走到 ELBO

一次只看一步。先说出这一步用了什么性质,再展开下一步。

logpθ(x0)=logpθ(x0:T)dx1:T\log p_\theta(x_0)=\log\int p_\theta(x_{0:T})\,dx_{1:T}

我们的目标是让真实数据 x₀ 在模型下概率尽可能大。困难在于必须把所有潜变量路径积分掉。

使用:潜变量边缘化
先记住方向:最大化 ELBO 会把对数似然的下界往上推;等价地,训练常最小化负 ELBO。后面 DDPM 会把负 ELBO 继续拆成重建项、中间 KL 项与先验匹配项。
下一节:前向扩散