OpenAI宣布他们的AI仅通过一次人类演示,蒙特祖玛的复仇游戏中玩出历史最高分

电子说

1.3w人已加入

描述

《蒙特祖玛的复仇》被公认为是Atari中最难的游戏之一,是AI的一大挑战。今天,OpenAI宣布他们的AI仅通过一次人类演示,就在蒙特祖玛的复仇游戏中获得了74500分的成绩,比以往公布的任何结果都要好。而且,这次的成果使用了PPO算法,这正是不久前OpenAI在Dota2 5v5中战胜人类的AI的算法。

《蒙特祖玛的复仇》( Montezuma’s Revenge)被认为是Atari中最难的几个游戏之一。2015年,DeepMind提出著名的DQN算法,使用强化学习系统来学习如何玩49个Atari游戏,该系统在大多数游戏中都能达到人类水平的表现,但在蒙特祖玛的复仇游戏中几乎没有任何进展。

DQN在蒙特祖玛的复仇游戏中几乎没有任何进展

在“蒙特祖玛的复仇”游戏中,目标是找到埋在充满危险机关的金字塔里的宝藏。要达到目标,玩家必须达成许多个次级的小目标,例如找到打开门的钥匙。这个游戏的反馈也不像“Breakout”之类的游戏那么即时,例如,在一个地方找到的钥匙可能能打开的是另一个地方的门。最终找到宝藏的奖励是之前的数千次动作的结果。这意味着网络很难将原因和结果联系起来。

这次,OpenAI的研究团队训练了一个智能体,仅通过一次人类demo,就在蒙特祖玛的复仇游戏中获得了74500分的成绩,比以往公布的任何结果都要好。

强化学习算法PPO

研究人员说,这一算法很简单:智能体从demo中仔细选择状态,然后从这些状态开始玩一系列游戏,使用PPO算法(Proximal Policy Optimization)来优化游戏得分并从中学习。PPO是一个强化学习算法,同样也用在打Dota2的 OpenAI Five中。

我们的智能体在玩蒙特祖玛的复仇。在大约12分钟的游戏中,智能体的最终得分是74500分(视频为双倍速)。虽然智能体的大部分游戏操作模仿了我们的demo,但通过在沿途捡到更多钻石,智能体的得分最终超过了demo游戏的71500分。此外,智能体还学会了利用模拟器中的一个缺陷,使钥匙在视频的4分25秒处再次出现,而这在demo中是不存在的。

探索与学习

为了在强化学习问题上取得成功,AI需要解决两个问题:

找到一系列能够带来积极奖励的行动。这是探索问题(exploration problem)。

记住要采取的行动的顺序,并推广到相关但略有不同的情况。这是学习问题(learning problem)。

在蒙特祖玛的复仇游戏中,探索问题大部分可以通过重置demo里的状态来绕过。通过从demo里的状态开始,与从每章游戏的开头开始相比,智能体需要执行的探索更少。这样做可以让我们分开探索过程和学习过程。我们的研究结果表明,探索是蒙特祖玛的复仇以及类似的雅达利游戏(例如PrivateEye)中最难解决的问题。

为什么探索很困难?

Model-free的RL方法,例如策略梯度和 Q-learning,通过随机采取行动进行探索。如果随机行为偶然导致奖励,它们就会被强化,并且智能体未来会更倾向于采取这些有利的行为。如果奖励足够密集,随机行动能够导致合理概率的奖励,那么这种方法会很有效。但是,很多更复杂的游戏需要很长的特定动作的序列才能获取奖励,这样的序列随机发生的可能性非常低。

一个智能体采用随机行动来玩蒙特祖玛的复仇游戏。如上面的视频所示,随机的探索不太可能导致智能体在蒙特祖玛的复仇游戏中得到积极奖励。

考虑这样一个游戏,它需要N个特定动作的精确序列才能体验到第一个奖励。如果其中每个动作被采取的概率都是固定的,那么一个随机智能体要想获得第一个奖励,游戏时间需要扩展到exp(N)。

在蒙特祖玛的复仇游戏中,得到第一个钥匙的概率可以分解为:

p(get key) = p(get down ladder 1) * p(get down rope) * p(get down ladder 2) * p(jump over skull) * p(get up ladder 3).

通过将N个概率相乘,我们得到的结果概率p(get key)比任何单个输入的概率都要小。随着问题变得更具挑战性,以指数级缩小的算法很快就会崩溃,这限制了当前强化学习技术所能解决的任务。

通过demo简化探索问题

尽管 model-free 的RL方法很难找到长序列的动作,但对于较短的动作序列,它们可以表现很好。我们的主要观点是,可以通过将任务分解为需要短动作序列的子任务的curriculum来简化探索任务;我们通过从demo状态开始每个RL episode来构建这个curriculum。

我们的方法通过让每个RL episode从先前录制的demo中的一个状态开始。在训练初期,智能体在demo结束时开始一个episode。一旦智能体能够击败demo或至少与demo的分数持平,我们就慢慢地将起点往回移动。这个过程一直持续,直到智能体的起点回到游戏开始时,完全不使用demo程序,这时我们得到一个RL训练的智能体在整个游戏中击败人类专家或与人类专家的表现持平。

