使用神经网络驱动的基于模型的强化学习

图1.经过学习的神经网络动态模型能使一个六足机器人学会遵循既定的轨迹运行,并且只需要17分钟的实际经验。

实现机器人在现实世界的自主行动是困难的。真的,十分困难。即使配备昂贵的机器人和世界一流的研究人员,机器人仍然难以在复杂的、非结构化的环境中进行自主地导航和交互。

为什么世界上没有自主机器人呢?因为实现能适应我们世界所有复杂情况的工程系统是极其困难的。从非线性动力学,局部可观测性到不可预测的地形以及传感器故障,机器人特别容易受墨菲定律的影响:任何可能出错的地方都会出错。在解决墨菲定律的办法上,我们选择利用这种失败的可能性,让我们的机器人在失败中进行学习,而不是通过给机器人可能遇到的情况一一进行编程。从经验中学习控制策略的优势是明显的,因为与手工设计的控制方式相比,能够根据更多的数据进行调整和改进。因此,当遇到会发生故障的场景时,尽管机器人仍然会出错,但经过学习的控制器有望在下一次出现类似的情况时纠正它的错误。为了应对现实世界中任务的复杂性,目前基于学习的方法通常会使用深度神经网络。这些应用了深度神经网络的方法很强大,但在利用数据的有效性上却显得不足:这些基于反复试验的机器人仍然会失败。失败两次、三次,并且通常是成千上万次。现代深度强化学习方法的样本无效性是在现实世界中利用学习型方法的主要瓶颈之一。

我们一直在研究用于机器人控制的具有样本高效性且使用神经网络的学习型方法。对于复杂的,接口丰富的模拟机器人以及真实的机器人(图1),我们的方法能使它们仅仅使用它们在环境中随机移动几分钟产生的数据就学会跟随轨迹进行运动的技能。在这篇博客中,我们将概述我们的方法以及实验的结果。更多的细节可以在本文底部列出的研究论文中找到,包括本文使用的代码

样本有效性:无模型与基于模型

从经验中学习机器人技能的方法通常属于强化学习的范畴。强化学习算法一般可以分为两类:第一类,无模型的,即通过学习某种策略或者价值函数;第二类,基于模型的,即通过学习动力学模型。虽然无模型的深度强化学习算法能够广泛地用于各种机器人技能,但它们通常会受到非常高的样本复杂性的阻碍,通常需要数百万个样本才能使机器人具有良好的表现,并且一只能学习一项。尽管在一些之前的工作中,这些无模型算法已经应用于真实的操作任务,但这些算法的高复杂度以及低灵活度已经严重阻碍了他们在现实世界运动技能学习中的广泛运用。

基于模型的强化学习算法通常被认为具有更高的样本有效性。然而,为了达到这一目的,这些算法通常不是采用相对简单的函数逼近器,就是采用概论动力学模型,例如高斯过程,前者不能很好地推广到复杂的任务,而后者虽然能够很好的进行推广,但在复杂的高维领域存在问题,比如具有不连续驱动力的摩擦接触的系统。相反,我们使用中等大小的神经网络作为函数逼近器,这样既可以实现较高的样本有效性,又具有足够多的表现形式可用于各种复杂的高维运动任务的推广和应用。

用于基于模型的深度强化学习的神经网络动力学

我们的工作旨在将深层神经网络模型在其他领域的成功扩展到基于模型的强化学习中。近年来,将神经网络与基于模型的强化学习(RL)结合的努力还没有实现可以和较简单的模型(例如高斯过程)相竞争的结果。比如,Gu等人观察到即使是线性模型在模拟经验生成方面也能获得较好的表现,而Heess等人却发现将神经网络模型纳入无模型学习系统收效甚微。我们的方法之所以有效,依赖于一些关键的决定。首先,我们在模型预测控制框架内使用学习型神经网络模型,因此系统可以不断地重新规划并纠正错误。其次,我们使用相对较短的规划距离,这样我们就不必依靠这个模型对较远的未来进行准确的预测。这两个相对简单的设计决策使得我们的方法能够执行各种各样的运动任务,这些运动任务没有被通用的基于模型的强化学习演示过,所有的操作都基于原始的状态。

我们的基于模型的强化学习方法如图2所示。我们维护一个由我们不断添加内容的轨迹数据集,并用这个数据集来训练我们的动态模型。数据集被随机轨迹初始化。然后,我们通过使用数据集训练神经网络动态模型与用学习型动态模型使用模型预测控制器(MPC)交替进行实现强化学习来收集额外的轨迹添加到数据集上。下面我们讨论这两个组件。

图2.基于模型的强化学习算法概述

动态模型

