模仿学习实际上是做什么的
在运行训练命令之前,请花两分钟了解模型实际学习的内容。 模仿学习训练策略网络将观察结果(相机图像+当前关节状态)映射到动作(下一个关节角度)。 网络永远不会收到奖励信号 - 它只会看到您的演示并学习重现您在类似状态下执行的操作的分布。
ACT(变形金刚动作组块)预测 块 立即执行 100 个未来操作,而不是单个步骤。 这可以防止整个事件中的错误累积:即使单个预测略有偏差,块也会提供稳定的轨迹缓冲区。 然后,它每 100 个时间步重新计划一次(50Hz 时 2 秒)。 这就是为什么 ACT 比普通行为克隆能更好地处理更长的任务。
有关完整的理论背景,请阅读 模仿学习基础知识 在机器人图书馆。
GPU 还是 CPU?
在具有 8GB+ VRAM 的 NVIDIA GPU 上训练 100k 步大约需要 45 分钟。 对于相同的运行,CPU 训练需要 3-4 小时。 两者都产生相同的模型质量——GPU 速度更快。 如果您没有本地 GPU,则训练命令在云实例(Lambda Labs 或具有 A100 运行时的 Google Colab)上的工作方式相同。 说明位于 LeRobot 存储库的自述文件中。
在您的数据集上训练 ACT
从您的虚拟环境运行训练脚本。 以下配置值针对 OpenArm 上的 50 集拾取和放置数据集进行校准 - 首次运行时请勿更改它们:
开始训练,然后监控输出。 您不需要一直观看,但每 20-30 分钟检查一次,以确认损失正在减少并且运行没有崩溃。 训练可以在您睡觉时进行整夜。
了解训练曲线
ACT's training output shows two key metrics. 学会正确阅读它们——它们会告诉你你的训练是否健康以及何时停止。
训练损失
应在前 20k 步中急剧下降,然后继续更缓慢地下降。 损失稳定在 0.05 以上通常表明数据质量存在问题 - 检查您的数据集。 大幅波动的损失表明你的学习率太高。
评估成功率
每 5k 步出现一次(需要实体手臂或模拟卡)。 这是真正重要的数字。 在部署之前您希望该值高于 70%。 它通常滞后于训练损失——损失看起来不错,而成功率仍在提高。
行动均方误差
预测动作和真实动作之间的均方误差。 对于训练有素的拾放策略,应降至 0.01 以下。 80k 步骤后的高动作 MSE 意味着模型正在努力应对任务复杂性或数据不一致。
KL 散度(ACT 特定)
ACT 使用具有 KL 权重的 CVAE,该权重在训练期间从 0 退火到 10。 留意 40k 步附近的稳定情况。 如果它永远不会收敛,则模型无法编码样式 - 尝试添加更多数据。
何时停止训练
不要简单地跑到 10 万步就停下来。 使用这些信号来决定您的检查点何时准备好部署:
- 评估成功率已连续 3 次评估趋于稳定 ——模型已经收敛。 如果没有更多或不同的数据,进一步的培训将无济于事。
- 评估成功率70%以上 ——这是部署 6 号单元的门槛。 如果您在 60k 步时达到 70%,您可以提前停止并部署该检查点。
- 训练损失仍在减少,但评估持平或下降 ——模型过度拟合。 以 eval 达到顶峰的最后一个检查点为例。 这是最好的检查点。
- 100k 步后 — 如果成功率低于 40%,请返回第 4 单元。此时数据问题比训练问题更有可能。
超越 ACT — 扩散政策和 π₀
一旦你有了有效的 ACT 政策,下一个自然实验就是扩散政策。 它可以更好地处理多模式任务(例如,手臂可以从两个角度接近物体),但代价是推理速度较慢。 SVRC 研究部分涵盖了两者。 浏览研究文章 →
第 5 单元完成时...
训练已完成(或者您已在良好的检查点停止训练)。 您的拾放任务评估成功率高于 70%。 您已保存检查点: ~/openarm-policies/pick-and-place-v1/ 并且您知道哪个步骤号产生了最好的结果。 您已准备好在第 6 单元中将此策略应用到真实手臂上。