通过将起始状态从demo的结尾慢慢移动到起点,我们确保智能体在每个点上面临的探索问题都很容易解决,因为它已经学会解决大部分剩余的游戏。我们可以将这种解决RL问题的方法解释为一种动态规划( dynamic programming)的形式。如果需要一个特定的N个动作的序列达到一个奖励,现在这个序列可以在一个线性的时间里学习,而非指数的时间。

从demo状态的重置(resetting)开始episodes的想法以前也有提出过,但是没有提出构建一个将起始状态逐步从demo的结尾回到开头的curriculum。当与模仿学习(imitation learning)相结合时,一些研究人员报告说这种方法是有益的。对于我们的用例,我们发现这样的curriculum对于从demo中获得益处是至关重要的。

在蒙特祖玛的复仇游戏中,利用强化学习和从demo的状态开始每一个episode,我们的智能体学习到达了第一把钥匙的位置。当智能体开始玩游戏时,我们将它放在钥匙的正前方,要求它纸条一次就能成功找到钥匙。在它学会这样做之后,我们慢慢地将起点往回移动。然后,智能体发现自己处于通往钥匙的梯子的中间。一旦它学会了在哪个地方爬上梯子,我们就再退回一步,让它从需要调过头骨的地方开始。当它学会后,我们再让它从绳子的位置开始,一直退回到从房间的地板开始,等等。最终,智能体回到了游戏的初始状态,并且学会了自己到达钥匙的位置。

与基于模拟的方法(imitation-based)的比较

近期,DeepMind通过模拟学习(imitation learning)的方法展示了学习《蒙特祖玛的复仇》的智能体。利用通过观看YouTube视频的方法[1]训练一个智能体,让它能够达到YouTube视频中《蒙特祖玛的复仇》里的状态;DeepMind最新的成果[2]则采用在与demo高度相似的操作中结合较复杂的Q-learning。这些方法的优点是,它们不像我们的方法一样需要控制很多的环境因素:除了游戏的起始状态,它们不需要重置环境的状态,他们不认为可以获得在demo中遇到的所有游戏状态。我们的方法所优化的并不是我们最关心的分数,而是让智能体模拟demo;因此,我们的方法将不会跟可能存在的次优demo过拟合,并且可以在多人游戏中提供便利:在这样的场景中,我们希望可以优化性能来对抗其它对手,而不仅仅是demo中的对手。

接下来的挑战

虽然我们的智能体一步一步的学习要比从头学起要简单得多,但这并非是没有价值的。我们RL智能体所面临的一个挑战是当它从demo一个较早的状态开始时通常无法达到确切的状态。这是因为智能体玩游戏的框架与我们用于记录demo的框架是不同的,但这也是由于操作的随机性,使得它不可能精确地再现任何操作的特定序列。因此,智能体将需要在非常相似但不相同的状态之间进行归纳。我们发现这对《蒙特祖玛的复仇》非常有效,但对于我们尝试过的其它Atari游戏就没有那么的有效(例如《地心引力》(Gravitar)和《陷阱》(Pitfall))。其中一个可能的原因是,后者这些游戏需要解决更为困难的视觉问题:我们发现这些游戏在下采样(down-sampled)的屏幕上很难操作,而当我们使用更大、更深入的神经网络时,会出现一些改进。

我们遇到的另外一个挑战是像策略梯度(policy gradients)这样的标准RL算法需要再探索和利用之间进行仔细的衡量:如果智能体的操作过于随机,当游戏从头开始时,它会犯过多的错误以至于无法达到最终所要求的分数;如果智能体的操作太具有确定性,那么智能体由于不再探索其它的行为而停止学习。因此,要实现《蒙特祖玛复仇》报告中的结果,需要仔细调整PPO中使用的熵值系数,并结合其它超参数(如学习率和scaling of rewards)。对于像《地心引力》和《陷阱》我们无法找到能够完整训练的超参数。算法还展示了随着运行过程中产生的大量变化,有些过程并没有达到《蒙特祖玛的复仇》的要求。我们希望未来RL的进展将产生对随机噪声和超参数选择更健壮的算法。

最后,就像强化学习中经常出现的情况一样,我们发现我们训练过的神经网络策略还没有在人类玩家的层面推广。测试泛化能力的一种方法是通过使动作具有粘性并在每一帧中以0.25的概率重复最后一个动作来扰乱策略。使用这种评估方法,我们的训练策略在《蒙特祖玛的复仇》中平均得分达到了10000分。或者,我们可以采用概率为0.01的随机操作(重复4帧分割步骤),这将导致我们的策略平均得分为8400。有趣的是,我们发现这样的干扰也显著地降低了人类玩家在《蒙特祖玛的复仇》中的得分。就我们所知,我们才用干扰策略所产生的结果比所有已有的结果都要好。用0到30个随机停止操作指令(no-op)来干扰学习策略不会让结果产生明显的变化,而且大多数的结果都达到了demo中获得的最终分数。

在过去的研究中,大多数的关注点都集中在了模仿上,这就造成了与demo中完全相同的行为,我们已经证明了通过直接优化返回值(returns)可以达到较好的结果。这就允许智能体与demo中的行为有一定的偏差,使智能体能够找到人类演示者没有考虑的,且更好的解决方案。通过在子任务上进行训练(通过重新设定demo状态获得),我们使用这种技术解决了一个需要长序列操作的困难的强化学习问题。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分