來源:Github
編輯:文強
【新智元導讀】如果說我們的徵途是星辰大海,那麼星際爭霸必定是其中一關。今天,有人在Github開源了他潛心研究一年半的成果,一個新手和資深研究人員都能受益的深度強化學習框架,單機運行速度快、方便調式,支持多種強化學習訓練環境。上周結束的 AI Challenger 星際爭霸競賽,讓 AI 挑戰星際爭霸這個議題又稍稍火了一把。雖然這屆冠軍使用的仍然是硬編碼方法,但從其他解決方案中不難看出,AI 算法的佔比在不斷提升。
作為圍棋之後 DeepMind 公開宣布的下一個攻克目標,《星際爭霸》的魅力可見一斑。而隨後不久 DeepMind 便將其相關研究及平臺開源,更是印證了讓 AI 玩星際爭霸的挑戰。
今天,塔爾圖大學的 Roman Ring 在 Github 上開源了他傾力投入一年半的成果,一個名叫 Reaver 的《星際爭霸 II》AI,可用於訓練《星際爭霸 II》的各種基本任務。
Reaver 的基本思路是沿著 DeepMind 的路線在走,也即 AI 的玩法是像人類玩家一樣,從遊戲畫面中獲取視覺特徵,然後再做出決策。
補充說明,Roman 去年本科畢業項目是使用《Actor-Critic 法復現 DeepMind 星際爭霸 II 強化學習基準》[1],Reaver 則是在此基礎上的改善提升。
Reaver 的強項在於比其他開源的同類框架單機運行速度快;除了支持星際爭霸遊戲訓練環境 SC2LE,也支持 OpenAI Gym、ATARI 和 MUJOCO;模塊化組成,容易調試。
根據作者所說,Reaver 不到10 秒就解決 CartPole-v0,在 4 核 CPU 筆記本上每秒處理 5000 張圖像,使用 Google Colab,Reaver 通關《星際爭霸 II》SC2LE 小型遊戲 MoveToBeacon 只需要半小時的時間。
Reaver 玩《星際爭霸 II》小型遊戲 MoveToBeacon 的畫面,左邊是未經訓練,右邊是訓練後的情況。來源:Roman Ring/YouTube
套用一句話,如果我們的徵途是星辰大海,那麼其中的一關必然是《星際爭霸》。
Reaver 對於不具備 GPU 集群的人非常友好,正如作者在 Github 庫裡介紹所說,
「雖然開發是研究驅動的,但 Reaver API 背後的理念類似於《星際爭霸II》遊戲本身——新手可以用,領域專家也能從中獲得東西。
「對於業餘愛好者而言,只要對 Reaver 稍作修改(例如超參數),就能得到訓練深度強化學習智能體的所有必須工具。對於經驗豐富的研究人員,Reaver 提供簡單但性能優化的代碼庫,而且都是模塊化架構:智能體、模型和環境都是分開,並且可以隨意組合調換。」
歡迎加入星際爭霸強化學習陣營。
性能 大部分已發表的強化學習基準通常針對的都是 MPI 之間 message-based 通信,對於 DeepMind 或者 OpenAI 這樣有大規模分布式強化學習配置的機構而言這樣做自然很合理,但對於普通研究者或其他沒有這類強大基礎設施的人,這就成了很大的瓶頸。因此,Roman Ring 採用了共享內存(shared memory)的方法,相比 message-based 並行的解決方案實現了大約 3 倍的速度提升。
模塊化 很多強化學習基準都或多或少都是模塊化的,不過這些基準通常與作者使用的訓練環境密切相關。Roman Ring 自己就曾經因為專注於《星際爭霸 II》環境而導致調試花了很長時間。因此,Revar 只需要一個命令行就能改變訓練環境,從 SC2 到 Atari 或者 CartPole(將來計劃納入 VizDoom)。每個神經網絡都是簡單的 Keras 模型,只要符合基本的 API contracts 都能調用。
調試 現在一個遊戲 AI 通常含有十幾個不同的調試參數,如何實現更為統一便捷的調試?Roman Ring 在 Reaver 中只要能用的地方都用了 「gin-config」,這個輕量級調試框架只要是 Python 可調用函數都能調試,非常方便。
更新 是的,現在算法發展很快,去年發表的東西今年就可能過時。在開發 Reaver 的時候 Roman 表示他想著用了 TensorFlow 2.0 API(主要是使用 tf.keras 不用 tf.contrib),希望這個庫能活用久一點吧。
Roman Ring 列出了 Reaver 在《星際爭霸 II》各種小型遊戲上與其他 AI 的性能對比。其中,
Reaver(A2C)就是在 SC2LE 訓練 Reaver 得到的結果
DeepMind SC2LE 是 DeepMind 在《StarCraft II: A New Challenge for Reinforcement Learning》一文中發布的結果[2]
DeepMind ReDRL 則是 DeepMind 在《Relational Deep Reinforcement Learning》中的結果[3]
人類專家是 DeepMind 收集的 GrandMaster 級別人類玩家的結果
以下是 Reaver 在不同小型遊戲中訓練花費的時間:
綜上,就算 DefeatRoaches 花了 150 小時,但考慮到硬體只是一臺筆記本(英特爾酷睿 i5-7300HQ,4核 + GTX 1050 GPU),這個結果已經算很不錯。
Roman 還列出了他的路線圖,上述成果只是他萬裡長徵的第一步。如果你感興趣,不妨加入這個項目。
介紹就到這裡,訪問 Github 了解更多:
https://github.com/inoryy/reaver-pysc2
參考資料
[1] http://www.ikuz.eu/materials/supervision/Roman-Ring-Replicating-DeepMind-StarCraft-II-Reinforcement-Learning-Benchmark-with-Actor-Critic-Methods.pdf
[2] https://arxiv.org/abs/1708.04782
[3] https://arxiv.org/pdf/1708.04782.pdf
【加入社群】
新智元 AI 技術 + 產業社群招募中,歡迎對 AI 技術 + 產業落地感興趣的同學,加小助手微信號:aiera2015_2 入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。