Flow Matching
Flow Matching 可以理解为一种训练连续生成过程的方法:先设定一条从简单分布到数据分布的概率路径,再训练一个速度场,让样本沿着这条路径移动。
设起点分布为
如果把样本看成一群粒子,那么模型要学的就是:粒子在时刻
记号说明
不同论文会采用不同方向的记号。这里使用 CNF / Flow Matching 中比较自然的一套:
表示起点,通常是高斯噪声; 表示终点,通常是数据分布。
一些 diffusion 论文会把干净数据写成
从 CNF 开始:流是怎么定义的
Flow Matching 建立在 Continuous Normalizing Flow(CNF)的语言上。CNF 用一个连续时间 ODE 描述样本的运动:
这里,
如果从简单分布
再按照上面的 ODE 从
概率密度如何随流变化
单个样本沿 ODE 运动,一整群样本的密度
这条方程表达的是概率质量守恒。取空间中的一个区域
由散度定理可得
代回上式:
由于区域
CNF 为什么适合生成建模
CNF 的好处在于,它同时给出了采样和密度变化的描述。沿着轨迹
从
因此,如果速度场足够好,模型既可以从噪声生成样本,也可以通过散度积分估计似然。实际训练里,直接用似然训练 CNF 往往需要反复求解 ODE,成本较高。Flow Matching 提供了一条更直接的训练路线。
Flow Matching 的目标
假设我们已经指定了一条概率路径
是容易采样的简单分布,例如标准高斯; 是数据分布,或者至少接近数据分布。
如果存在一个速度场
那么可以直接训练模型速度场
这个损失的含义很清楚:随机取一个时间
训练难点在于,真实情况下我们通常没有
Conditional Flow Matching
Conditional Flow Matching(CFM)从更容易构造的条件路径入手。
设
换句话说,整体路径由许多更小的条件路径平均得到。我们不必先写出完整的边缘分布,只要每条条件路径容易采样、速度场容易计算,就能训练。
边缘速度场的来源
假设每条条件路径都有对应的条件速度场
对
交换积分和散度:
于是可以定义边缘速度场:
这样就有
也可以写成条件期望形式:
也就是说,某个时刻、某个位置上的边缘速度,是所有经过该位置的条件路径速度的平均。
CFM 损失
既然边缘速度场可以由条件速度场平均得到,训练时可以直接拟合条件速度:
这个目标看起来与原始 FM 损失不同,但它们的梯度一致;更具体地说,两者只差一个与
固定
边缘速度场是条件期望:
平方误差可以分解为
展开即可看到原因。把
则
对条件分布取期望时,交叉项消失,因为
再对
因此
这解释了为什么训练时可以避开难算的边缘速度场,只回归条件速度场。
Gaussian 条件路径
一种常用选择是高斯条件路径。给定数据样本
其中,
使
使
重参数化
高斯路径可以写成
这样可以直接采样训练点
条件速度场
对上式按时间求导,保持
训练时模型看到的是
代回,得到
其中,
使用重参数化形式时,条件速度还可以写成
于是 CFM 目标可以写成
这就是实际实现中常见的形式:采样
与 diffusion 的关系
Diffusion 中常见的加噪形式可以写成
这也是一类高斯条件路径,对应
因此条件速度为
也可以写成只依赖
对高斯条件分布
条件 score 为
因此条件速度也能写成
这个式子把 velocity matching 和 score matching 联系起来:对于高斯路径,速度与 score 之间存在直接的代数关系。Flow Matching 可以直接学习 ODE 速度场,而不必先训练 score 再转换为 ODE。
直线路径与 Optimal Transport
Flow Matching 的路径不必固定为 diffusion path。另一类常用路径是起点和终点之间的线性插值。
设
对时间求导:
所以条件速度场为
对应的训练目标是
如果 coupling
Rectified Flow 也使用类似的线性插值形式:
并把边缘速度场写为
这和前面得到的条件平均形式一致。
训练与采样
训练时,Flow Matching 更像监督回归。给定一批数据,随机采样时间
以高斯条件路径为例:
每一步训练只需要前向计算和均方误差损失。模型自己的 ODE 不参与训练阶段的数值求解。
采样阶段则需要解 ODE:
从
因此,simulation-free training 指的是训练过程不需要模拟模型 ODE;生成样本时仍然要进行 ODE 积分。
Flow Matching 的特点
Flow Matching 的训练目标直接,形式上接近普通监督学习。它避免了 CNF 训练中反复通过 ODE 求解似然的成本,也允许研究者自由设计概率路径。Gaussian path、diffusion path、OT path 和直线路径都可以放进同一个框架里讨论。
这种自由度也带来新的选择问题。路径设计会影响训练难度、采样效率和生成质量。路径太曲折,模型需要学习更复杂的速度场;coupling 质量不好,线性路径也可能难以建模;速度场不够平滑,采样时的 ODE solver 可能需要更多步数。
Flow Matching 的价值不只在于一个新的损失函数,也在于它把生成建模重新表述为“设计一条合适的概率路径,并学习对应速度场”的问题。
总结
Flow Matching 为一条从噪声分布到数据分布的概率路径学习速度场。边缘形式的目标是
实践中常用条件路径训练:
连接二者的关键关系是
边缘速度场是条件速度场在同一时空点上的条件平均,因此可以通过回归条件速度来学习整体流。Flow Matching 训练阶段通常不需要求解模型 ODE,采样阶段再沿学习到的速度场从噪声积分到数据。