OpenAI推出机器人新系统:可通过VR演示自主学习新任务
选自OpenAI
作者:PETER WELINDER
机器之心编译
参与:晏奇、黄小天
近日,OpenAI 官方博客上发表了一篇名为《自主学习的机器人(Robots that Learn)》的文章。OpenAI 称借助新近论文《One-Shot Imitation Learning(one-shot 模仿学习)》的研究成果,其可通过 VR 向机器演示如何学习新任务,这就打造了一个完全在模拟环境中训练的机器人系统,训练成果可部署到现实的机器人,并且机器人还可以学习只被演示一次的新任务。机器之心对文章和论文简介进行了编译,原文链接请移步文末。
算法
上月,我们展示了这款机器人早先的一个版本(地址:https://blog.openai.com/spam-detection-in-the-physical-world/),我们使用域随机化(domain randomization)来训练它的视觉系统,也就是说,通过向其展示很多有带有不同色彩的模拟对象、背景、纹理,而不用真实的图像来进行训练。
现在,我们已经开发和部署了一个新算法:「one-shot 模仿学习」,其允许人类在 VR 中向机器演示如何学习新任务。在给定的单一演示中,机器可以解决具备任意初始配置的新任务。
步骤概览
注:我们的系统可以从模拟器内给出的单个演示中习得一个行为,然后,它可以在现实场景里分步骤重新还原该行为。
该系统由两个神经网络组成:一个视觉网络与一个模仿网络。
视觉网络从机器人的相机中获取图像,然后输出重新表征物体位置的状态(state)。如上个版本(网址上文已附),我们用成千上万模拟的具有不同光照扰动的图像、纹理和物品来训练视觉网络(该视觉系统从未在真实的图像上训练过)。
模仿网络会观察一个给它的演示,通过处理,它可以推断出对应任务的意图(intent),然后从另一个初始构造(configuration)出发来完成这个意图。因此,该模仿网络必须将演示归纳成一个新的设定。但是,问题在于模仿网络何以知晓归纳的方法呢?
它从训练样例的分布中学习这种归纳方法。它在很多不同的且每个都包含成千上万个演示的任务中进行训练。每个训练样例都是执行相同任务的一对演示。我们给模仿网络展示完整的第一个演示,而至于第二个演示它只能看一眼。然后我们使用监督学习来预测演示器在那个演示瞬间的行为是什么。为了得到有效的预测,机器人必须学会如何从第一个演示中来推断任务的相关部分。
应用于块堆叠(block stacking)的训练数据由一对以同样序列堆块而成的相匹配的一组塔(tower)的轨迹(trajectory)构成,不同的是它们由不同初始状态开始。如此方式,模仿网络可以学习去匹配演示器中堆块的顺序与塔的尺寸大小,而不用担心相关塔的位置。
块堆叠
创建编码颜色的块堆叠任务非常简单,以至于我们可以通过脚本策略(scripted policy)在模拟中解决它。我们使用脚本策略生成用于模仿网络的训练数据。测试时,模仿网络能够解析来自人类的演示,尽管以前从未见过人类凌乱的数据。
在演示轨迹和表征块的位置的状态向量上,模仿网络使用了软注意力(soft attention:https://arxiv.org/abs/1409.0473),从而允许系统使用可变(variable)长度的演示。它也注意不同块的位置,允许其模仿较自己所见更长的轨迹,并将块堆叠到比其任何训练数据演示里的块还要多的结构里去。
对于学习鲁棒策略的模仿网络,我们不得不将适量的噪声注入到了脚本策略的输出结果中。这迫使脚本策略去演示发生错误时的恢复方式,这也教会了模仿网络去处理来自不完美策略(policy)的干扰。如果没有注入噪声,模仿网络所学的策略通常不能完成堆叠任务。
论文:One-Shot 模仿学习(One-Shot Imitation Learning)
论文链接:https://arxiv.org/abs/1703.07326
模仿学习通常用于解决不同的孤立任务。这经常需要仔细的特征工程,或者大量的样本。我们并不想要这样,而是希望机器人能够从任何给定任务的少量演示中学习,并立即把所学应用于新情景,而无需做特定任务的工程。为了达成这一目标,我们在本篇论文中提出了一中被称为「one-shot 模仿学习」的元学习框架。
具体来说,我们考虑有一个非常大任务集的设置,其中每个任务有很多实例。例如,一个任务可以是把所有的块堆成一个塔,另一个任务也许是把桌子上所有的块堆成塔,但每个塔只包含两个块。在每一情况下,任务的不同实例包含带有不同初始状态的不同的块集。一个神经网络通过把演示和当前状态作为输入而获得训练,其输出是一个行动,目标是状态和行动的结果序列尽可能地与第二个演示相匹配。在测试时,新任务的单一实例的演示被展示,而神经网络被期望在这一新任务的新实例上表现良好。软注意力的使用允许模型应对从未遇见过的新情况和新任务。我们预测,通过在更多的任务和设置中训练这一模型,我们将会获得一个更通用的系统,可以把任何演示转化为鲁棒策略,以处理各种任务。