生成模型 (3.2):Flow Model

引言

从这一章开始深入到FM的技术细节中。首先从流模型开始讲起。

流 (flows) 是一种最简单的连续时间马尔可夫过程 (Continuous Time Markov Process, CTMP)。在理论上,流模型的优势有以下三点:

  1. 流可以让我们从任意的初始分布转移到任意的目标分布
  2. 通过估计流所对应的ODE的解,我们可以较为高效地在流中进行采样(相较于求解Diffusion中的SDE)
  3. 流具有确定性的过程,因此可以得到似然函数的无偏估计。而SDE中由于是随机过程,因此只能去估计似然的下界。

同样的,以下内容完全来自于Flow Matching Guide and Code。再次感谢FAIR的大佬们

一、概率论和微分方程的一些预备知识

1.1. 随机向量

考虑欧氏空间,以及定义在这个空间上的内积运算 和2-范数 。

随机向量 (Random Vector, RV) 是一个定义在 上的一个随机变量,且具有连续的PDF 。PDF满足归一性:

(1)

一个最常见的PDF就是维的高斯分布:

(2)

其中,分别表示均值和标准差。

可以证明,随机向量 的【期望】等于在2-范数意义下最接近 的一个常向量 。(证明见附录)

(3)

1.2. 条件概率密度与条件期望

给定两个随机向量 ,以及这两个随机向量的联合PDF 。我们可以定义两个边缘分布:

(4)

基于此,我们还可以定义如下的条件分布:

(5)

计算条件分布的一个重要手段是贝叶斯定理:

(6)

条件期望,是一个在2-范数意义下最接近的随机向量:

(7)

当时,这个条件期望变为:

(8)

公式的证明和公式非常类似。

两个随机向量的条件期望有如下的重要性质,称为tower property:

(9)

1.3. 微分同胚 (Diffeomorphisms) 和前推 (push-forward)

首先,我们定义 为一个函数集合 ,且这些函数具有连续的 阶偏导数:

(10)

其中, 且 。 特别地,定义 。

一个函数 是一个【微分同胚】,当且仅当:

  1. 是可逆函数
  2. 且 。

微分同胚可以直观理解为一种可逆的、平滑的变换。在流模型中,我们必须保证所有变换都是一个位于的微分同胚,这样才能在初始分布和目标分布之间来回转换。

给定一个随机向量 以及一个微分同胚 。我们考虑变换后的随机向量 ,这个随机向量的PDF —— 也称为 的一个前推 (push-forward) —— 有如下形式:

(11)

其中, 表示 的雅可比矩阵。这个公式其实就是多元积分的换元公式。

因此我们可以定义一个前推算子 :

(12)

二、流的数学表达

经过这么多铺垫,我们终于可以进入正题。

回顾在前一篇中提到的,生成式建模的总体目标就是把初始分布 上的一个样本 映射到目标分布 上的一个样本 。

2.0. 一些定义准备

一个 流是一个与时间有关的映射函数 ,且有 。

进一步地,我们规定 , 是一个关于 的微分同胚。

流模型是一个连续时间马尔可夫过程 (CTMP),把一个流 作用在一个随机向量 上:

(13)

的马尔可夫性可以通过下面的推导证明。

任意给定 ,我们有

(14)

其中 同样也是一个微分同胚。公式说明了时刻以后的任意状态都只取决于 ,也就说明了马尔可夫性。

最终,流模型的目标是找到一个流 ,使得 。

2.1. 流与速度场的等价性

一个 流同样可以由一个位于 中的速度场 定义。 和 之间通过下面的这个带初始值的ODE来描述:

(15)

下面的定义保证了公式对应的解的存在性和唯一性。

Theroem 1 (Picard–Lindelof):如果速度场 满足以下两个条件:

  • ;
  • 在局部上满足利普希茨条件,即在一个邻域上满足

那么我们有:

  • 公式(15)存在唯一解 。对于任何一个起始位置,都有且仅有一条路径。
  • 是一个微分同胚,即解是光滑的。
  • 在 时,所有起始位置都存在唯一解,即解的定义域 。

需要注意的是,这个定理只在【局部】上保证了解的存在性和唯一性。也就是说,只能保证一个流在有限的时间内对某个样本 的作用是唯一且确定的。

如果要保证在整个 时间内都成立,则需要有更强的条件(如全局利普希茨性质)或者引入一些新的假设。在流模型的理论中,引入的是【可积性】的假设,来保证这个流在 的时间中几乎处处存在。

