深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

图1:只用了17分钟的实际经验,一个学习的神经网络动力学模型使一个六足机器人能够学习运行并跟随理

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

为什么自主机器人不在我们之中呢?能应付我们世界所有复杂性的工程系统是很难的。从非线性动力学和部分可观测性到不可预知的地形和传感器故障,机器人特别容易受到墨菲定律的影响:任何可能出错的地方都会出错。我们可以选择接受这种失败的可能性,是机器人学会学习,而不是编码每一个可能出现的场景来对抗墨菲定律。

从经验中学习控制策略是有利的,因为与手工控制器不同,学习控制器可以适应和改善更多的数据。因此,当呈现出的所有情况都有出错的场景时,虽然机器人仍会失败,但学习控制器都将有望在下一次出现类似场景时纠正错误。

为了处理现实世界中任务的复杂性,目前基于学习的方法通常使用深度神经网络,这是强大的,但不是有效的:这些基于试验和错误的学习者往往会再次失败,甚至更多。现代深度强化学习方法的样本无效性是在现实世界中利用学习型方法的主要瓶颈之一。

我们一直在研究用于机器人控制的神经网络的基于样本的高效学习方法。对于复杂的、接触丰富的模拟机器人以及真实世界的机器人(图1),这种方法能够学习轨迹跟踪的运动技能,即只使用从机器人随机行动收集的数据。在这篇文章中,将概述一些方法和结果。更多细节可以在我们的研究论文底部列出的论文中找到,包括本文的代码在这里。

样本效率:无模型与基于模型

从经验中学习机器人技能通常属于强化学习的范畴。强化学习算法一般可以分为两类:无模型,即学习策略或价值函数,以及基于模型的学习动态模型。虽然无模型深度强化学习算法能够学习广泛的机器人技能,但它们通常会遇到非常高的样本复杂性,通常需要数百万个样本才能获得良好的性能,而且一次只能学习一项任务。尽管之前的一些工作已经将这些无模型算法应用于现实世界的操作任务,但这些算法的高度复杂性和不灵活性已经阻碍了它们在现实世界中被广泛用于学习运动技能。

基于模型的强化学习算法通常被认为是更有效的样本。然而,为了获得良好的采样效率,这些基于模型的算法通常使用相对简单的函数逼近,其不能很好地推广到复杂的任务。相反,我们使用中等大小的神经网络作为函数逼近器,可以实现出色的采样效率,同时仍然具有足够的表现力,可以用于各种复杂和高维运动任务的推广和应用。

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

在工作中,我们的目标是将深层神经网络模型在其他领域已经看到的成功扩展到基于模型的强化学习。近年来,将神经网络与基于模型的RL相结合之前,还没有实现与较简单的模型(例如高斯过程)相竞争的那些结果。例如,Gu观察到即使是线性模型在合成经验生成方面也获得了更好的性能,而Heess从将神经网络模型纳入无模型学习系统中看到了相对较小的收益。我们的方法依赖于一些关键的决定。首先,我们在模型预测控制框架内使用了学习的神经网络模型,系统可以迭代地重新规划和纠正错误。其次,我们使用相对较短的视野预测,这样就不必依靠这个模型对未来做出非常准确的预测。这两个相对简单的设计决策使得我们的方法能够执行各种各样的运动任务,这些运动任务之前没有用通用的基于模型的强化学习方法进行演示,所述方法直接在原始状态观察上操作。

基于模型的强化学习方法如图2所示。我们维护一个我们迭代增加的轨迹数据集,我们使用这个数据集来训练我们的动力学模型。数据集被随机轨迹初始化。然后,我们通过在使用数据集训练神经网络动力学模型来进行强化学习,并使用模型预测控制器(MPC)与我们学习的动态模型之间交替进行强化学习来收集额外的轨迹以聚合到数据集上。以下是对于两个组件的研究。

深度详解:基于模型的强化学习与神经网络动力学

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

动力学模型

我们将我们的学习动力学函数参数化为一个深度神经网络,通过一些需要学习的权重进行参数化。我们的动力学函数输入当前状态st和动作at,并输出预测差st + 1-st。动态模型本身可以在有监督的学习环境中训练,其中收集的训练数据来自成对的输入(st,at)和相应的输出标签(st + 1,st)。

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

