资讯 人工智能
此为临时链接,仅用于文章预览,将在时失效

有史以来最精彩的自问自答:OpenAI 转方块的机械手

作者:杨晓凡
2018/07/31 22:25

雷锋网 AI 科技评论按:今年 2 月,OpenAI 发起了一组机械手挑战,他们在基于 MuJoCo 物理模拟器的 Gym 环境中新设计了含有机械臂末端控制、机械手拿取物体的两组八个有难度的、早期强化学习算法已经不足以直接解决的问题。这些具有一定难度的任务 OpenAI 自己也在研究,他们认为这是深度强化学习发展到新时代之后可以作为新标杆的算法测试任务,而且也欢迎其它机构与学校的研究人员一同研究这些任务,把深度强化学习的表现推上新的台阶。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

机械手任务之三 - 转鸡蛋,示意图

今天(美国时间 7 月 30 日),OpenAI 已经就机械手任务之二的「转方块」出了自己答案,展示了一个异常灵活的转方块的机械手。而且更精彩的是,这个完全在模拟器中强化学习学到的方案还可以不需任何微调就直接迁移到真实的机械手上

有史以来最精彩的自问自答:OpenAI 转方块的机械手

机械手任务之二 - 转方块,真实机械手上运行

OpenAI 也制作了一个酷炫的介绍视频,请看下方。

OpenAI 把这套系统称作 Dactyl。OpenAI 过去一年中研究强化学习系统的偏好思路再次得到了体现:在完全模拟的环境中训练,然后把训练结果迁移到现实世界的机械结构中

得益于可以大规模高速并行训练的模拟环境以及 OpenAI 在过去的研究中积累的系统设计与变量选择经验,这样的做法已经可以得到很好的效果。强化学习算法方面,OpenAI 再次选择了之前在 DOTA2 5v5 AI 中使用的 PPO(近端策略优化),这当然也再次展示了 PPO 作为通用强化学习算法的优越性。当然,系统最大的亮点还是可以完全在虚拟环境中训练,不需要对真实世界有准确的物理模型也可以直接迁移到真实机械手、真实物体的控制上

有史以来最精彩的自问自答:OpenAI 转方块的机械手

两指夹住旋转、滑动、手指同步旋转,三种 Dactyl 完全自动学到的与人类类似的运动模式

任务介绍

任务中使用的机械手模型是参照 Shadow Dexterous Hand 设计的。这是一个完全仿照人手设计的具有 20 个驱动自由度、4 个半驱动自由度、共 24 个关节的机械手,它的大小也和人手大小相同。任务的要求是在机械手的掌心放置一个方块或者六棱柱,然后要求机械手把它翻转到一个指定的角度,比如把某个侧面翻到上方。系统只能观察到五指指尖的空间坐标以及三个固定角度的彩色摄像机采集到的画面。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

虽然这种机械手面世已经有几十年了,但是如何让它像人类一样高效地控制物体一直都是机器人控制领域的老大难问题。与空间定位移动之类的问题不同,非常多自由度的机械手控制用传统控制方法不仅运行缓慢,而且必须对自由度做出一些限制,这也就随之限制了它们控制真实世界物体的能力。

想通过深度强化学习的方法让机械手翻转一个物体,需要考虑这几个问题:

OpenAI 的解决方法

总的来说,OpenAI 完全在模拟器环境中、不借助任何人类输入进行,让 Dactyl 通过强化学习训练物体定向任务。在训练结束后,学到的策略不需要任何微调环节就可以直接在真实机器人上工作。

不过其实,学习机器人控制方法面临着两难的困境。模拟环境中的机器人固然可以轻松地获得大量数据、训练出足够复杂的策略,但是大多数控制问题本身的建模都不够精确,导致学习到的策略难以迁移到真实世界的机器人上。即便只是对「两个物体接触」这样的简单现象建模,都还是一个开放性的科研问题,没有什么广为接受的、足够好的模型。直接在真实的机器人上进行训练自然可以根据真实世界的物理规律学习到好的策略,不过真实世界中的训练就只能按照真实世界的速度运行,目前的强化学习算法受限于样本效率问题,需要相当于好几年的尝试经验才能够解决物体转向这样的已经相对简单的问题。(财大气粗的谷歌还真的就这样做了,具体请见这篇文章。可以说,谷歌利用自己的财力优势替整个领域尝试了很多仅仅理论上可行的研究方法)