我们将我们的学习型动态函数通过一些需要学习的权重参数化为一个深度神经网络。我们的动力学函数将当前状态Ťs_t和行为aŤa_t作为输入参数,并输出预测的状态差st + 1- sŤs_{t+1}-s_t。动态模型本身可以在监督学习环境中进行训练,其中收集的训练数据以成对的形式储存,包括输入参数(sŤ,aŤ)(s_t,a_t)和相应的输出内容(st + 1,sŤ)(s_{t+1},s_t)。

请注意,我们上面提到的“状态”可以随着机器人类型变化,并且可以包括诸如质心位置,质心速度,关节位置等元素,以及其他我们选择的可以测量的元素。

控制器

为了使学习型动态模型完成任务,我们需要定义一个对任务进行编码标记的奖励函数。例如,一个标准的“x_vel”奖励使一个任务标记为前进。对于跟随轨迹运动的任务,我们制定了奖励函数,激励机器人靠近轨迹,并沿着轨迹前进。

通过学习型动态模型和任务奖励函数,我们制定了一个基于模型的控制器。在每个时间周期内,规划接下来的HH步的方法是,随机产生KK个候选动作序列,使用学习型动态模型预测这些动作序列的结果,并选择对应累积奖励最高的序列(图3)。然后,我们只执行动作序列中的第一个动作,然后在下一个时间周期重复该过程。这种重新规划的方式对于学习型动态模型中的不准确因素具有较好的鲁棒性。

图3.使用学习型动态模型模拟多个候选动作序列过程的示意图,预测其结果,并根据奖励函数选择最佳动作序列。

结果

我们首先使用各种MuJoCo模拟器评估了我们的方法,包括游泳人,半型猎豹和蚂蚁。图4显示,使用我们的学习型动态模型和MPC控制器,模拟器能够遵循由一组稀疏的导航点定义的路径。此外,我们的方法只用了几分钟的随机数据来训练学习型动态模型,说明其具有较好的样本有效性。

请注意,使用这种方法,我们只用对模型进行一次训练。我们只需要简单地改变奖励函数,就可以在运行时将模型应用于各种不同的预期轨迹,而不需要根据特定的任务单独地进行训练。

图4:蚂蚁,游泳者和半型猎豹跟随轨迹运动的结果。每个模拟器为了执行这些不同的轨迹而使用的动态模型仅被训练一次,并且仅使用随机收集的训练数据。

我们方法的哪些方面对于取得优秀的性能至关重要?我们首先考察了MPC规划距离H的变化对方法的影响。图5表明,如果规划距离太短,性能可能会因为不可恢复的贪婪行为而受到影响。对于半型猎豹而言,由于学习型动态模型的不准确性,如果规划距离太长,性能也会受到影响。图6详细展示了我们的学习型动态模型进行一次一百步预测的结果,显示某些状态元素的开环预测最终偏离了地面运行实况。因此,一个中等规划距离是最好的,既能避免贪婪行为,又能尽量减少不准确模型的不利影响。

图5:控制器使用不同规划距离的任务性能曲线。规划距离太短或者太长都不好。

图6:动态模型的100步正向模拟(开环),显示某些状态元素的开环预测最终偏离了地面运行实况。

我们还改变了用来训练动力学模型的初始随机轨迹的数量。图7显示尽管较高的初始训练数据量能产生较高的初始性能,但是数据聚合同样允许由低数据量初始化的实验达到与其相同的较高的最终性能。这突出显示了强化学习中的策略数据可以如何提高样本有效性。

图7:通过使用不同数量的初始随机数据训练的动态模型获得的任务性能曲线。

值得注意的是,基于模型的控制器的最终性能仍然远远低于无模型学习的控制器(当无模型学习型控制器经过数千倍的经验训练时)。这种次优的表现有时被称为“模型偏差”,并且是基于模型的强化学习(RL)中已知的问题。为了解决这个问题,我们还提出了一个混合的方法,组合基于模型和无模型的学习,尽管这种方法以额外的经验训练作为代价,但却能消除收敛的渐进偏差。这种混合的方法以及其他的分析可以在我们的论文中找到。

学习在现实世界中移动

图8:VelociRoACH的长度为10厘米,重量约为30克,每秒最多可以移动27个身体长度,并且使用两个发动机来控制六条腿。

由于我们基于模型的强化学习算法学习运动步态时需要的经验远少于无模型算法,因此可以直接用真实的机器人进行评估。在其他工作中,我们研究了这种方法如何完全从现实世界的经验中学习,从零开始获取一个微型机器人的运动步态(图8)。

