Lecture 3 - Flow Matching

1 问题设定与 Flow 基础

前两讲介绍了两条生成路线:

  • DDPM:人为定义加噪过程,训练网络预测 noise,再学习反向去噪;
  • Score Matching:学习 formula,把它作为走向高密度区域的“指南针”。

Lecture 2 又把二者统一到 SDE:

formula

反向生成需要 score,而 Probability Flow ODE 可以把同一组边际分布写成确定性动力学。

这一讲提出第三种 generation paradigm:Flow Matching(FM)。它不先学习 noise,也不先学习 score,而是直接学习一个随时间变化的 velocity field:

formula

这个速度场负责把一个容易采样的初始分布整体运输到真实数据分布。

整堂课的逻辑是:

把生成理解为 probability mass transport
        ↓
用 ODE 描述单个样本如何移动
        ↓
用 continuity equation 描述整个分布如何变化
        ↓
理想的 marginal velocity 无法直接监督
        ↓
先解决“分布到单个数据点”的条件问题
        ↓
聚合 conditional paths 得到 marginal path
        ↓
证明 Conditional Flow Matching loss 可训练且等价
        ↓
直接积分学习到的 ODE 进行生成
        ↓
分析轨迹弯曲问题,并用 Reflow 拉直轨迹

学完后,应当能够回答:

  1. Trajectory、flow、probability path 和 vector field 分别是什么?
  2. Velocity 和 score 都是向量,它们有什么本质区别?
  3. Continuity equation 为什么表达了 probability mass conservation?
  4. Flow Matching 为什么不直接回归 marginal velocity?
  5. Conditional Flow Matching 如何把不可计算目标变成简单 MSE?
  6. 为什么训练时画的是直线,推理轨迹却可能是曲线?
  7. Rectified Flow 与 Reflow 如何让生成轨迹更直?
  8. Flow Matching 和 Diffusion、Score Matching 的关系是什么?

1.1 首先记住:本讲的时间方向反过来了

这是课程开头最重要的符号提醒。

在 DDPM、Score Matching 和 SDE 的常见记号中:

t = 0       clean data
t = T       noise

而 Flow Matching 文献通常采用:

t = 0       initial distribution, usually noise
t = 1       target distribution, usually data

本文遵循本讲和 Flow Matching 原论文的约定:

formula

通常令:

formula

因此本讲的生成方向是:

formula

这只是领域惯例发生了变化,不代表生成问题本身改变了。阅读公式时必须先确认时间约定,否则很容易把 forward 与 reverse 的方向看反。


1.2 怎样把生成理解成“运输”?

Flow Matching 的目标不是逐个创造样本,而是把整个 probability mass 从 formula 搬运到 formula。

想象初始时刻有大量粒子服从 Gaussian。我们为每个时间、每个位置规定一个速度,让所有粒子一起移动。若设计正确,到 formula 时,粒子总体形成的分布就应当是 formula。

这里至少有四个容易混淆的对象。

1.2.1 Trajectory:一个样本走过的路径

给定初始点 formula,单个粒子随时间的位置记为:

formula

函数 formula 是这一个粒子的 trajectory。

1.2.2 Flow:初始点到当前点的映射

Flow 记作:

formula

它接收一个初始条件 formula,返回该粒子在时间 formula 的位置。改变 formula,便得到一族 trajectories,因此 flow 也可以理解为所有轨迹的集合。

最终希望:

formula

这里 pushforward 记号表示:如果 formula,那么 formula 应服从 formula。

1.2.3 Probability path:群体在每个时刻的分布

formula

表示粒子群在时间 formula 的概率密度,并满足边界条件:

formula

连接同一对端点分布的 probability path 并不唯一。可以直线插值,也可以绕路;只要起点和终点正确,就构成候选路径。

1.2.4 Vector field:在何时何地往哪里走

Velocity field 或 vector field 记为:

formula

输入当前位置 formula 和时间 formula,输出一个与 formula 同维度的向量,表示移动方向和速度。

1.2.5 四个概念可以这样区分:

对象 回答的问题
Trajectoryformula 某一个粒子走了哪条路?
Flowformula 给定起点,时间formula 会到哪里?
Probability pathformula 时间formula 时整群粒子如何分布?
Velocity fieldformula 在位置formula、时间 formula 应怎样移动?

1.3 Velocity 和 Score 有什么区别?

总结:

  • score描述固定时刻概率分布的空间几何
  • velocity描述概率分布随时间演化的运输动力学

上一讲的 score 为:

formula

本讲的 velocity 为:

formula

