无需奖励机制,伯克利的“反向课程”让强化学习更智能

2017 年 12 月 25 日 论智 Carlos Florensa
来源:The Bair Blog
编译:Bing

在一些复杂任务,比如让机器人移动、互相比赛或者玩雅达利游戏时,强化学习是一个强有力的工具,它可以利用奖励机制训练一个机器人,从而改进它的行为。这样的例子有很多,但是如果想设计一种既容易训练,并在优化后能立即产生预期动作的奖励机制是非常难的。假设我们想让一台机械臂将一个中间开口的正方形套进立柱低端,一般的奖励机制是这样的:如果机械臂放对了位置,那么会得到“1”,如果位置放错,那么将得到“0”。

然而,让机械臂把正方形中间对准柱子然后再慢慢滑到底端,这个任务是无法简单地通过二元奖励机制学会的,因为初始位置并不确定,所以永远无法达到目标位置,如图1。

图1:在大多数起点,随机初始化策略无法达到目标,因此无法学习

若随机选定初始位置,机械臂无法移动到目标位置,故无法学习。

不过,研究者也可以试着改良奖励机制,能稍稍修正这一问题,但是找到一个良好的改正方法需要十分专业的知识和相当数量的实验。例如,如图2所示,简单地将正方形的中心与柱子底部的距离减到最小仍然不成功,正方形直接会撞到柱子上。

图2:从正方形中心到立柱底端生成一个惩罚函数,调整奖励,从而生成不良行为

于是,我们提出一种有效的学习方法,不用修改奖励机制,自动生成起始位置。

用课程代替奖励机制修改

我们训练的目标是,让实验对象(机械臂)从任意位置开始都能触达正确位置,无需人类调整奖励机制。显然,并不是所有起始位置的操作难度都相同。即使是从离柱子很近的位置开始操作,机械臂也并非每次都能完成任务。如果它成功了,就会获得奖励,从而开始学习。机器得到的知识可以用来解决离柱子更远的任务。通过选择起始位置的顺序,我们可以利用这个问题的底层结构提高学习效率。这种技术的重要优势之一就是不用修改奖励机制,直接优化稀疏奖励不容易产生不良行为。讲一套相关的学习任务进行排序被称为课程学习(curriculum learning),对我们来说,核心问题就是如何选择这一任务的顺序。我们利用机械臂的表现自动生成一套“课程”,先从目标的位置开始,然后慢慢向外扩展。接下来我们就给大家详细解释。

反向课程学习

在“目标导向”型任务中,最终目的就是能从任何起始位置到达目标位置。比如,还是刚刚那个“套环”任务,我们想让机械臂把中间有孔的正方形套进柱子上,不论从哪里拿起来都能做到。对大多数起始位置来说,最初的尝试均无法成功,所以奖励为0。不过,从图3可以看到,如果初始位置里柱子底端非常近的话,还是有可能将正方形放到最下面的。

图3

既然在近的地方可以成功,那么我们可以试一下较远的地方。一旦机械臂达到目标位置附近,它就知道如何做了,如图4。

图4

最终,机械臂将范围扩大也能成功套入正方形,如图5。

图5

这种反向学习或者从目标向外扩展的方法,灵感来源于动态规划(Dynamic Programming)。在DP中,较简单的子问题的解决方案通常用来解决更难的问题。

中间难度起点(SoID)

为了实施这种反向学习过程,我们需要确保这种从目标向外扩展的速度适合实验对象。换句话说,我们想用数学描述起始点的位置,记录目前实验对象的表现性能,然后为RL算法提供良好的学习信号。我们特别关注策略梯度算法,通过采取预期总奖励的预计梯度来改进参数化策略。这种对梯度的预计往往是原始强化学习算法的变体,这是通过从状态中收集N个on-policy轨迹

公式1

在目标导向任务中,轨迹奖励是二元的,表示实验对象是否达到了目标。所以,常规的基准用于计算从开始的当前策略πθ是否有达到目标位置的可能。因此,从方程1我们可以看出,从起始点收集的轨迹相对应的总和项将会消失。这些都是“无用”的轨迹,因为它们对梯度估计没有帮助——要么太难(hard)要么太简单(easy)。在我们之前的一个项目中曾介绍过类似的分析。在这项任务中,为避免训练开始时的策略从未让对象达到目标或已经让对象掌握了方法,我们引入了SoID的概念,即“从中间难度开始”。开始状态满足:

公式2

的值可以直接解释为从起点处开始训练的最小成功概率以及我们从其它起点处训练的最大成功率。在我们所有的实验中,使用了10%和90%。

自动生成和反向课程

根据如上的知识和推倒,我们想利用SoID训练策略。但不幸的是,很难在每次策略更新的时候找到适合方程2的起点,于是我们引入了一种类似的方法自动生成逆向课程:在第一次迭代时,我们在SoID预计的起点附近采样。为了做到这一点,我们提出了一种方法,在最后一次迭代中收集轨迹,过滤掉非SoID起始点,然后对附近位置进行采样。下方视频算法进行了完整说明,详细信息如下:


动画演示了算法的主要步骤,以及它是如何自动生成合适的课程

过滤非SoID位置

在每个梯度策略迭代训练中,我们从一些初始位置中收集N个轨迹。对大多起点,我们至少收集三条轨迹,然后利用蒙特卡洛算法估计这一策略的成功概率。对于估值不在中的每个,我们放弃这一起点并保证下次迭代时不使用它们。之前通过SoID选出的起点可能不适用于当前策略,因为它们可能已经掌握了这一策略,或者更新后的策略变得更糟了。所以重要的是不断过滤掉非SoID起点,让课程适合目前实验对象的表现。

