1. ACT算法核心回顾:从模仿学习到行为克隆的演进
说实话,每次讲ACT算法,我都得先聊聊模仿学习这条线。为什么?因为ACT本质上就是站在模仿学习的肩膀上,做了几个关键性的改进。
模仿学习,说白了就是让机器人看人类怎么做,然后学着做。你想想看,这跟教小孩学骑车其实是一个道理——先看大人骑,自己再试着骑,摔几次就会了。
1.1 从模仿学习到行为克隆
早期的模仿学习,最朴素的做法就是行为克隆(Behavioral Cloning, BC)。它的思路特别直接:
- 收集人类专家的演示数据(比如机械臂抓取物体的轨迹)
- 把这些数据当成监督学习的训练样本
- 让神经网络学习从状态到动作的映射
我在做第一个机器人抓取项目时,用的就是纯行为克隆。当时觉得挺简单的,结果一跑起来就发现问题了——机器人稍微偏离一点训练数据中的状态,动作就完全乱套了。嗯,这就是经典的分布偏移(distribution shift)问题。
核心痛点:行为克隆假设训练数据和测试数据分布一致,但机器人执行时一旦犯错,就会进入从未见过的状态,导致错误累积,最终彻底失败。
为什么会这样?因为BC本质上是在做单步预测——它只关心当前状态下的动作对不对,完全不考虑这个动作会导致什么样的未来状态。说白了,就是目光短浅。
1.2 ACT算法的架构设计
ACT(Action Chunking with Transformers)的出现,就是为了解决上面这个问题。我个人习惯把ACT理解为「长了眼睛的行为克隆」——它不光看当前,还看未来几步。
ACT的核心架构包含三个关键组件:
- 编码器(Encoder):处理当前观测,提取特征
- Transformer 核心:建模时序依赖关系
- 动作分块解码器(Action Chunking Decoder):一次性预测未来多个时间步的动作
这里最妙的设计就是动作分块(Action Chunking)。传统BC每次只预测一个动作,而ACT一次预测未来K个动作。我刚开始看到这个设计时,觉得这不就是「批量预测」吗?后来在项目中才发现,这个改动带来的好处远超预期。
我的经验:动作分块的大小K是个关键超参数。K太小(比如K=1)退化成BC,K太大(比如K=100)模型又学不到精细控制。我在机械臂精细操作任务中,K=16到32之间效果最好。
下面这张图展示了ACT的整体架构流程:
1.3 损失函数深度解析
ACT的损失函数设计,是我觉得最有意思的部分。它不像传统BC那样只用MSE损失,而是加了一个时序一致性约束。
损失函数的形式如下:
L = L_mse + λ * L_temporal
其中:
L_mse = (1/K) * Σ ||a_pred_i - a_gt_i||² # 动作精度损失
L_temporal = (1/(K-1)) * Σ ||a_pred_i - a_pred_{i+1}||² # 时序平滑损失
这里我解释一下为什么需要L_temporal。我在做机器人穿针引线任务时发现,如果不加时序约束,模型预测的动作序列会「抖动」——相邻时间步的动作差异很大,导致机械臂高频震颤。加了L_temporal之后,动作序列变得平滑,成功率从62%直接提升到89%。
注意:λ的取值需要调参。我曾经把λ设得太大(比如λ=10),结果模型过于追求平滑,动作精度反而下降。建议从λ=0.1开始调,观察验证集上的MSE和时序损失变化。
1.4 与行为克隆的关键区别
我把ACT和传统BC的区别整理成了表格,方便对比:
| 对比维度 | 传统行为克隆(BC) | ACT算法 |
|---|---|---|
| 预测粒度 | 单步预测(一步一动作) | 分块预测(一次K个动作) |
| 时序建模 | 无显式时序建模 | Transformer自注意力机制 |
| 损失函数 | 仅MSE/交叉熵 | MSE + 时序平滑损失 |
| 分布偏移 | 严重(一步错步步错) | 缓解(多步规划缓冲误差) |
| 执行频率 | 每步都推理 | 每K步推理一次(可重叠) |
| 适用场景 | 简单重复性任务 | 复杂长时序操控任务 |
你看这个表格就能发现,ACT其实是在BC的基础上做了「三件套」升级:多步预测 + 时序建模 + 平滑约束。这三者缺一不可。
避坑指南:我曾经在项目中尝试去掉Transformer,只用LSTM做时序建模,结果在长序列任务上效果差了15%。Transformer的自注意力机制在处理长距离依赖时确实有优势,这个别省。
1.5 小结
ACT算法的核心就三点:
- 动作分块让模型有了「前瞻性」,不再短视
- Transformer提供了强大的时序建模能力
- 时序平滑损失保证了执行过程的稳定性
说白了,ACT就是把「模仿学习」这件事从「照葫芦画瓢」升级成了「理解动作的节奏和连贯性」。下一节我们会深入讨论,这种架构设计如何为策略迁移和泛化打下基础。