附录C:信息几何与分数函数的力学解释
扩散模型的成功不仅是工程上的胜利,更是深刻数学原理的体现。本附录将从信息几何(Information Geometry)的角度重新审视扩散模型,揭示分数函数作为“力”的物理意义,并建立与能量优化的深刻联系。这种视角不仅提供了强大的理论洞察,也为设计新算法提供了直观的指导原则。
C.1 信息几何基础
信息几何将概率分布空间 P
视为一个具有内在几何结构的黎曼流形(Riemannian manifold),而不是一个平坦的欧几里得空间。
C.1.1 概率分布流形
- 概率单纯形: 对于离散分布,所有可能的概率向量构成一个单纯形。这是一个嵌入在高维空间中的弯曲子流形。
- Fisher信息度量: 这个流形上的“距离”不是欧几里得距离,而是由Fisher信息矩阵
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.1.2 自然梯度 (Natural Gradient)
在优化概率模型时,普通的梯度下降是在平坦的欧几里得空间中寻找最速下降方向。然而,在弯曲的概率流形上,真正的最速下降方向由自然梯度给出。
定义 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等自适应优化算法也可以被看作是对自然梯度的一种简化近似。
练习 C.1:Fisher信息计算
- 计算:对于一维高斯分布
N(μ, σ^2)
,其参数为θ = (μ, σ)
。计算其2x2的Fisher信息矩阵I(μ, σ)
。 - 分析:从矩阵的形式分析:a) 为什么估计均值
μ
和估计标准差σ
是解耦的?b) 为什么当σ
很小时,Fisher信息会变大? - 开放探索:自然梯度在训练扩散模型的分数网络
s_θ
时有何应用?θ
是网络权重,此时的Fisher信息矩阵该如何定义和计算?
解答思路:
- 写出对数似然
log p(x; μ, σ)
,然后计算其对μ
和σ
的二阶偏导数的期望。你会发现非对角线项的期望为0,对角线项分别为1/σ^2
和2/σ^2
。 - a) 非对角线项为0意味着参数
μ
和σ
在Fisher度量下是正交的。b)σ
越小,分布越集中,从样本中推断参数位置的信息就越多,因此Fisher信息越大。
C.2 分数函数的几何与力学解释
C.2.1 分数函数作为切向量
从信息几何的角度看,分数函数 s(x) = ∇_x log p(x)
不仅仅是一个梯度,它是在数据空间 x
中,定义了一个指向概率密度 p(x)
增长最快方向的向量场。
- 与流形的关系:可以证明
E_p[s(x)] = 0
,这意味着分数函数属于概率分布流形在某一点的切空间。 - 动力学意义:如果我们让一个粒子沿着这个向量场流动,即
dx/dt = s(x)
,粒子最终会收敛到概率分布的局部最大值(模式)。
C.2.2 Stein恒等式
Stein恒等式是连接分数函数与概率分布的桥梁,它构成了分数匹配的理论基础。
定理 C.3 (Stein恒等式) 对于一个足够光滑的测试函数
φ(x)
和概率密度p(x)
,在一定边界条件下成立:$$\mathbb{E}_{p(x)}[\nabla_x \cdot \phi(x) + \phi(x) \cdot \nabla_x \log p(x)] = 0$$ 💡 关键洞察:这个恒等式只涉及分数
∇log p(x)
和p(x)
的期望,而完全不依赖于p(x)
本身及其归一化常数。这使得我们可以在只拥有p(x)
的样本的情况下,通过最小化Stein恒等式的残差来学习其分数函数,这正是分数匹配的核心思想。
C.2.3 分数函数作为“力场”
我们可以从物理学的角度,为分数函数建立一个非常直观的力学类比。
定义 C.4 (能量函数与力) 给定一个概率分布
p(x)
,我们可以定义一个对应的能量函数(或势能):$$E(x) = -\log p(x)$$ 那么,分数函数就变成了作用在粒子上的力:
$$F(x) = -\nabla E(x) = \nabla \log p(x)$$ 这是一个保守力场,因为它是一个标量势
E(x)
的梯度。
物理图像:
- 高概率区域 (
p(x)
大) ⇔ 低能量区域 (E(x)
小)。 - 粒子会受到一个力的作用,将它从高能量区域(低概率)推向低能量区域(高概率)。
- 概率分布的模式(modes)对应于能量景观的势阱(potential wells)。
C.2.4 Langevin动力学
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
是一个简单的、单一的抛物线势阱。 - 反向过程:学习反向SDE
dx = [f - g^2 * s_θ]dt + g d(bar(W)_t)
,本质上是在学习一个时变的力场s_θ(x, t)
,这个力场可以在每个时刻t
将粒子有效地引导回数据所在的高概率区域。
综合练习:一维双势阱模型
考虑一个一维能量函数 E(x) = (x^2 - 1)^2
,它在 x=-1
和 x=1
处有两个势阱。
- 概率分布:写出对应的概率分布
p(x) ∝ exp(-E(x))
的表达式。 - 分数函数/力:计算其分数函数
s(x) = ∇log p(x)
。分析在x=0
(势垒)和x=-1, 1
(势阱)附近,这个“力”的方向和大小。 - Langevin动力学:写出对应的Langevin SDE。如果一个粒子从
x=0
开始,它的长期行为会是怎样的? - 开放探索:在扩散模型中,我们学习的是一个时变的分数函数
s_θ(x, t)
。对于这个双势阱例子,s_θ(x, t)
在t
接近T
(高噪声)和t
接近0
(低噪声)时,其形状应该分别是什么样的?
解答思路:
p(x) = (1/Z) * exp(-(x^2 - 1)^2)
,Z
是归一化常数。s(x) = -dE/dx = -2(x^2 - 1)(2x) = -4x(x^2 - 1)
。在x=0
,s(0)=0
,但这是一个不稳定的平衡点。在x=-1, 1
,s(x)=0
,是稳定的平衡点。在x
略大于0时,s(x)<0
,力指向左边;略小于0时,s(x)>0
,力指向右边,因此粒子会被推离x=0
。dX_t = -4X_t(X_t^2 - 1)dt + sqrt(2)dW_t
。长期来看,粒子会在两个势阱x=-1
和x=1
之间来回跳跃,其最终分布会收敛到p(x)
。- 当
t
接近T
时,能量景观被抚平,s_θ(x, t)
应该接近于一个单势阱(高斯分布)的分数函数,即s ≈ -x
。当t
接近0
时,s_θ(x, t)
应该精确地逼近我们计算出的s(x) = -4x(x^2 - 1)
,以恢复双峰结构。