机械臂模仿学习概念

模仿学习是让智能体通过观察专家(人类或其他智能体)的行为来学习策略,而无需显式地定义奖励函数。核心思想是:"看专家怎么做,然后学着做"

与强化学习相比:

  • RL:通过与环境交互,靠奖励信号来学习

  • IL:通过专家演示数据来学习,不依赖(或少依赖)奖励信号

专家示范轨迹

专家在完成任务时产生的一系列序列数据

一个轨迹 $\tau$ 通常表示为状态和动作的序列:$\tau = (s_0, a_0, s_1, a_1, \dots, s_T, a_T)$

状态 - 动作对

模仿学习的最小数据单元,定义了 "在什么情况下应该做什么"

  • 状态 s:智能体在某一时刻对环境的完整观测,包含完成任务所需的全部信息。例如:机器人操作中,机械臂的关节角度、末端执行器位置、相机拍摄的图像;自动驾驶中,车辆的速度、位置、周围障碍物的距离。
  • 动作 a:专家在对应状态 s 下采取的决策行为。可以是离散动作(如游戏中的上下左右、机器人的抓取 / 释放),也可以是连续动作(如机械臂的关节力矩、汽车的方向盘转角和油门大小)。

分布偏移

学习到的策略 π 访问的状态分布 pπ​(s),与专家示范的状态分布 pE​(s) 不一致


机械臂模仿学习的主要流程

1.数据采集

  • 动觉示教:你直接抓着机械臂的末端,带着它做一遍动作(比如倒水)。机械臂内部的关节电机处于空转或力矩模式,它会记录下整个过程中的关节角度、末端速度、力矩等数据。(这是最常见、最简单的数据采集方式)

  • 遥操作示教:使用一个主手设备(如3D鼠标、VR手柄、外骨骼设备)远程控制真实的机械臂,计算机记录主手的指令和机械臂的状态。

  • 视觉/无标记物捕捉:用摄像头捕捉人手在三维空间中的运动轨迹,然后通过算法(重定向)将人手的运动映射到机械臂的运动上。这种方法数据量大,但需要解决人手到机械臂的运动学差异问题。

2.模型训练

  • 将采集到的数据(通常包括:视觉输入 + 机械臂状态 + 动作指令)输入到神经网络中。

  • 网络学习的是一个策略:给定当前的图像和机械臂状态,应该输出什么样的关节动作(位置、速度或力矩)。

3.策略部署

  • 将训练好的模型加载到机械臂的控制器上。

  • 机械臂看到新的场景,实时推理出下一步动作并执行。

机械臂领域的核心技术方法

A. 行为克隆
  • 原理:把专家数据当监督学习。输入是视觉和关节角度,输出是动作。这是最直接的baseline。

  • 挑战复合误差。机械臂一旦稍微偏离训练数据的轨迹,它不知道该怎么回来,导致越偏越远。

B. 强化学习 + 模仿学习(混合方法)
  • 原理:先用模仿学习给机械臂一个“预热”,让它学会个大概;再用强化学习让它在模拟环境或真实环境中微调,探索更好的策略。

  • 典型应用:OpenAI 的机械臂解魔方,就是先用模仿学习(人类演示),再用强化学习(自己练习)。

C. 逆向强化学习
  • 原理:人类做演示时,内心有一个“目标”或“意图”。逆向强化学习试图先推断出这个意图(奖励函数),然后再用这个奖励函数去训练机械臂。

  • 优势:如果机械臂理解了“意图”(比如要把水倒进杯子而不洒出来),即使杯子位置变了,它也能自己调整动作。

D. 动态运动基元
  • 原理:一种经典的轨迹学习方法。将人类的示范轨迹参数化为一组微分方程。机械臂调用这些基元,可以灵活调整轨迹的起点和终点(比如原来的轨迹是画一个圆,现在圆心移动了,它也能跟着画)。

  • 适用场景:需要保证轨迹形状,但起始点/终点变化的任务(如挥拍、写字)。

模仿学习的主要算法

1.行为克隆(Behavioral Cloning, BC)

将模仿学习视为监督学习问题。输入当前状态(如相机图像、关节角度),输出专家动作(如末端速度、关节力矩),通过最小化预测动作与专家动作的误差来训练策略网络。

优点:实现简单,收敛快速

痛点:误差累积放大;测试分布与训练分布不一致

适用场景:简单重复的轨迹任务(如Pick-and-place固定点位)


2.DAgger (Dataset Aggregation)

解决行为克隆的分布偏移问题。算法迭代式地让机械臂在当前策略下运行,遇到新状态时,邀请专家"纠正"该状态下的正确动作,然后将新数据加入训练集

优点:显著提升策略的鲁棒性;让机械臂学会从错误中恢复

痛点:需要专家在线干预;数据采集成本高

机械臂适用场景:需要高精度的复杂操作(如装配、插入任务)


3.GAIL(Generative Adversarial Imitation Learning)

借鉴生成对抗网络的思路。训练一个判别器来区分"专家演示轨迹"和"机械臂当前策略生成的轨迹",同时训练策略网络(生成器)去"欺骗"判别器,让其无法区分。

优点:无需预先定义奖励函数,学到的策略更接近专家行为分布,而非简单复制

痛点:训练不稳定,计算复杂度较高

机械臂适用场景:复杂操作技能学习(如开门、拧瓶盖),特别是难以手工设计奖励的任务


4. 逆强化学习:IRL

不直接学策略,而是先从专家演示中反推出奖励函数(即"专家为什么要这么做"),然后再用这个奖励函数通过强化学习训练策略。

优点:学到的奖励函数可解释,能迁移到新场景;比行为克隆更好的泛化能力

痛点:需要反复调用强化学习,计算量大;奖励函数可能不唯一(歧义性问题)

机械臂适用场景:需要理解任务意图的场景(如"把杯子放到桌上"而不关心具体轨迹)


5. IQ-Learn

将 IRL + RL 的两阶段统一为单一的 Q 函数优化,绕开奖励函数的显式建模。

优点:比 GAIL 更稳定,可以离线学习


6. 扩散策略(Diffusion Policy)

将扩散模型引入模仿学习。动作生成 = 去噪过程。对未来动作序列加噪后训练去噪网络,推理时从高斯噪声逐步去噪得到动作

优点:强大的多模态建模能力;训练稳定,生成的动作序列

痛点:推理速度较慢;计算资源要求高

机械臂适用场景:灵巧操作(如多指手抓取)、需要多样性的任务


7.ACT (Action Chunking with Transformers)

  • Action Chunking:每次预测未来 k 步的动作序列,而非单步动作(减少复合误差,处理抖动)
  • CVAE:在训练时用 CVAE 对专家行为的多模态分布建模,推理时从先验采样

优点:处理多模态行为;减少抖动和复合误差;数据量需求相对小


学习路线建议

                  ↗ GAIL → IQ-Learn
BC → DAgger → IRL  
                  ↘ ACT → Diffusion Policy → RT系列

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