现实差距
在机器人学习里,现实差距指的是:当一项在仿真中训练出来的技能被搬到真实机器人上时,所出现的性能下滑。机器人是在仿真器里学会它的行为的——也就是它的策略,那条把“它感知到的东西”转成“它要做的动作”的规则——而仿真器里的物理既整齐又可预测。可一旦把这套一模一样的策略装进一台实体机器,它的表现却突然变差:打滑、迟疑、冲过头,甚至在它本已在仿真器里掌握得很好的那项任务上彻底失败。这种“仿真里很在行”与“现实里很在行”之间的落差,就是现实差距;它正是一个看上去已经做好的策略,却仍然不能在硬件上被信任的根本原因。
这道差距之所以存在,是因为没有任何仿真能完美复制现实。仿真器也许假定地板摩擦固定不变、电机响应瞬时无延迟、摄像头从不模糊,也没有灰尘、形变或磨损的齿轮——而真实机器人却同时身处所有这些不完美之中。一个学出来的策略,会不动声色地把自己调到“恰好契合仿真器所假定的那一套”,于是两个世界之间哪怕只是小小的不匹配,也会把它带偏;而当机器人漂移进它从未练习过的状态时,错误还会层层累积。差距越大,仿真里那个满分成绩就越是夸大了机器人在现实中真正会有的表现。
现实差距正是每一种迁移技术所要对抗的东西。你从两个方向去缩小它:一是测量真机器并校正模型,让仿真更忠实于现实;二是给仿真加入随机变化,让策略学会应付一整片范围内的各种状况,而不是只适应一个理想化的世界,从而更加稳健。一个被训练得能在上百种不同仿真摩擦下都活下来的策略,对它最终遇到的那一种真实摩擦几乎毫无察觉。
一台四足机器人在仿真里小跑得无可挑剔,可到了真实草坪上,富有弹性的草和一只略弱的电机让每一步都落得差那么一点,仿真与现实之间的差距随着步伐一步步拉大,直到它绊倒。
在仿真器里完美无瑕,却败给了仿真器漏掉的那些小事。
这里是从机器人学习的角度描述现实差距——也就是让被迁移的策略性能变差的那个东西。它是仿真到现实迁移必须跨越的障碍,而域随机化是缩小它的主要办法之一。