首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用神经网络驱动的基于模型的强化学习

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

作者头像
五条
发布2018-02-01 15:23:46
1.3K0
发布2018-02-01 15:23:46
FIG1
FIG1

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

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

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

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

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

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

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

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

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

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

fig2
fig2

图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控制器,模拟器能够遵循由一组稀疏的导航点定义的路径。此外,我们的方法只用了几分钟的随机数据来训练学习型动态模型,说明其具有较好的样本有效性。

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

fig4a
fig4a

fig4b
fig4b

fig4c
fig4c

fig4d
fig4d

fig4e
fig4e

fig4f
fig4f

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

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

fig5
fig5

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

fig6
fig6

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

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

fig7
fig7

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

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

学习在现实世界中移动

fig8
fig8

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

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

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

fig9a
fig9a

fig9b
fig9b

fig9c
fig9c

fig9d
fig9d

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

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

表格1
表格1

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

表2
表2

表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 条评论
热度
最新
推荐阅读
目录
  • 样本有效性:无模型与基于模型
  • 用于基于模型的深度强化学习的神经网络动力学
    • 动态模型
      • 控制器
      • 结果
      • 学习在现实世界中移动
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档