OpenAI 的训练技巧具体来说是「任务随机化」(domain randomization),它并不追求建模的最佳拟真化,而是在充满了丰富的变化的环境中学习到各种知识和经验。这样的做法兼备了模拟器和真实环境学习两种做法的优点:在模拟器环境中学习,可以让模拟器运行速度高于真实世界速度,快速积累经验;同时用「多变」替代了「逼真」之后,它也可以在模拟器只能近似建模的任务中得到更好的表现。

包括 OpenAI 在内的许多研究者都已经通过实验展示出了任务随机化对于越来越复杂的任务的明显的提升作用,近期的最有力的例子就是 OpenAI 训练出的 DOTA2 5v5 AI。在这个机械手控制的任务中,OpenAI 也是在探索大规模运行的任务随机化能否带来超出现有机器人控制方法的表现。

MuJoCo 物理模拟器相比真实的物理系统有这些不足:

如果仔细地调节模拟器中的参数,模拟的机械手的行为确实可以和真实机械手的行为做到比较好的匹配,但是上面的这些作用以目前的模拟器就很难准确建模了,调节参数也无济于事。

所以 OpenAI 转而使用的方法是使用大规模分布式的模拟训练环境,而且这些环境中的物理属性和视觉特征都是随机选择的。随机地选择这些值是一种很自然的表征各种真实物理系统的不确定性的做法,当然这样也可以防止系统过拟合到一组特定的环境设置中。根据 OpenAI 研究人员们的想法,如果一种策略在所有这些不同的模拟环境中都可以完成任务,那么它也就很有可能可以直接在真实环境中完成任务

在开发和测试阶段,OpenAI 通过内置的运动控制传感器对学习到的机械手控制策略进行验证,这也是为了能够隔绝 Dactyl 自身的控制网络与视觉网络,可以对系统表现做出「客观」的评价。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

系统设计示意图 - 模拟环境中训练
A. 分布式工作站从大量随机环境中收集经验
B. 通过强化学习训练控制策略。这个策略根据物体的位姿和五个手指指尖的位置选择接下来的行动
C. 训练一个 CNN 根据三路模拟环境中的摄像头画面估计物体的位姿

有史以来最精彩的自问自答:OpenAI 转方块的机械手

系统设计示意图 - 迁移到真实世界
D. 位姿估计网络和控制策略网络共同工作,把任务从虚拟环境迁移到真实环境

学习控制

通过构建可以支持迁移的模拟环境,OpenAI 把真实世界的机器人控制问题简化为了模拟环境中完成任务的问题,现在它就很适合用强化学习解决。当然了,即便是在模拟器中,控制如此多自由度的机械手完成任务仍然是一个有挑战性的目标,何况不同的模拟环境中还有不同的随机物理属性,这意味着物体的运动方式都会与真实世界有所不同

为了能够在不同的环境之间泛化,策略最好能够在不同物理参数的环境中做出不同的行为。考虑到大多数的动态物理参数都无法从单次观察中得出推断结果,OpenAI 选用了带有一定记忆能力的 LSTM 网络架构,实际上在模拟环境中基于 LSTM 得到的策略做出的旋转动作也要比其它不具有记忆能力的策略多一倍。

Dactyl 使用的大规模分布式 PPO 实现「Rapid」是和 DOTA2 5v5 AI 一样的。在这个任务中,模型架构、环境、超参数有所区别,但算法和训练代码是一致的。Rapid 训练策略使用了 6144 个 CPU 和 8 个 GPU,训练 50 小时就可以采集到相当于真实世界中 100 年长度的经验。

学习观察

OpenAI 的设计目标是让 Dactyl 能够控制任意的物体,不局限于那些经过专门的改动以后更好追踪的物体。所以 Dactyl 也就选用了一组正常的彩色摄像头对物体的位置和姿态进行估计。

OpenAI 训练了一个 CNN 用来估计位姿。这个网络把布置在机械手周围的三个摄像头采集的视频流作为输入,然后输出估计的物体位置和物体姿态。多个摄像头的使用是为了避免判断不清以及信号延迟。训练这个网络时 OpenAI 也使用了任务随机化的做法,环境随之暂时切换为了 Unity 游戏开发平台,它对各种视觉效果的支持丰富程度要比 MuJoCo 高得多。

