学习型策略¶
这一页解决什么
让机器人从数据中学会"看到什么就做什么"。策略(policy)是从观测到动作的映射;它可以从演示中模仿、从奖励中强化,或借预训练的视觉语言模型泛化。进阶必修:前置是 PyTorch 训练循环和观测 / 动作的概念。
学到什么程度¶
| 层次 | 学什么 | 完成标准 |
|---|---|---|
| 扫盲 | 策略、行为克隆、模仿学习、RL、VLA | 说清每种方法的学习信号从哪里来 |
| 基础 | 演示数据、动作表示、ACT、闭环评估 | 完成 E3,比较演示覆盖与任务成功率 |
| 进阶 | 扩散策略、RL、VLA 与跨本体适配 | 在固定任务上比较两种方法 |
核心知识¶
行为克隆(BC):把演示当作监督学习数据,直接回归动作。简单有效,但存在复合误差:执行中的小误差把机器人带到演示没覆盖过的状态,策略在这些状态下表现更差,误差越积越大。这就是"离线损失低、闭环却失败"的根本原因。
缓解分布偏移:DAgger 在策略执行的状态上请专家补标注;加大数据覆盖(扰动、多样初始状态);动作分块(一次预测一小段动作)减少决策次数。
ACT(Action Chunking with Transformers):一次预测未来 k 步动作,用 Transformer 编码图像与关节状态,配合时间集成平滑执行。数据效率高,是双臂操作的常用基线。
扩散策略:用扩散模型生成动作序列,能表示多峰分布(同一状态下有多种合理动作,如从左或从右绕过障碍),BC 的均方误差回归会把多峰平均成一个错误动作。
强化学习(RL):通过与环境交互最大化累计奖励。适合有明确奖励、能大量仿真的任务(足式行走、灵巧手转物体);难点是奖励设计、探索和样本效率,通常在仿真里训练再迁移。
VLA(视觉-语言-动作模型):在预训练视觉语言模型上加动作输出,用大规模机器人数据训练(如 OpenVLA、π0、SmolVLA)。优势是语言指令和跨任务泛化,难点是动作表示(离散 token 或连续生成)、数据规模和推理时延。
分层策略:高层(语言模型或规划器)决定子目标或技能,低层(学习策略或经典控制器)高频执行。这是目前落地最多的结构。
数据来源:遥操作(质量高、成本高)、跨本体数据集(如 Open X-Embodiment)、人类视频(量大但缺动作标签)、仿真生成。数据往往比算法更决定效果。
路线之争 · 模块化 vs. 端到端 · 模仿 vs. 强化¶
端到端派认为一个大模型从像素到动作能学到人设计不出的行为,规模会解决泛化;模块化派认为可解释、可调试、可单独验证的模块才能上产线。模仿 vs. 强化:模仿依赖演示质量和覆盖,强化依赖奖励和仿真逼真度。主流做法是先模仿得到初始策略,再用强化或在线数据微调。
精选资源¶
跟随实验¶
-
E3 · 仿真模仿学习
遥操作录演示 → 训练 ACT → 固定条件闭环评估 → 改数据覆盖再比较。
自测¶
为什么行为克隆的训练损失很低,闭环执行却失败?
复合误差导致分布偏移:执行中的偏差把机器人带到训练数据没覆盖的状态,策略在那里没有学过,误差继续放大。离线损失只在演示状态上衡量。
为什么多峰动作分布对均方误差回归是个问题?
同一状态下若有两种合理动作(左绕、右绕),MSE 会学到两者的平均——直直撞上障碍。扩散策略或混合密度输出能表示多峰。
动作分块(action chunking)为什么有效?
一次预测多步动作,决策次数变少,复合误差累积的机会减少;同时动作在时间上更连贯。
VLA 的推理时延为什么是部署瓶颈?
大模型单次推理可能需要几十到几百毫秒,而控制需要几十到几百赫兹。常见做法是低频大模型输出动作块或子目标,高频小控制器执行。