一個懂寫代碼的程序員平常是怎么玩游戲的?想知道嗎,一個網名叫做 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 里,玩得最好的可以進行繁殖,并把自己的優秀基因遺傳給下一代。當然了,下一代也不會照單全收,還是會有小小的突變。
第六代目就可以妥妥地拿下2000分了...
好的,小哥用 NEAT 玩壞的第二個游戲,就是 Chrome 瀏覽器連不上網時候出現的彩蛋小游戲——跳跳恐龍。
你還不知道有這個游戲?
你能玩到第幾關呢?
好的,發現自己技術太差以后,小哥就自行復制出了游戲,并開始無情的 AI 模式了。
第一代AI有500只,每一只控制著一只恐龍。發揮最好的 AI 可以進入繁殖階段,不行的AI就莫得繁殖。而且下一代的策略會和上一代有一點點不同,類似于遺傳突變。
上面的那些網絡就是控制這些 AI 的神經網絡,它會一代代地發生變化。
這個神經網絡的輸入信號就是每個 AI 看到的東西,輸出就是每個AI的動作。新的神經網絡連接的出現代表著 AI 學會了某種特定的策略。
第一代的基本設定很簡單,就是不停地隨便亂跳。就和你一開始玩的時候一樣。如果你仔細看上面的圖,會發現有只AI是一直趴著前進的。
就這樣,傻 fufu 的 AI 被一代代刷掉之后,終于有只 AI 搞明白要看清楚距離再跳了。
好的,玩過這個游戲的人知道,到了一定時間,速度會變得飛快,而且一些鳥鳥飛得太高踩不到,所以在大鳥鳥面前要主動彎腰。
利用遺傳算法訓練到第八代 AI 的時候,它們看起來就已經很聰明了。
但是第八代還是沒學會在踩不扁的大鳥鳥面前低頭。
到了25代,AI 終于學會了,如果你不能碾壓別人,那就要立刻向大佬低頭,晚0.1秒都不行。
到了第40代AI,見識一下什么叫做恐怖。
第25代 AI 妥妥地拿下了2萬分。后來因為小哥的電腦實在吃不消了才沒有繼續刷出高分。
還有這個世界最難游戲。
小哥也是因為自己玩得太爛,于是決定用遺傳算法算法來海選 AI 幫自己刷分。
每個 AI 依照一套指令(術語叫做 vector)。
和自然選擇理論一致,適合度最高的 AI 可以繁殖,做不到的 AI 就只能去死了。小哥規定,AI 要在有限的步數之內完成特定的指令。完成的指令越多,就可以獲得更多的步數。
一伙 AI 沖上場的畫面。有不怕死的已經當場去世了。
注意到頭是綠的 AI 嗎?它們是上一代 AI 里最優秀的后代。
終于到了第50代,第50代啊同志們,有一個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
+關注
關注
87文章
30106瀏覽量
268401 -
代碼
+關注
關注
30文章
4744瀏覽量
68345
原文標題:AI 學會你最拿手的小游戲之后…
文章出處:【微信號:smartman163,微信公眾號:網易智能】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論