《超级马里奥兄弟》你能玩到第几关?说起这款 FC 时代的经典游戏,大家可能再熟悉不过了,大鼻子、留胡子,永远穿着背带工装服的马里奥大叔,成为了很多 80/90 后的童年回忆。看着画面中熟悉的马里奥大叔一路跌跌撞撞,躲避半路杀出来的毒蘑菇,锤子乌龟,头盔兔子、食人花,感觉又回到了小时候。

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  最早发行的这版《超级马里奥兄弟》设置 8 个场景,每个场景分为 4 关,共 32 个关卡,相信很多朋友至今还没有完全通关。

  Viet Nguyen 就是其中一个。这位来自德国的程序员表示自己只玩到了第 9 个关卡。因此,他决定利用强化学习 AI 算法来帮他完成未通关的遗憾。

  现在他训练出的 AI 马里奥大叔已经成功拿下了 29 个关卡。

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  不过,遗憾的是第4、7、8 场景中的第 4 关卡未通过。Viet Nguyen 解释说,这与游戏规则的设置有关。在一场游戏结束后,玩家可以自行选择通关路径,但这可能出现重复访问同一关卡的情况,所以 AI 未成功进入到这三关游戏之中。

  Viet Nguyen 使用的强化学习算法正是 OpenAI 研发的近端策略优化算法(Proximal Policy Optimization,简称 PPO),他介绍,此前使用 A3C 代码训练马里奥闯关,效果远不及此,这次能够达到 29 关也是超出了原本的预期。

  现在 Viet Nguyen 已经将基于 PPO 编写的完整 Python 代码发布到了 Github 上,并给出了详细的使用说明,感兴趣的朋友可以体验一下:

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  Github 地址:https://github.com/uvipen/Super-mario-bros-PPO-pytorch

  还会玩 Dota 的 AI 算法:PPO

  据了解,PPO 是 OpenAI 在 2017 年开发的算法模型,主要用来训练虚拟游戏玩家 OpenAI Five,这位虚拟玩家在 2018 年的 Dota2 人机对抗赛中,战胜过世界顶级职业选手,同时能够打败 99.95% 的普通玩家。

  复杂的游戏环境一直被研究人员视为 AI 训练的最佳场景。为了让 AI 掌握游戏规则,学会运用策略,强化学习是研究人员常用的机器学习方法之一,它能够描述和解决 AI 智能体(Agent)在与环境交互过程中通过学习策略实现特定目标的问题。

  近端策略优化算法(PPO)已成为深度强化学习基于策略中效果最优的算法之一。有关该算法的论文已经发布在 arXiv 预印论文库中。

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  论文中指出,PPO 是一种新型的策略梯度(Policy Gradient)算法,它提出新的“目标函数”可以进行多个训练步骤,实现小批量的更新,解决 PG 算法中步长难以确定的问题。固定步长的近端策略优化算法如下:

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  (每次迭代时,N个 actor 中的每个都收集T个时间步长的数据。 然后在这些 NT 时间步长的数据上构建替代损失,并使用 minibatch SGD 进行K个 epochs 的优化。)

  研究人员表明,该算法具有信任区域策略优化(TRPO)的一些优点,但同时比它实施起来更简单,更通用,具有更好的样本复杂性(凭经验)。为了证实 PPO 的性能,研究人员在一些基准任务上进行了模拟测试,包括人形机器人运动策略和 Atari 游戏的玩法。

  PPO 算法的基准任务测试

  在游戏角色的 AI 训练中,一种基本的功能是具备连续性的运行和转向,如在马里奥在遇到诸如地面或者空中障碍时,能够以此为目标进行跳转和躲避。论文中,研究人员为了展示 PPO 的高维连续控制性能,采用 3D 人形机器人进行了测试,测试任务分别为:

  (1)仅向前运动;(2)每 200 个时间步长或达到目标时,目标位置就会随机变化;(3)被目标击倒后,需要从地面站起来。以下从左至右依次为这三个任务的学习曲线。

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  研究人员从以上学习曲线中,随机抽取了任务二在某一时刻的性能表现。如下图,

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  可以看出,在第六帧的放大图中,人形机器人朝目标移动,然后随机改变位置,机器人能够跟随转向并朝新目标运行。说明 PPO 算法在连续转控方面具备出色的性能表现。

  那么它在具体游戏中“获胜率”如何呢?研究人员运用 Atari 游戏合集(含 49 个)对其进行验证,同时与 A2C 和 ACER 两种算法进行了对比。为排除干扰因素,三种算法全部使用了相同的策略网络体系,同时,对其他两种算法进行超参数优化,确保其在基准任务上的性能最大化。

《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!-冯金伟博客园

  如上图,研究人员采用了两个评估指标:(1)在整个训练期间每集的平均获胜数;(2)在持续 100 集训练中的每集的平均获胜数。 前者更适合快速学习,后者有助于最终的比赛表现。可以看出 PPO 在指标一种的获胜次数达到了 30,在小样本下有更高的胜率。

  最后研究人员还强调,PPO 近端策略优化的优势还在于简洁好用,仅需要几行代码就可以更改为原始策略梯度实现,适用于更常规的设置,同时也具有更好的整体效果。

  更多论文详细内容,请参见地址:https://arxiv.org/abs/1707.06347