业界|BAIR讲述如何利用深度强化学习控制灵活手
选自BAIR,作者:Henry Zhu等,机器之心编译,参与:Geek AI、路。
最近,伯克利发表博客展示了如何使用深度强化学习来控制灵巧手完成各种操作任务。文章讨论了这种方法如何学会使用低成本的硬件、如何高效实现,以及通过演示(demonstration)和仿真(simulation)等技术进行补充,从而加速学习。为什么要使用灵巧手?
如今,大多数机器人使用简单的平行爪夹持器作为操作工具,这对于工厂这样的结构化环境已经足够。然而,对于像家庭这样以人为中心的环境,能够执行广泛任务的操作工具是必不可少的。多指机械灵巧手是用途最多的操作工具之一,它能够实现我们在日常生活中使用的各种各样的技能,比如移动物体、开门、打字和绘画。
不幸的是,控制灵巧手是及其困难的,这限制了对它们的使用。由于需要进行精密的感知和操作,高端灵巧手的价格也十分昂贵。深度强化学习使得即使使用廉价的硬件也可能自动化执行复杂的控制任务,但是许多深度强化学习应用需要使用大量的仿真数据,这使得它们在经济成本和工程复杂度方面的开销都很大。而人类可以在没有仿真器和数百万仿真数据的情况下高效地学习运动技能。
我们将首先证明,深度强化学习确实可以通过在现实世界中使用低成本的机器人硬件直接训练来学习复杂的操作行为,且其计算复杂度是可以接受的,不需要任何额外的模型或仿真器。接着,我们将介绍如何通过引入更多的监督信号来源进一步加速学习,包括演示和仿真。我们展示了在两个不同硬件平台上的学习:一个是廉价的定制三指手(Dynamixel Claw),售价低于 2500 美元,而高端的 Allegro 机械手的售价则为 15,000 美元。
左图:三指机械手 Dynamixel Claw。右图:Allegro 机械手。
现实世界中模型无关的强化学习
深度强化学习算法通过试错进行学习,利用经验最大化用户指定的奖励函数。我们将以阀门旋转任务为例进行说明,在此任务中机械手需要将一个阀门或水龙头旋转 180 度从而打开它。
阀门旋转任务示意图。
奖励函数仅由阀门当前的朝向和我们所期望的目标朝向之间的负距离(negative distance)组成,而机械手必须自己找到旋转它的方法。深度强化学习的一个核心挑战是,如何利用这样微弱的奖励信号去找到一个复杂而协调的行为策略(policy)来完成这项任务。该策略由一个多层神经网络表示。这通常需要大量的试验,而这种对数据的大量需求导致社区在深度强化学习方法能否用于仿真之外的训练任务这一问题上存在分歧。然而,这对深度强化学习的实用性造成了很大的限制:直接在现实世界中进行学习可以利用经验学习任何任务;而使用仿真器则要求我们设计一个合适的仿真环境,从而对任务和机器人进行建模,认真调整它们的参数以取得好的训练结果。我们稍后将展示仿真可以在很大程度上加速学习,但是我们首先将证明现有的强化学习算法确实可以直接在真实的硬件环境中学习这项任务(旋转阀门)。
有多种算法适用于该任务。我们使用「截断自然策略梯度」(Truncated Natural Policy Gradient,TNPG)对这个任务进行学习,在真实的硬件环境下需要 9 个小时的训练时间。
三指机械手 Dynamixel Claw 在阀门旋转任务上的学习过程。
直接的强化学习方法吸引人的原因有很多。它需要的假设条件最少,因此非常适合自动学习大量技能。由于这种方法假定除了能够得到一个奖励函数之外再也不能获得其它信息,因此在一个修改过的环境中也可以轻松重新学习技能,比如当我们要使用不同的物体或不同的机械手进行操作时(如本文中的 Allegro 机械手)。
用 Allegro 机械手将阀门旋转 360 度。
当我们使用不同的材料的阀门时,机械手可以使用同样的方法旋转它。如下图所示,我们可以学习如何旋转海绵制成的阀门。这种实验情况可能是非常难以精确仿真的,而且直接在现实世界中训练可以让我们无需进行精确的仿真也能学习目标任务。
三指机械手 Dynamixel Claw 旋转一个海绵阀门。
机械手使用同样的方法解决另一项人物需要 8 个小时,在这项任务中机械手需要将方块绕着水平轴翻转 180 度,而我们并不对机械手做任何的修改。
三指机械手 Dynamixel Claw 翻转方块。
这些行为是使用低成本硬件(成本低于 2500 美元)和一台消费级台式电脑进行学习的。
通过人类演示加速学习
尽管模型无关的强化学习被广泛使用,然而由人类专家提供的监督信息可以帮助我们进一步加速强化学习。我们在关于演示增强策略梯度(DAPG)的论文(https://arxiv.org/abs/1709.10087)中介绍了一种将人类的演示纳入强化学习过程中从而实现上述思考的方法。在离策略强化学习、Q 学习以及其它机器人任务的环境下,人们提出了一些相关的解决方法。DAPG 背后的主要思想是,人们可以通过两种方式用演示来加速强化学习:
- 通过行为克隆(behavior cloning)为策略提供一个良好的初始状态。
- 在整个学习过程中提供一个辅助学习信号,用轨迹跟踪辅助奖励来指导机械手的探索。
在强化学习过程中,辅助目标可以防止策略偏离人类的演示。由于分布漂移(数据分布发生变化)和数据支持有限,使用有限数据的纯粹行为克隆往往不能有效训练出好的策略。强化学习的鲁棒性和泛化能力是十分关键的,使用演示可以大大加速学习过程。如下图所示,我们之前通过在多种任务上的仿真验证了这个算法,每个任务只使用在虚拟现实中收集到的 25 个人类演示。在这些任务中,DAPG 方法可以将训练速度提高 30 倍,同时能够学习到自然稳健的行为。
使用 DAPG 的仿真实验中学习到的行为:拾取物体、使用工具、手内操作、开门。
对物体的大小、形状变化具备鲁棒性的行为;自然且流畅的行为。
在现实世界中,我们可以在三指机械手 dynamixel claw 上使用该算法显著加速学习过程。这些演示是通过动觉教学(kinesthetic teaching)收集到的,动觉教学即有一个人类老师在现实世界中直接移动机器人的手指。这将两项任务中的训练时间都缩短到了 4 小时以下。
左图:使用 DAPG 方法的阀门旋转策略。右图:使用 DAPG 的方块翻转策略。
在硬件上从头开始训练的强化学习学习曲线 vs 使用 DAPG 的强化学习学习曲线。
人类演示提供了一种引入人类先验知识的自然方式,并加速了学习过程。如果我们能够得到高质量的成功演示,那么通过演示增强强化学习就可能大大加速强化学习过程。然而,为所有的任务或机器人形态获取优秀演示是不现实的,因此我们还需要寻求其它的加速方案。
通过仿真加速学习
一个任务的仿真模型可以使用大量的仿真数据帮助我们增强现实世界的数据,从而加速学习过程。为了使仿真数据能够代表现实世界的复杂性,我们通常需要对各种仿真参数进行随机化处理。之前的研究已经观察到这种随机性,并使用它产生鲁棒性强的策略(https://arxiv.org/abs/1610.01283),这种随机性还能够促进在视觉和物理差异情况下进行迁移。我们的实验还表明,使用随机化处理实现从仿真到现实的迁移是有效的。
迁移自随机化仿真实验的阀门旋转策略。
将模型从仿真迁移到现实世界的方法已经在目前灵巧手学习复杂行为的研究中得到了探索,也在拾取并放置物体(https://arxiv.org/abs/1707.02267)、视觉伺服(https://arxiv.org/abs/1712.07642)以及灵活移动(https://arxiv.org/abs/1804.10332)等任务的大量之前研究中探索过。尽管通过随机化实现仿真到现实世界的迁移是一个不错的选择,尤其是对于精密机器人而言,但它仍然具有一些局限性。首先,最终得到的策略可能会因为随机化处理而变得过于保守,这种现象在鲁棒性控制领域已经被广泛观察到。其次,选择随机化处理的参数对于得到好的结果十分重要,来自一个任务或问题领域的知识可能并不会迁移到其他任务或领域中去。第三,不断增加的随机化处理会导致模型更加复杂,这大大增加了训练时间和所需的计算资源(Andruchowicz 等人的研究使用了 100 年的仿真经验,而这是在数千个 CPU 上训练了 50 个小时得到的)。在现实世界中直接训练可能更加高效并且会得到更好的策略。最后,而且也许是最重要的一点是,我们必须手动构建一个准确的仿真器,每个新的任务必须在仿真中手动建模,这需要大量的时间和专业知识。然而,适当利用仿真可以加速学习,更系统化的迁移方法是未来研究的重要方向。
通过学得的模型加速学习
在之前的一些工作(https://homes.cs.washington.edu/~todorov/papers/KumarICRA16.pdf)中,我们还研究了学到的动力学模型如何能够在不需要手动设计仿真器的情况下加速现实世界中的强化学习。在这种方法中,动力学的局部导数会通过拟合时变线性系统得以近似,得到的结果会被用于在局部迭代式地改进策略。这种方法可以在现实世界中从头开始学到各种手内操作策略。此外,我们看到,同样的算法甚至可以学会控制气动软性机械手执行一系列灵巧的行为(https://arxiv.org/abs/1603.06348)。
左图:娴熟的机械手手内操作。右图:气动软性机械手执行灵巧的动作。
然而,使用学得模型的方法的性能会受到学得模型质量的限制,而且在实践中,最好的模型无关算法的渐近性能往往更高。进一步研究基于模型的强化学习,从而高效、有效地进行现实世界中的学习,是一个颇有前景的研究方向。
结论与挑战
尽管在现实世界中进行训练是广泛适用的,但是它本身也面临着一些挑战:
- 由于需要采取大量的探索行为,我们观察到机械手经常会迅速升温,而此时需要将其暂停,以免造成损坏。
- 由于机械手必须多次对任务进行尝试,我们不得不建立一个自动重置机制。在未来,能够去掉该要求的一个可能方向是自动学习重置策略(https://arxiv.org/abs/1603.06348)。
- 强化学习方法需要奖励函数,这种奖励必须人为设计。我们最近的一些研究已经着眼于自动设置奖励函数。
然而,让机器人直接在现实世界中学习复杂的技能是发展真正的通用机器人的最佳途径之一。正如人类可以直接从现实世界的经验中学习一样,能够仅通过试错就学习到技能的机器人能够以最少的人为干预探索解决困难操作问题的新方法。与此同时,向强化学习提供演示、仿真器以及其它先验知识可以进一步缩短训练时间。