OpenAI研究 从一次演示中学习蒙特祖玛的复仇
我们训练了一个智能体,通过一次人类演示在蒙特祖玛的复仇中获得了 74,500 的高分 ,比之前公布的任何结果都要好。我们的算法很简单:代理从演示中精心选择的状态开始玩一系列游戏,并通过使用PPO优化游戏分数来从中学习,PPO 是 支持OpenAI Five的强化学习算法 。
更多资源
探索与学习
为了在强化学习问题上取得成功,人工智能需要做两件事:
- 找到导致积极奖励的一系列行动。这就是 探索 问题。
- 记住要采取的行动的顺序,并概括为相关但略有不同的情况。这就是 学习 问题。
在蒙特祖玛的复仇中,通过从演示中的状态重置来开始每个 RL 情节,可以在很大程度上绕过探索问题。通过从演示状态开始,与从每一集的游戏开始时相比,智能体需要进行更少的探索来学习玩游戏。这样做使我们能够将探索和学习分开。我们的结果表明,对于像 Montezuma's Revenge 这样的游戏和像 PrivateEye 这样的某些类似的 Atari 游戏,探索是两个问题中最难的一个。
为什么探索困难
无模型的 RL 方法(如策略梯度和 Q 学习)通过随机采取行动进行探索。如果随机行动偶然导致奖励,它们就会 得到强化,并且代理人将来更有可能采取这些有益的行动。如果奖励足够密集,随机动作以合理的概率产生奖励,则此方法效果很好。然而,许多更复杂的游戏需要很长的非常具体的动作序列才能体验任何奖励,而且这样的序列极不可能随机发生。
考虑一个游戏,它需要 N 个动作的精确序列来体验第一个奖励。如果这些行动中的每一个都是以固定概率采取的,那么随机代理将需要玩游戏一段时间,其比例为 exp(N),然后才能期望获得第一个奖励。
例如,在 Montezuma's Revenge 的情况下,获得第一个密钥的概率可以分解为
p(拿到钥匙)= p(从梯子 1 下来)* p(从绳子下来)* p(从梯子 2 下来)* p(跳过头骨)* p(从梯子 3 上来)。
通过将这些概率中的 N 个相乘,我们最终得到的结果概率 p(get key) 比任何单个输入概率都小指数级。随着您的问题变得更具挑战性,具有指数缩放的算法会很快崩溃,这限制了当前强化学习技术可以解决的任务。
通过演示简化探索
尽管无模型 RL 方法难以找到长动作序列,但它们适用于较短的序列。我们的主要见解是,我们可以通过将任务分解为需要短动作序列的子任务课程来使我们的任务更容易解决;我们通过从演示状态开始每个 RL 情节来构建这个课程。同一想法的一个变体最近被用于 机器人的反向课程生成,其中通过使用随机动作迭代扰动一组起始状态并选择具有适当难度级别的结果状态来构建课程。
我们的方法的工作原理是让每个 RL 情节从先前录制的演示中的状态开始。在训练的早期,代理会在演示接近尾声时开始每一集。一旦代理能够在至少 20% 的 rollouts 中击败或至少与演示者在游戏的剩余部分得分持平,我们就会慢慢地将起点向后移动。我们一直这样做,直到代理从游戏一开始就开始玩,根本没有使用演示,此时我们有一个经过 RL 训练的代理在整个游戏中击败或追平了人类专家。
通过将我们的起始状态从演示结束慢慢移动到开始,我们确保代理在每个点都面临一个很可能成功的简单探索问题,因为它已经学会解决剩余游戏的大部分内容。我们可以将以这种方式解决 RL 问题解释为 动态规划的一种形式。如果需要特定的 N 个动作序列才能获得奖励,则现在可以在 N 的线性时间而不是指数时间中学习该序列。
之前曾提出通过从示范状态重置来开始剧集 ,但没有构建一个逐渐将起始状态从示范结束移回到开始的课程。当与模仿学习相结合时, 一些 研究人员 报告说可以从这种方法中获益。对于我们的用例,我们发现这样的课程对于从演示中获益至关重要。

