流视角

参考文献

Papers

  1. Score-Based Generative Modeling Through Stochastic Differential Equations

  2. The Principles of Diffusion Models

  3. Residual Flows for Invertible Generative Modeling

  4. Variational Inference with Normalizing Flows

  5. Invertible Residual Networks

  6. A stochastic estimator of the trace of the influence matrix for Laplacian smoothing splines

  7. Flow Matching for Generative Modeling

  8. Flow Straight and Fast- Learning to Generate and Transfer Data with Rectified Flow

Blogs

  1. Generative Modeling by Estimating Gradients of the Data Distribution

给定一个可逆变换 ,当 时,随机变量 的密度函数 可以由以下公式给出:

易处理的情况下,能够实现密度和样本的精确、双向传输

流模型

归一化流

image

基本定义

映射定义为:

其中

模型的对数似然 为:

训练目标

参数 通过在数据上最大化似然来学成:

直接计算

计算瓶颈:雅可比矩阵

image

为了平衡表达能力和计算效率,采用一系列 个可训练的可逆映射 ,每个映射都具有高效可计算的雅可比行列式:

变换链如下: 分别对应潜在样本和数据样本

密度推导如下:

等价的对数似然为:

高效计算雅可比矩阵的单层结构例子

平面流

平面流应用一种简单的变换: 其中 为激活函数,其雅可比行列式可以高效计算为:

残差流

残差流将变换 定义为: 其中 收缩映射(Lipschitz 常数为 ),这保证了通过巴拿赫不动点定理可求逆

对于任意方阵 ,其行列式等于其所有特征值 的乘积:

矩阵 的迹等于其所有特征值 的和:

如果 是一个矩阵函数,那么 的特征值是 的特征值 经过函数 作用后的结果 ,因此, 的特征值是

所以:

雅可比矩阵的对数行列式可使用上述结论简化并展开为迹: 利用泰勒级数展开

迹估计量(Hutchinson 估计量)

我们想要计算一个矩阵 的迹:

对于任何方阵 ,其迹可以通过期望值来表示:

定理: 其中 是一个随机向量,满足:

常见的随机向量 分布:

  • Rademacher 分布: 每个分量 独立且服从
  • 标准高斯分布:

根据 Hutchinson 估计量,我们有:

定义向量序列 ,然后递归计算: 最终,待估计的量可以简化为:

通过有限差分:

最后使用蒙特卡洛采样来近似期望:

其中 次独立采样的随机向量

设:

  • 计算 矩阵向量积
  • 计算一次 的复杂度 ,通常最快可以达到
  • 采样的次数

总复杂度约为

采样与推断

采样: 抽取 并计算

推断: 直接正向计算即可

连续归一化流(神经微分方程)

image

从残差流的视角,每一层可以表示为以下形式:

其中 是一个由神经网络参数化的、与层相关的速度场

直观上,这个残差表述可以连续化为:

这就是神经微分方程的框架,也称为连续归一化流

其中:

  • 是时间 时的状态
  • 是一个由 参数化的神经网络,代表神经向量场

训练目标

从初始条件 出发,微分方程在时间上连续地演化状态,从而诱导出边缘分布

通过学习神经向量场 ,使得终止状态 的分布 能够匹配目标数据分布

根据连续性方程:

展开右侧的散度项:

现在考虑一个满足微分方程的轨迹

沿这条轨迹 移动时,密度 对时间 的总导数使用链式法则展开:

的展开式代入:

所以:

因此,给定先验 ,由神经微分方程诱导的终止状态 的对数密度为:

训练过程

训练遵循极大似然估计框架:

为了计算数据点 的对数似然 ,我们对连续时间变量变换公式进行积分:

在高斯分布中采样得到,然后计算 ,通过数值方法计算散度 的积分

为了高效计算 中的散度积分 ,我们利用以下矩阵恒等式:

散度使用随机迹估计量高效地进行估计

采样过程

  1. 从先验分布中抽取潜在变量
  2. 作为初始条件,向前积分ODE:

终止状态 即近似于来自 的一个样本

流匹配

得分SDE与NF提供一种视角:

学习一种连续时间流,这种流能够将先验样本转换为来自的数据样本

流匹配框架尝试将其泛化为学习两个任意固定端点分布之间的流:

  • 一个源分布
  • 一个目标分布

那么,我们的目标就是,学习一个随时间发生变化的向量场,其对应的常微分方程流与预定义的概率路径相匹配,且满足边界条件:

服从高斯分布时,此时方法被称为高斯流匹配

从得分SDE获得启发

image

条件路径与边缘密度

通过扩散模型,指定了一个连续时间密度族,将简单的先验 处用作源传输到数据分布 处用作目标:

条件路径被定义为:

边缘密度被定义为:

速度场

边缘密度 的时间演化由速度场 控制,该速度场由福克-普朗克方程推得:

由此同样定义了通过PF-ODE的确定性粒子流:

由福克-普朗克方程,可以保证,该常微分方程将初始随机变量 向前或向后时间传输至 ,使得 的演化边缘密度在每个 处均与 相匹配

image

可以由特定的前向SDE的系数决定,也可以等价地由条件路径中的参数决定