控制器

为了使用学习动力学模型来完成任务,需要定义一个对任务进行编码的奖励函数。例如,标准的“x_vel”奖励可以编码前进的任务。对于轨迹跟踪的任务,制定了奖励功能,激励保持靠近轨迹,并沿着轨迹前进。

使用学习动力学模型和任务奖励函数,制定一个基于模型的控制器。在每个时间步长,代理人通过随机生成K候选人动作序列,使用所学到的动力学模型来预测那些动作序列的结果序列,并选择相对应的最高累积奖励的序列(图3)。然后,不仅仅执行动作序列中的第一个行动序列,然后在下一个时间步长重复计划的过程。这种重新规划使得该方法在学习动力学模型中不够准确。

深度详解:基于模型的强化学习与神经网络动力学

图3:利用习得动力学模型对多个候选动作序列进行模拟,预测其结果,并根据奖励函数功能选择最优

结果

我们首先评估了在各种MuJoCo代理上的方法,包括游泳者和蚂蚁。正如图4显示,利用了学习动力学模型和MPC控制器,代理能够遵循由一组稀疏路径定义的路径。此外,我们的方法只用了几分钟的随机数据来训练习得的动力学模型,显示了它的样本效率。

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

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

图4:为了执行这些不同的轨迹,每个代理使用的动力学模型只接受一次训练,只使用随机收集的训练数据

该方法的哪些方面对于取得良好的业绩至关重要?我们首先考察了MPC规划变化。如图5所示,如果视界太短,可能是由于不可恢复的贪婪行为,性能会受到影响。图6显示的学习动力学模型,给出一个100步的预测,显示某些状态元素的开环预测最终偏离了地面实况。因此,一个中等规划期限最好避免贪婪行为,同时尽量减少不准确模型的不利影响。

深度详解:基于模型的强化学习与神经网络动力学

图5:使用不同的视野值进行规划的控制器的任务性能图。太过低的地平线是不好的,也不能太高

深度详解:基于模型的强化学习与神经网络动力学

图6:动力学模型的100步正相模拟(开环)显示,对某些状态元素的开环预测最终偏离了地面

我们还改变了用来训练动力学模型的初始随机轨迹的数量。 如图7显示的,尽管较高的初始训练数据量导致较高的初始性能,但是数据聚合甚至允许低数据初始化实验运行达到较高的最终性能水平。这突出显示了强化学习的策略数据如何提高采样效率。

深度详解:基于模型的强化学习与神经网络动力学

图7:使用不同数量初始随机数据训练的动力学模型完成的任务绩效图。

值得注意的是,基于模型的控制器的最终性能仍然远低于无模型自由学习者(当无模型学习者经过数千倍的经验训练时)。 这种次优的表现有时被称为“模型偏差”,并且是基于模型的RL中已知的问题。为了解决这个问题,还提出了一个混合的方法,结合了基于模型和无模型的学习,以消除收敛的渐近偏差,尽管以额外的经验为代价。

学习在现实世界中运行

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

深度详解:基于模型的强化学习与神经网络动力学

图8:它的长度为10厘米,重量约为30克,每秒钟可以移动到27个身体长度,并使用两个马达来控制六条腿

Millirobots由于其体积小和制造成本低而成为许多应用领域的有前途的机器人平台。然而,由于这些机器人的不足之处、功率限制,控制这些毫米机器人是非常困难的。虽然手动控制器有时可以控制这些毫米机器人,但是他们往往在动态机动和复杂的地形上遇到困难。因此,我们利用上面的基于模型的学习技术来使VelociRoach毫米机器人跟踪轨迹。图9显示,基于模型的控制器经过17分钟的随机数据训练后可以准确地遵循高速轨迹。

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

深度详解:基于模型的强化学习与神经网络动力学

图9:使用基于模型的学习方法,实现了各种理想轨迹的速度:

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

深度详解:基于模型的强化学习与神经网络动力学

表1:根据不同类型的数据和在不同表面上执行的轨迹所产生的成本的轨迹:

深度详解:基于模型的强化学习与神经网络动力学

表2:轨迹追踪使用经过不同数据量训练的动力学模型所产生的成本