附近取样

过滤掉非SoID起点后,我们需要获取新的SoID起点,扩大范围继续训练。于是我们在剩余的SoID起点附近采样,因为这些点与当前的策略难度相似,因此也有可能符合SoID的条件。但是,应该用怎样的方法才最合适呢?我们建议从中随机采样,并记录访问状态。这种技术比直接在位置空间中加入噪声要好,因为噪声应用产生的状态可能不可行,或者无法执行原始的达到目标。

假设

为了初始化算法,我们需要在目标处进行初始化,然后从中开始运行布朗运动。从收集的起点开始训练,过滤掉非SoID并迭代。这通常在特殊问题上很容易实现,并且这是一种简要的假设,无需充分证明如何达到这一点。

我们的算法可以从收集到轨迹起点,选择起点的分布。在许多系统中都是如此,就像所有的模拟系统一样。Kakade和Langford在此假设上提出修改起点分布的有用性的理论证据。

应用于机器人

导航到一个固定目标,以及精细地打造所需结构是机器人的两个典型任务。在以下任务中,我们分析了我们所提出的算法是如何自动生成反向课程的:

1. 点群迷宫(point-mass maze)

在这一任务中,我们想要学习如何能让一个点到达右上方的红色小球区域。

图6:反向课程生成的策略表现和起点位置,总是在中等难度区域进行跟踪

在图6中可以看到,当迭代i=1时,除了目标点周围的其他地方成功的概率都为0。第二行显示了我们的算法如何在i=1时选出目标点附近的起点。在后面两列中可以看到,在我们所提出的方法产生的起点,又是训练策略可以成功,但有时却不行,因此为其他任何策略梯度学习方法提供了良好的学习信号。

为了避免忘记是从哪一起点到达目标的,我们保留了所有之前SoID策略的replay缓存。在每次迭代训练中,我们都能从缓存中对一小部分轨迹进行采样。

2. 蚂蚁迷宫(Ant Maze Navigation)

当用我们的反向课程方法训练时,即使是稀疏的奖励,蚂蚁也会产生复杂的组合动作,并学会利用环境

机器人往往需要复杂的协调运动才能完成目标动作。例如,下图中的四足物体需要知道如何协调其所有的力矩向目标移动。在下面的动图中我们可以看到,即使试验队形在成功后只收到成功或失败的奖励,我们的算法也依然能够学习这种行为。我们没有修改奖励函数,其中不包括任何目标距离、质心速度以及探索奖励。

3. 精细化操作

我们的方法也可以解决机器人的复杂操作问题,如下两图所示:

上图中的机械臂拥有七个自由度,同时具有复杂的接触约束。第一个任务要求机器人把中间有洞的正方形插入立柱底部,第二个任务要求机器人将钥匙插入所中,顺时针旋转90度,再进一步插入后再逆时针选择90度。在这两项任务中,只有实验对象完成最终任务后才会给予奖励。当前不使用课程的最先进的强化学习方法无法学习怎样解决问题,但是通过我们的反向课程生成,我们可以从更广泛的初始位置获取成功策略。

结论以及未来的方向

最近,深度学习方法正从解决单一问题向多任务集转变。这是为了更接近真实场景,因为每次当有任务需要执行时,起始配置、目标参数或其他参数都会发生变化。因此,推动课程学习从而加深理解这些任务的底层结构至关重要。我们的逆向课程策略就是朝这一方向努力的一步,如果没有课程学习,就无法在运动和复杂的任务操作中产生令人印象深刻的结果。

此外,在最终的动图中可以观察到,我们的实验对象已经学会利用周围环境运动,而非避开环境。因此,我们提出的基于学习的方法,有助于解决经典运动规划算法难以解决的问题,例如带有非刚性对象的环境或几何参数不确定的任务。接下来,我们将把生成课程方法与领域随机方法结合起来,以生成可迁移到真实世界的策略。

原文地址:bair.berkeley.edu/blog/2017/12/20/reverse-curriculum/

登录查看更多
7

相关内容

强化学习(RL)是机器学习的一个领域,与软件代理应如何在环境中采取行动以最大化累积奖励的概念有关。除了监督学习和非监督学习外,强化学习是三种基本的机器学习范式之一。 强化学习与监督学习的不同之处在于,不需要呈现带标签的输入/输出对,也不需要显式纠正次优动作。相反,重点是在探索(未知领域)和利用(当前知识)之间找到平衡。 该环境通常以马尔可夫决策过程(MDP)的形式陈述,因为针对这种情况的许多强化学习算法都使用动态编程技术。经典动态规划方法和强化学习算法之间的主要区别在于,后者不假设MDP的确切数学模型,并且针对无法采用精确方法的大型MDP。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【牛津大学&DeepMind】自监督学习教程,141页ppt
专知会员服务
179+阅读 · 2020年5月29日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
【论文】欺骗学习(Learning by Cheating)
专知会员服务
26+阅读 · 2020年1月3日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
一文了解强化学习
AI100
15+阅读 · 2018年8月20日
深度强化学习入门,这一篇就够了!
机器学习算法与Python学习
27+阅读 · 2018年8月17日
【强化学习】强化学习/增强学习/再励学习介绍
产业智能官
10+阅读 · 2018年2月23日
【强化学习】强化学习+深度学习=人工智能
产业智能官
52+阅读 · 2017年8月11日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Multi-task Deep Reinforcement Learning with PopArt
Arxiv
4+阅读 · 2018年9月12日
Arxiv
11+阅读 · 2018年7月8日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
7+阅读 · 2018年1月18日
VIP会员
相关VIP内容
相关资讯
相关论文
Top
微信扫码咨询专知VIP会员