科技行者OpenAI机器手自学解魔方,下一步要实现「自主机器人」

OpenAI机器手自学解魔方,下一步要实现「自主机器人」

OpenAI机器手自学解魔方,下一步要实现「自主机器人」

OpenAI机器手自学解魔方,下一步要实现「自主机器人」

2019年10月24日 23:35:42 作者:高海英 科技行者
  • 分享文章到微信

    扫一扫
    分享文章到微信

  • 关注官方公众号-科技行者

    扫一扫
    关注官方公众号
    科技行者

大多数专家认为,机器人技术的通用化还有很长的道路要走。但OpenAI相信,他们的工作将成为发展的奠基石,并最终成就真正具有自主能力、几乎可以完成所有任务的通用型智能机器。

作者:高海英 来源:科技行者 2019年10月24日 23:35:42

关键字:OpenAI 人工智能 通用型人工智能 魔方

科技行者 10月24日 北京消息(文/高海英):虽然能够像人类一样灵活处理问题的「机器人」远没有出现,但AI技术的加速发展让我们比以往任何时候都更接近这一愿景。今年9月份的一篇论文中,谷歌公司的一支科学家团队利用机械手臂进行测试,旨在以最少的训练数据学会破解魔方;在今年6月份的一次计算机视觉会议上,麻省理工学院也展示了一套AI模型,仅凭视觉数据片段能够预测物理对象的触觉感受。

如今,OpenAI(由伊隆·马斯克牵头创立的AI研究公司,得到LinkedIn联合创始人里德·霍夫曼以及Y Combinator总裁萨姆·奥特曼等人的支持,总部位于旧金山)表示,正在着力解决机器人技术与AI系统领域的一大重要挑战:破解魔方。不同于加州大学欧文分校等其他区域性团队所取得的原有突破(采用定制化机器快速操纵魔方体),OpenAI研究人员的基本思路在于:使用常规五指人形机械手臂,经过13000年经验积累的训练量数据,所打造的AI模型,负责提供指挥。值得一提的是,这套模型此前曾被用于操作Dota游戏,当时的训练量积累相当于人类选手40000年的经验水平。

这套模型基于今年早些时候由腾讯公司以及香港中文大学开展的实验,具体包括:一款灵巧的人形机械手,一套AI软件模型(用于识别魔方体的最佳移动序列),以及一个魔方操作器(最多可控制五根手指)。该团队报告称,基于模型与无模型的两大规划工具组合之后,该方案在1400次试验中实现了90.3%的平均成功率。而在对AI组件进行30000次操作训练之后,其平均成功率进一步提升至95.2%。

自主

不过腾讯的方案是在严格的仿真环境中进行的,并采用了Roboti提供的多关节接触动力学(Mujoco)技术。Mutjoco是一套专为机器人和生物力学的研究与开发场景所设计的物理引擎。OpenAI同样利用模拟场景训练了自己的AI模型,但其成功地在不牺牲准确性或鲁棒性的前提下,将处理能力迁移到了真实机器手臂当中。

OpenAI机器人团队技术成员Matthias Plappert表示,“我们之所以对魔方任务抱有浓厚兴趣,是因为它要求机器手的敏捷性接近于人类水平。从某种意义上讲,这是一项高度复杂的任务,必须真正精确地控制手指,才能准确翻转魔方的各个面。我们希望通过这次实验看看去年发布的这套AI模型能够走多远。”

设置工作

据OpenAI在论文中介绍,考虑到魔方状态评估的复杂性,以及破解魔方所需要的精确操作,在这项任务中仅凭模拟数据操作魔方比操作一个立方体要难得多。

魔方由26个通过铰链与弹簧连接的小立方体组成,内部至少包含6种自由旋转方位,且六个面都能独立完成旋转,而在魔方被打乱之后,只有将六个面都恢复为同一颜色,才算真正破解成功。

该团队采用的解决方案是一种被称为「自动域随机化(ADR,automatic domain randomization)」的算法。这种算法会自动生成用于训练强化学习模型的分布以及可通过视觉估计对象姿态的模块,即一个基于视觉的姿态估计器,凭借着由奖励与惩罚机制重复实现的复习与强化学习过程,AI系统将一步步朝着正确的目标完成自主学习。

