88327668 2019-10-16
OpenAI 的机器手学会单手解魔方了,而且还原一个三阶魔方全程只花了 4 分钟,其灵巧程度让人自叹不如。
给你一个魔方,只允许使用一只手,还时不时有人给你捣乱,你能在 4 分钟内还原它吗?我不能,两只手都不行。
OpenAI 的仿人机器手 Dactyl 做到了。现在它转魔方的视频被疯狂刷屏,网友纷纷表示:人工智能机器人的一个新里程碑诞生了!这是机器人在机体灵活性以及机器学习软件方面的飞跃!
视频中我们看到,这只机器手虽然动作看起来有点笨拙,让人老是悬着一颗心仿佛魔方时刻都可能掉下来,但每一步动作最终都非常准确。
视频的后半部分研究人员加大了难度:用布遮挡、使用工具干扰,机器手依然在忘我的玩着魔方。
对于一个成年人来说,单手操控三阶魔方其实也不是一件容易的事情。而一只机器手能够达成这样的成就,真的让人印象深刻!
MIT 著名机器人专家和教授 Leslie Kaelbling 表示根本没想到它居然能够完成这项操作!密歇根大学机器操控专家 Dmitry Berenson 对此也给予肯定,并大加赞扬。
OpenAI 训练类人机器手来解魔方的尝试,早在 2017 年 5 月就开始了。之所以对解魔方情有独钟,是因为研究人员认为,如果能成功训练这样一只机器手来完成复杂的操作任务,就能为通用型机器人奠定基础。在 2017 年 7 月,OpenAI 在模拟环境中解决了魔方。但直到 2018 年 7 月,机器手解魔方仍然只能操作一个方块。现在,这个目标终于达成,请观看下面视频,机器手在约 4 分钟的时间里成功还原了一个三阶魔方。
这是机器手解魔方的完整过程,视频未经任何编辑单手解魔方对人类来说都是一项具有挑战性的任务,孩子们需要几年的时间才能掌握所需的灵活性。机器手也仍没完美掌握,成功率只有 60%。
接下来,我们将详细描述 OpenAI 机器手解魔方的方法。
一、单手解魔方:OpenAI 新算法能无限生成仿真环境
OpenAI 使用强化学习和 Kociemba 算法训练神经网络来模拟解决魔方问题。我们专注于一个机器目前难以掌握的问题:感知和灵巧的操作。因此,我们训练神经网络来实现由 Kociemba 算法生成的还原所需的旋转和翻转。
域随机化使得仅在模拟中训练的网络可以转移到真实的机器人上
任务中面临的最大挑战是在模拟环境中创建足够多样化的环境来捕捉真实世界的物理环境。对于像魔方和机器手这样复杂的物体来说,很难测量和建模摩擦、弹性和动力学等因素,而仅靠domain randomization是不够的。
为了克服这一问题,我们开发了一种新的方法,称为自动域随机化(Automatic Domain Randomization,ADR),该算法能够无休止地在仿真中生成越来越困难的环境。
这样,我们就不必对现实世界做一个精确的建模,而且在模拟中学习到的神经网络可以迁移应用于现实世界。
ADR 从一个单一的、非随机的环境开始,在该环境中,神经网络学习解魔方。随着神经网络性能的提高并达到性能阈值,域随机化的量也随之增加。这使得任务更加困难,因为神经网络现在必须学会将其推广到更随机的环境中。网络不断学习,直到再次超过性能阈值,然后更多随机化,重复这个过程。
ADR 适应魔方的大小随机化的参数之一是魔方的大小(上图)
ADR 从一个固定大小的魔方开始,随着训练的进行,逐渐增加随机化的范围。我们将同样的技术应用于所有其他参数,如魔方的重量、机器人手指的摩擦力和手的视觉表面材料等。因此,神经网络必须学会在所有这些越来越困难的条件下解魔方。
自动与手动的域随机化
Domain randomization 要求我们手动指定随机化范围,这很困难,因为太多的随机化会使学习变得困难,但太少的随机化则会阻碍迁移到真正的机器人。ADR 通过自动扩展随时间变化的随机范围来解决这个问题,不需要人工干预。ADR 消除了对领域知识的需求,使我们的方法更容易应用于新任务。与手动域随机化相比,ADR 还使任务始终具有挑战性,训练从不收敛。
在魔方块翻转任务中,我们将 ADR 与手动域随机化进行了比较,这个任务已经有了一个强大的基线。在开始阶段,ADR 在真实机器人上的成功次数较少。但随着 ADR 增大熵值(熵值是环境复杂性的度量),性能最终会比基线性能翻倍,无需人工调整。
稳健性测试
利用 ADR,我们能够在仿真环境中训练神经网络,再用到真实机器手上解魔方。这是因为 ADR 将网络暴露于无穷无尽的随机模拟中。正是由于训练过程中的这种复杂性,使网络可以从模拟世界转移到现实世界,因为它必须学会快速识别和适应它所面对的任何物理世界。
机器手解魔方时对它施加干扰
为了测试我们的方法的局限性,我们在单手解魔方的时候做了各种各样的干扰实验。这不仅测试了我们控制网络的稳健性,也测试了我们的视觉网络,在这里我们用视觉网络来估算魔方的位置和方向。
我们发现,我们用 ADR 训练的系统对干扰的稳健性令人惊讶,尽管我们没有对这些干扰条件进行过训练:在所有干扰测试中,机器手都能成功地完成大多数翻转和旋转面,尽管性能没有达到最佳。
元学习
我们认为,元学习,或 learning to learn,是构建通用系统的一个重要前提,因为元学习使它们能够快速适应环境中不断变化的条件。ADR 背后的假设是,一个记忆增强网络与一个充分随机化的环境相结合,导致了 emergent meta-learning,其中网络实现了一个学习算法,允许自己快速调整其行为以适应其所部署的环境。
为了系统地测试这一点,我们测量了神经网络在不同的扰动下(如重新设置网络的内存、重新设置动态、或断开一个关节)每次翻转魔方(旋转魔方使不同颜色的面朝上)成功的时间。我们在仿真环境进行这些实验,这使我们能够在一个受控的环境中进行超过 10000 次的性能测试。
一开始,随着神经网络成功地完成更多的翻转,每次连续成功的时间都在减少,因为神经网络学会了适应。当施加干扰时(上图中垂直的灰色线条),我们看到了成功时间的一个峰值。这是因为网络采用的策略在变化的环境中不起作用。然后,网络重新学习新的环境,我们再次看到成功的时间减少到先前的基线。
下图是机器手在模拟环境中解魔方的可视化。
我们使用可解释性工具箱中的一个构件,即非负矩阵分解,将这个高维向量压缩成 6 组,并为每组分配一个独特的颜色。然后在每一步中显示当前主导组的颜色。
二、为什么说转个魔方就称得上实现了机器人技术的飞跃?
实际上会玩魔方的机器人并不只有 Dactyl 一个。那些专门被设计用来解魔方的机器人,甚至可以比 Dactyl 更快地处理三阶、甚至更高阶的魔方,那么为什么只有 Dactyl 获得如此高的评价呢?
OpenAI 的研究科学家和机器人技术负责人彼得·韦林德(Peter Welinder)认为,原因就在于 Dactyl 不是专门用来玩魔方的!玩魔方只是一个 demo,而 Dactyl 最大的亮点在于“自学习”!
目前人工智能机器人之所以能够在特定场景下超越人类,因为它是针对这个特定任务进行不断的微调和优化后的结果,通过编程来尽可能高效地执行任务。但跳出机器人的“舒适区”后,它可能连人类的婴儿都不如。
人工智能和机器人行业一直希望达成这样的目标:制造一个机器人,它可以自己学会处理各种现实世界中的实际任务,而无需经过长时间的训练或者有针对性的编程。是 Dactyl 让他们看到了曙光!