不吃蘑菇,不捡金币,我用强化学习跑通29关马里奥,刷新最佳战绩

2020 年 8 月 1 日 机器之心
机器之心报道

编辑:张倩、蛋酱

看了用强化学习训练的马里奥,我才知道原来这个游戏的后几关长这样。



《超级马里奥兄弟》是任天堂公司开发并于 1985 年出品的著名横版过关游戏,最早在红白机上推出,有多款后续作品,迄今多个版本总销量已突破 5 亿套。

这款游戏承载了一代人的回忆,你还记不记得你玩到过第几关?

其实,除了我们这些玩家之外,强化学习研究者也对这款游戏情有独钟。

最近,有人用 PPO 强化学习算法训练了一个超级马里奥智能体,已经打通了 29 关(总共 32 关),相关代码也已开源。



PPO 算法的全称是 Proximal Policy Optimization(近端策略优化),是 OpenAI 在 2017 年发布的一种强化学习算法。该算法的实现和调参十分简单,在强化学习中的表现优于当时所有顶尖算法的水平,因此被 OpenAI 作为强化学习研究中的首选算法。

使用 PPO 训练的 OpenAI Five 是第一款在电竞游戏中击败人类世界冠军的 AI。2018 年 8 月,OpenAI Five 与 Ti8Dota2 世界冠军 OG 战队展开了一场巅峰对决,最终 OpenAI Five 以 2:0 的比分轻松战胜世界冠军 OG。

此前,作者曾经使用 A3C 算法训练过用于通关超级马里奥兄弟的智能体。尽管智能体可以又快又好地完成游戏,但整体水平是有限的。无论经过多少次微调和测试,使用 A3C 训练的智能体只能完成到第 9 关。同时作者也使用过 A2C 和 Rainbow 等算法进行训练,前者并未实现性能的明显提升,后者更适用于随机环境、游戏,比如乒乓球或太空侵略者。

还有三关没有过是怎么回事?作者解释说,4-4、7-4 和 8-4 关的地图都包含了一些谜题,智能体需要选择正确的路径才能继续前进。如果选错了路径,就得重新把走过的路再走一遍,陷入死循环。所以智能体没能通过这三关。


开源项目地址:https://github.com/uvipen/Super-mario-bros-PPO-pytorch


近端策略优化算法

策略梯度法(Policy gradient methods)是近年来使用深度神经网络进行控制的突破基础,不管是视频游戏、3D 移动还是围棋控制,都是基于策略梯度法。但是通过策略梯度法获得优秀的结果是十分困难的,因为它对步长大小的选择非常敏感。如果迭代步长太小,那么训练进展会非常慢,但如果迭代步长太大,那么信号将受到噪声的强烈干扰,因此我们会看到性能的急剧降低。同时这种策略梯度法有非常低的样本效率,它需要数百万(或数十亿)的时间步骤来学习一个简单的任务。

2017 年,Open AI 的研究者为强化学习提出了一种新型策略梯度法,它可以通过与环境的交互而在抽样数据中转换,还能使用随机梯度下降优化一个「surrogate」目标函数。标准策略梯度法为每一个数据样本执行一个梯度更新,因此研究者提出了一种新的目标函数,它可以在多个 epoch 中实现小批量(minibatch)更新。这种方法就是近端策略优化(PPO)算法。

该算法从置信域策略优化(TRPO)算法获得了许多启发,但它更加地易于实现、广泛和有更好的样本复杂度(经验性)。经过在一组基准任务上的测试,包括模拟机器人移动和 Atari 游戏,PPO 算法展示出了比其他在线策略梯度法更优秀的性能,该算法总体上在样本复杂度、简单性和实际时间(wall-time.)中有非常好的均衡。

近端策略优化可以让我们在复杂和具有挑战性的环境中训练 AI 策略,先看这个 demo 视频:


如上所示,其中智能体尝试抵达粉红色的目标点,因此它需要学习怎样走路、跑动和转向等。同时该智能体不仅需要学会怎样从小球的打击中保持平衡(利用自身的动量),在被撞倒后还需要学会如何从草地上站起来。
 
PPO 方法有两种主要的变体: PPO-Penalty 和 PPO-Clip。

PPO-Penalty 近似求解一个类似 TRPO 的被 KL - 散度约束的更新,但惩罚目标函数中的 KL - 散度,而不是使其成为优化问题的硬约束, 并在训练过程中自动调整惩罚系数,从而适当地调整其大小。

PPO-Clip 在目标中没有 KL 散度项,也没有约束。取而代之的是在目标函数上进行专门裁剪 (clip), 以消除新策略远离旧策略的激励 (incentives)。

关于该算法的更多信息可以参考原论文。


论文地址:https://arxiv.org/abs/1707.06347

