连续性方程本质上是一个描述守恒量的方程。在流匹配的语境下,这个守恒量就是概率密度。

概率密度的守恒

想象一下液体在管道中流动。如果液体不可压缩,那么无论管道粗细如何变化,单位时间内流过任何一个截面的液体总量都应该保持不变。这就是质量守恒定律的体现。

概率密度也遵循类似的守恒原则。假设我们有一个概率密度函数 pt(x)p_t(x),它描述了在时间 tt 时,随机变量 XX 取值 xx 的概率密度。随着时间的推移,pt(x)p_t(x) 的形状可能会发生变化,但它所代表的总概率必须保持为 1。

连续性方程正是用来描述概率密度这种守恒特性的数学工具。

连续性方程的数学表达

连续性方程的表达式如下:

ddtpt(x)+div(pt(x)vt(x))=0\frac{d}{dt} p_t(x) + div(p_t(x)v_t(x)) = 0

  • ddtpt(x)\frac{d}{dt} p_t(x) 表示概率密度函数 pt(x)p_t(x) 随时间的变化率。
  • div(pt(x)vt(x))div(p_t(x)v_t(x)) 表示概率密度的“流动”情况,其中 vt(x)v_t(x) 是一个向量场,描述了概率密度在空间中的运动方向和速度。散度算子 divdiv 则度量了向量场在某一点的“扩张”或“收缩”程度。

连续性方程的意义:

  • 如果 ddtpt(x)\frac{d}{dt} p_t(x) 为正,说明在 x 点的概率密度正在增加,这可能是由于周围的概率密度流入了 xx 点。
  • 如果 div(pt(x)vt(x))div(p_t(x)v_t(x)) 为负,说明在 x 点的概率密度正在减少,这可能是由于 xx 点的概率密度流向了周围。

连续性方程指出,概率密度的变化率与概率密度的“流动”情况必须相互抵消,以保证总概率守恒。

连续性方程在流匹配中的应用

在流匹配中,我们希望训练一个连续归一化流 (CNF) 模型,使其能够生成与目标数据分布相似的样本。这个 CNF 模型可以用一个向量场 vt(x)v_t(x) 来表示,它决定了概率密度函数从初始分布 p0(x)p_0(x) 到目标分布 p1(x)p_1(x) 的演化过程。

连续性方程的作用就是确保 CNF 模型所定义的向量场 vt(x)v_t(x) 能够正确地引导概率密度函数的演化,并最终生成我们期望的目标分布。

具体来说,连续性方程的应用体现在以下几个方面:

  1. 验证模型的有效性: 通过检查学习到的向量场 vt(x)v_t(x) 是否满足连续性方程,我们可以判断 CNF 模型是否能够生成有效的概率路径。
  2. 设计训练目标函数: 一些流匹配的训练目标函数的设计是基于连续性方程的。例如,条件流匹配 (CFM) 的目标函数就是为了最小化模型向量场与目标向量场之间的差异,而目标向量场的构建正是基于连续性方程。
  3. 计算模型的概率密度: 利用连续性方程和流的轨迹方程,我们可以推导出计算 CNF 模型在任意数据点概率密度的方法。

总结

连续性方程是理解流匹配的关键概念之一。它提供了一种数学工具来描述概率密度的守恒特性,并确保 CNF 模型能够生成有效的概率路径。