二者都是向量场,也都可以参与生成,但语义不同:

  • Score 是 compass:指出当前分布密度增长最快的方向;(观察当前分布的空间结构)
  • Velocity 是 highway instruction:直接规定某时某地应该朝哪个方向、以多快速度移动。(不一定指向高密度区域)

Score 由当前密度 formula 的局部几何决定;velocity 则依赖我们选择怎样运输概率质量。同一个 probability path 可能有不同表示,而连接同一对端点分布的路径更是有无数种。

在 diffusion 的 PF-ODE 中,可以由 score 构造 velocity:

formula

Flow Matching 则选择直接学习 formula,省去“先学 score、再转成 velocity”的中间步骤。


1.4 Velocity 如何决定单个样本?

单个样本服从 ODE:

formula

给定 formula 后,对这个 ODE 从 formula 积分到 formula,就得到一条 trajectory 和最终样本 formula。

积分形式为:

formula

1.4.1 为什么课程强调 Lipschitz continuity?

如果 vector field 关于 formula 是 Lipschitz continuous,即存在常数 formula 使:

formula

那么给定初始条件后,ODE 的解在适当条件下是唯一的。这意味着一个起点不会同时分叉成两条不同轨迹。

课程用反例说明非 Lipschitz 场可能破坏唯一性。若:

formula

则:

formula

和

formula

都满足方程和初始条件。

唯一性很重要,因为 flow 希望定义稳定的起点到终点映射。课程后面也借此解释名称:在满足适当正则性时,vector field 决定唯一 flow,因此“匹配 velocity”也就在匹配它生成的 flow。


1.5 Velocity 如何决定整个分布?

ODE 描述一个粒子,生成模型却关心一整个分布。连接二者的桥梁是 continuity equation。

1.5.1 先理解 divergence

对向量场 formula,divergence 定义为:

formula

它是一个标量,描述局部“流出减去流入”的程度:

  • divergence 为正:局部净流出;
  • divergence 为负:局部净流入;
  • divergence 为零:流入与流出平衡。

但 probability density 的变化不能只看 velocity formula。同样的速度,在高密度区域和低密度区域携带的 probability mass 不同。真正应计算 divergence 的是 probability flux:

formula

1.5.2 Continuity equation

质量守恒要求:一个位置的密度增加量等于流入减去流出。因此:

formula

这就是 continuity equation。

负号来自 divergence 的定义:divergence 衡量净流出,而密度随时间的增量是净流入。

现在我们有两种互补视角:

单样本视角:dx_t / dt = u_t(x_t)
分布视角:  partial_t p_t = -div(p_t u_t)

如果 formula 满足 continuity equation,就说 formula generates probability path formula。


2 Conditional Flow Matching

Continuous Normalizing Flow 可以利用 continuity equation 推导瞬时变量替换公式:

formula

从而:

formula

理论上可以在训练时积分 ODE,通过 maximum likelihood 学习 vector field。但每次训练都要:

  1. 数值求解 ODE;
  2. 计算 velocity 的 divergence;
  3. 反向传播穿过 solver。

这会使训练缓慢且昂贵。

Flow Matching 的目标正是避开训练时的 ODE simulation:如果能直接为随机的 formula 构造 velocity label,就可以像普通监督学习一样回归速度。

理想的 Flow Matching loss 是:

formula

问题是,能把整个 formula 运输到 formula 的 marginal vector field formula 并不直接可见。

这和上一讲很相似:Score Matching 想回归未知 marginal score;Flow Matching 想回归未知 marginal velocity。解决策略也相似:先退回一个条件化后可解析的简单问题。


2.1 怎样先解决一个简单的条件运输问题?

2.1.1 把目标分布先缩小成一个点

从数据分布采样一个目标点:

formula

先不考虑整个 formula,而只考虑把初始分布 formula 运输到以 formula 为中心的 Dirac distribution。这个问题以 formula 为条件,因此称为 conditional problem。

2.1.2 Conditional Gaussian probability path

课程采用 conditional Gaussian path:

formula

可通过重参数化采样:

formula

当 formula 时:

formula

当 formula 时,方差趋于零:

formula

所以这条路径从标准 Gaussian 出发,最终收缩到以 formula 为支撑的 Dirac distribution。采样式就是在 noise point 与 data point 之间做 straight-line interpolation。

2.1.3 Conditional vector field

对采样式求导:

formula

利用 formula 消去起点,得到 conditional vector field:

formula

如果 formula,则进一步得到:

formula

也就是说,对一对固定端点,整条直线上的条件速度恒定。

课程指出,可以把 conditional path 和 conditional vector field 代入 continuity equation,验证这个 vector field 确实 generates 该 Gaussian path。