网友:马里奥的奔跑,是我放荡不羁的青春

项目作者用 Pytorch 实现的《超级马里奥》demo 在 reddit 上引起了上千人围观,作者也现身评论区答疑解惑。

有人说,「他跑得那么快、那么不管不顾,看得我捏了一把汗。」


这种六亲不认的步伐甚至让某些人想起了自己放荡不羁的青春。


「跑这么快,你捡钱和蘑菇了吗?」这个马里奥的迷之操作让人觉得有点困惑。甚至有人调侃说,「这应该是史上最『节俭』的马里奥了。」


当然,也有人问技术方面的问题,比如说:「是不是为每一关都训练了一个单独的智能体?有没有尝试过训练一个智能体打通所有关?」


作者表示,确实每关都是单独训练的,中间也尝试过训练一个智能体智能体跑所有关,但没成功。


评论区还存在其他的质疑,比如过拟合问题。


但无论如何,有一点是值得欣慰的:这个实现借助强化学习之手,让我们看到了二十关以后的样子。


参考链接:https://www.reddit.com/r/MachineLearning/comments/hy3hry/p_python_implementation_of_proximal_policy/



机器之心联合旷视科技开设线上公开课:零基础入门旷视天元MegEngine,通过6次课程帮助开发者入门深度学习开发。


8月4日,旷视研究院深度学习框架研究员刘清一将带来等二课,主要介绍数据预处理、模型搭建与调参等相关概念。欢迎大家入群学习。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

登录查看更多
0

相关内容

强化学习(RL)是机器学习的一个领域,与软件代理应如何在环境中采取行动以最大化累积奖励的概念有关。除了监督学习和非监督学习外,强化学习是三种基本的机器学习范式之一。 强化学习与监督学习的不同之处在于,不需要呈现带标签的输入/输出对,也不需要显式纠正次优动作。相反,重点是在探索(未知领域)和利用(当前知识)之间找到平衡。 该环境通常以马尔可夫决策过程(MDP)的形式陈述,因为针对这种情况的许多强化学习算法都使用动态编程技术。经典动态规划方法和强化学习算法之间的主要区别在于,后者不假设MDP的确切数学模型,并且针对无法采用精确方法的大型MDP。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【CMU博士论文Wen Sun】强化学习的泛化性与效率,206页pdf
专知会员服务
91+阅读 · 2020年9月28日
【康奈尔】最新《强化学习基础》CS 6789课程
专知会员服务
67+阅读 · 2020年9月27日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
201+阅读 · 2020年5月22日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
专知会员服务
206+阅读 · 2019年8月30日
快速上手深度强化学习?学会TensorForce就够了
DeepMind:用PopArt进行多任务深度强化学习
论智
29+阅读 · 2018年9月14日
论强化学习的根本缺陷
AI科技评论
11+阅读 · 2018年7月24日
强化学习——蒙特卡洛方法介绍
论智
12+阅读 · 2018年6月3日
零基础搞懂强化学习?这份视频攻略不算迟
AI研习社
6+阅读 · 2018年4月25日
一张图看懂AlphaGo Zero
AI前线
6+阅读 · 2017年11月17日
Arxiv
3+阅读 · 2018年10月5日
Relational Deep Reinforcement Learning
Arxiv
10+阅读 · 2018年6月28日
Arxiv
11+阅读 · 2018年4月25日
Arxiv
5+阅读 · 2018年3月28日
VIP会员
相关VIP内容
【CMU博士论文Wen Sun】强化学习的泛化性与效率,206页pdf
专知会员服务
91+阅读 · 2020年9月28日
【康奈尔】最新《强化学习基础》CS 6789课程
专知会员服务
67+阅读 · 2020年9月27日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
201+阅读 · 2020年5月22日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
专知会员服务
206+阅读 · 2019年8月30日
相关资讯
快速上手深度强化学习?学会TensorForce就够了
DeepMind:用PopArt进行多任务深度强化学习
论智
29+阅读 · 2018年9月14日
论强化学习的根本缺陷
AI科技评论
11+阅读 · 2018年7月24日
强化学习——蒙特卡洛方法介绍
论智
12+阅读 · 2018年6月3日
零基础搞懂强化学习?这份视频攻略不算迟
AI研习社
6+阅读 · 2018年4月25日
一张图看懂AlphaGo Zero
AI前线
6+阅读 · 2017年11月17日
相关论文
Arxiv
3+阅读 · 2018年10月5日
Relational Deep Reinforcement Learning
Arxiv
10+阅读 · 2018年6月28日
Arxiv
11+阅读 · 2018年4月25日
Arxiv
5+阅读 · 2018年3月28日
Top
微信扫码咨询专知VIP会员