「控制」与「观察」两个独立的网络互相配合,控制网络可以根据给定的物体位姿重新调整它的位姿,视觉网络根据摄像头采集的画面确认物体当前的实际位姿。Dactyl 就这样通过观察控制了手里的物体。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

学习位姿估计的图像的一些示例

实验结果

逐渐产生的行为

在部署系统的时候,OpenAI 的研究人员们注意到 Dactyl 会使用一系列丰富的灵活手掌内操纵技巧来解决在这个任务;人类其实也经常会使用这些技巧。而及这些技巧并不需要人类显式地教会算法,它们全都是算法自己发掘、自己学到的。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

两指夹住旋转、滑动、手指同步旋转,三种 Dactyl 完全自动学到的与人类类似的运动模式

有史以来最精彩的自问自答:OpenAI 转方块的机械手

Dactyl 学到的六种不同的握持姿势。根据握持分类学,从左上到右下依次为:指尖捏、掌心捏、三指握持、四指握持、强力握持以及 5 指精确握持。

OpenAI 通过观察发现,对于几种高精确度的握持方法,比如两指指尖捏,Dactyl 倾向于使用大拇指和小拇指;人类比较习惯的自然是用大拇指+食指或者大拇指+中指。不过值得指出的是,机械手的小拇指比人类的多出一个自由度,更为灵活,这可以作为 Dactyl 学会了这样行为的一个解释。这也可以理解为,Dactyl 一面可以自己发现人类常用的手部姿态,同时也可以重新适应这些姿态,让它们更符合自己的肢体的限制和能力。

(雷锋网 AI 科技评论注:多提供一个思考角度,从生物进化的角度来说,手指握持的方式是和手指的结构相互适应的。使用一个「类人」的机械手,学习到「类人」的握持姿势并不奇怪。另一方面,握持姿势的选择除了自由度,也与生物结构有关,食指比小拇指更有力、也更灵活,这与人类更常用食指也是相辅相成)

系统表现的迁移

OpenAI 在真实环境的机械手与摄像头配置上测试了 Dactyl 在物体脱手、或者时间用完之前能翻转的次数,最高计数 50 次。在模拟器环境中训练出的策略可以直接成功地操控真实世界中的物体。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

对于控制方块的任务,使用了「任务随机化」训练得到的策略能成功完成翻转的次数要多得多,如下表。并且,通过摄像头信号估计位姿进行控制得到的结果和使用运动追踪传感器得到的结果差不多,这也体现出了视觉估计网络的高准确率。

有史以来最精彩的自问自答:OpenAI 转方块的机械手

学习过程

训练过程中的大多数时间都花在了提升策略在不同物理属性环境中的鲁棒性上。在不使用随机化时,在虚拟环境中学会翻转物体需要的经验大概相当于 3 年那么长,而在全面使用了随机化的设置下达到类似的表现需要大概相当于 100 年的经验。(不过我们也别忘了,不使用随机化时训练出的策略是无法直接迁移到真实世界的机器人的,因为学到的策略只针对模拟器中那一组特定的物理参数有效)

实验中的有趣发现

没有达到预期效果的项目

除了上面的惊喜之外,OpenAI 也惊讶地发现一些强化学习连续控制中的常用技巧并没能帮助他们提高系统的表现。

总结

对 OpenAI 来说,这个项目是他们过去两年中追求的完整 AI 研发循环的最好体现:先开发新的强化学习算法,再拓展它的运行规模、在模拟环境中训练解决困难的问题,最后再把得到的系统应用在真实世界中。以越来越大的规模沿着这种途径不停前进也是 OpenAI 为自己规划的通往安全的通用人工智能的主要路径。

OpenAI 已经展示了联通强化学习理论研究与现实世界问题探索的一座桥梁,我们也期待看到这个领域内更多的理论和现实世界问题联动的案例。

论文地址:https://d4mucfpksywv.cloudfront.net/research-covers/learning-dexterity/learning-dexterity-paper.pdf 

viablog.openai.com,雷锋网 AI 科技评论编译

长按图片保存图片,分享给好友或朋友圈

有史以来最精彩的自问自答:OpenAI 转方块的机械手

扫码查看文章

正在生成分享图...

取消
相关文章