2.2 怎样从“到一个点”恢复“到整个数据分布”?

每个 formula 都定义了一条 conditional probability path。把所有真实数据点按 formula 混合,就得到 marginal probability path:

formula

检查端点:

formula

而在 formula 时:

formula

因此它确实连接了 noise distribution 和 data distribution。

2.2.1 Marginal vector field 是条件速度的后验平均

课程构造:

formula

Bayes' rule 给出:

formula

所以:

formula

这个式子的直觉非常重要:到达同一个 formula 的训练配对可能提出不同速度,marginal velocity 就是对这些可能方向按后验概率加权后的平均。

把这个定义与 marginal path 代入 continuity equation,可以证明 formula generates formula。于是,若:

formula

并沿着:

formula

积分到 formula,最终样本分布就是 formula。

请注意,这个结论保证的是终点的分布正确,不保证某个随机起点必须抵达训练时与它配对的那个具体 formula。


2.3 Conditional Flow Matching 为什么可训练?

理想 FM loss 需要未知 marginal velocity:

formula

Conditional Flow Matching 改为使用已知 conditional velocity:

formula

两者的 loss 数值未必相等,但对模型参数的梯度相同:

formula

为什么?展开平方项后:

formula
  • formula 在两种期望下相同;
  • target norm 不依赖 formula,不会影响参数梯度;
  • 交叉项利用 tower property 和 marginal velocity 的条件期望定义后相同。

因此可以用 tractable conditional target 训练,却得到理想 marginal Flow Matching 的同一优化方向。

在直线路径下,最终 loss 极其简单:

formula

其中:

formula

整段推导可以压缩为:

1. 先为“noise distribution -> 单个 x_1”设计可解析路径
2. 用 continuity equation 找到 conditional velocity
3. 混合所有 x_1,构造 marginal path 与 marginal velocity
4. 证明 CFM 与理想 FM 对 theta 具有相同梯度
5. 得到简单的 velocity regression MSE

这与 Lecture 2 的 DSM 有相同方法论:先构造容易计算的 conditional target,再证明它足以学到想要的 marginal object。


3 训练与推理

每次训练执行三步。

3.1 采样两个端点和时间

formula

这里通常独立采样 formula 与 formula,形成一个 training pair。

3.2 构造中间状态和监督速度

formula
formula

3.3 回归 velocity

把 formula 输入网络,优化:

formula

训练过程中不需要积分 ODE,也不需要计算 divergence。这正是 Flow Matching 相比 likelihood-trained Continuous Normalizing Flow 的工程优势。

3.4 Flow Matching 的推理配方

3.4.1 从初始分布采样

formula

3.4.2 数值积分 ODE

使用学习到的 velocity:

formula

例如 Euler method:

formula

从 formula 逐步积分到 formula。

3.4.3 得到图像

理论上:

formula

🚀️ Flow Matching 的生成过程从一开始就是 deterministic ODE:给定相同的初始噪声、模型和 solver,轨迹固定。多样性仍来自不同的初始 formula。


4 Rectified Flow 与加速

这是本讲最容易误解的地方。

训练时,每一对独立采样的 formula 都定义一条直线,并提供恒定 target velocity formula。但网络并不知道配对身份,只接收 formula。

如果多条条件路径在相同或相近的 formula 区域相交,它们会给出不同 target velocities。一个确定性 vector field 在同一个 formula 只能输出一个向量。MSE 的最优解因此是条件平均:

formula

这个平均方向通常不等于任意一条训练直线的方向。粒子走到下一位置后又重新查询 vector field,于是实际 marginal trajectory 会逐渐弯曲或“rewire”。

训练看到的对象:许多随机配对的 conditional straight lines
模型学到的对象:这些方向在每个 (x,t) 上的 conditional mean
推理走的对象:marginal vector field 生成的 trajectory

即使两条路径没有在完全相同的 formula 相交,neural network 的平滑归纳偏置也会让附近时空位置相互影响,因此问题仍可能出现。

4.1 这会破坏最终分布吗?

在理论条件和精确学习下不会。前面已经证明 marginal velocity generates 正确的 marginal probability path,所以最终仍到达 formula。

问题主要在于效率与学习复杂度:

  • 学到的路线与训练配对直线不同,vector field 更复杂;
  • 弯曲轨迹不能用一次大步 Euler 准确逼近;
  • 为控制 numerical error,需要更多 NFE。

4.2 为什么不能直接套用 DPM-Solver?

DPM-Solver 利用 diffusion ODE 的已知 semilinear structure,解析处理 linear part,只近似模型项。

