BAIR讲述如何利用深度强化学习控制灵活手

LattimoreKimberley 发布于9月前
0 条问题

最近,伯克利发表博客展示了如何使用深度强化学习来控制灵巧手完成各种操作任务。文章讨论了这种方法如何学会使用低成本的硬件、如何高效实现,以及通过演示(demonstration)和仿真(simulation)等技术进行补充,从而加速学习。

为什么要使用灵巧手?

如今,大多数机器人使用简单的平行爪夹持器作为操作工具,这对于工厂这样的结构化环境已经足够。然而,对于像家庭这样以人为中心的环境,能够执行广泛任务的操作工具是必不可少的。多指机械灵巧手是用途最多的操作工具之一,它能够实现我们在日常生活中使用的各种各样的技能,比如移动物体、开门、打字和绘画。

BAIR讲述如何利用深度强化学习控制灵活手

不幸的是,控制灵巧手是及其困难的,这限制了对它们的使用。由于需要进行精密的感知和操作,高端灵巧手的价格也十分昂贵。 深度强化学习 使得即使使用廉价的硬件也可能自动化执行复杂的控制任务,但是许多 深度强化学习 应用需要使用大量的仿真数据,这使得它们在经济成本和工程复杂度方面的开销都很大。而人类可以在没有仿真器和数百万仿真数据的情况下高效地学习运动技能。

我们将首先证明, 深度强化学习 确实可以通过在现实世界中使用低成本的机器人硬件直接训练来学习复杂的操作行为,且其计算复杂度是可以接受的,不需要任何额外的模型或仿真器。接着,我们将介绍如何通过引入更多的监督信号来源进一步加速学习,包括演示和仿真。我们展示了在两个不同硬件平台上的学习:一个是廉价的定制三指手(Dynamixel Claw),售价低于 2500 美元,而高端的 Allegro 机械手的售价则为 15,000 美元。

BAIR讲述如何利用深度强化学习控制灵活手

左图:三指机械手 Dynamixel Claw。右图:Allegro 机械手。

现实世界中模型无关的强化学习

深度强化学习 算法通过试错进行学习,利用经验最大化用户指定的奖励函数。我们将以阀门旋转任务为例进行说明,在此任务中机械手需要将一个阀门或水龙头旋转 180 度从而打开它。

BAIR讲述如何利用深度强化学习控制灵活手

阀门旋转任务示意图。

奖励函数仅由阀门当前的朝向和我们所期望的目标朝向之间的负距离(negative distance)组成,而机械手必须自己找到旋转它的方法。 深度强化学习 的一个核心挑战是,如何利用这样微弱的奖励信号去找到一个复杂而协调的行为策略(policy)来完成这项任务。该策略由一个多层神经网络表示。这通常需要大量的试验,而这种对数据的大量需求导致社区在 深度强化学习 方法能否用于仿真之外的训练任务这一问题上存在分歧。然而,这对 深度强化学习 的实用性造成了很大的限制:直接在现实世界中进行学习可以利用经验学习任何任务;而使用仿真器则要求我们设计一个合适的仿真环境,从而对任务和机器人进行建模,认真调整它们的参数以取得好的训练结果。我们稍后将展示仿真可以在很大程度上加速学习,但是我们首先将证明现有的强化学习算法确实可以直接在真实的硬件环境中学习这项任务(旋转阀门)。

有多种算法适用于该任务。我们使用「截断自然策略梯度」(Truncated Natural Policy Gradient,TNPG)对这个任务进行学习,在真实的硬件环境下需要 9 个小时的训练时间。

BAIR讲述如何利用深度强化学习控制灵活手

三指机械手 Dynamixel Claw 在阀门旋转任务上的学习过程。

直接的强化学习方法吸引人的原因有很多。它需要的假设条件最少,因此非常适合自动学习大量技能。由于这种方法假定除了能够得到一个奖励函数之外再也不能获得其它信息,因此在一个修改过的环境中也可以轻松重新学习技能,比如当我们要使用不同的物体或不同的机械手进行操作时(如本文中的 Allegro 机械手)。

