0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

論玩小游戲AI不一定比你差

電子工程師 ? 來源:fqj ? 2019-04-29 14:44 ? 次閱讀

一個(gè)懂寫代碼的程序員平常是怎么玩游戲的?想知道嗎,一個(gè)網(wǎng)名叫做 Code Bullet 的澳大利亞程序員就經(jīng)常自己在家制造和訓(xùn)練 AI 幫他打游戲。

看過他訓(xùn)練出的 AI 玩的游戲,感覺…再也不想玩游戲了呢。

先來看 AI 玩 Flappy bird 會(huì)怎樣。

小哥使用的是NEAT(neuro evolution of augmenting topologies)算法,也就是增強(qiáng)拓?fù)涞纳窠?jīng)演化算法。

NEAT 是一種結(jié)合神經(jīng)網(wǎng)絡(luò)和遺傳算法(genetic algorithm)的好算法。

遺傳算法是什么?

遺傳算法類似于一個(gè)代碼進(jìn)化系統(tǒng),它是一種優(yōu)勝劣汰 AI 的算法。

你要做的,就是告訴計(jì)算機(jī),什么是“成功”的標(biāo)準(zhǔn),還要告訴AI,它可以看到什么,可以做什么。成功的AI可以進(jìn)行一次繁殖,留下后代,不成功的 AI 就當(dāng)場(chǎng)去世了。

為了模擬演化,子代 AI 還會(huì)和爸爸/媽媽有一點(diǎn)點(diǎn)的不同,類似于遺傳突變。

神經(jīng)網(wǎng)絡(luò)則是一種具有學(xué)習(xí)能力的算法,它模擬的是生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),可以根據(jù)經(jīng)驗(yàn)不斷調(diào)整。

在 Flappy bird 里,小哥設(shè)定 AI 可以看到鳥鳥和柱子的距離、鳥鳥相對(duì)于柱子的速度等信息。剩下的該怎么玩 AI 自便。

論玩小游戲AI不一定比你差

在每一代的 AI 里,玩得最好的可以進(jìn)行繁殖,并把自己的優(yōu)秀基因遺傳給下一代。當(dāng)然了,下一代也不會(huì)照單全收,還是會(huì)有小小的突變。

論玩小游戲AI不一定比你差

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

論玩小游戲AI不一定比你差

好的,小哥用 NEAT 玩壞的第二個(gè)游戲,就是 Chrome 瀏覽器連不上網(wǎng)時(shí)候出現(xiàn)的彩蛋小游戲——跳跳恐龍。

論玩小游戲AI不一定比你差

你還不知道有這個(gè)游戲?

你能玩到第幾關(guān)呢?

好的,發(fā)現(xiàn)自己技術(shù)太差以后,小哥就自行復(fù)制出了游戲,并開始無情的 AI 模式了。

第一代AI有500只,每一只控制著一只恐龍。發(fā)揮最好的 AI 可以進(jìn)入繁殖階段,不行的AI就莫得繁殖。而且下一代的策略會(huì)和上一代有一點(diǎn)點(diǎn)不同,類似于遺傳突變。

論玩小游戲AI不一定比你差

上面的那些網(wǎng)絡(luò)就是控制這些 AI 的神經(jīng)網(wǎng)絡(luò),它會(huì)一代代地發(fā)生變化。

這個(gè)神經(jīng)網(wǎng)絡(luò)的輸入信號(hào)就是每個(gè) AI 看到的東西,輸出就是每個(gè)AI的動(dòng)作。新的神經(jīng)網(wǎng)絡(luò)連接的出現(xiàn)代表著 AI 學(xué)會(huì)了某種特定的策略。

第一代的基本設(shè)定很簡(jiǎn)單,就是不停地隨便亂跳。就和你一開始玩的時(shí)候一樣。如果你仔細(xì)看上面的圖,會(huì)發(fā)現(xiàn)有只AI是一直趴著前進(jìn)的。

就這樣,傻 fufu 的 AI 被一代代刷掉之后,終于有只 AI 搞明白要看清楚距離再跳了。

論玩小游戲AI不一定比你差

好的,玩過這個(gè)游戲的人知道,到了一定時(shí)間,速度會(huì)變得飛快,而且一些鳥鳥飛得太高踩不到,所以在大鳥鳥面前要主動(dòng)彎腰。

利用遺傳算法訓(xùn)練到第八代 AI 的時(shí)候,它們看起來就已經(jīng)很聰明了。

論玩小游戲AI不一定比你差

但是第八代還是沒學(xué)會(huì)在踩不扁的大鳥鳥面前低頭。

論玩小游戲AI不一定比你差

到了25代,AI 終于學(xué)會(huì)了,如果你不能碾壓別人,那就要立刻向大佬低頭,晚0.1秒都不行。

論玩小游戲AI不一定比你差

到了第40代AI,見識(shí)一下什么叫做恐怖。

論玩小游戲AI不一定比你差

第25代 AI 妥妥地拿下了2萬分。后來因?yàn)樾「绲?a href="http://ttokpm.com/v/tag/1247/" target="_blank">電腦實(shí)在吃不消了才沒有繼續(xù)刷出高分。

