OpenAI机械手:玩转魔方,灵活不输人类

原创: 关注前沿科技 量子位

边策 鱼羊 发自 凹非寺

量子位 报道 | 公众号 QbitAI

OpenAI官方为这只AI机械手激动了:

“机器人的前所未有之境,就算人类也难以做到。”

说的啥新进展?单手玩魔方。

相比之下,人类新手能稳稳拿住魔方都不容易:

而且不仅玩得转魔方,捆绑Play也不在话下。

没人告诉它该怎么调配手指,还需要克服人类强行使的各种绊子,但AI机械手可以随时调整不断学习,最后最短时间内完成魔方翻转。

这就是OpenAI用强化学习最新训练出的AI系统。

并且,还是单手操作。

视频一经放出,迅速蹿红推特,揽下6000+点赞,网友惊呼:

AI玩魔方都玩得比我好了!

这事儿不简单

且不说量子位这样的手残党,单手恢复魔方,对于普通人类而言也并不简单。

不信的话,随便拿起身边一个直径6厘米的块状物体,单手转起来。小心拿稳了,砸到脚还挺疼的(别问我怎么知道的)。

而对机械手来说,问题就更复杂了。

机械手远没有人手这样灵活,抓取力度控制也挑战不小。

就算是“媲美”人手,能使用的场景或泛化迁移能力,也道阻且长。

比如这位MIT工程师,就吃过大亏:

△生活大爆炸

而更大的挑战,是现实世界中复杂的物理参数。

在玩魔方这个任务当中,机械手跟魔方之间的摩擦力、弹性和其他动力学因素都很难测量,更别说精细建模了。

并且,在模拟仿真环境中训练出来的AI,面对复杂多变的真实物理世界,是否能保持鲁棒,也是一个大问题。

比如说带个橡胶手套,摩擦力就变了:

两个手指被绑住,难度也会与模拟训练时大大不同:

甚至可能会跑出来一只长颈鹿,试图叼走魔方:

如此种种,使得sim2real(从模拟环境到现实环境)变得非常困难,仅凭过去的域随机化(Domain Randomization)算法(见注)已经不足以解决。

注:域随机化(Domain Randomization)由OpenAI提出,能够创建具有随机属性的各种模拟环境,并训练可在任何环境中工作的模型。

论文地址:https://arxiv.org/abs/1710.06537

所以机械手玩转魔方,真真是一次力与美的结合、灵与器的共舞。

而OpenAI的核心秘诀,在于进一步开发了一种新的算法,称为自动域随机化(ADR)。

当然,机械手的构造也来头不小。

先看神奇之手的硬件结构

OpenAI的机械手,装载一个巨大的支架中。

在这个支架里,包含一个PhaseSpace运动捕捉系统、一个RGB相机。机械手的每个指尖上都有一个LED灯,系统就是通过这一组灯来捕捉机械手的动作。

操纵魔方的机器人手来自影子机器人公司(Shadow Robot Company),基于旗下 Dextrous E系列机械手打造。

这原本是一家想做双足机器人的公司,因为发现自己的水平远不及本田已经造出的机器人,于是弃脚从手,转而去开发机械手,并造出了世界上第一台拟真机械手。

△ 影子机器人公司开发的机器人

具体结构上,Dextrous有20个可驱动的关节:中指和无名指各有3个驱动关节和1个非驱动关节,小指和拇指有5个驱动关节,以及一个有2个驱动关节的腕部。

为了“玩转魔方”,OpenAI和影子机器人公司,还合作提高了机器手组件的坚固性和可靠性。增加了手的握力,并减小了肌腱应力,并且调整了关节之间的交联,最大程度地减小了扭矩的限制。

与人类“十指连心”类似,他们除了在机械手上安装了位置和力传感器,还在指尖上安装了超灵敏的触摸传感器,以达到接近人手的效果。

实验中用到的魔方也不是普通的魔方。

不少米粉或许也会觉得眼熟,它是小米的计客超级魔方(GiiKER cube),内部有可感应方向的蓝牙与运动传感器。

计客超级魔方具有90度的面角分辨率,但OpenAI团队对其进行了修改,将精度提高到了大约5度。

再看软件算法功力:从模拟到现实

虽然我们看到拧魔方是在实际的机械手上发生的,但实际上这一过程主要发生在模拟软件中,然后将AI从模拟中学习到的东西转移到了现实世界中。

OpenAI在机械手上用到了两大法宝:

一个是曾经打败Dota 2世界冠军团队的AI系统OpenAI Five;

