桌上有一只杯子,你用遥操作让机械臂绕过它去拿后面的盒子,录了 100 条示范:50 次从左边绕,50 次从右边绕。用均方误差训一个策略,它会直直地朝杯子开过去。机器人模仿学习难在三处:同一个画面有好几种都对的动作,一步步的小偏差会叠起来,示范又贵又窄。现在常见的组合是:用 diffusion / flow matching 这类生成式动作头表达“几种都对”,用动作块(action chunking)一次决定一小段、让前后保持一致,再想办法便宜地多收数据。

待审核草稿。 这一篇还没有经过站主审阅,事实、取舍和措辞都可能修改;引用前请回到文中链接的一手资料核对。

换到真机器人,多出了哪三件事

行为克隆(behavior cloning,BC)的目标、误差为什么在坏情况下按 $O(T^2\epsilon)$ 累积、DAgger 怎样到 learner 自己走到的状态去问 expert、因果混淆,模仿与奖励都讲过。“一步均方误差把两条路平均成墙”,Model-based RL 里说的是状态预测;这里换成动作预测,道理一样。这些不重讲,只看换到真机器人以后多出来的三件事:

换到机器人以后 具体是什么 本篇哪一节
动作连续、维数高、频率高 单臂常见 7 维(末端位移、转动、夹爪),固定底座的双臂 14 维;按 20–50 Hz 下发 生成式动作头、动作块
人类示范天然有好几种做法 同一个画面,操作员这次从左、下次从右 算一次:左右绕障
示范很贵 要有人操作设备、复位场景、检查质量 数据从哪来

维数和频率的例子分别来自 OpenVLA(7 维动作)和 π0(固定底座的双臂 14 维,最高 50 Hz;移动双臂是 16–17 维)。

算一次:左右绕障,均方误差为什么撞上去

教学设定:只看一个数。动作 $a$ 是机械臂在杯子前的横向偏移,$+1$ 表示从左绕,$-1$ 表示从右绕,$0$ 是正对杯子。示范里两种各占一半,画面本身看不出这一次该走哪边。

策略只输出一个数 $c$ 时,均方误差的期望是:

$$ \mathbb E[(c-a)^2]=\tfrac12(c-1)^2+\tfrac12(c+1)^2=c^2+1 . $$

$c=0$ 时损失最小,等于 1;老老实实输出 $+1$,损失反而是 2。训练得越好,越会选 0,正好撞上杯子。 换成 L1 也救不了:$\tfrac12|c-1|+\tfrac12|c+1|$ 在 $[-1,1]$ 里处处等于 1,0 依然是最优解之一,模型没有理由偏向哪一边。

输出方式 在这个例子里给出什么 实际会怎样
回归一个数(MSE) 0 撞向杯子
回归一个数(L1) $[-1,1]$ 里任意一点,0 也算最优 不保证避开
学整个分布,再采样 一半样本是 $+1$,一半是 $-1$ 每次都能绕开,只是左右随机

“采样结果的平均也是 0”不是问题:机器人每次只执行一个样本,不执行平均值。真正要提防的是另一件事,讲动作块时会看到:如果每一步都重新抽一次签,可能这一步向左、下一步向右。

这个例子故意做得很极端。真实示范未必五五开,两种做法中间也未必正好是障碍;示范几乎只有一种做法时,回归常常够用,见文末的表。

生成式动作头:让噪声决定走哪边

Diffusion Policy(Columbia、TRI、MIT,2023-03)把策略写成:以观测为条件,从噪声一步步去噪出一段动作。论文用推 T 形块的例子说明,同一个状态可以从左或从右绕过去,它两种都学到了,而且每次 rollout 只走其中一种(§IV-A,图 4)。作者报告,在 4 个 benchmark 的 11 个任务上,它比此前最好的方法平均高 46.9%。

