ACT模仿学习 概念介绍:ACT 模仿学习到底解决了什么难题
一、概念介绍:ACT 模仿学习到底解决了什么难题
ACT 是 Action Chunking with Transformers 的缩写,出自 2023 年的一篇关于低成本双臂精细操作的论文,配套开源代码通常被称为 act 或 learning-from-human-demonstrations。它是一套模仿学习方法:人通过遥操作演示任务,模型从"观测—动作"数据对里学习策略,训练完成后自主执行。它在精细操作任务上表现突出,尤其是插拔、穿线、开盖这类需要毫米级精度的动作。
ACT 要解决的核心问题是复合误差与动作多模态。传统的行为克隆(Behavior Cloning)逐帧预测动作:给定当前观测,输出下一步的动作。这种方式有两个毛病。第一是复合误差——如果每一帧都有微小误差,误差会随步数累积,机器人越走越偏,最后完全脱离演示轨迹。第二是动作多模态——同一场景下人有多种合理做法(从左边绕或从右边绕),逐帧回归会把多种做法平均成一个谁都不像的中间动作,导致机器人在关键位置犹豫、抖动。
ACT 对第一个问题的答案是 Action Chunking(动作分块):不预测一步,而是一次预测未来 k 步的动作序列,机器人把这 k 步动作整段执行完再重新观测。这样做的效果是,即使某一步有误差,模型在后续步骤里仍然在"朝着目标走",误差不会指数级累积,同时动作在时间上更连贯,抖动量显著下降。对第二个问题的答案是把策略建模成 CVAE(条件变分自编码器):编码器在训练时看到完整的动作序列,把它压缩成一个隐变量;解码器在推理时从这个隐变量采样并解码出动作。由于隐变量可以吸收"这次走哪条路"的信息,多模态动作不再被平均,而是被分开表达。
和相邻方案的差别。Diffusion Policy 同样解决多模态问题,思路是用扩散过程生成动作序列,表达能力强于 CVAE,但推理需要多步去噪,延迟更高。行为克隆加 LSTM 是更早的方案,没有动作分块,在精细任务上精度不足。强化学习(如 SAC、PPO) 不依赖演示,但需要大量在线交互和精心设计的奖励函数,在真实机器人上试错成本极高。VLA 大模型(如 RT 系列) 泛化能力强但需要海量数据与算力,中小团队很难复现。经验上,如果任务固定、位置变化有限、演示数据能采到几十条,ACT 是性价比最高的选择。
| 术语 | 含义 | 实际影响 |
|---|---|---|
| Action Chunk(动作块) | 一次预测的连续 k 步动作 | k 太小退化成逐帧预测,太大则反应迟钝 |
| CVAE | 条件变分自编码器,用于建模多模态动作 | 由 kl_weight 控制隐变量约束强度 |
| chunk_size | 动作块的长度 k | 最核心的超参之一 |
| kl_weight | KL 散度项的权重 | 过大导致动作平滑但僵硬,过小导致隐变量失控 |
| Temporal Ensembling | 把多次预测的重叠部分按时间加权平均 | 提升平滑性,代价是推理开销增加 |
| qpos | 关节位置向量,是观测与动作的主体 | 数据文件里的核心字段 |
| 演示(Demonstration) | 人遥操作产生的一条完整轨迹 | 质量决定上限 |
| IDM / 主从臂 | 采集演示的硬件形态 | 主臂被拖动,从臂跟随并记录 |