還有這個(gè)世界最難游戲。

論玩小游戲AI不一定比你差

小哥也是因?yàn)樽约和娴锰珷€,于是決定用遺傳算法算法來海選 AI 幫自己刷分。

每個(gè) AI 依照一套指令(術(shù)語叫做 vector)。

和自然選擇理論一致,適合度最高的 AI 可以繁殖,做不到的 AI 就只能去死了。小哥規(guī)定,AI 要在有限的步數(shù)之內(nèi)完成特定的指令。完成的指令越多,就可以獲得更多的步數(shù)。

一伙 AI 沖上場(chǎng)的畫面。有不怕死的已經(jīng)當(dāng)場(chǎng)去世了。

論玩小游戲AI不一定比你差

注意到頭是綠的 AI 嗎?它們是上一代 AI 里最優(yōu)秀的后代。

論玩小游戲AI不一定比你差

終于到了第50代,第50代啊同志們,有一個(gè)AI來到了終點(diǎn)。

論玩小游戲AI不一定比你差

也是用 NEAT 算法訓(xùn)練的 AI 玩越野賽車。

從沒眼看的個(gè)位數(shù)代目——

再到彪悍的十七代目——

再來看看 AI 玩貪吃蛇。

小哥先利用遺傳算法和深度學(xué)習(xí)(deep learning)訓(xùn)練出了幾條優(yōu)秀的 AI 貪吃蛇,然后利用融合(fusion)的方法把它們的“大腦”合體。相當(dāng)于一個(gè)貪吃蛇的身體里藏著好幾條蛇。人類是不是管這個(gè)叫做精分?

小哥另外讓高級(jí)版的貪吃蛇 AI 在不同貪吃蛇 AI 附體時(shí)對(duì)外展現(xiàn)出不同的顏色。

比如,在發(fā)現(xiàn)食物,并且確定能夠吃到的時(shí)候變成綠色,藍(lán)色表示它確定能離食物越來越近,白色表示它看不到食物在哪里,只能盡量不讓自己死掉。

這個(gè)精分版的貪吃蛇 AI 是這樣玩的。

總之,小哥用 NEAT 算法的套路玩轉(zhuǎn)了各種你耳熟能詳?shù)男∮螒?。效果都是杠杠的?/p>

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

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

小哥說不能做更大的魔方了,它電腦要中風(fēng)了。

小哥用Q學(xué)習(xí)(Q-Learning)練的玩鋼琴塊游戲的 AI。

Q學(xué)習(xí)屬于增強(qiáng)學(xué)習(xí)算法,增強(qiáng)學(xué)習(xí)算法就是要記錄學(xué)習(xí)過的策略,并且根據(jù)獎(jiǎng)勵(lì)(目標(biāo))來調(diào)整策略的算法。

AI 的目標(biāo)是找到屏幕上的黑框,然后使勁地摁就好了。一鍵玩到電腦中風(fēng)的樣子——

你玩過掃雷吧。小哥也造了一個(gè)掃雷 AI。看 AI 玩 64 x 36 的掃雷覺得莫名舒爽有木有?

好的,看完了上面這些 AI 打游戲的精彩片段我們知道,永遠(yuǎn)也不要嘲笑一個(gè)會(huì)繁殖的 AI 和一個(gè)玩不好游戲的程序員。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29806

    瀏覽量

    268103
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68231

原文標(biāo)題:AI 學(xué)會(huì)你最拿手的小游戲之后…