BAIR讲述如何利用深度强化学习控制灵活手

用 Allegro 机械手将阀门旋转 360 度。

当我们使用不同的材料的阀门时,机械手可以使用同样的方法旋转它。如下图所示,我们可以学习如何旋转海绵制成的阀门。这种实验情况可能是非常难以精确仿真的,而且直接在现实世界中训练可以让我们无需进行精确的仿真也能学习目标任务。

BAIR讲述如何利用深度强化学习控制灵活手

三指机械手 Dynamixel Claw 旋转一个海绵阀门。

机械手使用同样的方法解决另一项人物需要 8 个小时,在这项任务中机械手需要将方块绕着水平轴翻转 180 度,而我们并不对机械手做任何的修改。

BAIR讲述如何利用深度强化学习控制灵活手

三指机械手 Dynamixel Claw 翻转方块。

这些行为是使用低成本硬件(成本低于 2500 美元)和一台消费级台式电脑进行学习的。

通过人类演示加速学习

尽管模型无关的强化学习被广泛使用,然而由人类专家提供的监督信息可以帮助我们进一步加速强化学习。我们在关于演示增强策略梯度(DAPG)的论文(https://arxiv.org/abs/1709.10087)中介绍了一种将人类的演示纳入强化学习过程中从而实现上述思考的方法。在离策略强化学习、Q 学习以及其它机器人任务的环境下,人们提出了一些相关的解决方法。DAPG 背后的主要思想是,人们可以通过两种方式用演示来加速强化学习:

  1. 通过行为克隆(behavior cloning)为策略提供一个良好的初始状态。

  2. 在整个学习过程中提供一个辅助学习信号,用轨迹跟踪辅助奖励来指导机械手的探索。

BAIR讲述如何利用深度强化学习控制灵活手

在强化学习过程中,辅助目标可以防止策略偏离人类的演示。由于分布漂移(数据分布发生变化)和数据支持有限,使用有限数据的纯粹行为克隆往往不能有效训练出好的策略。强化学习的鲁棒性和泛化能力是十分关键的,使用演示可以大大加速学习过程。如下图所示,我们之前通过在多种任务上的仿真验证了这个算法,每个任务只使用在虚拟现实中收集到的 25 个人类演示。在这些任务中,DAPG 方法可以将训练速度提高 30 倍,同时能够学习到自然稳健的行为。

BAIR讲述如何利用深度强化学习控制灵活手

使用 DAPG 的仿真实验中学习到的行为:拾取物体、使用工具、手内操作、开门。

BAIR讲述如何利用深度强化学习控制灵活手

对物体的大小、形状变化具备鲁棒性的行为;自然且流畅的行为。

在现实世界中,我们可以在三指机械手 dynamixel claw 上使用该算法显著加速学习过程。这些演示是通过动觉教学(kinesthetic teaching)收集到的,动觉教学即有一个人类老师在现实世界中直接移动机器人的手指。这将两项任务中的训练时间都缩短到了 4 小时以下。

BAIR讲述如何利用深度强化学习控制灵活手

左图:使用 DAPG 方法的阀门旋转策略。右图:使用 DAPG 的方块翻转策略。

BAIR讲述如何利用深度强化学习控制灵活手

在硬件上从头开始训练的强化学习学习曲线vs 使用 DAPG 的强化学习学习曲线。

人类演示提供了一种引入人类先验知识的自然方式,并加速了学习过程。如果我们能够得到高质量的成功演示,那么通过演示增强强化学习就可能大大加速强化学习过程。然而,为所有的任务或机器人形态获取优秀演示是不现实的,因此我们还需要寻求其它的加速方案。

通过仿真加速学习

一个任务的仿真模型可以使用大量的仿真数据帮助我们增强现实世界的数据,从而加速学习过程。为了使仿真数据能够代表现实世界的复杂性,我们通常需要对各种仿真参数进行随机化处理。之前的研究已经观察到这种随机性,并使用它产生鲁棒性强的策略(https://arxiv.org/abs/1610.01283),这种随机性还能够促进在视觉和物理差异情况下进行迁移。我们的实验还表明,使用随机化处理实现从仿真到现实的迁移是有效的。

BAIR讲述如何利用深度强化学习控制灵活手

迁移自随机化仿真实验的阀门旋转策略。

将模型从仿真迁移到现实世界的方法已经在 目前灵巧手学习复杂行为的研究 中得到了探索,也在拾取并放置物体(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)。

BAIR讲述如何利用深度强化学习控制灵活手

左图:娴熟的机械手手内操作。右图:气动软性机械手执行灵巧的动作。

然而,使用学得模型的方法的性能会受到学得模型质量的限制,而且在实践中,最好的模型无关算法的渐近性能往往更高。进一步研究基于模型的强化学习,从而高效、有效地进行现实世界中的学习,是一个颇有前景的研究方向。

结论与挑战

尽管在现实世界中进行训练是广泛适用的,但是它本身也面临着一些挑战:

  1. 由于需要采取大量的探索行为,我们观察到机械手经常会迅速升温,而此时需要将其暂停,以免造成损坏。

  2. 由于机械手必须多次对任务进行尝试,我们不得不建立一个自动重置机制。在未来,能够去掉该要求的一个可能方向是自动学习重置策略(https://arxiv.org/abs/1603.06348)。

  3. 强化学习方法需要奖励函数,这种奖励必须人为设计。我们最近的一些研究已经着眼于自动设置奖励函数。

然而,让机器人直接在现实世界中学习复杂的技能是发展真正的通用机器人的最佳途径之一。正如人类可以直接从现实世界的经验中学习一样,能够仅通过试错就学习到技能的机器人能够以最少的人为干预探索解决困难操作问题的新方法。与此同时,向强化学习提供演示、仿真器以及其它先验知识可以进一步缩短训练时间。

这篇文章的工作基于以下论文:

  • Optimal control with learned local models: Application to dexterous manipulation (https://homes.cs.washington.edu/~todorov/papers/KumarICRA16.pdf)

  • Learning Dexterous Manipulation for a Soft Robotic Hand from Human Demonstration (https://arxiv.org/abs/1603.06348)

  • Learning Complex Dexterous Manipulation with Deep Reinforcement Learning and Demonstrations (https://arxiv.org/abs/1709.10087)

原文链接:https://bair.berkeley.edu/blog/2018/08/31/dexterous-manip/

入门 BAIR 机器人

相关数据

神经网络 技术

Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

来源:机器之心

增强现实 技术

Augmented reality

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

来源: 维基百科

深度强化学习 技术

Deep reinforcement learning

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

来源: Scholarpedia

学习曲线 技术

learning curve

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

来源: Wikipedia

移动机器人 技术

Mobile robot

移动机器人是一种能够移动的自动机器。移动机器人具有在其环境中移动的能力,并且不固定到一个物理位置。移动机器人可以“自动”主要是指它们能够在没有物理或机电引导装置的情况下导航非受控环境。相比之下,传统的工业机器人或多或少都是固定的(stationary)机械臂或抓取组件。

来源: Wikipedia

过拟合 技术

Overfitting

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

来源: Wikipedia

先验知识 技术

prior knowledge

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

来源: 维基百科

参数 技术

parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

来源: 维基百科

感知 技术

perception

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

来源: 维基百科

强化学习 技术

Reinforcement learning

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

来源:机器之心

虚拟现实 技术

Virtual reality

虚拟现实,简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以及时、没有限制地观察三维空间内的事物。用户进行位置移动时,电脑可以立即进行复杂的运算,将精确的三维世界视频传回产生临场感。

来源: 维基百科

BAIR讲述如何利用深度强化学习控制灵活手机器之心

机器之心编辑

查看原文: BAIR讲述如何利用深度强化学习控制灵活手

  • smallpeacock
  • bigleopard
需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。