AI 学会你最拿手的小游戏之后…

2019 年 4 月 24 日 网易智能菌



来源 | 把科学带回家(公众号:steamforkids

作者 | 美图君


一个懂写代码的程序员平常是怎么玩游戏的?想知道吗,一个网名叫做 Code Bullet 的澳大利亚程序员就经常自己在家制造和训练 AI 帮他打游戏。


看过他训练出的 AI 玩的游戏,感觉…再也不想玩游戏了呢。



先来看 AI 玩 Flappy bird 会怎样。



小哥使用的是NEAT(neuro evolution of augmenting topologies)算法,也就是增强拓扑的神经演化算法。


NEAT 是一种结合神经网络和遗传算法(genetic algorithm)的好算法。


遗传算法是什么?


遗传算法类似于一个代码进化系统,它是一种优胜劣汰 AI 的算法。


你要做的,就是告诉计算机,什么是“成功”的标准,还要告诉AI,它可以看到什么,可以做什么。成功的AI可以进行一次繁殖,留下后代,不成功的 AI 就当场去世了。


为了模拟演化,子代 AI 还会和爸爸/妈妈有一点点的不同,类似于遗传突变。


神经网络则是一种具有学习能力的算法,它模拟的是生物神经网络的结构,可以根据经验不断调整。




在 Flappy bird 里,小哥设定 AI 可以看到鸟鸟和柱子的距离、鸟鸟相对于柱子的速度等信息。剩下的该怎么玩 AI 自便。



在每一代的 AI 里,玩得最好的可以进行繁殖,并把自己的优秀基因遗传给下一代。当然了,下一代也不会照单全收,还是会有小小的突变。



第六代目就可以妥妥地拿下2000分了...





好的,小哥用 NEAT 玩坏的第二个游戏,就是 Chrome 浏览器连不上网时候出现的彩蛋小游戏——跳跳恐龙。



你还不知道有这个游戏?


你能玩到第几关呢?


好的,发现自己技术太差以后,小哥就自行复制出了游戏,并开始无情的 AI 模式了。


第一代AI有500只,每一只控制着一只恐龙。发挥最好的 AI 可以进入繁殖阶段,不行的AI就莫得繁殖。而且下一代的策略会和上一代有一点点不同,类似于遗传突变。



上面的那些网络就是控制这些 AI 的神经网络,它会一代代地发生变化。


这个神经网络的输入信号就是每个 AI 看到的东西,输出就是每个AI的动作。新的神经网络连接的出现代表着 AI 学会了某种特定的策略。


第一代的基本设定很简单,就是不停地随便乱跳。就和你一开始玩的时候一样。如果你仔细看上面的图,会发现有只AI是一直趴着前进的。

_(:з」∠)_


就这样,傻 fufu 的 AI 被一代代刷掉之后,终于有只 AI 搞明白要看清楚距离再跳了。



好的,玩过这个游戏的人知道,到了一定时间,速度会变得飞快,而且一些鸟鸟飞得太高踩不到,所以在大鸟鸟面前要主动弯腰。


利用遗传算法训练到第八代 AI 的时候,它们看起来就已经很聪明了。



但是第八代还是没学会在踩不扁的大鸟鸟面前低头。



到了25代,AI 终于学会了,如果你不能碾压别人,那就要立刻向大佬低头,晚0.1秒都不行。



到了第40代AI,见识一下什么叫做恐怖。



第25代 AI 妥妥地拿下了2万分。后来因为小哥的电脑实在吃不消了才没有继续刷出高分。



还有这个世界最难游戏。



小哥也是因为自己玩得太烂,于是决定用遗传算法算法来海选 AI 帮自己刷分。


每个 AI 依照一套指令(术语叫做 vector)。


和自然选择理论一致,适合度最高的 AI 可以繁殖,做不到的 AI 就只能去死了。小哥规定,AI 要在有限的步数之内完成特定的指令。完成的指令越多,就可以获得更多的步数。


一伙 AI 冲上场的画面。有不怕死的已经当场去世了。



注意到头是绿的 AI 吗?它们是上一代 AI 里最优秀的后代。



终于到了第50代,第50代啊同志们,有一个AI来到了终点。



老母亲的泪目。




也是用 NEAT 算法训练的 AI 玩越野赛车。


从没眼看的个位数代目——





再到彪悍的十七代目——




再来看看 AI 玩贪吃蛇。


小哥先利用遗传算法深度学习(deep learning)训练出了几条优秀的 AI 贪吃蛇,然后利用融合(fusion)的方法把它们的“大脑”合体。相当于一个贪吃蛇的身体里藏着好几条蛇。人类是不是管这个叫做精分?



小哥另外让高级版的贪吃蛇 AI 在不同贪吃蛇 AI 附体时对外展现出不同的颜色。



比如,在发现食物,并且确定能够吃到的时候变成绿色,蓝色表示它确定能离食物越来越近,白色表示它看不到食物在哪里,只能尽量不让自己死掉。


这个精分版的贪吃蛇 AI 是这样玩的。




总之,小哥用 NEAT 算法的套路玩转了各种你耳熟能详的小游戏。效果都是杠杠的。



除了 NEAT 算法,他还用其他算法破解了另一些游戏。



比如,小哥还教 AI 玩55 x 55 x 55的魔方。





小哥说不能做更大的魔方了,它电脑要中风了。



小哥用Q学习(Q-Learning)练的玩钢琴块游戏的 AI。



Q学习属于增强学习算法,增强学习算法就是要记录学习过的策略,并且根据奖励(目标)来调整策略的算法。


AI 的目标是找到屏幕上的黑框,然后使劲地摁就好了。一键玩到电脑中风的样子——




你玩过扫雷吧。小哥也造了一个扫雷 AI。看 AI 玩 64 x 36 的扫雷觉得莫名舒爽有木有?






好的,看完了上面这些 AI 打游戏的精彩片段我们知道,永远也不要嘲笑一个会繁殖的 AI 和一个玩不好游戏的程序员。



往期推荐



社交网站上的照片,也许已经被用来训练人工智能

▲点击图片观看

剖析20世纪未来出行 这些畅想21世纪能成吗?


▲点击图片观看

是“洗稿”还是“创作”?AI画作所有权该归谁?

▲点击图片观看


- 加入社群吧 -

网易智能AI社群(AI芯片、医疗AI、金融AI、电商AI、自动驾驶、教育AI、AIoT、机器人等12个社群)火热招募中,对AI感兴趣的小伙伴,添加智能菌微信 kaiwu_club,说明身份即可加入。

登录查看更多
0

相关内容

Yoshua Bengio最新《深度学习》MLSS2020教程,附104页PPT及视频
专知会员服务
129+阅读 · 2020年7月10日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】机器学习中的常识性问题
专知会员服务
73+阅读 · 2019年12月2日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
如何用人工智能秒杀超级马里奥游戏
CSDN
4+阅读 · 2018年1月7日
如何从Python起步学习AI
七月在线实验室
5+阅读 · 2017年11月28日
一张图看懂AlphaGo Zero
AI前线
6+阅读 · 2017年11月17日
AI都干过什么让人细思极恐的事?
全球创新论坛
4+阅读 · 2017年9月15日
人工神经网络是否模拟了人类大脑?
数说工作室
9+阅读 · 2017年7月19日
VrR-VG: Refocusing Visually-Relevant Relationships
Arxiv
6+阅读 · 2019年8月26日
Arxiv
3+阅读 · 2018年10月8日
Relational Deep Reinforcement Learning
Arxiv
10+阅读 · 2018年6月28日
Arxiv
3+阅读 · 2017年11月21日
VIP会员
相关VIP内容
Yoshua Bengio最新《深度学习》MLSS2020教程,附104页PPT及视频
专知会员服务
129+阅读 · 2020年7月10日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】机器学习中的常识性问题
专知会员服务
73+阅读 · 2019年12月2日
相关资讯
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
如何用人工智能秒杀超级马里奥游戏
CSDN
4+阅读 · 2018年1月7日
如何从Python起步学习AI
七月在线实验室
5+阅读 · 2017年11月28日
一张图看懂AlphaGo Zero
AI前线
6+阅读 · 2017年11月17日
AI都干过什么让人细思极恐的事?
全球创新论坛
4+阅读 · 2017年9月15日
人工神经网络是否模拟了人类大脑?
数说工作室
9+阅读 · 2017年7月19日
Top
微信扫码咨询专知VIP会员