Flow matching 是同一类生成模型的另一种训练方式。目标函数(objective function)和一维算例在 Qwen-Image 一篇里,这里沿用它的记号:时间从噪声端 $t=0$ 走到数据端 $t=1$,$x_t=(1-t)\epsilon+ta$,模型学的是速度。用到左右绕障上,能看清采样步数为什么要紧。

教学设定:不训练网络,直接用这个两点分布下的理想速度场,这样误差只来自积分步数。给定 $a=\pm1$,$x_t$ 服从均值 $ta$、标准差 $1-t$ 的正态分布,于是:

$$ v^*(x,t)=\frac{\mathbb E[a\mid x_t=x]-x}{1-t},\qquad \mathbb E[a\mid x_t=x]=\tanh\frac{xt}{(1-t)^2}. $$

第一式:目标速度 $u=a-\epsilon$,把 $\epsilon=(x-ta)/(1-t)$ 代进去得 $u=(a-x)/(1-t)$,再对 $a$ 取条件期望。第二式:两个正态似然的对数比是 $2xt/(1-t)^2$,换算成 $\pm1$ 的期望就是 $\tanh$。从噪声 $\epsilon$ 出发,用步长 $1/n$ 的 Euler 法走 $n$ 步:

  • 1 步。 $t=0$ 时 $\tanh 0=0$,速度是 $-x$,一步走完得 $x_1=\epsilon-\epsilon=0$。不管噪声是多少,结果都是均值 0,和 MSE 回归一样撞上去。
  • 2 步,从 $\epsilon=0.5$ 出发。 第一步到 $0.5-0.5\times0.5=0.25$。最后一步的步长正好等于剩下的 $1-t$,代进公式会发现它落在 $\mathbb E[a\mid x_{0.5}=0.25]=\tanh 0.5\approx0.46$,停在半路。
  • 10 步,从 $\epsilon=0.5$ 出发。 前四步先往中间靠(0.45、0.41、0.37、0.35),过了一半才分开;第 9 步到 0.84,最后一步落在 $\tanh(0.84\times90)\approx1.00$。从 $-0.5$ 出发则对称地到 $-1.00$。
Euler 步数 $n$ 从 $\epsilon=0.5$ 出发的终点 从 $\epsilon=0.02$ 出发的终点
1 0 0
2 0.46 0.02
5 1.00 0.57
10 1.00 1.00

两点结论。第一,步数太少,生成式动作头会退回“平均”;噪声越靠近两个峰的分界,越需要多走几步才分得开。第二,哪一边由噪声决定:一维 ODE 的轨迹不会交叉,噪声小于 0 的走到 $-1$,大于 0 的走到 $+1$。π0 推理时积分 10 步(步长 0.1,论文 §IV)。这个算例用的是理想速度场,学出来的场还有自己的误差;一步生成也有专门的训练方法,本篇不讲。

动画 Euler 步数太少,动作退回均值

这张图需要启用 JavaScript。

能表达“几种都对”的不止扩散类模型:

动作头 能表达多峰吗 代价
混合高斯 能,但峰的个数要事先定 Diffusion Policy 图 4 里的 LSTM-GMM(还有 IBC)偏向其中一个峰
每维分 bin,做多类分类(动作 token) 能 维数 × 步数个 token 要逐个生成,下一篇算延迟
CVAE(ACT 的做法) 训练时能,靠隐变量 $z$ ACT 测试时把 $z$ 设为先验均值 0,确定性地解码
Diffusion / flow matching 能 推理要积分多步;OpenVLA-OFT 的作者还指出它训练更慢

动作块:一次决定一段

ACT(Action Chunking with Transformers,Stanford,2023-04)每 $k$ 步看一次观测,一次输出接下来 $k$ 个动作。论文给的理由是:要做决定的次数变成原来的 $1/k$,等于把任务的有效时长缩短 $k$ 倍,正对着复合误差(§IV-A)。Diffusion Policy 补了第二个理由:如果每一步都从多峰分布里独立采样,相邻两步可能来自不同的峰,动作就在两条都对的路线之间来回抖(§IV-C)。

