Flow Matching 算法简介:从 Diffusion 到连续流

目录

[一、Diffusion 留下的问题](#一、Diffusion 留下的问题)

[二、Flow Matching 的核心](#二、Flow Matching 的核心)

[三、数学框架:流、向量场与 ODE](#三、数学框架:流、向量场与 ODE)

[3.1 流(Flow)](#3.1 流(Flow))

[3.2 向量场(Vector Field)](#3.2 向量场(Vector Field))

[3.3 与 Diffusion 的关键区别](#3.3 与 Diffusion 的关键区别)

[四、Conditional Flow Matching:让训练变得简单](#四、Conditional Flow Matching:让训练变得简单)

[4.1 线性插值路径](#4.1 线性插值路径)

[4.2 目标向量场:两个公式](#4.2 目标向量场:两个公式)

五、训练目标

六、采样推理过程

[6.1 Eluer 方法](#6.1 Eluer 方法)

[6.2 Midpoint 方法(更常用)](#6.2 Midpoint 方法(更常用))

[6.3 与 Diffusion 对比为什么步数更少](#6.3 与 Diffusion 对比为什么步数更少)

七:路线演进总结


本文介绍 Flow Matching 的核心原理,并说明其适合用来建模连续动作分布的原因,以及它是如何衔接到以 为代表的一类 VLA 动作生成头中的。

一、Diffusion 留下的问题

ACT 用 CVAE 实现了用一个隐变量 编码动作模式,一次解码出 action chunk;Diffusion Policy 用一串隐变量 逐步去噪,多模态建模能力更强。但是Diffusion 有一个明显的缺点:推理速度慢。

|--------------------------|--------------|-----------------------------------------|
| 方法 | 推理步数 | 推理方式 |
| ACT(CVAE) | 1 步 | 采样 ,一次解码 |
| Diffusion Policy(DDPM) | 10 ~ 1000 步 | 从噪声逐步去噪 |
| Diffusion Policy(DDIM加速) | ~ 10 步 | 跳步去噪 |

即使用 DDIM 加速,diffusion 仍需多步迭代,在实际机器人控制中,每一步都要跑一次完整的神经网络前向传播,非常耗时。Diffusion 需要多步的一个重要原因,为 Diffusion 的前向过程带有随机性,导致常见采样轨迹更像是逐步修正、逐步去噪的过程;步数过少时,离散化误差和建模误差很难收敛。

二、Flow Matching 的核心

Flow Matching 的方法很直接,不走弯路,直接学一个向量场,把简单分布沿直线推到目标分布。

举一个物理类比:

Diffusion 像是墨水滴入水中(扩散),然后试图逆转这个随机过程--路径弯弯曲曲,需要很多步才能走回来;

Flow Matching 像是给每个粒子指定一个速度方向,让它们沿着一条规则的连续路径从起点流到终点。在常见的线性插值设定下,这条路径会更直观,也更容易高效求解。

更具体地说:

1)起点 :从一个简单分布(如标准正态 采样一个点

2)终点 :数据分布中的一个真实样本

3)学习目标 :学一个向量场 ,告诉每个点在每个时刻应该往哪个方向、以多大速度移动。

4)生成过程 :从 出发,沿着向量场积分到 t=1,得到生成结果。

噪声 ,沿 积分,得到生成的数据

下图展示了一个 2D 棋盘格数据集上的 Flow Matching 过程。从 t=0 的标准正态噪声出发,分布沿着学到的向量场逐步流动,最终在t=1时形成清晰的棋盘格结构:

三、数学框架:流、向量场与 ODE

3.1 流(Flow)

Flow Matching 的核心数学对象是一个流 ,它描述了样本随时间的运动轨迹:

(初始位置为带随机噪声的样本)

是最终生成的样本

流把 t=0 时刻的分布 (简单分布)连续变换到 t=1 时刻的分布 (数据分布)。

3.2 向量场(Vector Field)

流的运动由一个向量场 驱动,向量场告诉每个点在每个时刻的速度:

这是一个常微分方程(ODE),给定初始条件 ,沿着向量场积分就能得到完整的轨迹。

|------------------------------------------|------------------------------------------------|
| 符号 | 含义 |
| | 从初始点 z 出发,在时刻 t 的位置 |
| | 在时刻 t 、位置 x 处的速度向量 |
| | 初始分布(通常是 ) |
| | 目标数据分布 |

3.3 与 Diffusion 的关键区别

Diffusion 的生成过程本质上是一个随机微分方程(SDE)--- 每一步都有随机噪声;

Flow Matching 的生成过程是一个常微分方程(ODE)--- 完全确定的、没有随机项。

SDE:有随机项dW, ODE:纯确定性。

确定性路径意味着:采样可以被表述成标准 ODE积分问题。在很多常见设定下,这会带来更平滑、更可预测的采样过程,并允许用较少的积分步数得到可用结果

四、Conditional Flow Matching:让训练变得简单

直接学习一个能把整个 po 变换到 p,的全局向量场是困难的。一个关键简化是: Conditional FlowMatching(CFM)。

核心思想: 不直接在难以显式写出的全局向量场上训练,而是在更容易构造的条件概率路径上定义一个条件向量场。假设条件概率路径符合线性插值,则可以把一对端点样本 () 看成这条条件路径的条件信息。

想象你站在某个中间位置 ,想知道该往哪走。全局向量场 很难直接写出来,但如果我们额外知道这条条件路径由哪对端点 生成,那么对应的条件向量场 就会简单得多。在线性插值情形下,甚至就是一个常向量。更进一步,边际向量场可以理解为对这些条件向量场做适当平均后的结果。这样一来,训练就可以转化为回归一个显式、便宜、易采样的条件目标,而不必直接回归难以获得的全局目标。

4.1 线性插值路径

CFM最常用的选择是线性插值(也叫Optimal Transport 路径):

|-------------------------------------|-----------------------------------------------------------|
| 符号 | 含义 |
| | 从先验分布采样的噪声, |
| | 从数据集采样的真实样本, |
| | 时刻 t 的差值点, |

这条路径的含义非常直观:在 t=0 时是纯噪声,在 t=1 时是真实数据,中间是两者的线性混合。下图展示了 1D 情况下的线性插值路径。每条线连接一个噪声点 (左侧)和一个数据点 (右侧),中间的 就是两者的线性混合:

4.2 目标向量场:两个公式

沿着线性插值路径,每个点的速度实常数:

此为神经网络学习的目标向量场:在时刻 t 、位置 处,速度应该是

整个 Flow Matching 的核心思想,其实就是两个公式:

第一个公式定义了从噪声到数据的路径(线性插值),第二个公式是这条路径的导数(速度)。神经网络要学的就是这个速度--一个从 指向 的向量。给定当前位置 ,模型预测"往哪走、走多快",就能把噪声推向数据。

与 Diffusion 对比

|------|----------------------------------------------------------------------------------------------------|------------------------------------------------------------|
| | Diffusion(预测噪声) | Flow Matching(预测速度) |
| 差值方式 | (非线性) | (线性) |
| 学习目标 | 预测加入的噪声 | 预测速度 |
| 路径形状 | 弯曲(受噪声调度影响) | 笔直(线性插值) |

线性路径:是很多 Flow Matching 实现高效的一个重要原因。在常见设定下,更规则的概率路径通常更容易用较少步数进行数值积分。

五、训练目标

训练过程用一句话概括:随机选一个时刻 t,在噪声和数据之间做线性插值得到 ,让网络预测从噪声指向数据的速度。

与 Difusion 训练的对比:

六、采样推理过程

训练好后,生成新样本的过程是求解一个 ODE :

从 t=0 (噪声) 积分到 t=1 (数据) ,得到生成结果。

实际中用数值 ODE 求解器(如 Euler 或 Midpoint 方法)来离散化该过程。

6.1 Eluer 方法

最简单的数值积分:

0,1 分成 N 步,步长 ,逐步积分。

6.2 Midpoint 方法(更常用)

先走半步估计中点速度,再用中点速度走完整步:

Midpoint 方法每步需要两次网络前向推理,但精度更高,总步数可以更少。

6.3 与 Diffusion 对比为什么步数更少

关键在于概率路径和采样过程的复杂度。在线性插值等常见设定下,路径更规则,ODE 求解器往往可以用更少步数获得可用结果。

而在 diusion 的常见采样流程里,逐步修正的过程通常对步数更敏感,粗步长更容易带来明显质量损失,因此往往需要更多步来保证精度。

七:路线演进总结

整体技术发展路线如下所示:

ACT(CVAE)-----> Diffusion Policy ------> Flow Matching -----> 等连续动作 VLA

每一代方法,都在解决上一代的核心瓶颈

1)ACT 解决了朴素 BC 的多模态问题,但推理时放弃了多模态采样(≈=0)。

2)Difusion Policy 恢复了真正的多模态采样,但推理太慢。

3)Flow Matching 保持了多模态能力,并在很多常见设定下减少了推理步数。

这条演进线最终汇入 VLA:连续动作生成不再只停留在单步回归,而是逐步走向更强的分布建模。Flow Matching 是其中一种很自然的落点,因为它既保留了生成式动作建模的表达力,又更容易把采样过程写成少步数的 ODE 积分。以 为代表的一类系统,就把这种思路和视觉-语言 backbone 结合在了一起。

相关推荐
爱听歌的周童鞋5 小时前
MIT 6.S184 | 基于随机微分方程的生成式AI | 2026 | 笔记 | Lecture 1: Flow and Diffusion Models
diffusion model·sde·generative ai·flow matching·score matching·guidance
Asimov_Liu3 天前
Diffusion 与 Flow Matching 数学原理及其在 VLA Action 生成中的应用
stable diffusion·自动驾驶·具身智能·vla·flow matching
*JOKER3 个月前
Flow Matching&生成算法
人工智能·深度学习·机器学习·大模型·生成模型·flow matching