文章出處:【微信號(hào):smartman163,微信公眾號(hào):網(wǎng)易智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    論壇基于labview的小游戲合集(絕對(duì)精彩)

    `老虎機(jī):*** labview黑白棋小游戲制作詳細(xì)解析https://bbs.elecfans.com/jishu_209415_1_1.html l令人嘆服的abview象棋程序(暴強(qiáng)
    發(fā)表于 03-01 15:29

    網(wǎng)友可能不一定很了解的時(shí)間單位

    時(shí)間單位有的網(wǎng)友可能不一定很了解,特別是搞FPGA的網(wǎng)友,提供。 無限可分,沒有最小。 s(秒)以下的時(shí)間單位(千進(jìn)制): 1s (秒) =1000 ms (毫秒) 1ms (毫秒) =1000
    發(fā)表于 01-11 11:59

    基于LabVIEW小游戲11款合集

    小編給大家整理了些基于LabVIEW制作的小游戲,供大家學(xué)習(xí),如果大家有更好的設(shè)計(jì),不論是程序或者是界面上面有改進(jìn)的話歡迎大家分享,起討論哈!1、labview黑白棋小游戲制作詳細(xì)
    發(fā)表于 12-10 15:16

    gpio和中斷斷開發(fā)現(xiàn)喚醒后中斷不一定及時(shí)響應(yīng)是為什么?

    斷開,發(fā)現(xiàn)喚醒后中斷不一定及時(shí)響應(yīng),即使響應(yīng)了系統(tǒng)也死掉了,請(qǐng)問這種情況怎么解決呢?我在idle_profile的基礎(chǔ)上做的實(shí)驗(yàn)。deepsleep模式的功耗有點(diǎn)兒高了。
    發(fā)表于 06-12 16:42

    AI學(xué)習(xí)】第 1 篇--活用創(chuàng)新模板學(xué) AI

    創(chuàng)造新模版,也支持不熟悉編程者,善用模版來創(chuàng)造形形色色的 AI 模型。所以,不一定需要寫程序,不一定需要高深數(shù)學(xué),大家都可以利用模板來創(chuàng)作 AI 智能模型。那么如何使用
    發(fā)表于 11-02 10:38

    為什么高速USB并不一定表示手機(jī)擁有高速性能

    為什么高速USB并不一定表示手機(jī)擁有高速性能 數(shù)碼多媒體向日用電器的發(fā)展改變了消費(fèi)者接觸和享受多媒體娛樂節(jié)目的方式。現(xiàn)在消費(fèi)者可以通過撲克牌大小的設(shè)備來
    發(fā)表于 01-04 11:21 ?620次閱讀
    為什么高速USB并<b class='flag-5'>不一定</b>表示手機(jī)擁有高速性能

    科普:深度解析GPU 知道不一定就懂

    或許都知道 3D 游戲少不了它,但具體發(fā)揮什么作用也許說不清楚,這回我們就來揭開 GPU 的神秘面紗。
    發(fā)表于 06-01 16:33 ?1072次閱讀
    科普:深度解析GPU 知道<b class='flag-5'>不一定</b>就懂

    推箱子小游戲設(shè)計(jì)

    推箱子小游戲設(shè)計(jì)
    發(fā)表于 06-09 09:49 ?97次下載

    小米或打響同股不同權(quán)第槍,業(yè)界卻稱不一定賺錢

    后向香港交易所(00388.HK,下稱港交所)遞表,最快可于6月底至7月初掛牌,有望成為同股不同權(quán)新股的第股。而市場(chǎng)人士認(rèn)為,盡管很多新經(jīng)濟(jì)公司上市的時(shí)候異常火熱,但在香港打新卻不一定賺錢。 據(jù)港媒報(bào)道,小米的上市籌備工
    發(fā)表于 04-30 22:50 ?768次閱讀

    只有潔碧才是全民信賴的水牙線品牌嗎?那可不一定!

    身體健康就一定要保證口腔健康。使用水牙線已經(jīng)是很多西方家庭會(huì)使用的清潔口腔內(nèi)部的辦法,對(duì)于國內(nèi)的消費(fèi)者來說,水牙線還算是新鮮玩意,所以面對(duì)多種多樣的水牙線品牌,覺得只有潔碧,這個(gè)水牙線的創(chuàng)始品牌才是值得信賴的,那可不一定
    發(fā)表于 04-16 20:31 ?472次閱讀

    正確的原理圖不一定能產(chǎn)生正確的 PCB 設(shè)計(jì)

    作者:黃剛個(gè)“xue淋淋”的案例告訴大家:正確的原理圖不一定就能產(chǎn)生正確的PCB設(shè)計(jì)。原理圖設(shè)計(jì)與PCB設(shè)計(jì)都是研發(fā)流程中的必經(jīng)階段,我們知道,原理圖設(shè)計(jì)是PCB設(shè)計(jì)的前端流程,之前的案例也分析過個(gè)錯(cuò)誤的原理圖必然會(huì)導(dǎo)致
    的頭像 發(fā)表于 12-24 13:22 ?2328次閱讀

    基于STM32設(shè)計(jì)的拼圖小游戲

    基于STM32設(shè)計(jì)的拼圖小游戲
    發(fā)表于 11-23 17:51 ?30次下載
    基于STM32設(shè)計(jì)的拼圖<b class='flag-5'>小游戲</b>

    Oneflow 實(shí)現(xiàn)強(qiáng)化學(xué)習(xí) Flappy Bird 小游戲

    本文主要內(nèi)容是如何用Oenflow去復(fù)現(xiàn)強(qiáng)化學(xué)習(xí) Flappy Bird 小游戲這篇論文的算法關(guān)鍵部分,還有記錄復(fù)現(xiàn)過程中些踩過的坑。
    發(fā)表于 01-26 18:19 ?2次下載
    Oneflow 實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)<b class='flag-5'>玩</b> Flappy Bird <b class='flag-5'>小游戲</b>

    基于STM32設(shè)計(jì)的拼圖小游戲詳解

    拼圖游戲在小時(shí)候還是經(jīng)常,玩法也比較簡(jiǎn)單,這里就使用STM32設(shè)計(jì)個(gè)拼圖小游戲分享出來起學(xué)習(xí)。 目前
    的頭像 發(fā)表于 02-28 13:45 ?3105次閱讀
    基于STM32設(shè)計(jì)的拼圖<b class='flag-5'>小游戲</b>詳解

    4個(gè)并不一定比3個(gè)難對(duì)付

    4個(gè)并不一定比3個(gè)難對(duì)付
    發(fā)表于 11-03 08:04 ?0次下載
    4個(gè)并<b class='flag-5'>不一定</b>比3個(gè)難對(duì)付