算一次:块长怎么取(教学例子)

设定:50 Hz 控制,一步 20 ms。机械臂刚到杯子前的头 4 步,画面还看不出它已经偏向哪边,策略每做一次决定,都等于重新抽签,左右各一半;4 步以后已经明显偏到一边,策略会顺着走完。另外,某一时刻有人碰了一下杯子,策略要等下一次读观测才知道。

  • 模糊窗口里不换边的概率。 块长 $k=1$ 时 4 步抽 4 次签,后 3 次都和第一次相同的概率是 $0.5^3=0.125$;$k=2$ 时抽 2 次,概率 $0.5$;$k\ge4$ 时一个块就盖住整个窗口,概率 1。
  • 反应延迟。 块里的动作已经定好,扰动发生后平均还要执行 $(k-1)/2$ 个旧动作,最坏 $k-1$ 个,每个 20 ms。
块长 $k$ 模糊窗口里不换边 扰动后平均还执行几个旧动作 折成时间(平均 / 最坏)
1 0.125 0 0 / 0 ms
2 0.5 0.5 10 / 20 ms
4 1 1.5 30 / 60 ms
10 1 4.5 90 / 180 ms
25 1 12 240 / 480 ms
50 1 24.5 490 / 980 ms

块长从 1 加到 4,来回抖就没了;再往上加,只是在为更慢的反应付钱。这里没算推理本身的耗时,也假设块里的动作都对;块越长,模型要预测的序列越长,也越难学准。

真实系统怎么处理这对矛盾:

  • ACT 的消融(ablation)。 关掉时间集成、在 4 个仿真设置上平均,$k=1$ 时成功率 1%,$k=100$ 时 44%,$k=200$、$400$ 时略有下降;作者归因于接近开环、反应不够,以及长序列难建模(§VI-A)。
  • ACT 的时间集成(temporal ensembling)。 每一步都查询策略,同一时刻会收到好几个块的预测,按 $w_i=\exp(-m\,i)$ 加权平均,$w_0$ 给最早的那个预测。作者认为分块和时间集成对成功都重要。
  • Diffusion Policy 的 receding horizon。 看最近 $T_o$ 步观测,预测 $T_p$ 步,执行其中 $T_a$ 步再重新预测(§II-C);这和 MPC 只执行第一步是同一个想法,只是一次多执行几步。论文图 6 的消融把 $T_a$ 的选择描述为时间一致性和反应速度之间的取舍。
  • π0 的做法。 一次出 50 步;50 Hz 的机器人每执行 25 步(0.5 秒)重新推理一次,20 Hz 的每 16 步(0.8 秒)一次。附录写的是“We tried temporal ensembling … early on and found that it hurt policy performance …”,即早期试过时间集成,反而让策略变差,于是直接开环执行动作块(附录 A-D)。

ACT 说时间集成重要,π0 说它有害;两篇的模型、动作头和任务都不同,不能据此判断谁对。我们的推断是:如果块来自多峰采样器,把一个选了左、一个选了右的块平均,又会回到 0;ACT 测试时确定性地解码,块与块之间更容易一致。这一点两篇论文都没有直接验证。

数据从哪来