我们的智能体使用 RL 学习到达蒙特祖玛的复仇中的第一个键并从演示状态开始每一集的印象。当我们的智能体开始玩游戏时,我们将它放在钥匙的正前方,要求它只跳一次就可以找到成功。在我们的智能体学会始终如一地执行此操作后,我们慢慢地将起点移回过去。然后我们的代理可能会发现自己在通向钥匙的梯子的中途。一旦它学会了从那里爬梯子,我们就可以让它从需要跳过头骨的地方开始。在它学会这样做之后,我们可以让它从通往房间地板的绳索开始,等等。最终,智能体以游戏的原始开始状态开始,并且能够完全靠自己到达钥匙。
与基于模仿的方法的比较
最近,DeepMind 展示了一个智能体通过从演示中模仿学习来学习蒙特祖玛的复仇; 一种方法 训练代理人达到在蒙特祖玛复仇的 YouTube 视频中看到的相同状态,另 一种技术 将复杂版本的 Q 学习与最大化在演示中采取行动的可能性相结合。这些方法的优点是它们不需要像我们的技术那样对环境进行太多控制:它们不会将环境重置为游戏开始状态以外的状态,并且它们不会假定访问遇到的完整游戏状态在演示中。我们的方法不同之处在于直接优化我们关心的东西——游戏得分,而不是让智能体模仿演示;因此,我们的方法不会过度适应潜在的次优演示,并且可以在多人游戏中提供好处,在这种游戏中,我们希望优化针对其他对手的性能,而不仅仅是来自演示的对手。
剩余的挑战
虽然我们的代理完成的逐步学习比从头开始学习要简单得多,但它仍然远非微不足道。我们的 RL 智能体面临的一个挑战是,当它从较早的状态开始时,它通常无法从演示中的后期到达确切的状态。这是因为代理玩游戏时使用的跳帧与我们用于录制演示的跳帧不同,但这也是由于动作的随机性使得它不太可能准确地重现任何特定的动作序列。因此,智能体需要能够在非常相似但不相同的状态之间进行概括。我们发现这对 Montezuma's Revenge 很有效,但对我们尝试过的其他一些 Atari 游戏(如 Gravitar 和 Pitfall)效果就差很多。
我们遇到的另一个挑战是,像策略梯度这样的标准 RL 算法需要在探索和利用之间取得谨慎的平衡:如果代理的动作过于随机,那么从游戏开始时就会犯太多错误而无法达到所需的最终分数; 如果动作过于确定,代理就会停止学习,因为它不会探索替代动作。因此,要在 Montezuma's Revenge 上取得报告的结果,需要仔细调整 PPO 中使用的熵奖金系数,并结合学习率和奖励缩放等其他超参数。对于 Gravitar 和 Pitfall 等其他一些游戏,我们无法找到适用于训练完整课程的超参数。该算法还显示出运行与运行之间的显着随机变化,有些运行未能收敛到蒙特祖玛的复仇。我们希望 RL 的未来发展将产生对随机噪声和超参数选择更稳健的算法。
最后,就像强化学习中经常出现的情况一样,我们发现我们训练的神经网络策略还没有在人类玩家的水平上泛化。 测试泛化能力的 一种方法是通过使动作具有粘性来扰乱策略 并在每一帧以 0.25 的概率重复最后一个动作。使用这种评估方法,我们训练有素的政策在《蒙特祖玛的复仇》中平均获得了 10,000 分。或者,我们可以采取概率为 0.01 的随机动作(重复 4 个跳帧步骤),这导致我们的策略平均得分为 8,400。有趣的是,我们发现这种扰动也显着降低了人类玩家在蒙特祖玛的复仇中的得分,但程度较小。据我们所知,我们使用扰动策略的结果仍然优于之前发布的所有结果。通过从 0 到 30 之间的随机空操作开始来扰乱学习策略并没有显着影响结果,大多数 rollouts 达到了我们演示中获得的最终分数。
之前大多数关于从演示中学习的工作都集中在 模仿上,这鼓励与演示中看到的行为相同,我们已经表明,通过直接优化回报可以取得好的结果。这允许代理偏离演示的行为,从而使其找到人类演示者可能没有考虑过的新的和令人兴奋的解决方案。通过对通过从演示状态重置创建的子任务课程进行培训,我们使用该技术解决了需要长时间动作序列的困难强化学习问题。