2. 机器人策略基础
在进入 ACT 的具体实现之前,必须先厘清一个根本问题:机器人“策略”到底是什么?很多初学者会把策略等同于一段控制代码,或者等同于一个训练好的神经网络权重文件。这两种理解都不完整。策略描述的是从观测到动作的映射规则,它决定了机器人在任意时刻看到什么、想到什么、然后做什么。理解策略的定义方式,是理解模仿学习、强化学习、行为克隆以及 ACT 各自定位的前提。
一、策略的数学定义与工程含义
在形式化框架中,机器人策略通常记作 π。它接收当前观测 o(可能包含图像、关节角、力矩、历史动作等),输出动作 a。若策略是确定性的,写作 a = π(o);若是随机性的,写作 a ~ π(a|o)。在部分可观测场景中,观测不足以完全描述环境状态,策略还需要依赖历史信息,此时可写成 a ~ π(a|o₁, o₂, …, oₜ)。
从工程角度看,策略包含三个关键要素:输入表示(观测如何编码)、输出空间(动作是关节位置、速度还是末端位姿增量)、时序结构(单步决策还是多步动作序列)。ACT 的独特之处,正是在输出空间和时序结构上做了明确选择:它输出一段未来动作序列,而不是单步动作。
二、模仿学习与强化学习的分野
要让机器人获得策略,主流路线有两条:模仿学习和强化学习。它们的核心区别在于监督信号从哪里来。
- 模仿学习:从专家演示中学习。数据形式通常是“观测—动作”对,目标是让策略在相似观测下复现专家动作。它不依赖环境奖励,样本效率高,适合演示容易获取的任务。
- 强化学习:从与环境交互的奖励信号中学习。智能体通过试错最大化累积回报。它能发现超越演示的行为,但样本需求大、训练不稳定,在真实机器人上成本高。
两者并非对立。实践中常见“模仿学习预训练 + 强化学习微调”的组合,先用演示把策略拉到合理区域,再用奖励信号做局部优化。但对于精细操作任务,纯强化学习往往难以在真实硬件上收敛,模仿学习因此成为更务实的选择。
三、行为克隆:最直接的模仿学习
行为克隆(Behavior Cloning, BC)是模仿学习中最基础的方法。它把策略学习当作一个监督学习问题:给定数据集 D = {(oᵢ, aᵢ)},训练网络最小化预测动作与专家动作之间的差异。损失函数通常写作:
L_BC = E_(o,a)~D [ || π_θ(o) - a ||² ]
# 训练循环伪代码
for batch in dataloader:
obs, act = batch
pred = policy(obs)
loss = mse_loss(pred, act)
loss.backward()
optimizer.step()
行为克隆的优点是简单、稳定、易于实现。但它有两个经典问题:分布偏移和因果混淆。分布偏移指策略一旦偏离专家轨迹,就会进入训练数据未覆盖的状态,错误逐步累积;因果混淆指策略可能学到与动作无关的虚假相关,例如把背景纹理当作动作依据。ACT 通过动作分块和 Transformer 时序建模,在一定程度上缓解了这两类问题。
四、ACT 在策略谱系中的定位
ACT(Action Chunking with Transformers)属于模仿学习家族,具体是行为克隆的一种增强形式。它的核心创新有两点:一是动作分块,即一次预测未来 k 步动作序列,而不是单步动作;二是Transformer 编码器—解码器结构,用注意力机制融合多视角图像和关节状态,并建模动作序列内部的时间依赖。
动作分块带来的直接好处是:策略不必每一步都重新决策,减少了高频抖动和复合误差累积;同时,序列输出让策略能够表达“先接近、再对准、后闭合”这类阶段性行为。这使得 ACT 特别适合精细操作任务,例如插拔、折叠、装配等。
五、方法对比与选型清单
下表从数据来源、输出形式、样本效率、典型风险和适用场景五个维度,对四种策略获取方式进行对比。选型时应优先考虑任务是否具备可重复演示、动作是否具有阶段性、以及真实硬件试错成本是否可接受。
| 方法 | 监督信号 | 输出形式 | 样本效率 | 典型风险 | 适用场景 |
|---|---|---|---|---|---|
| 强化学习 RL | 环境奖励 | 单步动作 | 低 | 训练不稳定、真实硬件成本高 | 仿真环境、可大量试错的任务 |
| 行为克隆 BC | 专家演示 | 单步动作 | 高 | 分布偏移、因果混淆 | 演示充足、任务相对简单的场景 |
| ACT | 专家演示 | k 步动作序列 | 高 | 序列长度与推理延迟需权衡 | 精细操作、阶段性任务 |
| IL + RL 微调 | 演示 + 奖励 | 单步或序列 | 中 | 两阶段调参复杂 | 先模仿后优化的进阶场景 |