时间 数据 / 工具 怎么采 规模(各自报告) 注意
2023-04 ALOHA 低成本双臂遥操作,50 Hz 记录 6 个真实任务,每个约 10 分钟示范;成功率 20%–96%,摘要举的开调料杯、插电池在 80–90%(作者) 单一平台
2023-08 BridgeData V2 低成本机械臂 60,096 条轨迹,24 个环境 开放
2023-10 Open X-Embodiment 汇总 60 个已有数据集 100 万条以上轨迹,22 种机体,527 种技能 贡献方数目:摘要写 21 家机构,正文写 34 个实验室
2024-01 Mobile ALOHA 带移动底盘的全身遥操作 每个任务 50 条;和静态 ALOHA 数据联合训练,成功率最多提高 90%(作者)
2024-02 UMI 手持夹爪,在实验室外采;动作记成相对轨迹,并做延迟匹配 动态、双臂、长时程任务(作者) 摘要没写用的什么相机
2024-03 DROID 50 名采集员在 3 个大洲用 Franka 采了 12 个月 7.6 万条 / 350 小时,564 个场景;任务数 arXiv 摘要写 84,v1 正文写 86 开放
2025-03 AgiBot World 公司自建的大规模真机采集 100 万条以上轨迹,217 种任务;称预训练(pre-training)比只用 OXE 高 30%(公司自报) 摘要没给机器人台数
2025-05 EgoDex Apple Vision Pro 录第一人称视频,带 3D 手和手指跟踪 829 小时,194 种桌面任务 没有机器人动作
2026-02 EgoScale 带动作标注的第一人称人类视频,再用 50 小时人类数据加 4 小时机器人数据做对齐 20,854 小时;验证损失随数据量对数线性下降,并和真机成功率同向;22 自由度手上 5 个任务的平均成功率从不预训练的 2% 升到 56%(公司自报) NVIDIA 的 Isaac-GR00T 说明称 GR00T N1.7 用它预训练

几个数可以自己核一下。DROID 平均每条轨迹约 $350\times3600/76{,}000\approx16.6$ 秒。EgoScale 的 20,854 小时约是 DROID 的 60 倍,也约是 π0 自有机器人数据(论文写约 1 万小时)的 2 倍。

为什么 2025–26 年押注第一人称人类视频:不需要机器人和遥操作装置,场景也多得多。Figure 在 2026-08-25 介绍的 Index 是一个 app,Figure 付钱让用户(Creators)录家里和工作中的真实任务,称已有 1,600 万条以上视频(公司自报)。代价有两个:

  • 视频里没有机器人动作。 要先从视频估计手的 3D 位置当作动作。Physical Intelligence 的 human-to-robot(2025-12)用头戴和腕部相机录人类视频,经视觉 SLAM 估出 3D 手部关键点当作动作,在微调(fine-tuning)阶段和机器人数据一起训 π0.5,报告在 4 个泛化场景上约好 2 倍(公司自报)。
  • 人手和夹爪不一样。 EgoScale 专门加了人–机对齐阶段。PI 也报告,机器人预训练数据越多样,从人类视频迁移得越好(公司自报);所以人类视频是补充,不是替代。

动手前先想清楚

先试什么 应该观察什么 不能据此推出什么
用左右各半的示范训一个 MSE 策略 预测集中在 0 附近 回归永远不行:OpenVLA-OFT 用 L1 回归加动作块,在 LIBERO 上报告 97.1%(作者);示范接近单峰时,回归常常够用
把 flow 的积分步数从 10 降到 1 样本向均值收拢 少步生成一定不行:一步生成需要专门的训练方法,本篇没讲
块长从 1 调到 4 再调到 50 先是抖动消失,然后反应变慢 块越长越好:ACT 在 $k=200$、$400$ 时略降
加入人类视频预训练 新场景成功率的变化 机器人数据可以不要

下一篇看怎样把这些装进一个视觉语言模型(vision-language model, VLM):VLA 模型与仿真到现实。回到系列导读,或者复习 DAgger 和因果混淆。

参考:ACT / ALOHA · Diffusion Policy · π0 · DAgger · Causal Confusion in Imitation Learning

本页术语 5
目标函数 objective function
训练直接优化的数学量;它不一定等于最终产品目标
消融 ablation
去掉一个组件再测一次,用来判断它到底有没有贡献
预训练 pre-training
先用大量数据学习通用表示和能力,再适配具体任务
微调 fine-tuning
在预训练权重上继续训练以适配具体任务
视觉语言模型 vision-language model, VLM
能够结合图像与文字处理任务的模型