|乘风破浪的马里奥!这个AI带你一口气通29关( 二 )


比如7-4这一关就要先从下面走一次再从上面走才能过 , 否则就会一直重复 , 因此在行进过程中一旦发现重复就一定是错了 , 需要赶紧换路线 。

|乘风破浪的马里奥!这个AI带你一口气通29关
本文插图

这一关也被不少玩家称为 , 马里奥世界中最难迷宫 。

|乘风破浪的马里奥!这个AI带你一口气通29关
本文插图

不得不说 , 这对于AI确实十分有挑战性 , 只通过PPO算法是无法完成的 , 还需要进一步研究 。 在这里文摘菌就坐等uvipen更新啦 , 相信未来他一定能够利用AI完美通关马里奥~
Github指路:
https://github.com/uvipen/Super-mario-bros-PPO-pytorch
去年尝试用A3C通关失败 , 但是科普很成功
其实uvipen想要用人工智能通关马里奥也没有那么容易 。 在去年他就开始了尝试 , 当时 , uvipen使用的是异步优势Actor-Critic算法(A3C) , 虽然只过了9关 , 但还是在当时引起了一番讨论 。
uvipen自称是受到2016年这篇论文《Asynchronous Methods for Deep Reinforcement Learning》的启发 , 于是就想用其中提到的异步优势Actor-Critic算法(A3C)来尝试一番 。

|乘风破浪的马里奥!这个AI带你一口气通29关
本文插图

论文链接:
https://arxiv.org/pdf/1602.01783.pdf
uvipen发现 , 在他去年实现这个项目之前 , 已经有几个存储库在不同的常见深度学习框架(如Tensorflow、Keras和Pytorch)中可以很好地重现论文的结果 。 他认为这些框架都很好 , 只不过在图像预处理、环境设置和权重初始化等很多方面都过于复杂 , 会分散用户的注意力 。
因此 , 他决定写一个更干净的代码 , 简化那些不重要的部分 , 同时仍然严格遵循论文中的方法 。
来看看在A3C的加持下马里奥是怎么过关的:

|乘风破浪的马里奥!这个AI带你一口气通29关
本文插图

这简直就是“乘风破浪的马里奥”啊~ 不过也有网友打趣道 , 马里奥里的各种隐藏彩蛋这下就都不能被发现啦 , “不吃掉所有蘑菇的马里奥没的灵魂”~“应该研究一下如何顺利通关的同时拿到所有分”~
虽然通关没成功 , 但是uvipen还是特意为了照顾那些不熟悉强化学习的朋友 , 在他的Github上将A3C分解为更小的部分 , 并用通俗的语言解释了什么是A3C算法 , 以及是如何通过这一算法实现的 。
文摘菌也借此机会帮大家复习下什么是Actor-Critic算法 。
我们不如这样想 , 你的agent有两个部分 , Actor(演员)和Critic(评论家) , Actor就好比一个淘气的小男孩正在大胆探索着他周围奇妙的世界 , 而Critic就像是他的爸爸一样需要监督着他 , 只要孩子做了好事 , 爸爸就会表扬和鼓励他以后再做同样的事 。 当然 , 当孩子做错事时 , 爸爸也会警告他 。 孩子与世界的互动越多 , 采取的行动也越多 , 他从父亲那里得到的正面和负面的反馈也越多 。
孩子的目标是 , 从父亲那里收集尽可能多的积极反馈 , 而父亲的目标是更好地评价儿子的行为 。 换句话说 , 在Actor和Critic之间 , 有一种双赢的关系 。

|乘风破浪的马里奥!这个AI带你一口气通29关
本文插图

那么优势Actor-Critic算法就相当于为了让孩子学得更快、更稳定 , 父亲不会告诉儿子他的行为有多好 , 而是会举例告诉他 , 与其他行为相比 , 他这样做好在哪里 。 有时候一个例子往往胜过千言万语 。
接下来要说的就是让马里奥通关的关键所在了!对于异步Actor-Critic优势算法而言 , 就像是为孩子提供了一所“学校” , 有了“老师”和“同学”孩子可以学的更快、更全面 。 而且 , 在学校里孩子们还可以合作完成一个项目 , 他们每个人都可以做着不同的任务 , 目标却是相同的 , 这样岂不是效率更高 。


推荐阅读