学习

利用神经网络去学习分数,从而逼近速度场:

由于边际得分难以获取,我们利用条件分布来定义速度:

由全概率公式,边际得分和条件分布有如下关系:

从而训练目标可以改变为:

从而最小化器可以满足为:

潜在规则:福克-普朗克方程

边际密度 按照福克-普朗克方程演化:

由此确保PF-ODE给出的密度和前向SDE的边缘密度相匹配

PF-ODE的流映射定义为:,即将时间 处的初始状态 直接映射到时间 的状态,那么从开始的反向PF-ODE,有前推公式:

由福克-普朗克方程可以保证:

特别地:

流匹配框架

FM框架可以视为对于上述PF-ODE的扩展,FM框架将直接学习连续流,从而直接在两个任意分布, 之间传递样本

条件路径和边缘密度

考虑任意源概率分布 和目标概率分布 上,设定:

FM 隐式地定义了一个连续的中间密度族 ,该族在这些端点之间进行插值,每个边缘分布 通过一个从已知分布 中抽取的潜变量 以及一个条件分布 来表示:

边缘密度并不容易去处理,因为都有可能非常复杂,但是也正是由于这种复杂性,FM能够建模出来更为关泛,远远超过SDE的插值路径

关于的选取

  • 的选取需满足的边界条件
  • 条件分布 应具有易处理的闭式表达式
  • 的常见选择包括:
    • 双边条件, 这样的话,FM能够定义任意分布之间的传输
    • 单边条件化,当源分布为高斯分布时,能够恢复扩散下的场景

速度场

在标准扩散模型或高斯 FM 中,中间密度 的构建方式是将一个端点设为标准高斯分布,在此情景下,速度场被唯一确定,并且与得分相关联,存在闭式表达式:

然而对于通用FM来说,我们需要重头回顾这个过程:

我们目标是找到一个速度场 ,使得由此产生的微分方程能够实现样本相关的变换:

在每个时间点 ,在这个速度场的作用下,均能产生与 一致的 的边缘分布:

任何满足上述式子的速度场 确保了常微分方程流以确切的方式传输样本,并遵循预设的

因此,求解常微分方程可实现从 的传输,同时匹配所有中间分布