Millirobots是许多应用领域使用广泛的机器人平台,因为其体积小并且制作成本低。然而,控制这些微型机器人是非常困难的,因为这些机器人是欠驱动的,同时又受到功率限制和大小影响。虽然手动控制器有时能很好地控制这些微型机器人,但是它们往往不适于动态演习和复杂的地形。因此,我们使用上面的基于模型的强化学习技术来使VelociRoach微型机器人能够跟随轨迹运动。图9显示,我们的基于模型的控制器经过17分钟的随机数据训练后就可以在高速状态下精确地根据轨迹运行。

图9:使用我们的基于模型的学习方法,VelociRoACH按照各种预定的轨迹运行。

为了分析模型的泛化能力,我们收集了在地毯和聚苯乙烯泡沫塑料地形运行上的数据,并评估了我们的方法,如表1所示。正如预期的那样,基于模型的控制器在与其训练时相同的地形上执行时性能最好,表明模型结合了地形的信息。然而,当使用来自两个地形的数据对模型进行训练时,性能会降低,这可能意味着我们需要开展更多的工作来开发在各种任务设定中均有效的基于模型的学习算法。表2显示,随着训练动态模型的数据越来越多,其性能也在不断提高,这是一个鼓舞人心的迹象,表明我们的方法会随着时间的推移而不断改进(不同于手工设计的解决方案)。

表1:用不同类型的数据进行模型训练以及在不同表面上执行时机器人跟随轨迹运行的性能。

表2:在同样的情况下,使用经过不同数据量训练的动态模型时机器人跟随轨迹运动的性能。

我们希望这些结果展示了基于模型的样本效率机器人学习方法的前景,并能鼓励未来人们这方面的研究。

我们要感谢Sergey Levine和Ronald Fearing的反馈。

这篇文章基于以下论文:

  • 神经网络驱动模型控制欠驱动的腿部微型机器人 A Nagabandi, G Yang, T Asmar, G Kahn, S Levine, R Fearing 论文
  • 用于基于模型的深度强化学习的神经网络驱动使用无模型微调 A Nagabandi,G Kahn,R Fearing,S Levine 论文网站代码

本文的版权归 五条 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

深度 | 超越DQN和A3C:深度强化学习领域近期新进展概览

我觉得,深度强化学习最让人喜欢的一点是它确实实在难以有效,这一点不同于监督学习。用神经网络来解决一个计算机视觉问题可能能达到 80% 的效果;而如果用神经网络来...

13210
来自专栏AI科技大本营的专栏

Uber AI 论文 | 一种可微塑性的新方法

译者 | 刘畅Troy 出品 | AI科技大本营(公众号ID:rgznai100) 【 AI 科技大本营导读】为了给我们的智能产品提供类脑的学习能力,Uber ...

34770
来自专栏AI科技评论

论文控|从扎克伯格账号被黑说起,谷歌神经网络如何实现“更安全”的验证

GAIR 今年夏天,雷锋网将在深圳举办一场盛况空前的“全球人工智能与机器人创新大会”(简称GAIR)。大会现场,谷歌,DeepMind,Uber,微软等巨头的人...

359160
来自专栏AI科技大本营的专栏

精选机器学习开源项目Top10

【导读】过去一个月里,我们对近 250 个机器学习开源项目进行了排名,并挑选出热度前 10 的项目。这份清单的平均 github star 数量高达919,涵盖...

15620
来自专栏磐创AI技术团队的专栏

计算智能(CI)之粒子群优化算法(PSO)(一)

计算智能(ComputationalIntelligence ,CI)是以生物进化的观点认识和模拟智能。按照这一观点,智能是在生物的遗传、变异、生长以及外部环境...

66160
来自专栏灯塔大数据

塔秘 | DeepMind到底是如何教AI玩游戏的?

导读 DeepMind到底是如何教AI玩游戏的?这篇在Medium上获得1700个赞的文章,把里面的原理讲清楚了。 ? 谷歌的DeepMind是世界一流的AI研...

53280
来自专栏机器之心

学界 | DeepMind提出架构搜索新方法:使用分层表示,时间短精度高

32560
来自专栏PPV课数据科学社区

【学习】Netflix工程总监眼中的分类算法:深度学习优先级最低

【编者按】针对Quora上的一个老问题:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain近日给出新的解答,他根据奥卡姆剃刀原...

31160
来自专栏编程

Python深度学习的十大入门视频教程

人工智能无疑是2017年最火爆的技术,许多外行的朋友想学习却不知道从何下手,所以特意将此文翻译过来,供大家参考。可以在短期之内进入这个领域。这些视频大多数都可以...

44060
来自专栏新智元

IEEE预发:DeepMind主攻的深度强化学习3大核心算法及7大挑战

【新智元导读】深度强化学习将有助于革新AI领域,它是朝向构建对视觉世界拥有更高级理解的自主系统迈出的一步。本文将涵盖深度强化学习的核心算法,包括深度Q网络、置信...

38280

扫码关注云+社区

领取腾讯云代金券