在机器人模仿学习这个快速发展的领域,我们一直在努力弥合机器人“思考” (计算) 与“行动” (执行) 之间的鸿沟。

在过去的几年里,该领域的黄金标准一直由扩散策略 (Diffusion Policies) 主导。这些模型非常强大;它们可以学习复杂的多模态行为——比如知道要绕过障碍物,你可以向左走向右走,但不能径直穿过中间。然而,它们伴随着一个显著的代价: 延迟。

想象一下你在开车,但每隔几秒钟你就必须闭上眼睛,计算接下来十秒的方向盘操作,然后才睁开眼睛执行该计划的第一秒。这本质上就是传统扩散和流匹配策略的工作方式。在机器人移动一根肌肉之前,它们必须从头开始 (从噪声) 生成整个未来的动作序列 (一个动作块) 。这种“停下来思考”的方法引入了滞后,使得紧密的反应式控制变得困难。

在这篇文章中,我们将深入探讨一篇名为 “Streaming Flow Policy: Simplifying diffusion/flow-matching policies by treating action trajectories as flow trajectories” (流式流策略: 通过将动作轨迹视为流轨迹来简化扩散/流匹配策略) 的新论文。这项研究提出了一个绝妙的简化方案: 与其在一个潜在的“扩散时间”中生成整条轨迹,为什么不实时生成动作并立即流式传输给机器人呢?

让我们来拆解它是如何工作的,为什么它很重要,以及使其成为可能的数学原理。

问题所在: “轨迹的轨迹”

要理解这里的创新,我们首先需要看看目前的最新技术水平。

传统的 扩散策略 (Diffusion Policies)流匹配策略 (Flow-Matching Policies) 将机器人控制视为一个生成式建模问题。它们获取观测历史 (机器人看到了什么) ,并试图生成一系列未来的动作 (一个动作块) 。

标准流程如下所示:

  1. 从一串纯高斯噪声开始。
  2. 在多个步骤 (\(N\) 步) 中迭代地对该序列进行“去噪”。
  3. 每一步都对整个轨迹进行细化。
  4. 只有在第 \(N\) 步完成后,你才拥有一个可用的动作计划。

作者将其描述为采样 “轨迹的轨迹” (trajectory of trajectories) 。 模型生成一个扩散轨迹,该路径上的每一点本身就是一个完整的动作轨迹。

比较“传统扩散/流策略” (a) 与“流式流策略 (本研究) ” (b) 的图表。图表 (a) 显示了一个流时间的垂直轴,机器人必须等待计算完成。图表 (b) 显示流时间与执行时间对齐,允许立即执行动作。

如上图 Figure 1(a) 所示,当计算沿着垂直轴 (扩散/流时间) 向上移动时,机器人处于空闲状态。这造成了一个瓶颈。如果你的控制循环需要以 100Hz 运行,但你的扩散模型推理需要 50ms,那你就遇到问题了。

解决方案: 流式流策略 (SFP)

研究人员提出了一种范式转变。与其将生成过程 (流时间) 和机器人的运动 (执行时间) 视为独立的维度, 流式流策略 (Streaming Flow Policy, SFP) 将它们对齐了。

Figure 1(b) 所示,算法从最后一个已知动作 (或当前状态) 开始,增量积分速度场以找到下一个动作。这意味着一旦第一步计算完成,第一个动作就可以准备好发送给机器人了。

这里有三个主要的概念性变化:

  1. 初始化: 不再从纯噪声开始,而是从围绕最后一个执行动作的窄高斯分布开始。
  2. 空间: 不再学习轨迹空间 (\(\mathcal{A}^T\)) 上的流,而是学习动作空间 (\(\mathcal{A}\)) 上的流。
  3. 流式传输: 在采样过程中实时执行动作。

这种方法将复杂的“对整条路径去噪”问题转变为一个更简单的“下一步去哪儿?”的问题,这可以通过神经常微分方程 (ODE) 来解决。

深入解析: 核心方法

