前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握

本文《前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握全新任务》是傻大方资讯网小编整理于开放的互联网,版权归原作者所有。

选自BAIR

作者:Carlos Florensa

机器之心编译

参与:Panda

强化学习是当前人工智能领域最炙手可热的技术之一。近日,伯克利人工智能研究实验室(BAIR)博客介绍了一种用于强化学习智能体的逆向课程生成(Reverse Curriculum Generation)方法。该方法可以帮助智能体实现更有效的学习,乃至完成其它强化学习智能体无法实现的任务。本研究的论文已经在机器人学习会议(CoRL 2017)上发表,项目代码也已经开源。

  • 论文地址:http://proceedings.mlr.press/v78/florensa17a/florensa17a.pdf

  • 项目网站:http://sites.google.com/view/reversecurriculum

  • 代码地址:http://github.com/florensacc/rllab-curriculum

  • 强化学习是一种强大的技术,可以解决运动、Atari 游戏、赛车游戏和机器人操作等复杂任务,这项技术是训练一个智能体根据一个奖励函数来优化行为。但是,对于很多任务而言,设计易于训练且能在优化后得到所需行为的奖励函数很困难。假设我们想要一个机器臂学习如何将一个环套到一根钉上。其最自然的奖励函数是让智能体在达到所需的最终配置时得到奖励 1,得到其它结果的奖励为 0。但是,该任务所需的动作(将环与钉的顶部对齐,然后将环滑倒底部)在这样的二元奖励设置下是无法学习得到的,因为我们的初始策略的常用随机探索不可能实现这一目标,如视频 1a 所示。作为替代,我们可以尝试构造奖励函数以使这个问题更加简单,但寻找优良的构造方式需要相当多的专业知识和实验。比如,直接最小化环的中心和钉的底部之间的距离会得到一种不成功的策略——直接将环贴在钉上,如视频 1b 所示。我们提出了一种无需修改奖励函数而有效学习的方法——通过在起始位置上自动生成课程(curriculum)。

    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    视频 1a:在大多数起始位置上,随机初始化的策略无法触及目标,因此无法学习。

    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    视频 1b:根据在环中心与钉底部之间的距离上的惩罚来构造奖励函数会得到我们不想要的结果。

    课程而不是塑造奖励

     

    我们希望训练一个能够从任何起始位置达成目标的智能体,而无需专家来塑造奖励。很显然,并非所有起始位置的难度都一样。即使是一个随机智能体,如果放的位置离目标很近,有时候也能到达目标、获得奖励,就能开始学习了!然后这里获得的知识就可以被引导用于解决从离目标更远一点的位置开始的任务。通过选择我们在训练中所使用的起始位置的顺序,我们可以利用问题的这种底层结构并且提升学习效率。这种技术的一项关键优势是不必修改奖励函数,而且直接优化这种稀疏奖励更不容易产生我们不想得到的行为。按顺序排布一组待学习的相关任务的方法被称为课程学习(curriculum learning),而我们面临的一个核心问题是如何选择这种任务顺序。我们的方法(我们将在后面给出更详细的解释)使用了学习智能体的表现来自动生成从目标开始向外扩展的任务课程。

     

    逆向的课程直觉

     

    在面向目标的任务中,任务的目的是从任意起始状态达成某个所需的配置。比如在上面介绍的钉上套环的任务中,我们希望从任意配置开始都能将环套在钉上。从大多数起始位置开始,我们的初始策略的随机探索从来没有达成过目标,因此也就得不到任何奖励。尽管如此,在视频 2a(上)中可以看到,如果初始时在近邻的位置,随机策略也是有可能到达钉底部的。然后,一旦我们学习到了如何从目标周围到达目标,再从更远的地方学习就会更容易,因为如果探索动作将其状态推进到了目标周围,那该智能体就已经知道接下来该如何继续了,如视频 2b(中)所示。最后,该智能体成功地学会了从范围广泛的起始位置开始到达目标,如视频 2c(下)所示。

    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    视频 2a-c:我们的方法首先从目标附近开始努力学习,然后逐渐远离其开始的位置,逆向扩大。

     

    这种逆向的学习方法(或从目标开始向外扩展的方法)的灵感来自动态规划(Dynamic Programming)方法,其中更简单的子问题的解决方案可被用于计算更难问题的解决方案。

    中间难度的起点(SoID)

     

    要实现这种逆向课程,我们需要确保这个学习智能体的外扩速度适当。换句话说,我们需要通过数学的方式描述一组可以追踪当前的智能体表现的起始条件并且为我们的强化学习算法提供优良的学习信号。我们特别关注了策略梯度(Policy Gradient)算法,这可以在总预期奖励的估计梯度上的方向上一步步提升参数化的策略。这种梯度估计通常是原来的 REINFORCE 的一种变体,这是通过从状态前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
    收集 N 个在策略(on-policy)轨迹前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
    而估计得到的,参阅:http://link.springer.com/article/10.1007/BF00992696。

    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    在面向目标的任务中,轨迹奖励前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
     是二元的,即表明该智能体是否达成了目标。因此,常用的基准前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
    是估计从状态前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
    开始执行当前策略前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
    时达成目标的概率。因此,我们可以看到,在(1)式中,求和项对应于从起始状态前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握
    (成功的概率是 0 或 1)开始收集到的轨迹,而这个求和项会消失。这些轨迹都「浪费了」,因为它们对梯度的轨迹毫无用处——要么太难了,要么就太容易了。我们之前在多任务强化学习上的研究也曾给出过类似的分析,参阅《学界 | 伯克利与 OpenAI 整合强化学习与 GAN:让智能体学习自动发现目标》。在这种情况下,为了避免从我们当前的策略永远完不成目标或已经掌握了的地方开始训练,我们引入了「中间难度起始(SoID:Start of Intermediate Difficulty)」的概念,它是从状态 s0 开始的并且满足:

    前沿 | 将逆向课程生成用于强化学习:伯克利新研究让智能体掌握


    其中 Rmin 和 Rmax 的值分别是从该起始处开始进行训练的可接受的最小成功概率以及我们宁愿在其它起始处开始训练的最大成功概率。我们在所有的实验中都分别使用了 10% 和 90%。

     

    逆向课程的自动生成

     

    根据上面的直觉知识和推导,我们希望使用从 SoID 状态的轨迹训练我们的策略。不幸的是,在每一次策略更新时寻找完全满足(2)式的所有起始处是不可能的,因此我们引入了一种有效的近似来自动生成这种逆向课程:我们在前一次迭代过程中在起始处附近采样估计是 SoID 的状态。为了做到这一点,我们提出了一种使用在上一次训练迭代过程中收集到的轨迹来过滤非 SoID 起始处的方法,然后再采样附近的状态。视频 3 对该完整算法进行了说明,细节如下: