行为克隆
行为克隆是通过示范来教机器人技能的最简单办法:你把专家完成任务的过程录下来,然后训练机器人去照搬专家的做法。录下来的每一个瞬间都被做成一张闪卡——正面是机器人在那一刻所看到、所感觉到的一切(摄像头画面、各关节的位置、夹爪的状态),背面则是专家紧接着采取的那个确切动作(往这边移、合上夹爪、转动轮子)。机器人翻看成千上万张这样的闪卡,学到一条经验法则,把“我现在看到的样子”直接对应到“我应该做的动作”。由于这不过是给问题配上答案,它其实就是普通的监督学习,和给照片打标签所用的那种模式拟合是同一类——只不过这里的标签是动作,而不是名称。
它的吸引力在于:不需要奖励、不需要反复试错、也不需要仿真器;几次人类示范往往就足以让机器人开始模仿抓取摆放或转向的动作。麻烦之处是一个不动声色却很要命的毛病,叫做累积分布偏移,或称累积误差。机器人只见过专家走过的那些情境,它们都干净利落、始终在正轨上。可一旦它自己的小失误把它稍稍带离这条正轨——杯子抓得偏左了一厘米——它就撞上了专家从未示范过的画面,于是它的判断变得更差,把它推得离正轨更远,下一帧画面就更陌生。误差像滚雪球一样越滚越大,一个在测试里看似完美的机器人,可能漂移到一个它完全不知该如何应对的处境。
实践者用几种办法来对抗这种滚雪球:收集多得多的示范,特意把那些“出了岔子又如何纠回来”的杂乱过程也录进去;或者让专家在机器人练习时当场纠正它,使它学会怎样重新回到正轨上。不过,朴素的行为克隆依然是最常用的第一招,恰恰因为它实在太容易搭起来了。
工程师手把手引导机械臂抓取咖啡杯 200 次,再用行为克隆来训练它;它一直抓得很稳,直到一只杯子摆出它从未见过的角度,一次早早的打滑便一路连锁,演成一场手忙脚乱。
照搬专家效果极好——直到一个小失误把它带去专家从未到过的地方。
行为克隆照搬专家做过的动作;而逆强化学习则试图弄清专家为什么那样做——即动作背后的目标。