OpenAI新推两种算法,使机器人在VR中快速掌握新技能
2017-05-17 机器人圈
近日,OpenAI创建了一套机器人系统,完全在仿真中进行了训练,并部署在物理机器人载体上,可以在看到人类完成一次之后学习一项新任务。
算法
上个月,OpenAI展示了这个机器人的早期版本,他们使用域随机化算法(domain randomization)对其视觉系统进行了训练,即通过使用各种颜色、背景和纹理显示模拟对象,而不使用任何真实图像。
现在,OpenAI开发并部署了一种新的算法,一次性模仿学习(one-shot imitation learning),让人们通过在VR中执行它来传达如何做一个新的任务。只要给定一个演示,机器人便能够从任意的起始配置中解决相同的任务。
一般程序
图注:该系统可以从模拟器中提供的单个演示中学习某个行为,然后在现实中以不同的设置再现这种行为。
该系统由两个神经网络组成:视觉网络和模仿网络。
视觉网络从机器人的相机抓取图像,并输出表示对象位置的状态。如前所述,视觉网络被训练成数十万个具有不同照明、纹理和对象扰动的模拟图像(视觉系统从未对真实形象进行过训练)。
模仿网络观察演示,处理它来推断任务的意图,然后从另一个起始配置开始实现意图。因此,模仿网络必须将演示推广到新的环境。但模仿网络如何知道怎样推广?
网络从训练示例的分发中学到这一点。它对几十个不同的任务进行了训练,每个任务都有数千次演示。每个训练示例是执行相同任务的一对演示。网络被给予了第一次演示的全部和第二次演示的一次观察。然后,OpenAI使用监督学习来预测演示者采取什么行动。为了有效地预测行动,机器人必须学习如何从第一次演示推断任务的相关部分。
该技术已经应用于堆方块,训练数据包括以相同顺序将块堆叠成匹配的方块塔的轨迹对,但是从不同的起始状态开始。通过这种方式,模仿网络可以学习如何匹配演示者和塔楼的大小,而不用担心塔的相对位置。
堆方块
创建颜色编码的堆栈的任务很简单,OpenAI用模拟的脚本策略解决了这一问题。他们使用脚本策略生成模拟网络的训练数据。在测试的时候,模仿网络能够解析人类制作的演示游戏,尽管以前从未见过凌乱的人类数据。
模拟网络使用soft attention技术(https://arxiv.org/abs/1409.0473)演示轨迹,并表示块的位置的状态向量,从而允许系统对可变长度的演示进行工作。它也引起了不同块的位置的注意,允许它模仿比以往更长的轨迹,并将堆栈块变成具有比其训练数据中的任何演示更多的块的配置。
为了模仿网络学习能够具有鲁棒性,我们不得不在脚本策略的输出中注入适量的噪音。这迫使脚本策略展示如何在发生错误的情况下恢复,从而教会模拟网络应对不完善策略的干扰。在不注意噪声的情况下,模拟网络学习的策略通常不能完成堆叠任务。