至此,我们证明了一个速度场能够唯一定义一个流。同样地,给定一个 流 ,我们也可以得到出其对应的速度场 :

。(16)

2.2. 求解ODE

给定初始样本 ,求解任意时刻 下的样本 就是在估计公式(15)的解。

求解ODE初值问题的一个最简单的方法就是欧拉法,这是一种迭代求解的方法:

(17)

其中 是迭代次数, 是迭代步长。

欧拉法的误差项 是步长 的高阶无穷小。也就是说理论上只要迭代次数 足够多,欧拉法就能够收敛到准确解上。

三、概率路径和连续性方程

我们将一个与时间相关的概率序列 称为一个概率路径 (probability path)。

在流模式的场景中,我们关心的是流 对应的概率路径。对于任意时间 ,概率值都可以由公式(12)中定义的前推算子得到:

(18)

其中 是初始分布。

我们称速度场 生成概率路径 ,当且仅当 。

我们可以通过验证 和 是否满足下面的PDE,来判断速度场是否能够生成概率路径:

(19)

其中, 称为散度矩阵。

公式(19)是物理学中一个非常重要的方程,称为 连续性方程 (Continuity Equation)。连续性方程描述了一些物理量(比如质量、电荷等)的总量不随时间变化的性质,也就是质量/电荷守恒定律。

下面的定理2是质量守恒方程的等价形式,它说明了【连续性方程的解 能够生成概率路径 】。

Theroem 2 (Mass Conservation):令 是一个概率路径, 是一个满足局部利普希茨性质的可积速度场,则我们有如下的等价表述:

  1. ,公式 (19) 成立
  2. 能够生成

这里引入了【可积性】的性质之后, 就能拥有一些比较良好的性质,即 的期望是有界的。下面我们展示这一点。

速度场 可积意味着:

(20)

我们对速度场所对应的ODE两边对 积分得:

(21)

代入 得 。

因此,我们有:

(22)

其中最后一步用到了三角不等式。

公式(22)说明了,只要 的期望是有界的,则 也是。

Note:这里的推导我也看不太明白,主要是积分变量从 变成了 。希望各位大佬指正。

四、瞬时换元 (Instantaneous Change of Variable, ICV)

流模型的一个显著优势在于,它的似然值是可解的 (tractable)。也就是说,我们可以计算出 的解析解。这个性质是通过在连续性方程 —— 公式(19) —— 上使用瞬时换元公式得到的。下面我们展示这一点。

我们的结论建立在下面的定理3上,定理3也被称为瞬时换元公式。

Theroem 3: Instantaneous Change of Variable

(23)

定理3的证明见附录。

我们对公式两端从到积分得:

(24)

计算散度 等价于计算雅可比矩阵 的迹,需要 次求导。因此,在实践中,一般使用对散度进行无偏估计。一个常用的无偏估计为Hutchinson迹估计,用于估计一个随机矩阵的迹:

(25)

其中, 是任意的随机变量,满足 且 。

将公式代入公式得:

(26)

引入随机变量 后,我们可以通过 vector-Jacobian product 的方法(比如torch.autograd.functional.vjp)来快速计算 。

总结一下,在求解似然估计 时,我们实际上是从 到 反向模拟一下面的ODE:

(27)

得到 和 后,我们就能得到似然函数的无偏估计值:

(28)

五、流模型的训练

在得到似然估计之后,很自然地我们就可以通过最大化这个似然估计来训练一个流模型。

具体来说,设 是一个参数为 的速度场,我们的希望让 尽可能接近我们的目标分布 。

因此,我们可以通过下面的最大似然目标来优化参数 :

(29)

其中, 是 的概率密度函数,而 是由速度场 定义的流。

附录

公式(3)的证明

首先根据向量2-范数的定义,展开:

(30)

我们需要最小化的函数为:

(31)

对求导得:

(32)

令梯度为0得:

(33)

因此,

(34)

Q.E.D.

瞬时换元公式的证明

下面我们来证明定理3(公式(23))

由全导数链式法则,公式的左侧为:

(35)

将流的ODE(公式(15))代入上式中,得到

(36)

接下来我们看连续性方程(公式19)。根据散度的乘法法则: 得:

(37)

注意到公式对所有时间 和所有位置 均成立,因此代入 得:

(38)

将上式代入公式得到:

(39)

O.D.E.