直观地,设 中的一个向量场,并满足连续性方程,那么有任意无散度场 (即

均是该方程的解,也就是说,通用的连续性方程有无限个解,FM寻求的只是一个特定的速度场

通过条件策略进行学习

FM的学习目标一定是希望用一个神经网络 近似原始速度场

这被称为-prediction

但是,同样地,最优速度 通常难以处理,所以我们需要引入一个条件速度场来对此进行计算:

从这个式子,我们可以作出两点要求:

  • 从条件概率路径 采样应该是直接的
  • 作为回归目标的条件速度 ,必须具有简单的闭式表达式

我们需要对条件速度场进行边缘化去恢复边缘速度,由连续性方程得到:

根据全概率公式:

去除无散度项可以得到:

因此可以定义:

将其简写为:

最小化器 恢复了该边缘速度:

所以说,如果想要将通用的FM框架在具体的应用场景下进行特化,必须指定

流匹配中的参数设计

灵感来源:从高斯分布到高斯分布的设计

当源分布和目标分布 均为高斯分布时,速度场 有闭式表达式,考虑插值的边缘密度路径:

端点分布为:

我们需要设计一系列 来连接这些分布

对于,有:

对于来说:

代入得:

根据这个,我们希望推得速度场,对于具有初始条件的ODE来说:

由于 可逆(因为 ),可设 得到:

对上式求导可以得到:

将其带入可以得到:

我们发现,在流优先的情况下,速度可以由以下范式完成构造:

此时,速度可以被唯一构造,若是给定密度路径 而不固定 ,速度场并不唯一

条件概率路径优先构造

我们旨在首先构造一个条件密度路径 ,然后推导出其对应的条件速度场 ,条件为

首先有边界条件:

双边条件

image

考虑定义在 上的两个一般分布 ,令 ,其中 独立,即:

选择条件路径:

其中 是满足 的时变函数

在确定性情况下 ,我们得到:

描述从 的确定性插值路径

此时条件速度为:

CFM损失为:

此时的最优速度场为:

单边条件

image

考虑标准的扩散模型的生成设置:

,其中 , 对于固定的 :

其中 ,在边界处:

进行边缘化得到 ,其中

由上述公式推导出条件速度

CFM损失为:

最小化器为:

对于配对样本

因此,单边损失会回归到给定 的双边目标的条件期望:

因此,单边和双边 CFM 目标函数具有相同的最小值点

高斯流匹配

,则对于固定的条件 ,条件路径 自然选择为高斯分布,而目标分布 本身无需为高斯分布,此情景被称为高斯FM

此情景下,高斯流匹配可以被解释为一个等价的扩散模型,目标是预测速度,其损失函数简单易用,并且已经在大规模的场景下被验证为有竞争力的性能

属性 VE(扩散 → FM) VP(扩散 → FM) FM / RF(线性) Trig.(三角路径)
(先验系数)
(数据系数)

条件流优先构造

直接定义一个随时间变化的映射函数 ,负责把样本 时刻送到位置

这样有两个优势:

  • 训练目标(速度场 )可以直接通过对映射函数求导得到,不需要模拟
  • 几何兼容:在球体、流形等复杂空间上,可以直接利用最短路径来定义这种映射

对于这个映射,建立一个仿射变换的模版来构造:

时,必须满足 ,这样起始点就是原始样本

条件路径的诱导

给定条件 (比如终点 ),映射函数 会告诉我们 运动到 时刻应该在什么位置

路径定义为:

实际当中:

如果 是高斯分布,且变换是仿射的,那么 在给定 时也是高斯分布

条件速度的诱导

根据ODE定义:

代入定义:

同样地:

代入后得到闭式解:

单向条件化(

(中心向目标移动)和 (均匀收缩)

有边界约束:

  • (回到起点噪声)
  • (到达目标数据)

利用公式 ,代入

在训练时,实际上是采样了一对 ,当我们把 代入上面的 时:

双向条件化 ()

当我们同时固定起点 和终点 时,路径 是一个随时间移动的点,在数学上用狄拉克 函数表示:

因为轨迹是确定的 ,其瞬时速度:

无条件高斯路径

独立,且

条件概率-路径优先 条件流-优先
给定 条件密度路径 条件流映射 (对每个固定 的轨迹)
获取速度 对每个 ,寻找 使得 沿路径(对每个 ):
不唯一性 ,则 产生相同的 给定 后,轨迹上的速度被直接指定
可逆情形 可逆:
闭式表达 为高斯/指数族时较容易;一般情形下非常困难 具有结构(仿射/低秩)时较容易,且可避免密度评估
的唯一性 对每个 ,在未施加选择规则(如势流、最小动能)时是欠定的 给定 后, 被同时确定;非可逆映射仍可沿轨迹定义 ,可逆时唯一
可实现性 必须验证构造的 是否在目标支撑集上满足连续性方程 构造天然保证成立:
匹配 混合条件: 在高斯-仿射路径且 -无关系数下, 可强制为高斯;对一般固定终点 的选择通常不足以保证匹配 设定 并通过边界条件可命中任意
优选场景 扩散型构造;通过条件高斯分布实现对 的解析控制 通过映射施加强结构先验 ;易于边界控制;可处理奇异/低维终点;适用于基于映射的正则化与输运成本

流匹配的具体例子:ReFlow

image

当我们选择 时,轨迹方程变得极其直观:

根据通用公式:

求导得到:

训练目标变为:

这种独立抽样的条件流匹配是独立抽样的,耦合方式为:

问题是两个端点之间毫无关联,所以虽然这种方式采样简单,但是会导致路径成锯齿状,神经网络很难学习到这种形式的向量场

那么,利用一个预训练的扩散模型 作为常微分方程的漂移项,以确定性方式传输每一个源点:

开始,进行如下积分:

通过积分得到的终点 位于学到的数据空间内,由此形成的配对 构成了一个依赖耦合

从而,有校正操作:

  • 输入:参考路径 (e.g.,
  • 预训练扩散模型:在选定的路径上拟合
  • 校正:采样 ,并求解 ODE:
  • 从而获得 及其完整的轨迹
  • 输出:依赖配对 和完整轨迹

有效原因

是由预训练模型 定义的流映射,则 ,则确定性联合分布为:

  • 源边缘保持,即起始的噪声分布不受影响:

  • 时间 时的分布是 通过流映射的前推

如果预训练模型 足够完美,那么校正后的中间边缘分布与原始路径一致:,且最终推导至真实数据分布

这种修正是用平滑的、教师引导的轨迹替代了噪声干扰的独立配对

Rectify进行递归修正

Reflow:反复应用 Rectify 来更新耦合,使得后续的流更易于积分,也就是这个传输路径更加接近于两个分布之间的直线

初始状态

此时, 是完全独立的,它们的连线在空间中会大量交叉

Reflow过程之重拟合

从当前耦合中训练一个新的速度场 ,有损失函数:

其中:

轨迹设定为直线插值:

Reflow过程之新耦合

利用新学到的速度场,从新的噪声样本 出发,求解ODE:

更新耦合关系:

Rethinking Reflow

重复应用 Rectify 算子,生成一系列逐步优化的匹配关系:

  • Reflow不再是死板的随机配对,而是寻找一种最优的、冲突最少的传输方案

  • 这种替换能诱导出更低曲率的路径,通过不断迭代,逐步降低路径曲率,从而显著提升数值稳定性和样本与噪声之间的对齐性

  • 这种稳定的传输路径使得训练更加简单,同时因为轨迹变直,在推理时使用极简单的求解器(如 1 步欧拉法)也能获得极高的生成质量

  • 该框架不仅适用于正则线性路径,也适用于一般仿射形式

Reflow的性质

Reflow 不会增加运输成本

为一个凸代价函数(例如,),每个 Rectify 步骤生成一个新的耦合 ,其代价不劣于原始情况,假设存在理想速度场 ,则有:

Reflow 使路径变直

定义路径 的直度泛函为:

对于修正路径 ,有: