當前位置:
首頁 > 新聞 > 備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

本文作者是切爾西足球俱樂部粉絲,他寫了一篇英文博客介紹如何使智能體在 FIFA 18 遊戲中更加完美地踢自由球,共分為兩部分:用神經網路監督式地玩 FIFA 18;用強化學習 Q 學習玩 FIFA 18。

玩 FIFA 遊戲的機制

構建能玩 FIFA 遊戲的智能體與遊戲內置的 Bot 是不一樣的,它不能訪問任何內部程序信息,只能與人一樣獲得屏幕的輸出信息。遊戲窗口截圖就是所有需要饋送到智能體遊戲引擎的數據,智能體會處理這些視覺信息並輸出它希望採取的動作,最後這些動作通過按鍵模擬器傳遞到遊戲中。

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

下面我們提供了一個基本的框架為智能體提供輸入信息,並使其輸出控制遊戲。因此,我們要考慮的就是如何學習遊戲智能體。本文主要介紹了兩種方法,首先是以深度神經網路和有監督的方式構建智能體,包括使用卷積神經網路理解截圖信息和長短期記憶網路預測動作序列。其次,我們將通過深度 Q 學習以強化學習的方式訓練一個強大的智能體。這兩種方式的實現方法都已經開源:

  • 基於深度有監督的智能體:https://github.com/ChintanTrivedi/DeepGamingAI_FIFA
  • 基於強化學習的智能體:https://github.com/ChintanTrivedi/DeepGamingAI_FIFARL

基於監督學習的智能體

步驟 1:訓練卷積神經網路(CNN)

CNN 因其高度準確地對圖像進行目標檢測的能力而出名。再加上有快速計算的 GPU 和高效的網路架構,我們可以構建能實時運行的 CNN 模型。

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

為了令智能體能理解輸入圖像,我們使用了一個非常緊湊的輕量級卷積網路,即 MobileNet。該網路抽取的特徵圖表徵了智能體對圖像的高級語義理解,例如理解球員和其它目標在圖像中的位置。特徵圖隨後會與單次多目標檢測器一起檢測球場上的球員、球與球門。

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

步驟 2:訓練長短期記憶網路(LSTM)

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

現在理解了圖像之後,我們繼續來決定下一步的行動。然而,我們並不想僅看完一個幀的圖像就採取動作。我們首先需要觀察這些圖像的短序列。這正是 LSTM 發揮作用的地方,LSTM 就是因其對時序數據的優越建模能力而出名的。連續的圖像幀在序列中作為時間步,每個幀使用 CNN 模型來提取特徵圖。然後這些特徵圖被同時饋送到兩個 LSTM 網路。

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

第一個 LSTM 執行的是決定玩家移動方式的學習任務。因此,這是一個多類別分類模型。第二個 LSTM 得到相同的輸入,並決定採取交叉、過人、傳球還是射門的動作,是另一個多類別分類模型。然後這兩個分類問題的輸出被轉換為按鍵動作,來控制遊戲中的動作。

這些網路已經在手動玩遊戲並記錄輸入圖像和目標按鍵動作而收集的數據上訓練過了。這是少數幾個收集標記數據不會那麼枯燥的任務類型之一。

基於強化學習的智能體

在前一部分中,我介紹了一個經過訓練的人工智慧機器人,它使用監督學習技術來玩 FIFA 遊戲。通過這種方式,機器人很快就學會了傳球和射門等基本動作。然而,收集進一步改進所需的訓練數據變得很麻煩,改進之路舉步維艱,費時費力。出於這個原因,我決定改用強化學習。

這部分我將簡要介紹什麼是強化學習,以及如何將它應用到這個遊戲中。實現這一點的一大挑戰是,我們無法訪問遊戲的代碼,所以只能利用我們在遊戲屏幕上所看到的內容。因此,我無法在整個遊戲中對智能體進行訓練,但可以在練習模式下找到一種應對方案來讓智能體玩轉技能遊戲。在本教程中,我將嘗試教機器人在 30 碼處踢自由球,你也可以通過修改讓它玩其他的技能遊戲。讓我們先了解強化學習技術,以及如何制定適合這項技術的自由球問題解決方案。

強化學習(以及深度 Q 學習)是什麼?

與監督學習相反,強化學習不需要手動標註訓練數據。而是與環境互動,觀察互動的結果。多次重複這個過程,獲得積極和消極經驗作為訓練數據。因此,我們通過實驗而不是模仿來學習。

假設我們的環境處於一個特定的狀態 s,當採取動作 a 時,它會變為狀態 s"。對於這個特定的動作,你在環境中觀察到的即時獎勵是 r。這個動作之後的任何一組動作都有自己的即時獎勵,直到你因為積極或消極經驗而停止互動。這些叫做未來獎勵。因此,對於當前狀態 s,我們將嘗試從所有可能的動作中估計哪一個動作將帶來最大的即時+未來獎勵,表示為 Q(s,a),即 Q 函數。由此得到 Q(s,a) = r + γ * Q(s", a"),表示在 s 狀態下採取動作 a 的預期最終獎勵。由於預測未來具有不確定性,因此此處引入折扣因子 γ,我們更傾向於相信現在而不是未來。

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

圖源:http://people.csail.mit.edu/hongzi/content/publications/DeepRM-HotNets16.pdf

深度 Q 學習是一種特殊的強化學習技術,Q 函數是通過深度神經網路學習的。給定環境的狀態作為這個網路的圖像輸入,它試圖預測所有可能動作的預期最終獎勵,像回歸問題一樣。選擇具有最大預測 Q 值的動作作為我們在環境中要採取的動作。該技術因此得名「深度 Q 學習」。

將 FIFA 自由球定位為 Q 學習問題

  • 狀態:通過 MobileNet CNN 處理的遊戲截圖,給出了 128 維的扁平特徵圖。
  • 動作:四種可能的動作,分別是 shoot_low、shoot_high、move_left、move_right.
  • 獎勵:如果按下射門,比賽成績增加 200 分以上,我們就進了一個球,r=+1。如果球沒進,比分保持不變,r=-1。最後,對於與向左或向右移動相關的動作,r=0。
  • 策略:兩層密集網路,以特徵圖為輸入,預測所有 4 個動作的最終獎勵。

備戰世界盃!先用深度學習與強化學習踢場 FIFA 18

智能體與遊戲環境交互的強化學習過程。Q 學習模型是這一過程的核心,負責預測智能體可能採取的所有動作的未來獎勵。該模型在整個過程中不斷得到訓練和更新。

注意:如果我們在 FIFA 的開球模式中有一個和練習模式中一樣的性能表(performance meter),那麼我們可能就可以將整個遊戲作為 Q 學習問題,而不僅僅局限於自由球。或者我們需要訪問我們沒有的遊戲內部代碼。不管怎樣,我們應該充分利用現有的資源。

代碼實現

我們將使用 Tensorflow (Keras) 等深度學習工具在 Python 中完成實現過程。

GitHub 地址:https://github.com/ChintanTrivedi/DeepGamingAI_FIFARL

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

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


請您繼續閱讀更多來自 機器之心 的精彩文章:

資源|帶自注意力機制的生成對抗網路,實現效果怎樣?
沒有地圖也能導航:DeepMind展示全新AI導航技術

TAG:機器之心 |