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