Flow Matching 直接学习完整 velocity formula,一般不存在同样的已知线性分解。因此课程强调:这里没有可以原样套用的 DPM-Solver“魔法”,通常仍需 Euler、Runge-Kutta 等传统 ODE solver。


4.3 Rectified Flow 如何把轨迹拉直?

课程把初始训练得到的模型称为 1-Rectified Flow。由于随机独立配对产生冲突,它的实际轨迹可能弯曲。

4.3.1 Reflow 的核心想法

既然模型已经学会从 Gaussian 生成数据,可以让它自己产生更合理的端点配对:

  1. 采样 formula;
  2. 用当前模型积分 ODE,得到终点:
formula
  1. 保存新 pair formula;
  2. 在新 pair 之间重新画直线:
formula
  1. 用 target velocity formula 重新训练,得到 2-Rectified Flow。

这就是 Reflow。还可以重复生成新 pairs 并继续训练更高阶 rectified flow。

4.3.2 为什么新配对更好?

最初的 formula 与 formula 是独立随机配对,直线之间容易冲突。Reflow 的终点是当前 ODE 实际从该起点送达的位置,因此新 pair 与已有 transport mapping 一致。用这些 pairs 重训,会减少相互矛盾的方向,让新的 vector field 更接近直线运输。

4.3.3 为什么终点分布仍然正确?

若原模型的 flow 把 formula push forward 到 formula,则:

formula

Reflow 改变的是 formula 与终点之间的 coupling,而不是端点的 marginal distributions。论文还可通过 continuity equation 与唯一性结果证明重新构造的 flow 保持目标分布。

4.3.4 为什么轨迹会越来越直?

Rectified Flow 论文定义了衡量实际 velocity 与端点平均速度偏差的 straightness quantity。通过 conditional variance decomposition 和 telescoping argument,可以证明 Reflow 不增加该弯曲度,并在理想条件下逐轮改善。

直觉上,新训练目标不再要求模型协调任意随机配对,而是模仿自己已经实现的 transport coupling,因此方向冲突减少,路径更直。

4.3.5 Reflow 不是免费的

实际不会无限重复 Reflow。课程指出通常做 1 至 2 次,因为误差会累积:

  • 当前 neural velocity 本身存在 approximation error;
  • 生成新 pairs 时存在 ODE discretization error;
  • 每轮又在近似数据上重新训练。

因此存在 quality-speed trade-off:更直的轨迹允许更简单的 Euler 和更少 NFE,但额外训练与误差积累可能降低最终质量。


4.4 为什么叫 Flow Matching,而不是 Velocity Matching?

训练 loss 表面上匹配的是 velocity:

formula

课程给出两层解释:

  1. 历史上这条路线来自 Normalizing Flow 与 Continuous Normalizing Flow,名称沿用了 flow;
  2. 在 Lipschitz continuity 等条件下,vector field 为每个初始条件定义唯一 trajectory,因此 velocity field 与其生成的 flow 紧密对应。

所以匹配 velocity 也等价于确定其 flow。这里的 flow 不是“流量数值”,而是随时间把初始点映射到当前位置的一族映射 formula。


5 方法对照与概念框架

维度 Discrete Diffusion Score-based Diffusion Flow Matching
常见时间方向 dataformula -> noise formula dataformula -> noise formula noiseformula -> data formula
Forward / training path 离散 Gaussian corruption Forward SDE / noisy marginals 选定的 interpolation path
网络学习对象 Noise Score Velocity
典型目标 Noise prediction MSE DSM CFM velocity MSE
基本生成动力学 Reverse Markov chain Reverse-time SDE ODE
是否随机 通常随机 通常随机 天生确定
确定性 counterpart DDIM Probability Flow ODE 无需转换
常见数值工具 DDPM/DDIM sampler Euler-Maruyama、ODE solver、DPM-Solver Euler、RK 等 ODE solver

它们解决的是同一类问题:把 easy distribution 变成 data distribution;区别在于选择什么中间路径、学习什么局部量,以及如何执行生成。

Stochastic Interpolants 提供了更统一的框架。在适当设定下,noise prediction、score 与 velocity 彼此相关;知道其中两个,可以推导第三个。但这不意味着三种训练范式在所有设定下完全相同。


5.1 把模型、路径和求解器分开

层次 本讲中的对象 作用
Coupling 如何配对formula 与 formula 决定 conditional paths 是否冲突
Probability path formula 规定分布如何从formula 过渡到 formula
Training target Conditional velocity 为网络提供可计算监督
Learned dynamics formula 定义生成轨迹
Numerical solver Euler、RK 等 用有限 NFE 近似 ODE 解
Reflow 重新构造 coupling 并训练 降低轨迹弯曲度,改善少步采样

