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

640?wx_fmt=png


640?wx_fmt=jpeg


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

作者 | 美图君


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


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



先来看 AI 玩 Flappy bird 会怎样。


640?wx_fmt=gif


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


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


遗传算法是什么?


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


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


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


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




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


640?wx_fmt=gif


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


640?wx_fmt=gif


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


640?wx_fmt=gif




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


640?wx_fmt=gif


你还不知道有这个游戏?


你能玩到第几关呢?


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


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


640?wx_fmt=gif


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


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


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

_(:з」∠)_


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


640?wx_fmt=gif


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


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


640?wx_fmt=gif


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


640?wx_fmt=gif


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


640?wx_fmt=gif


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


640?wx_fmt=gif


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



还有这个世界最难游戏。


640?wx_fmt=gif


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


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


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


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


640?wx_fmt=gif


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


640?wx_fmt=gif


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


640?wx_fmt=gif


老母亲的泪目。




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


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


640?wx_fmt=gif


640?wx_fmt=gif


640?wx_fmt=gif


再到彪悍的十七代目——


640?wx_fmt=gif



再来看看 AI 玩贪吃蛇。


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


640?wx_fmt=gif


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


640?wx_fmt=gif


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


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


640?wx_fmt=gif


640?wx_fmt=gif


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



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



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


640?wx_fmt=gif


640?wx_fmt=gif


640?wx_fmt=gif


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



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


640?wx_fmt=gif


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


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


640?wx_fmt=gif



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


640?wx_fmt=gif


640?wx_fmt=gif


640?wx_fmt=gif


640?wx_fmt=gif


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



640?wx_fmt=png

往期推荐

640?wx_fmt=png


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

640?wx_fmt=jpeg ▲点击图片观看

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

640?wx_fmt=jpeg
▲点击图片观看

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

640?wx_fmt=jpeg

▲点击图片观看


- 加入社群吧 -

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

640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值