1. 模仿学习基础

各位同学好,我是这门课的主讲工程师。今天咱们聊聊模仿学习的入门知识。说实话,我第一次接触这个方向时,也觉得它挺玄乎——让机器人看人做一遍就学会?后来做了几个项目才明白,这里面的门道比想象中深得多。

1.1 什么是模仿学习

模仿学习,说白了就是让机器人通过观察专家的示范来学会执行任务。你想想看,人类教小孩拧瓶盖,从来不会写微分方程给他,而是手把手拧一遍,小孩看几次就会了。模仿学习干的也是类似的事。

从控制理论的角度看,传统方法需要我们手动设计控制律、调参数、写状态机。但模仿学习不一样——它直接从示教数据中提取策略。我当年做力控焊接项目时,光调阻抗参数就花了两周。后来改用模仿学习,让熟练焊工示教几遍,机器人自己就学会了柔顺轨迹,省了大把时间。

核心思想:模仿学习 = 从专家示教数据中学习一个从状态到动作的映射函数 π(s) → a,使得机器人在新场景下能复现专家的行为。

1.2 行为克隆与逆强化学习

模仿学习下面有两个主流分支,我分别说说。

行为克隆(Behavioral Cloning, BC)

行为克隆是最直接的方法。它把示教数据当成监督学习的训练集:状态是输入,动作是标签。然后训练一个神经网络,让它学会预测动作。

# 伪代码示意:行为克隆训练
示教数据 = [(s1, a1), (s2, a2), ..., (sN, aN)]
策略网络 = 神经网络(输入维度=状态维度, 输出维度=动作维度)
for epoch in range(100):
    预测动作 = 策略网络(状态)
    损失 = MSE(预测动作, 真实动作)
    反向传播更新网络权重

听起来简单对吧?但我在实际项目里踩过坑——行为克隆有个致命问题:分布偏移。训练时网络看到的都是专家状态,但一旦推理时出现微小偏差,状态就偏离了训练分布,然后越偏越远,最后崩掉。我曾经用BC训练一个插拔连接器的任务,前10次都好好的,第11次机器人直接把连接器怼歪了……

避坑指南:行为克隆适合状态空间小、任务确定性高的场景。如果任务有随机性或多模态行为,BC基本会翻车。我建议先用DAgger算法做在线数据增强,或者直接上逆强化学习。

逆强化学习(Inverse Reinforcement Learning, IRL)

逆强化学习走的是另一条路。它不直接学策略,而是先推断专家背后的奖励函数,再用强化学习去优化这个奖励函数。说白了,就是猜专家心里在想什么。

举个例子:你看到一个人开车时总是贴着车道中心线走。BC会直接学“当前偏左就向右打方向”。但IRL会先推断“专家的奖励函数是惩罚偏离车道中心”,然后让强化学习自己去探索怎么最大化这个奖励。

对比维度 行为克隆(BC) 逆强化学习(IRL)
学习目标 直接拟合动作 推断奖励函数
数据效率 高(少量数据即可) 低(需要大量交互)
泛化能力 差(分布偏移) 好(学到意图)
计算开销 低(一次训练) 高(需反复RL)
适用场景 简单重复任务 复杂、多模态任务

我个人习惯是:如果任务简单、示教数据充足,先用BC快速出原型。如果BC效果不好,再上IRL。毕竟IRL的训练时间可能是BC的几十倍,你得有心理准备。

1.3 示教方式分类

示教方式决定了数据质量,而数据质量直接决定模仿学习的上限。我见过太多项目因为示教方式选错,后面再怎么调算法也救不回来。下面三种是主流方式。

遥操作示教

操作者通过主手控制从手,机器人跟着动。这种方式精度高,能记录完整的力/位信息。我在做精密装配项目时用的就是遥操作——操作者戴力反馈手环,通过主手控制机器人把轴承压入壳体,同时记录接触力曲线。

  • 优点:数据完整(位置+力+力矩),可远程操作,适合危险环境
  • 缺点:设备贵(力反馈主手动辄几十万),操作者需要培训,有延迟问题
  • 典型设备:Omega.7、Phantom Premium、定制主从系统

动觉示教

操作者直接用手拖动机器人末端,机器人处于重力补偿或零力模式。这是我最喜欢的方式——直观、快速、不需要额外设备。我做过一个打磨去毛刺的项目,工人直接抓着机器人末端在工件上走一遍,机器人就学会了轨迹和力控策略。

小技巧:动觉示教时一定要开启重力补偿和摩擦力补偿,否则操作者会感觉在跟机器人较劲。我建议用阻抗控制模式,设一个很低的刚度(比如50N/m),这样拖动起来像在空气中划水。

  • 优点:设备成本低(不需要主手),操作直观,适合快速原型
  • 缺点:大型机器人拖不动(超过20kg就吃力),精度受操作者手抖影响,无法记录力信息(除非装六维力传感器)
  • 典型设备:UR5/10协作机器人、Franka Emika Panda、KUKA LBR iiwa

视觉示教

操作者通过视觉系统(如RGB-D相机、动捕系统)演示动作,机器人通过观察来学习。这种方式最接近人类学习方式——看一遍就会。但说实话,视觉示教在工业场景中落地还不多,主要受限于视角遮挡和3D重建精度。

  • 优点:非接触式,不干扰操作者,可同时示教多台机器人
  • 缺点:需要精确的3D感知,受光照/遮挡影响大,力信息完全丢失
  • 典型设备:Intel RealSense、OptiTrack动捕系统、Azure Kinect

下面这张图总结了三种示教方式的关系和适用场景。

示教方式分类与选择框架 示教方式 遥操作示教 动觉示教 视觉示教 特性 • 数据完整(位+力) • 设备成本高 • 适合危险环境 特性 • 操作直观 • 设备成本低 • 大型机器人吃力 特性 • 非接触式 • 受光照/遮挡影响 • 力信息丢失 选型建议 • 精密装配/手术 → 遥操作(需要力反馈) • 快速原型/协作任务 → 动觉示教(效率最高) • 人形机器人/远程教学 → 视觉示教(非接触优势)

嗯,到这里第一章的核心内容就差不多了。最后我想说一句:示教方式的选择没有银弹。我见过有人花50万买力反馈主手,结果工人不会用,数据质量还不如动觉示教。也见过有人用视觉示教做抓取,精度差得一塌糊涂。我的建议是——先想清楚你的任务需要什么数据(位置?力?力矩?),再选最经济的示教方式。别为了炫技而选贵的。