这是论文的核心部分。我们究竟如何训练一个网络来流式传输动作?该方法依赖于 流匹配 (Flow Matching) , 这是一种学习连续动力学的技术。

1. 构建目标流

为了训练神经网络来引导机器人,我们首先需要定义“理想”的流是什么样的。在标准的流匹配中,你需要定义一条将噪声转化为数据的概率路径。在这里,作者构建了一个 条件流 (Conditional Flow)

给定一个演示轨迹 \(\xi\) (机器人应该走的真实路径) ,作者在数学上构建了一个矢量场,在这个路径周围创建了一个“管道”。

说明该过程的合成图。(a) 显示演示轨迹。(b) 显示构建的条件流 (白色箭头) 迫使路径朝向演示。(c) 显示学习到的边缘流合并模式。(d) 显示采样轨迹。

看一看上面的 Figure 2(b) 。 白色箭头代表构建的目标速度场。如果你稍微偏离了轨道 (偏离了红线或蓝线) ,速度场会将你推回演示路径。

这个构建流背后的数学原理非常优雅。它结合了两种力量:

  1. 轨迹速度: 演示本身的移动速度和方向 (\(\dot{\xi}(t)\)) 。
  2. 稳定项: 如果状态偏离,将其拉回演示的修正力。

这个目标速度 \(v_{\xi}\) 的方程是:

方程显示速度场由轨迹速度和稳定项 (负比例误差反馈) 组成。

这里,\(k\) 是一个稳定增益。这类似于 PD 控制器。它确保流不仅仅是“随波逐流”,而是积极地尝试保持在路径上。这种稳定性至关重要,因为它减少了分布偏移——这是模仿学习中的常见杀手,微小的误差会随着时间的推移而累积,直到机器人失败。

2. 积分过程

一旦我们有了这个目标,我们就训练一个神经网络 \(v_{\theta}(a, t \mid h)\),在给定当前动作 \(a\)、时间 \(t\) 和观测历史 \(h\) 的情况下预测这个速度。

在推理时 (当机器人实际运行时) ,我们没有真实轨迹。我们依赖于神经网络。我们从机器人的当前位置 (或上一个指令) 开始,向前“积分”网络。

生成轨迹的数学公式为:

积分方程显示时间 t 的动作等于初始动作加上学习到的速度场的积分。

在实践中,这种积分是使用数值求解器 (如欧拉法) 完成的。SFP 的美妙之处在于,你可以立即执行 \(t=0.1\) 时的积分结果,而无需等待解出 \(t=1.0\)。

3. 处理多模态

扩散策略的最大优势之一是其建模多模态分布的能力 (例如,将杯子递给左手或右手) 。标准的回归策略在这里会失败——它们会对两种模式取平均值,并试图将杯子递给“中间” (那里可能是空的或者是障碍物) 。

你可能会问: 如果 SFP 从单个点 (当前状态) 开始并遵循确定性向量场,它怎么能是多模态的呢?

其魔力在于 流匹配 。 用于训练网络的损失函数最小化了网络输出与数据集上平均构建条件流之间的差异。

流匹配损失方程。

因为目标流是根据所有演示构建的,所以学习到的网络 \(v_{\theta}\) 学习的是一个 边缘速度场 (marginal velocity field) 。 如 Figure 2(c) 所示,学习到的场 (灰色/黑色箭头) 产生了一个分叉。

如果机器人稍微偏左,流就会捕捉到“左侧模式”的流向。如果稍微偏右,它就会捕捉到“右侧模式”。即使策略在测试时可以确定性地运行 (通过将初始噪声设为零) ,训练过程也确保了向量场保留了数据中存在的不同模式。

4. 边缘匹配的局限性

我们在学术上必须诚实地指出这种方法不能做什么。虽然 SFP 匹配每个时间步动作的 *边缘 (marginal) * 分布,但它并不一定保证随时间变化的正确 *联合 (joint) * 分布。