另一个是自动域随机化(ADR,Automatic Domain Randomization)。

ADR会不断在仿真中生成越来越困难的环境,使系统摆脱精确模型对现实的束缚,从而使模拟环境中的神经网络能够迁移到真实世界。

这里提到的环境中的随机化是什么呢?

其中包括模拟器考虑到的物理特性(如几何形状、摩擦和重力),以及模拟器未能考虑到的一些物理效应。

比如魔方的大小,就是随机化参数之一。

△ADR在魔方大小上的应用

此外,还有照明条件之类的视觉元素、相机位置和角度、物体的材料和外观、背景纹理甚至是渲染图像的后处理效果。

研究人员表示,这项研究的重要意义在于:一旦弄清楚如何在仿真中训练这些模型,就可以有效地获取无穷数据,然后将模型迁移到机器人上,在现实世界中利用它们。

既然是用强化学习,必然会涉及到奖励机制,OpenAI团队在这个实验中定义了三个:

系统当前状态与目标状态之间的差异;

达成目标时给予奖励;

每当手中魔方掉落时就受到惩罚。

为了系统测试每次翻转魔方成功时间,OpenAI还测量了神经网络在不同扰动下的结果,比如重置网络的内存、重置力或断开关节等等。

而且这种“训练”以虚拟仿真为主,能够在受控的环境中平均进行1万多次试验。

最初,随着神经网络成功实现更多翻转,成功的时间会不断缩短,神经网络学会了适应。

从结果上来看,机械手成功翻转魔方的时间,会越来越短。

即便添加新干扰、环境有变化,机械手也会调整策略,重新学习后迅速达到最佳基准。

所以这支神奇之手,现在究竟达到啥水平?

最最最难情况下——一方面是需要旋转26次魔方才能完成,另一方面加入最大外部扰动,机械手成功率20%。

但如果是旋转15次就能完成魔方复原的“平均情况”,机械手成功率就能稳定在60%。

值得一提的是,这也是人类在该方向上的新尝试、新纪录,打开了新前景。

腾讯AI也挑战过魔方

OpenAI挑战魔方,倒不是突发奇想。

从去年开始,他们就已经在推进前序工作,当时开发过一个灵巧的机械手系统,叫做Dactyl。

不过那时OpenAI用它“盘”木块,尺寸比现在的魔方小一些,而且也没有转动部件。

只要告诉机械手目标,不必告诉它具体操作步骤,它就能给你把木块转到指定的方向上,而且这套系统也是是在模拟器里训练出来的强化学习算法。

除了OpenAI,还有来自中国的玩家。

最知名的是腾讯。今年年初,腾讯AI与香港中文大学合作,进行了一项模拟实验。

实验有点类似OpenAI的“软件”部分:在虚拟环境中,用一只机械手解决魔方问题。

在腾讯其后发表的论文结果里:1400次试验过程中平均成功率达到了90.3%,而对AI模型再训练3万次,成功率会提高到95.2%。

而现在OpenAI更进一步。

在不牺牲准确性和鲁棒性的情况下,成功地将模拟实验转移到了现实世界的机械手上。

比喻来说,就是腾讯AI在这件事上核心练了口诀和心法,而OpenAI现在把拳脚也练完了,软硬结合,下一步会更有想象空间。

OpenAI自己也坦承,这只神奇之手,会推动通用机器人。

费钱费电:64个V100

一开始也介绍过,这项研究结果一发布,就引起网络热议。

这样一只灵活又机智的机械手,首先让网友纷纷联想到了终结者。

有网友说:

它让我感到鹅妹子嘤/瑟瑟发抖的,是它用一种让人感觉既熟悉又完全陌生的方式,在执行人类活动。

不过,比起这些,OpenAI这次的训练投入,更是每一秒都在让经费熊熊燃烧。

他们使用了64个V100和920台32核CPU的主机,并且连续训练了好几个月,这样的训练成本,就够让人瑟瑟发抖的了。

如果有人开心,那也是英伟达老板黄教主。

所以你又怎么看这项酷酷的新进展?

欢迎说说你的想法。

传送门

官方博客:

https://openai.com/blog/solving-rubiks-cube/

论文地址:

https://d4mucfpksywv.cloudfront.net/papers/solving-rubiks-cube.pdf

腾讯与港中大相关研究:

https://arxiv.org/pdf/1907.11388.pd

— 完 —

原标题:《这引人联想的机械右手!玩转魔方,灵活不输人类,OpenAI:前所未有》