【新智元导读】之前在DOTA2团队战中战胜人类玩家的OpenAI Five,现在被用于训练机器手,取得了前所未有的灵活度。这只机器手完全在虚拟环境中自我学习和训练,然后成功迁移到现实世界解决实际问题。OpenAI使用6144个CPU和8个GPU来训练,50小时内收集了大约100年的经验。
还记得OpenAI那个在DOTA2有限制5v5团战中战胜人类玩家的OpenAI Five吗?
这次,OpenAI的研究人员将同样的算法和同样的代码用在了训练机器手上,所得到的机器手能以前所未有的灵活度操纵立方体、圆柱体等物体。
这个系统名为Dactyl,与其他机器人系统不同的地方在于,它完全在模拟环境中进行训练,并将其虚拟世界中得到的知识转化为现实,并且适应现实世界的物理学。所有的行为都是自主发现的。
研究人员表示,他们的结果表明,完全可以在纯模拟环境中训练智能体,无需对现实世界进行精确的物理建模(一项极端复杂且浩大的工程),就能让智能体解决实际的任务。
虽然 Dactyl 机器手跟人手相比仍有一定距离,但这项工作表明,机器学习有可能解锁机器新的能力——将来,AI完全可以在虚拟世界中自己教自己新的技能,大大加快学习速度,然后转移至物理世界。
OpenAI还在这次研究中发现了一些令他们感到意外的结果:
首先,触觉感应对于操纵现实世界物体并不是必要的。Dactyl 机器手操纵只接收五个指尖的位置以及立方体的位置和方向。有限的传感器可以获得更好的性能,因为这些传感器可以在模拟器中有效建模,由很多传感器组成的传感器组建模起来非常复杂。
其次,为一个对象开发的随机化(Randomizations)也能推广到具有类似属性的其他对象身上。在玩转立方体后,OpenAI的研究人员打印了一个八角棱镜,结果 Dactyl 机器手仅使用他们为立方体设计的随机化就实现了高的性能。不过,操纵球体还略有难度,可能是因为他们没有随机化模拟滚动行为的参数。
此外,对于现实世界的机器人来说,要让运作性能高,好的系统工程与好的算法同等重要。
减少反应时间并没有改善性能。传统观点认为,减少动作之间的时间应该可以提高性能,因为状态之间的变化更小,因此更容易预测。但实验中,研究人员将机器手动作之间的时间减少到 40ms,训练时间反而变长,而且没有显著改善其在现实世界中的性能。他们得出的结论是,这种经验法则可能适用于线性模型,但可能不太适用于神经网络模型。
最后,使用真实数据来训练结果不一定更好。与模拟数据相比,真实数据有很明显的缺点,比如跟踪标记的位置信息有延迟和测量误差。更糟糕的是,实际配置的更改很容易让实际数据变得无效,而且收集足够多、足够有用的数据十分困难。最终 Dactyl 机器手的视觉模型,是在没有任何实际数据的情况下完成的。
机器手灵活控制物体有四大难点,一直未取得重大突破
Dactyl是一个使用Shadow Dexterous Hand操纵目标的系统。我们将一个木块或棱镜这样的物体放在Dactyl的手掌中,让Dactyl将其重新定位至不同的方向;比如旋转木块,让其新的一面朝上。网络仅负责观察指尖的坐标以及来自三个普通RGB相机的图像。
虽然第一个拟人化的机器手早在几十年前就出现了,但如何利用这些手有效地操纵物体,一直是机器人控制领域内的长期挑战。与运动之类的其他问题不同,人们在利用传统机器人方法实施灵巧的操作方面的进展一直很缓慢,并且当前的技术在操纵现实世界中的物体上仍然存在局限性。
要对机器手中的物体实施重新定向,需要解决以下问题:
在现实世界中奏效。强化学习在模拟和视频游戏中取得了许多成功,但在现实世界中取得的成果却相对有限。我们在真实的机器人身上对Dactyl进行了测试。
高维控制。Shadow Dexterous Hand的自由度为24,而一般的机器人手臂的自由度为7。
噪音和观察部分目标。 Dactyl是在真实世界中工作,因此必须处理噪声和延迟的传感器数据。当指尖的传感器被其他手指或物体遮挡时,Dactyl必须能够处理不完整信息。像摩擦和滑动等物理体系中的许多组成部分,是无法直接通过观察得到的,必须由推理得出。
操纵多个对象。 Dactyl在设计上的高灵活性,足以重新定向多个目标。也就是说,我们的方法不能使用仅适用于特定形状目标的策略。
无需任何人工输入:领域随机化,再现模拟奇迹!
Dactyl完全是在模拟环境中学习如何解决目标重定向任务(object reorientation task)的,无需任何的人工输入。在此训练阶段之后,学习策略会在没有任何微调的情况下对真实机器人起一定作用。
在操纵机器人的学习方法方面,通常会面临一个两难的选择。模拟的机器人可以轻松提供充足的数据来训练复杂的策略,但是大多数操作问题都无法准确地建模,从而无法使这些策略转移到真实机器人身上。即使是对两个物体接触时发生的情况进行建模(这是操作中最基本的问题)也是一个活跃的研究领域,并且目前没有广泛统一且接受的解决方案。直接在物理机器人上展开训练可以让策略从现实世界物理层面进行学习,但现今的算法需要多年的经验才能解决类似对象重定向这样的问题。
而领域随机化(domain randomization)是在模拟中进行学习的,旨在提供各种经验而不是将现实进行最大化。这种思路提供了最好的两种方法:在模拟中学习,可以通过扩展来快速收集更多的经验;不强调现实主义,可以解决模拟器只能近似模拟的问题。
利用MuJoCo物理引擎构建机器人系统的模拟版本。这个模拟仅仅是真实机器人的粗略近似:
对摩擦、阻尼和滚动阻力等物理属性进行测量是既麻烦又困难的。随着机器人的磨损,这些属性也会随时间而改变。
MuJoCo是一个刚体模拟器,这意味着它不能模拟手指上或肌腱的拉伸时的可变形橡胶。
机器人只能通过反复接触来操纵物体。 然而,众所周知,接触力难以在模拟中准确地再现。
通过校准其参数来匹配机器人的行为,可以使模拟更加逼真,但在目前的模拟器中,许多这样的效果是无法精确建模的。
相反,该方法是在模拟环境的分布上对策略进行训练,其中物理和视觉属性是随机选择的。随机值是表示物理系统不确定性的一种自然方法,它还可以防止对单个模拟环境的过度拟合。如果策略可以在所有模拟环境中完成任务,则更有可能在现实世界中完成该任务。
6144个CPU和8个GPU,50小时内收集大约100年的经验
学习控制
通过构建支持迁移的模拟,我们减轻了在现实世界中控制机器人来完成模拟任务的困难,这是一个非常适合强化学习的问题。虽然用一只模拟的手来操纵物体这个任务已经有些困难,但是要在所有随机物理参数组合中学习进行这样的操作实际上要更加困难。
为了在不同环境中进行推广(generalize),策略可以在具有不同动态的环境中执行不同的操作。由于大多数动力学参数不能从单个观测中推断出来,所以我们使用LSTM(一种具有记忆的神经网络)使网络能够了解环境的动态。LSTM在模拟中实现的旋转大约两倍于不具有记忆的策略的旋转。
Dactyl使用Rapid学习,这是一个强化学习训练系统,之前解决了Dota2的OpenAI Five使用的也是它。我们使用了与OpenAI Five不同的模型架构、环境和超参数,但是使用的算法和训练代码是完全相同的。Rapid使用6144个CPU内核和8个GPU来训练我们的策略,在50小时内收集了大约100年的经验。
为了进行开发和测试,我们使用嵌入式运动跟踪传感器来验证我们的控制策略,以分别了解控制策略和视觉网络的性能。
学习观察
Dactyl的设计目的是能够操纵任意物体,而不仅仅是为了支持跟踪进行过特殊修改的物体。因此,Dactyl使用常规的RGB相机图像来估计物体的位置和方向。
我们使用卷积神经网络训练一个姿态估计器(pose estimator)。神经网络从机器手周围的三个摄像机中获取视频流,并输出目标的预估位置和方向。我们使用多台摄像机来解决模糊和遮挡问题。我们再次使用Unity游戏开发平台,仅在模拟中使用域随机化来训练这个网络,该平台可以模拟比Mujoco更广泛的视觉现象。
控制网络(control network)根据对象的姿态重新定位,视觉网络(vision network)将图像从摄像机映射到对象的姿态,通过结合这两个独立的网络,Dactyl可以通过观察来操纵对象。
用于学习估计立方块的姿势的训练示例
所有行为都由机器自主发现,采用与人不同的策略
在部署系统时,我们注意到Dactyl使用了一组多样的灵巧操作策略来解决任务。这些策略也是人类经常使用的。但是,我们并没有明确地将这些策略教给系统;所有的行为都是自主发现的。
Dactyl根据GRASP分类法了解类型。从左上到右下分别是:指尖捏、掌心捏、三指握、四指握、强力抓握、五指精准抓握。
我们观察到,对于精准抓握,比如指尖捏,Dactyl会使用拇指和小指。人类则倾向于使用拇指和食指或拇指和中指。然而,由于由额外的自由度,机器手的小指更加灵活,这也许可以解释为什么Dactyl更喜欢用小指。这意味着Dactyl可以调整人类的策略,以更好地适应自身的局限性和能力。
改变实验方式时的表现
我们测试了Dactyl在掉落物体、超时或成功翻转目标50次前的成功翻转次数。 我们在纯模拟训练的结果表明,该策略能够成功操纵现实世界中的目标。
我们在实验室中使用Shadow Dexterous Hand、PhaseSpace动作跟踪相机和Basler RGB相机进行实验。
对于操作立方体的任务而言,使用随机化训练的策略可能比未随机化训练的策略实现更多的翻转次数,具体结果如下表所示。 此外,使用由视觉估计姿态的控制网络的表现,几乎与直接从运动跟踪传感器中读取数据的网络一样好。
学习过程
为了让我们的策略在面向不同的物理动态目标时变得更加强大,OpenAI研究人员将绝大部分的训练时间花费在这件事上。在没有随机化的情况下,要在模拟实验中学会翻转立方体需要大约3年时间。在完全随机化模拟实验中,实现类似的目标性能则需要大约100年。
编译来源:
https://blog.openai.com/learning-dexterity/
原文发布时间为:2018-07-31
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。
原文链接:【2天=100年】OpenAI用打Dota2的算法造了一只会转方块的机器手