作者提供了一个极具吸引力的反直觉例子来说明这一点。

玩具示例显示相交的“S”和“2”轨迹。学习到的模型匹配边缘分布,但产生了“E”和“3”形状,因为它在交叉点交换了轨道。

Figure 4 中,训练数据包含“S”形和“2”形 (图 a) 。这些轨迹在中间交叉。 因为 SFP 学习的是依赖于当前位置 \((a, t)\) 的速度场,当轨迹在相同的位置和时间相交时,向量场必须对它们进行平均或分流。

图 (d) 显示了结果: 模型创建了“E”形和“3”形。它在一条轨迹上进入交叉口,而在另一条轨迹上离开。

  • 好消息: 在任何特定时间戳,机器人处于训练数据中发现的有效状态 (边缘分布匹配) 。
  • 坏消息: 整体形状 (联合分布) 是训练样本的混合搭配。

然而,作者认为对于机器人技术来说,这种“组合性 (compositionality) ”通常是一个特性,而不是缺陷。如果两条路径都是有效的,在它们之间切换可能是可以接受的。

实验结果

那么,它在实际机器人上有效吗?

作者将流式流策略与标准扩散策略 (DP) 、更快的版本 (DDIM) 以及其他基线在 Push-T (2D 推送任务) 和 RoboMimic (模拟机械臂操作) 等基准上进行了比较。

延迟与成功率

主要的假设是 SFP 会更快、反应更灵敏。数据有力地支持了这一点。

观察 Push-T 的结果 (论文中的 Table 2) ,SFP 在使用状态输入时达到了 95.1% 的平均成功率,优于标准扩散策略 (92.9%) ,同时运行速度显著更快。

真实世界的实验是在 Franka Research 3 机械臂上进行的。

在 7自由度 Franka Research 3 机械臂上进行的真实世界实验,涉及摘苹果和重新定向积木。

作者指出,SFP 产生的运动明显更流畅。因为扩散策略输出的是通常开环执行的离散“块”,所以在块与块之间有时会出现顿挫的过渡。SFP 生成连续的流,从而带来流畅的运动。

“分块”的最佳平衡点

尽管 SFP 可以 连续流式传输,但在实践中,预测前方的一小段视界是有帮助的。这被称为“动作分块”视界 (\(T_{chunk}\)) 。

如果 \(T_{chunk}\) 太小,机器人纯粹是对当下做出反应,如果存在传感器延迟或噪声,这可能会不稳定。如果 \(T_{chunk}\) 太大,机器人本质上就是闭着眼睛移动太久了。

分析动作块大小对性能影响的图表。性能通常在块大小为 8 左右达到峰值。

Figure 8 显示了相对于块大小的性能变化。在块大小为 8 到 16 左右有一个明显的“最佳平衡点 (sweet spot) ”。SFP 允许这种灵活性;你可以积分 8 步,将它们发送给机器人,然后重新计算,从而在长期规划和高频控制之间实现平衡。

结论与启示

流式流策略代表了机器人生成式控制的成熟。虽然扩散策略证明了生成模型可以处理多模态行为,但 SFP 改进了我们应用它们的方式

通过将数学上的“流时间”与物理上的“执行时间”对齐,研究人员创造了一种具有以下特点的方法:

  1. 快速: 无需等待完整的去噪循环。
  2. 稳定: 使用控制理论概念 (稳定增益) 使神经网络保持稳健。
  3. 简单: 它重用了现有的架构,只是改变了输入/输出和损失函数。

对于进入该领域的学生和研究人员来说,这篇论文强调了一个重要的教训: 仅仅把一个强大的模型 (如扩散模型) 扔给一个问题并不是终点。通过理解底层的动力学——速度场、积分和稳定性——我们可以重新设计这些模型以适应物理机器人的特定约束,从而产生不仅智能,而且流畅和反应灵敏的行为。

机器人控制的未来不仅仅是生成更好的计划;而是要生成得足够快,以接住一个掉落的杯子。