根据世界魔方协会的官方指南,研究人员使用了一种魔方置乱技术进行ADR部署,将大约20步移动到一个已解出的魔方上进行置乱/标准化加扰。此后,他们将未加扰任务拆分为多个子目标,例如旋转(顺时针或逆时针旋转一个立方体面90度),以及翻转(将一个特定立方体的某个面旋转至顶部)。由于旋转顶面通常比旋转其他面简单,因此研究人员将翻转与顶面旋转与其他子目标按顺序组合在一起。而对于魔方的实际求解方法,他们采用了现有的软件库,比如Kociemba求解器等,用于生成子目标解决方案的操作序列。

硬件

负责操纵魔方的机器手是Shadow Dextrous E系列产品,他的中指与无名指各有3个驱动关节和1个欠驱动关节,小指与拇指各有5个驱动关节,腕部有2个驱动关节。多年以来,它一直是OpenAI机器人平台的核心组成部分,它匹配了三台用于视觉姿态估计与一台配有PhaseSpace动作捕捉系统的摄像机这套系统被安装在一个配有滑轨的计算机框体当中。 

该团队指出,他们与机器手臂制造商Shadow Robot公司建立合作关系,以提高某些机器人组件的坚固性与可靠性。具体而言,他们增加了机器手在与物体交互时的抓握力,同时减小了肌腱应力,并调整了与之交互的软件堆栈以尽可能消除扭矩限制。

自主

▲ 图OpenAI测试了机械手诸多变化

至于魔方,它不是一般的模型,而是特别定制版本它是一个小米的Giiker立方体,它搭载了可感知方向的蓝牙和运动传感器。市面上在售版本的Giiker立方体模型的面角分辨率为90度,但该团队修改了它们的模型,使面角跟踪精度达到约5度。 

模拟

与腾讯团队一样,OpenAI的研究人员也利用Mujoco来模拟环境、机器手以及物体,同时采用ORRB(以游戏引擎Unity为基础的远程渲染后端)进行图像渲染,从而训练基于视觉的姿态估计器。模拟环境下的魔方由26个1.9厘米边长的立方体组成,其中6个具有单一铰链接头,另外20个拥有三个铰链接头,有效旋转自由度为66度。如此一来,模拟环境即可表达43百万的立方个立方体朝向配置,以及介于这些朝向配置之间的所有过渡状态。

指导Shadow Hand机器手的AI策略,还必须同时考虑到魔方,与魔方内铰链接点基础压力,以及Giiker魔方的材质特征等一系列因素。例如,向单一立方体施加力通常足以使得单面旋转,因为力是通过接触力在相邻元素之间传播的。但是,每个立方体有六个面,而且并非所有立方体都能够同时旋转。另外,垂直面必须卡入至适当位置才能旋转,否则未能严格对齐将导致整个魔方“全面瘫痪”。

这时候就要靠ADR解决难题了。根据研究人员们的解释,这项技术能够随时间随机分配某些特定因素(例如多维数据集中的视觉外观或手部动态),从而在模拟环境中生成分布。初始分布集中在单一环境中,但它逐步扩展为综合数据,这些数据可用于评估任意模型的性能。

从本质上讲,经过ADR训练的模型将通过内部学习算法来调整自身行为以实现目标。该团队猜测,当分布太大,以致于模型无法记住某些专用解决方案时(由于容量有限),就会触发这种内部调整。而只要模型的精度不低于预定义的阈值,ADR就会继续持续训练周期。

自主

▲ 图OpenAI的模型可以从干扰中恢复

那么,在每种环境下具体要对哪些特征进行随机分配?除了模拟环境的物理特性(例如几何形状、摩擦系数与重力等)之外,还有模拟器并未纳入的自定义物理效果(例如电机反冲)。另外还有一些视觉元素,比如摄像机位置与角度、照明条件物体的材质与外观、背景纹理乃至渲染图像后的处理效果等等,都需要被考虑进来。

“这也正是我们这套方案的主要优势之一——一旦弄清楚如何在模拟环境中训练这些模型,即可高效获取无穷无尽的实验数据。”Plappert解释道,“接下来,一旦明白怎样将模型迁移到机器人当中,就可以在现实世界进行实际应用了。 

奖励机制

