雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!


_本文原题:你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!
《超级马里奥兄弟》你能玩到第几关?
说起这款FC时代的经典游戏 , 大家可能再熟悉不过了 , 大鼻子、留胡子 , 永远穿着背带工装服的马里奥大叔 , 成为了很多80/90后的童年回忆 。
看着画面中熟悉的马里奥大叔一路跌跌撞撞 , 躲避半路杀出来的毒蘑菇 , 锤子乌龟 , 头盔兔子、食人花 , 感觉又回到了小时候 。
雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!
本文插图
最早发行的这版《超级马里奥兄弟》设置8个场景 , 每个场景分为4关 , 共32个关卡 , 相信很多朋友至今还没有完全通关 。
Viet Nguyen就是其中一个 。 这位来自德国的程序员表示自己只玩到了第9个关卡 。 因此 , 他决定利用强化学习AI算法来帮他完成未通关的遗憾 。
现在他训练出的AI马里奥大叔已经成功拿下了29个关卡 。
雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!
本文插图
【雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!】
不过 , 遗憾的是第4、7、8场景中的第4关卡未通过 。 Viet Nguyen解释说 , 这与游戏规则的设置有关 。 在一场游戏结束后 , 玩家可以自行选择通关路径 , 但这可能出现重复访问同一关卡的情况 , 所以AI未成功进入到这三关游戏之中 。
Viet Nguyen使用的强化学习算法正是OpenAI研发的近端策略优化算法(Proximal Policy Optimization , 简称PPO) , 他介绍 , 此前使用A3C代码训练马里奥闯关 , 效果远不及此 , 这次能够达到29关也是超出了原本的预期 。
现在Viet Nguyen已经将基于PPO编写的完整Python代码发布到了Github上 , 并给出了详细的使用说明 , 感兴趣的朋友可以体验一下:
雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的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预印论文库中 。
雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!
本文插图
论文中指出 , PPO是一种新型的策略梯度(Policy Gradient)算法 , 它提出新的“目标函数”可以进行多个训练步骤 , 实现小批量的更新 , 解决PG算法中步长难以确定的问题 。 固定步长的近端策略优化算法如下:
雷锋网|你的《超级马里奥兄弟》通关了没?基于PPO强化学习算法的AI成功拿下29个关卡!
本文插图
(每次迭代时 , N个actor中的每个都收集T个时间步长的数据 。然后在这些NT时间步长的数据上构建替代损失 , 并使用 minibatch SGD 进行K个epochs的优化 。 )
研究人员表明 , 该算法具有信任区域策略优化(TRPO)的一些优点 , 但同时比它实施起来更简单 , 更通用 , 具有更好的样本复杂性(凭经验) 。 为了证实PPO的性能 , 研究人员在一些基准任务上进行了模拟测试 , 包括人形机器人运动策略和Atari游戏的玩法 。