Flow Matching
Flow Matching 技术概览
Flow Matching 是一种用于训练连续正向流动(Continuous Normalizing Flows, CNF) 的新型框架。它通过直接回归向量场(Vector Field)来避免扩散模型中复杂的随机微分方程(SDE)求解过程,从而实现更快的推理速度和更好的生成质量。
1. 可视化流匹配
2. 核心思想
在传统的扩散模型中,我们通常将数据转换为噪声,然后再学习如何逆转这个过程。而 Flow Matching 的核心在于:给定起始分布(噪声)和目标分布(数据),我们直接学习一个向量场,让样本沿着这个向量场定义的轨迹“流”向目标。
核心优势
- 确定性轨迹:相比于扩散模型的随机性,FM 学习的是确定的常微分方程(ODE)。
- 训练效率:不需要模拟整个 ODE 轨迹,通过路径采样即可进行可扩展的训练。
- 直线轨迹(Optimal Transport):FM 可以被设计为学习直线路径,这是生成样本的最快路径。
3. 数学定义
假设我们有一个概率密度路径 ,其中 , 是噪声分布, 是数据分布。Flow Matching 的目标是找到一个向量场 ,使得其定义的 ODE 能够生成该密度路径。
目标函数 (Flow Matching Objective)
我们定义一个条件概率路径 和对应的条件向量场 。FM 的损失函数简化为对该向量场的回归:
其中:
- (真实数据)
- (在 时刻的插值样本)
4. 常见的 Flow 路径:最优传输 (Optimal Transport)
在实践中,最常用的形式是 Conditional Flow Matching (CFM),尤其是具有直线轨迹的路径。
高斯条件路径
如果我们取 ,则直线路径(Optimal Transport path)可以表示为:
- 样本插值:
- 目标向量场:
这种设计使得模型学习到的位移是恒定的,样本在推理时几乎沿着直线移动。
5. 与扩散模型 (Diffusion) 的区别
| 特性 | 扩散模型 (Diffusion) | Flow Matching |
|---|---|---|
| 数学基础 | 随机微分方程 (SDE) | 常微分方程 (ODE) |
| 轨迹 | 弯曲且带噪声 | 可以是完美的直线 (Optimal Transport) |
| 推理步数 | 通常需要较多步数 (50-100) | 极少数步数即可 (甚至 1-5 步) |
| 预测目标 | 噪声 () 或 原始数据 () | 向量场 (Velocity/Vector Field) |
6. 实现流程
- 采样:从数据集中采样 ,从高斯分布中采样 。
- 插值:选取随机时间 ,计算 。
- 预测:将 输入神经网络(如 U-Net 或 DiT),预测向量场 。
- 损失计算:计算预测值与真值 之间的均方误差。
- 推理:使用 ODE 求解器(如 Euler 或 RK4)从 积分到 。
Flow Matching
https://huan-yin.github.io/2026/03/18/Flow-Matching/