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