當前位置:
首頁 > 最新 > 如何從零訓練神經網路玩遊戲?這裡有一段詳細的解讀視頻

如何從零訓練神經網路玩遊戲?這裡有一段詳細的解讀視頻

Youtube 上的知名遊戲博主 SethBling訓練了一個叫 MariFlow 的神經網路來玩 Mario Kart 遊戲。看懂他怎麼做的,你也能舉一反三。

最近,Youtube 上的知名遊戲博主 SethBling 訓練了一個叫 MariFlow 的神經網路來玩 Mario Kart 遊戲。在進行15個小時的遊戲訓練並做了一些針對性的改進後,這個神經網路在 50cc Mushroom Cup 中獲得了金牌。

這並不是 SethBling 第一次在遊戲中應用神經網路「通關」。此前 SethBling 曾經創建了另一個神經網路MarI/O,通過訓練,這個神經網路自己演變成玩「超級馬里奧世界」(Super Mario World)的高手。SethBling還拍攝了一個六分鐘的視頻來解釋通過神經網路來進行遊戲的原理。他設計了一個四層的神經網路,通過計算,程序會給出它認為在某個點上應該按下什麼鍵的預測。通過這個視頻,或許你也可以舉一反三,做出更好的應用例子(例如賽車遊戲)。

和AI研習社來看一下構建這個神經網路中 SethBling 的思路吧:

遊戲當中,我們可以看到Mario在一直全速奔跑,全程沒有任何停頓,並能快速躲開類似上圖這樣高難度的子彈襲擊,最終到達終點的時候剩餘時間為354秒。

讓我們重頭開始看看神經網路是如何進行決策的:如上圖所示,這是一個只有4層的神經網路模型,通過對最左側的輸入圖像的計算(紅色的短線代表Mario、白色方塊代表不會移動的物體如地面,黑色方塊代表會移動的物體如敵人,等等),最終得出最右側的8個按鍵的輸出狀態(SethBling解釋說,神經網路中的神經元和神經樹突並不總是被亮起的,這也是我們所說的只使用到了我們一小部分的大腦)。

而在一開始的時候,機器的表現非常笨拙,甚至不會按任何鍵。在這樣的過程中,系統會嘗試切換不同的模擬狀態,通過嘗試了很久後才學會了向右移動;

在遇到子彈的時候也不會跳躍躲避;

那麼神經網路是如何學習的呢?還是從最初的簡單狀況開始,綠色線代表正激勵連接,而紅色表示負激勵連接。自要從目前的狀態所激活的是綠色的正激勵連接,那麼Mario就只管一直按右鍵狂奔;

當紅色的負激勵連接被激活時,則切換到相應的狀態,如上圖中按下A鍵做一個跳躍動作;

如果沒有任何鏈接被激活,那麼Mario就站在那裡。這只是一個簡單的示意:如果神經網路中的節點和連接越複雜,系統能做出的選擇也更多,最終做出最合適的選擇;

那麼神經網路是如何從簡單進化到複雜的呢?我們設定一個函數Fitness,這個函數值取決於Mario奔跑的距離以及所用的時間,奔跑距離越大、所用時間越短,Fitness值越大,而只有獲得最大值的模型才能被選為下一代演化的基礎模型,而在下一代演化中在關鍵節點上(如上圖吃到子彈遊戲結束)會產生隨機突變(AI研習社註:這和生物進化的過程非常相似,只有最適應環境的種類才能生存繁衍),在這樣不斷演變中達到最優解。

在上圖的34代演化得分圖中,我們可以看到機器在進化過程中也遇到了一些瓶頸,但最終克服了這些瓶頸取得了好成績。

這一方法,SethBling稱之為NEAT(Neuro Evolution of Augmenting Topologies,增強拓撲神經演化),在 Kenneth Stanley 和 Ari 的論文中也有講述。

以下是完整視頻:

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據,教程,論文】

人工智慧開始玩《星際爭霸2》 我們對它的研究環境進行了測試


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

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


請您繼續閱讀更多來自 AI研習社 的精彩文章:

機器學習應該準備哪些數學預備知識?
Deep Learning 讀書分享:深度模型中的優化
北交大博士:強化學習與策略評估
如何有效處理特徵範圍差異大且類型不一的數據?
伯克利客座教授:AlphaGo Zero and Deep Learning

TAG:AI研習社 |