當前位置:
首頁 > 知識 > AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

本文由公眾號 「把科學帶回家」 提供

給孩子最好的科學教育

作者 美圖君

一個懂寫代碼的程序員平常是怎麼玩遊戲的?想知道嗎,一個網名叫做 Code Bullet 的澳大利亞程序員就經常自己在家製造和訓練 AI 幫他打遊戲。

看過他訓練出的 AI 玩的遊戲,感覺…再也不想玩遊戲了呢。

先來看 AI 玩 Flappy bird 會怎樣。

AI 學會你最拿手的小遊戲之後 | 科學美圖

小哥使用的是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 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

再到彪悍的十七代目——

AI 學會你最拿手的小遊戲之後 | 科學美圖

再來看看 AI 玩貪吃蛇。

小哥先利用遺傳演算法和深度學習(deep learning)訓練出了幾條優秀的 AI 貪吃蛇,然後利用融合(fusion)的方法把它們的「大腦」合體。相當於一個貪吃蛇的身體里藏著好幾條蛇。人類是不是管這個叫做精分?

AI 學會你最拿手的小遊戲之後 | 科學美圖

小哥另外讓高級版的貪吃蛇 AI 在不同貪吃蛇 AI 附體時對外展現出不同的顏色。

AI 學會你最拿手的小遊戲之後 | 科學美圖

比如,在發現食物,並且確定能夠吃到的時候變成綠色,藍色表示它確定能離食物越來越近,白色表示它看不到食物在哪裡,只能盡量不讓自己死掉。

這個精分版的貪吃蛇 AI 是這樣玩的。

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

總之,小哥用 NEAT 演算法的套路玩轉了各種你耳熟能詳的小遊戲。效果都是杠杠的。

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

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

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

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

小哥用Q學習(Q-Learning)練的玩鋼琴塊遊戲的 AI。

AI 學會你最拿手的小遊戲之後 | 科學美圖

Q學習屬於增強學習演算法,增強學習演算法就是要記錄學習過的策略,並且根據獎勵(目標)來調整策略的演算法。

AI 的目標是找到屏幕上的黑框,然後使勁地摁就好了。一鍵玩到電腦中風的樣子——

AI 學會你最拿手的小遊戲之後 | 科學美圖

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

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

好的,看完了上面這些 AI 打遊戲的精彩片段我們知道,永遠也不要嘲笑一個會繁殖的 AI 和一個玩不好遊戲的程序員。

不過癮,請戳

掉入地下一萬米

盯了270萬學生50年,哈佛斯坦福學者發現成績的貧富差距高達4年

AI 學會你最拿手的小遊戲之後 | 科學美圖

AI 學會你最拿手的小遊戲之後 | 科學美圖

把科學帶回家

ID:steamforkids

給孩子最好的科學教育

轉載請聯繫 kids@huanqiukexue.com

長按二維碼關注我們

圖片非特別註明均來自網路。

為保護原創,參考資料儲存於石墨:

https://shimo.im/docs/TubAO2hZeXYfRSk5/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 把科學帶回家 的精彩文章:

TAG:把科學帶回家 |