← 附录B | 附录C | 返回首页 → |
扩散模型的成功不仅是工程上的胜利,更是深刻数学原理的体现。本附录将从信息几何(Information Geometry)的角度重新审视扩散模型,揭示分数函数作为“力”的物理意义,并建立与能量优化的深刻联系。这种视角不仅提供了强大的理论洞察,也为设计新算法提供了直观的指导原则。
信息几何将概率分布空间 P
视为一个具有内在几何结构的黎曼流形(Riemannian manifold),而不是一个平坦的欧几里得空间。
I(θ)
定义的黎曼度量。两点之间的最短路径是测地线(geodesic)。
定义 C.1 (Fisher信息矩阵) 对于参数化的概率分布族
{p(x; θ)}
,Fisher信息矩阵定义为:
\(I_{ij}( heta) = \mathbb{E}_{p(x;\theta)}\left[\frac{\partial \log p(x;\theta)}{\partial \theta_i} \frac{\partial \log p(x;\theta)}{\partial \theta_j}\right]\)
它衡量了当我们微小地改变参数 θ
时,概率分布 p(x; θ)
的变化有多大。信息矩阵的元素越大,表示分布对该方向的参数变化越敏感。
在优化概率模型时,普通的梯度下降是在平坦的欧几里得空间中寻找最速下降方向。然而,在弯曲的概率流形上,真正的最速下降方向由自然梯度给出。
定义 C.2 (自然梯度) 设
L(θ)
是关于参数θ
的损失函数,普通梯度为g = ∇_θ L
。自然梯度g_nat
定义为:
\(\tilde{g} = I(\theta)^{-1} g\)
优化步骤变为:
θ_{t+1} = θ_t - α * I(θ_t)^{-1} * g_t
。
💡 关键洞察:自然梯度下降具有参数化不变性。无论我们如何对模型进行重新参数化(例如,线性变换),其在概率流形上的优化路径都是相同的。而普通梯度下降的路径则会随参数化的改变而改变。这使得自然梯度在理论上是优化概率模型的更优选择。
⚡ 实现挑战:计算完整的Fisher信息矩阵并求逆的代价非常高昂(O(N^2)
,N为参数量)。在实践中,通常使用其对角近似、K-FAC等方法来降低计算成本。Adam等自适应优化算法也可以被看作是对自然梯度的一种简化近似。
从信息几何的角度看,分数函数 s(x) = ∇_x log p(x)
不仅仅是一个梯度,它是在数据空间 x
中,定义了一个指向概率密度 p(x)
增长最快方向的向量场。
E_p[s(x)] = 0
,这意味着分数函数属于概率分布流形在某一点的切空间。dx/dt = s(x)
,粒子最终会收敛到概率分布的局部最大值(模式)。Stein恒等式是连接分数函数与概率分布的桥梁,它构成了分数匹配的理论基础。
\[\mathbb{E}_{p(x)}[\nabla_x \cdot \phi(x) + \phi(x) \cdot \nabla_x \log p(x)] = 0\]定理 C.3 (Stein恒等式) 对于一个足够光滑的测试函数
φ(x)
和概率密度p(x)
,在一定边界条件下成立:
💡 关键洞察:这个恒等式只涉及分数 ∇log p(x)
和 p(x)
的期望,而完全不依赖于 p(x)
本身及其归一化常数。这使得我们可以在只拥有 p(x)
的样本的情况下,通过最小化Stein恒等式的残差来学习其分数函数,这正是分数匹配的核心思想。
我们可以从物理学的角度,为分数函数建立一个非常直观的力学类比。
定义 C.4 (能量函数与力) 给定一个概率分布
p(x)
,我们可以定义一个对应的能量函数(或势能):
\(E(x) = -\log p(x)\)
\[F(x) = -\nabla E(x) = \nabla \log p(x)\]那么,分数函数就变成了作用在粒子上的力:
这是一个保守力场,因为它是一个标量势 E(x)
的梯度。
物理图像:
p(x)
大) ⇔ 低能量区域 (E(x)
小)。Langevin动力学描述了粒子在这个力场中,同时受到随机热噪声影响时的运动轨迹。
定义 C.5 (Langevin SDE)
\(dX_t = \nabla \log p(X_t) dt + \sqrt{2} dW_t\)
- 漂移项
∇log p(X_t)dt
: 粒子受到分数“力”的作用,确定性地向能量更低处移动。- 扩散项
sqrt(2)dW_t
: 粒子受到随机布朗运动的扰动,使其能够探索整个能量景观,而不是仅仅陷入最近的势阱。
🌟 核心联系:Langevin动力学的稳态分布恰好是 p(x)
。这意味着,无论从什么初始状态开始,只要我们模拟这个SDE足够长的时间,最终得到的粒子分布就会收敛到我们想要的目标分布 p(x)
。这为从概率分布中采样提供了一个基于物理模拟的强大方法。
扩散模型中的应用:
E_0(x) = -log p_data(x)
是一个复杂、多势阱的崎岖景观,而 E_T(x) ≈ ||x||^2 / 2
是一个简单的、单一的抛物线势阱。dx = [f - g^2 * s_θ]dt + g d(bar(W)_t)
,本质上是在学习一个时变的力场 s_θ(x, t)
,这个力场可以在每个时刻 t
将粒子有效地引导回数据所在的高概率区域。