0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

论玩小游戏AI不一定比你差

电子工程师 来源:fqj 2019-04-29 14:44 次阅读

一个懂写代码的程序员平常是怎么玩游戏的?想知道吗,一个网名叫做 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不一定比你差

在每一代的 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 玩贪吃蛇。

小哥先利用遗传算法和深度学习(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 和一个玩不好游戏的程序员。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26443

    浏览量

    264038
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66751

原文标题:AI 学会你最拿手的小游戏之后…

文章出处:【微信号:smartman163,微信公众号:网易智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    论坛基于labview的小游戏合集(绝对精彩)

    `老虎机:*** labview黑白棋小游戏制作详细解析https://bbs.elecfans.com/jishu_209415_1_1.html l令人叹服的abview象棋程序(暴强
    发表于 03-01 15:29

    Labview几个小游戏

    Labview几个小游戏,仅供娱乐!
    发表于 08-23 18:23

    网友可能不一定很了解的时间单位

    时间单位有的网友可能不一定很了解,特别是搞FPGA的网友,提供。 无限可分,没有最小。 s(秒)以下的时间单位(千进制): 1s (秒) =1000 ms (毫秒) 1ms (毫秒) =1000
    发表于 01-11 11:59

    小游戏终端

    方案概述:    本方案是基于SLH89F5162单片机的小游戏终端设备(目前占运行贪食蛇游戏)。该设备通过4X4矩阵键盘(开机默认键盘控制)或选用陀螺仪对游戏
    发表于 11-10 16:09

    基于labview的梭哈小游戏

    基于LABVIEW的小游戏!
    发表于 12-20 22:52

    资深电子工程师都不一定真正懂得如何使用电阻

    电阻作为种最基本电子元器件,广泛运用在各种电路中,通常我们也认为电阻是用法最简单的种电子元器件,除了功率外,没有过多的讲究。如果今天我说就这个小小的电阻,许多资深电子工程师都不一定真正懂得如何用
    发表于 06-24 16:41

    用labview做的小游戏

    学习中翻到有大神用LabVIEW实现小游戏,自己也心血来潮,做了个,和大家分享,欢迎大家多提意见和找bug先上图游戏就是拖拽移动成3个以上相连就消掉的 有1分钟计时、提示、重排等源程序见附件,2013版本的,没有新版的朋友可能
    发表于 10-27 16:31

    基于LabVIEW小游戏11款合集

    小编给大家整理了些基于LabVIEW制作的小游戏,供大家学习,如果大家有更好的设计,不论是程序或者是界面上面有改进的话欢迎大家分享,起讨论哈!1、labview黑白棋小游戏制作详细
    发表于 12-10 15:16

    数字记忆小游戏

    数字记忆小游戏
    发表于 06-16 10:53

    gpio和中断断开发现唤醒后中断不一定及时响应是为什么?

    断开,发现唤醒后中断不一定及时响应,即使响应了系统也死掉了,请问这种情况怎么解决呢?我在idle_profile的基础上做的实验。deepsleep模式的功耗有点儿高了。
    发表于 06-12 16:42

    猜数字小游戏

    猜数字小游戏,labview源代码
    发表于 08-23 21:19

    AI学习】第 1 篇--活用创新模板学 AI

    创造新模版,也支持不熟悉编程者,善用模版来创造形形色色的 AI 模型。所以,不一定需要写程序,不一定需要高深数学,大家都可以利用模板来创作 AI 智能模型。那么如何使用
    发表于 11-02 10:38

    推箱子小游戏设计

    推箱子小游戏设计
    发表于 06-09 09:49 96次下载

    基于STM32设计的拼图小游戏

    基于STM32设计的拼图小游戏
    发表于 11-23 17:51 30次下载
    基于STM32设计的拼图<b class='flag-5'>小游戏</b>

    4个并不一定比3个难对付

    4个并不一定比3个难对付
    发表于 11-03 08:04 0次下载
    4个并<b class='flag-5'>不一定</b>比3个难对付