改变 solver 不会改变训练目标;改变 coupling 或 Reflow 则会改变训练数据中的速度监督。这些属于不同层次的问题。


6 总结与速查

6.1 建模链

initial distribution -> probability path -> target distribution
                              ↑
                  generated by velocity field

6.2 数学链

dx / dt = u_t(x)                 单样本运动
        ↓
partial_t p_t = -div(p_t u_t)    群体质量守恒

6.3 训练链

未知 marginal velocity
        ↓ 条件化到单个 x_1
解析 conditional path 与 velocity
        ↓ 聚合
marginal path 与 marginal velocity
        ↓ 梯度等价
Conditional Flow Matching MSE

6.4 加速链

随机独立配对 -> velocity averaging -> curved marginal trajectories
                                           ↓
                            model-generated coupling
                                           ↓
                                       Reflow
                                           ↓
                             straighter, fewer-step paths

6.5 建议记住的 8 个公式

6.5.1 Flow map

formula

6.5.2 Sample ODE

formula

6.5.3 Continuity equation

formula

6.5.4 Linear conditional path

formula

6.5.5 Conditional velocity

formula

6.5.6 Marginal velocity

formula

6.5.7 Conditional Flow Matching loss

formula

6.5.8 Euler inference

formula

6.6 容易混淆的概念

  1. 本讲 formula 是 noise,formula 是 data。 这和前两讲的常见约定相反。
  2. Flow 不等于 trajectory。 Trajectory 是一个起点的路径;flow 是初始点到各时刻位置的映射族。
  3. Velocity 不等于 score。 Velocity 直接规定运动;score 描述当前密度的局部上升方向。
  4. Continuity equation 对 probability flux 求 divergence。 不能只对 velocity 求 divergence 来表达密度守恒。
  5. CFM 回归 conditional velocity,却学到 marginal velocity。 原因是 MSE 的条件期望性质和两种 loss 的梯度等价。
  6. 训练中的直线不是推理时逐条复现的路线。 网络没有配对标识,只能在每个 formula 输出平均后的唯一速度。
  7. Crossing 不会自动破坏目标边际分布。 它主要增加 vector field 和数值积分的复杂度。
  8. 独立端点 pairing 是一种 coupling。 改变 coupling 可以改变路径复杂度而保持端点 marginals。
  9. Flow Matching 推理本来就是 deterministic。 它不需要像 DDPM 那样先构造 DDIM counterpart。
  10. Deterministic 不代表没有生成多样性。 多样性来自不同初始 Gaussian samples。
  11. DPM-Solver 不能原样用于一般 Flow Matching ODE。 它依赖 diffusion ODE 的特殊半线性结构。
  12. Reflow 是再次生成数据并训练,不只是换 solver。 它改变训练 coupling,使路径更直。
  13. Reflow 次数并非越多越好。 模型误差和离散化误差会逐轮累积。
  14. Straight path 的优势是 numerical。 曲率越小,Euler 等低阶方法用少量步骤时越准确。

6.7 一张最终知识图

             x_0 ~ Gaussian                  x_1 ~ data
                    \                          /
                     \ independent pairing   /
                      +----------------------+
                                  |
                  x_t = (1-t)x_0 + t x_1
                                  |
                conditional velocity = x_1-x_0
                                  |
                    CFM velocity regression
                                  |
                        learned u_theta(x,t)
                                  |
                      dx/dt = u_theta(x,t)
                                  |
                         generated data
                                  |
                  model-generated endpoint pairs
                                  |
                               Reflow
                                  |
                  straighter paths and fewer NFEs

6.8 最简总结

  • Flow Matching:把生成建模为从 formula 到 formula 的 probability mass transport;
  • Velocity field:直接告诉粒子在每个时空位置如何移动;
  • ODE:描述单个样本沿 velocity field 的 trajectory;
  • Continuity equation:描述 velocity 如何在保持质量守恒的条件下推动整个分布;
  • Conditional path:把复杂的 distribution-to-distribution 问题拆成 distribution-to-point 问题;
  • CFM:用可计算 conditional velocity 训练,并获得与 marginal FM 相同的参数梯度;
  • Linear interpolation:令 formula,监督速度为 formula;
  • Marginalization:同一位置的不同条件方向被取条件平均,因此实际轨迹可能弯曲;
  • Rectified Flow / Reflow:用当前模型产生更合理的 coupling,再训练出更直的路径;
  • 少步生成:路径越直,Euler 等简单 solver 用较少 NFE 时越准确。
posted on 2026-09-01 16:43  牛牛的智驾笔记  阅读(46)  评论(0)    收藏  举报