近日,来自 OpenAI 的研究者训练了一对神经网络,利用一只类人机械手来玩魔方。他们彻底在模拟中训练神经网络,并在训练过程当中使用了与训练 OpenAI Five 相同的强化学习代码和一种名为自动域随机化(Automatic Domain Randomization,ADR)的新技术。该系统能够处理训练中未碰见过的状况,例如不受各类外界干扰的影响。这代表强化学习工具不只仅能够处理虚拟任务,并且还可以解决须要高度灵活性的真实世界问题。
机器之心编译,参与:一鸣、杜伟。
网络
那么,机器人是否能够像人同样玩魔方呢?自 2017 年 5 月以来,OpenAI 的研究者一直在尝试训练类人机械手来解决玩魔方问题。2017 年 7 月,他们在模拟环境下实现了机械手玩魔方。但截至 2018 年 7 月,研究者只能实现玩简单魔方。如今,他们终于实现了机械手玩魔方的目标。架构
单手玩魔方对于人类来讲都很困难。因此,OpenAI 的技术还不是足够完善,目前,OpenAI 的技术可让机器人解决 60% 的魔方状况,在最困难的魔方上只能解决 20%。
app
在机械手玩魔方的过程当中,研究者还对其施加了各式各样的干扰,如戴橡胶手套、绑住食指和中指、蒙上一块布、「假长颈鹿」干扰和用笔戳等。值得欣慰的是,OpenAI 的机械手在各类干扰下依然不为所动,淡定地玩「本身的」魔方。dom
两项任务
工具
在论文中,OpenAI 的研究者考虑了两项都使用影子灵巧手指(Shadow Dexterous Hand)的不一样任务:魔方块的重定向和完成魔方。
性能
魔方块重定向
学习
魔方块重定向任务是为了旋转方块到指望的目标方向上。若是一个方块的旋转弧度与目标方向保持在 0.4 以内,则认为该方块旋转到了正确的方向,而后也就生成一个新的随机目标(即另外一个方块也开始旋转)。
测试
完成魔方
ui
研究者提出利用相同的影子灵巧手指来解决魔方任务。简言之,魔方是一种内部具备 6 种自由度的益智游戏,包含 26 个经过接头和弹簧系统相连的方块。每一个方块有 6 个面,能够自由旋转,从而带动整个魔方转动。若是魔方的 6 个面都成为一种颜色,则认为魔方任务完成。
方法
研究者训练神经网络,并利用强化学习来完成魔方任务。他们在训练过程当中遇到了一个最大挑战,即在模拟中须要建立足够多样化的环境,从而尽量多地捕捉到真实世界的物理状态。摩擦力、弹性和力度这些因素对于复杂的魔方或机械手而言是难以测量和建模的,而且发现仅仅依靠域随机化是不够的。
基于此,研究者提出利用自动域随机化的方法在模拟中不断地生成愈来愈困难的环境。
自动域随机化(ADR)
ADR 从单一的、非随机环境开始,这里神经网络尝试学习解决魔方问题。当神经网络在任务表现上变得更好并达到了性能门槛后,随机化域的数量自动增长,使得任务变得更难解决。神经网络继续学习,直到性能达到最好,而后再增长随机化的环境,如此反复。
经过 ADR,研究者能够训练一个神经网络,用于解决真实机器人手中的魔方问题。这是由于 ADR 输入的各类环境信息可让网络接触到各类各样的随机模拟。
行为、奖励和目标
研究者在策略网络上使用了循环神经网络的架构。他们使用有着 ReLU 激活函数的全链接层做为输入层,并使用一个单层 LSTM 层进行处理。
价值网络和策略网络是分开的,可是二者有着同样的架构。研究者将 LSTM 输出映射为一个标量值。
视觉模型
为了模拟魔方的视觉信息,研究者使用左、上、右三个摄像机捕捉图像,而后使用 ResNet50 提取每一个图像的特征。这些特征向量被展开、级联、而后输入进一个堆栈式全链接层,用于预测魔方的总体状态,包括位置、朝向和角度等。
总体的架构如图所示:
图 11:经过 ADR 向(a)策略和(b)视觉网络输入环境变量,并在训练进行中不断增长 ADR 输出环境的难度。