台式电脑

电脑上怎么样玩小恐龙(AI学会你最拿手的小游戏之后)

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

本文经授权转载自|把科学带回家

ID|steamforkids

作者|美图君

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

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

先来看AI玩Flappybird会怎样。

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

小哥使用的是NEAT(neuroevolutionofaugmentingtopologies)算法,也就是增强拓扑的神经演化算法。

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

遗传算法是什么?

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

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

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

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

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

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

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

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

电脑上怎么样玩小恐龙(AI学会你最拿手的小游戏之后)

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

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

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

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

你还不知道有这个游戏?

你能玩到第几关呢?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

还有这个世界最难游戏。

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

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

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

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

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

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

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

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

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

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

老母亲的泪目。

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

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

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

再到彪悍的十七代目——

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

再来看看AI玩贪吃蛇。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关新闻

返回顶部