Flow Matching 笔记¶
元信息¶
- Topic: generative-modeling
- Status: evergreen
- Last updated: 2026-03-29
- Source type: derivation note
- Primary references:
- Flow Matching for Generative Modeling
- 用于比较的 diffusion 与 score-based 教程
一句话总结¶
Flow matching 学习一个随时间变化的速度场,让 ODE 把简单基分布运输到数据分布,而它的训练目标之所以成立,是因为条件速度回归在最优时会恢复出边缘 transport field。
背景 / 问题设定¶
DDPM 和 score-based model 往往从随机加噪过程出发,而 flow matching 更直接地从 transport 视角出发:
- 先选一条连接简单源分布与数据分布的概率路径 \( \{p_t\}_{t\in[0,1]} \);
- 再用速度场描述这条路径;
- 最后直接回归这个速度场。
这种看法的吸引力在于,它把生成过程更明确地写成连续时间的概率质量运输,而不是反向去噪。
记号¶
- \( p_0 \):源分布,常取 \( \mathcal{N}(0,I) \)。
- \( p_1 \):目标数据分布。
- \( p_t \):时刻 \( t\in[0,1] \) 的中间边缘分布。
- \( x_t \):粒子在时刻 \( t \) 的状态。
- \( v_t(x) \):边缘速度场。
- \( p_t(x\mid x_0,x_1) \):条件概率路径。
- \( u_t(x\mid x_0,x_1) \):条件速度场。
- \( \mu_t(x_0,x_1) \):条件路径均值。
- \( \sigma_t \):条件路径尺度。
- \( \pi(dx_0,dx_1) \):端点耦合分布。
核心思想¶
Flow matching 从下面的 ODE 出发:
如果粒子按照这条 ODE 运动,且初值满足 \( x_0\sim p_0 \),那么诱导出的密度就会从 \( p_0 \) 演化到 \( p_1 \)。真正困难的地方在于怎样学习 \( v_t \)。Flow matching 的做法是,先构造一条条件路径,使得目标速度在解析上可得。
详细推导¶
推导块 1:从 ODE 动力学到 continuity equation¶
假设粒子满足
设 \( p_t(x) \) 是 \( x_t \) 的密度。对任意光滑测试函数 \( \varphi(x) \),有
沿着粒子轨迹使用链式法则:
对其取期望:
再做分部积分:
并假设边界项消失。
于是
因为这对任意测试函数 \( \varphi \) 都成立,所以得到 continuity equation:
这就是 flow matching 背后的密度守恒定律。
推导块 2:条件高斯路径与条件速度¶
选择一条连接端点 \( x_0 \sim p_0 \) 与 \( x_1 \sim p_1 \) 的条件路径:
对它做重参数化:
对时间求导:
再由重参数化公式解出 \( \epsilon \):
代回即可得到条件速度目标:
这个目标能写成闭式,正是因为我们事先把条件路径选成了解析友好的形式。
对于常见的线性均值路径
有
因此
这里的推导显式使用了重参数化与变量代换。
推导块 3:为什么条件速度回归能恢复边缘速度场¶
训练目标写成
其中 \( x_t\sim p_t(\cdot\mid x_0,x_1) \)。
固定时间 \( t \) 与位置 \( x \),点态回归问题为
把平方项展开:
对 \( v \) 求导并令其为零:
因此最优预测器为
现在检查这个场是否真的推动边缘路径。边缘密度是
对时间求导,并利用条件 continuity equation:
把 divergence 移到积分外:
根据条件期望的定义,
因此
也就是说,回归最优解恰好就是实现整个概率路径的边缘速度场。
直觉 / 理解¶
- continuity equation 表示粒子运动时概率质量守恒。
- 条件路径为我们提供了容易获得的局部监督信号。
- 条件期望则把这些局部信号拼接成了正确的边缘 transport field。
我会在理解 flow matching 时主动停止用“去噪”来想,而转成“概率质量如何移动”的视角,这样会清楚很多。
与其他方法的关系¶
与 DDPM 的关系¶
DDPM 用的是离散随机链,并学习反向去噪转移;flow matching 用的是连续时间概率路径,并学习速度场。两者都属于 path-based generative methods,但局部监督信号不同:
- DDPM 的目标:噪声或后验均值。
- Flow matching 的目标:速度。
可以参见 DDPM 笔记 来看离散高斯链的版本。
与 Score Matching 的关系¶
Score-based model 学习的是
对一个 SDE
它对应的 probability-flow ODE 为
所以 score 场本身也会诱导出一个确定性的速度场。Flow matching 只是直接从这个 ODE 风格的视角出发,而不是先写 SDE 再推出来。这就是它与 Score Matching 笔记 的主要桥梁。
ODE、SDE 与 continuity equation¶
- ODE:描述确定性的粒子运动。
- SDE:描述带扩散噪声的随机粒子运动。
- continuity equation:描述所选动力学下密度如何演化。
它们分别对应轨迹层面、随机层面和密度层面的三种互补描述。
我的笔记 / 开放问题¶
- 条件期望那一步的证明是 flow matching 的概念中心;如果不把这一步看清楚,方法就很像一个任意的回归技巧。
- 当把它和 score-based probability-flow ODE 对照起来时,flow matching 的 transport 视角会特别清楚。
- 一个值得继续补充的方向,是比较 rectified flow、optimal transport flow matching 和经典 score-based probability-flow ODE。