如前文所述,由于这套方案使用了强化学习方法,因此必然涉及奖励机制。OpenAI团队在实验中定义了三项条件,分别为:(1)系统与目标间的原有距离与当前距离之间的差别;(2)达成目标时给予奖励;(3)魔方掉落时触发惩罚。在训练过程中还会产生随机目标,当AI模型连续50次成功、且在试图达成下一目标时超时,或者魔方掉落,则视为当前训练轮结束。

研究人员在训练中还使用了Rapid框架。这套框架由一组rollout工作节点与优化节点组成,负责在多块显卡之间执行同步梯度下降(机器学习中的必要步骤)。随着rollout工作节点不断积累经验,得出的见解将被交付至优化节点;与此同时,还有另一组工作节点负责比较训练完成的AI模型与参考代理的性能水平。

自主

▲ 图:模型在仿真中的训练时间越长,性能越好

整套系统共使用64块英伟达V100显卡+920台各自包含32个处理器核心的工作节点设备,在长达数月的周期内对模型进行训练。在此期间,研究人员则负责研究模拟保真度、ADR算法、超参数调整以及网络架构等变量。其中,仅优化器节点就使用8块V100显卡以及64个处理器核心;而负责渲染视觉姿态估计器的图像渲染节点,则使用一块英伟达V100显卡外加8个处理器核心。 

通常,视觉数据配合Giiker魔方内置的传感器,状态估计器最终学会了估算立方体六个面的角度以及魔方多维数据集中的位置与方向信息。该研究小组指出,由于魔方各个面的贴纸拥有旋转对称性,因此单凭视觉无法完成操作,他们希望未来能够开发出一套可重复使用的模型,从而只依靠摄像机捕捉到的图像确定魔方形态。

转向真实场景

接下来,该团队尝试将训练完成的AI模型迁移至真正的Shadow Hand当中。他们评估了随机化性能,完成了约两个星期的随机训练,利用ADR算法进行约两周的策略训练,而后又在四个月时间中先后进行连续训练与策略更新,旨在确保策略能够在实体机器手上正常起效。在随后的10次试验(每项策略重复10次)中,研究人员首先提供一个初始状态的魔方,要求机器手先学会将其打乱。

在这些试验中,研究人员定义了两项阈值:至少成功实现半数加扰操作(即22次成功),以及至少成功完全全部加扰操作(即43次成功)。表现最好的模型在10次试验中的平均成功了26.8次,其中半数成功率为60%,完全成功率则为20%。位列第二的模型平均获得17.8次成功,半数据成功率为30%,完全成功率为10%。

虽然成绩似乎不算太好,但需要强调的是,所有模型都自行学会了前所未有的微扰恢复技术,包括将多根机器手指绑在一起、在手上穿戴皮质手套、用手帕遮住部分魔方、以及在魔方旁边放上毛绒玩具与钢笔等等。当机器手偶尔旋转错误时,成绩最好的AI模型能够立即反向操作撤销这一错误。另外,当机器手旋转操作过程中不慎导致魔方掉落时,AI模型能够重新分配抓握力,然后再次尝试直到最终成功。

Plappert指出,“我们在这里使用的算法与我们之前用于训练其他机器人的算法完全相同。这种特殊的方法拥有强大的通用性,可用于处理大家想得到的各种问题,甚至无需进行额外修改。虽然我们目前专注于解决魔方多维数据集任务,但相关成果也可以应用于多种同类系统的测试场景当中。

OpenAI机器人团队研究科学家Lilian Weng表示,他们的最终目标是实现完全通用,这一点也与OpenAI提出的“在多个领域中建立起「安全」的人类级AI”目标相吻合。大多数专家认为,机器人技术的通用化还有很长的道路要走——包括Aeolus在内的当前最先进模型,也需要几分钟才能完成将垃圾捡起并扔进废纸篓这样的简单任务。但是Weng、Plappert及其同事们相信,他们的工作将成为发展的奠基石,并最终成就真正具有自主能力、几乎可以完成所有任务的通用型智能机器。

Weng总结道,“最终,我们希望未来的人工智能可以将某种价值传递到现实当中。以机器人为例,机器人的优势在于帮助人们关注某些事物或者从事一部分高危工作……但实现这些目标的前提,就是机器人必须有能力与现实世界互动。而这,正是我们当下努力的意义。