← 附录B | 附录C | 返回首页 →

附录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信息计算
  1. 计算:对于一维高斯分布 N(μ, σ^2),其参数为 θ = (μ, σ)。计算其2x2的Fisher信息矩阵 I(μ, σ)
  2. 分析:从矩阵的形式分析:a) 为什么估计均值 μ 和估计标准差 σ 是解耦的?b) 为什么当 σ 很小时,Fisher信息会变大?
  3. 开放探索:自然梯度在训练扩散模型的分数网络 s_θ 时有何应用?θ 是网络权重,此时的Fisher信息矩阵该如何定义和计算?

解答思路

  1. 写出对数似然 log p(x; μ, σ),然后计算其对 μσ 的二阶偏导数的期望。你会发现非对角线项的期望为0,对角线项分别为 1/σ^22/σ^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=-1x=1 处有两个势阱。

  1. 概率分布:写出对应的概率分布 p(x) ∝ exp(-E(x)) 的表达式。
  2. 分数函数/力:计算其分数函数 s(x) = ∇log p(x)。分析在 x=0(势垒)和 x=-1, 1(势阱)附近,这个“力”的方向和大小。
  3. Langevin动力学:写出对应的Langevin SDE。如果一个粒子从 x=0 开始,它的长期行为会是怎样的?
  4. 开放探索:在扩散模型中,我们学习的是一个时变的分数函数 s_θ(x, t)。对于这个双势阱例子,s_θ(x, t)t 接近 T(高噪声)和 t 接近 0(低噪声)时,其形状应该分别是什么样的?

解答思路

  1. p(x) = (1/Z) * exp(-(x^2 - 1)^2)Z是归一化常数。
  2. s(x) = -dE/dx = -2(x^2 - 1)(2x) = -4x(x^2 - 1)。在 x=0s(0)=0,但这是一个不稳定的平衡点。在 x=-1, 1s(x)=0,是稳定的平衡点。在 x 略大于0时,s(x)<0,力指向左边;略小于0时,s(x)>0,力指向右边,因此粒子会被推离 x=0
  3. dX_t = -4X_t(X_t^2 - 1)dt + sqrt(2)dW_t。长期来看,粒子会在两个势阱 x=-1x=1 之间来回跳跃,其最终分布会收敛到 p(x)
  4. t 接近 T 时,能量景观被抚平,s_θ(x, t) 应该接近于一个单势阱(高斯分布)的分数函数,即 s ≈ -x。当 t 接近 0 时,s_θ(x, t) 应该精确地逼近我们计算出的 s(x) = -4x(x^2 - 1),以恢复双峰结构。