By李澤南 2017年7月14日
「學會了哥的運營,剩下的就是A了——「F91」」 孫一峰。
神經網絡是機器學習的一個重要分支,近年來隨著深度學習的興起展現了強大的能力。近日,來自ITUniversityofCopenhagen的幾位學者嘗試使用頂級玩家的Replay訓練一個深度學習模型來打星際爭霸,並獲得了成功。經過訓練的AI學會了人類玩家運營的部分技巧,並在對戰中展現出了多種不同策略。
有關星際爭霸系列遊戲的人工智慧研究層出不窮,因為這一即時戰略遊戲(RTS)的環境複雜,在同類遊戲中,平衡性也做得最好。此前,一些組織和機構發起過如AIIDEStarCraftAICompetition這樣的星際爭霸AI比賽。去年,DeepMind也在圍棋之後把注意力轉向了星際爭霸2,這家屬於谷歌的公司認為該遊戲相比西洋棋與圍棋更加接近「複雜的現實世界」。
與今年4月阿里巴巴和UCL的研究者們試圖讓AI學會控制不同單位(學會「戰術」勝利)不同,哥本哈根的研究人員這次試圖讓人工智慧學會更高層面上的技巧(「戰略」勝利)。而其後的模型訓練方式也顯得更加直接:研究人員使用了超過2000場頂級玩家對戰的Replay來訓練神經網絡。
圖1.該研究使用的遊戲版本是《星際爭霸:母巢之戰》,人工智慧控制神族,對戰人族。
研究人員使用的新方法包括兩個部分:1.訓練神經網絡預測人類玩家的大局觀(macromanagement)活動,即下一步將發生的動作;2.將訓練好的模型放入UAlbertaBot開源星際爭霸bot中,代替原有的生產決策模塊。UAlbertaBot是由DavidChurchill5開發的一款開源的星際爭霸bot,在2013年贏得了AIIDEStarCraftAICompetition。該bot包括多個分層模塊,如信息管理、建築管理和生產管理。其中,生產管理負責控制單位生產、升級等工作。在代替後,神經網絡通過類似人類玩家的策略來對生產進行決策,從而讓整個AI系統的表現大幅增強。
為了壓縮文件尺寸,星際爭霸的Replay包含了對戰雙方的所有指令,這同時也為神經網絡的訓練帶來了便利。在訓練中,Relplay文件中的玩家動作狀態被編碼為歸一化值的向量。訓練神經網絡使用的Replay數據集採集自GosuGamers、ICCup
和TeamLiquid等網站,其中包含大量職業玩家之間的比賽。
圖2.將星際爭霸Replay轉化為向量化動作對的示意圖
上圖中,(a)展示了將Replay中的信息提取至SQL資料庫的提取過程,(b)表示數據處理的擴展過程,在資料庫中,源數據被分類為建築、擊殺、發現敵方單位等信息(c)。所有事件都通過正向模型運行,以生成具有歸一化值的向量化狀態-動作對(d)。
圖3.神經網絡架構
輸入層由包含歸一化值的向量化狀態組成,該歸一化值表示玩家所知的所有單位、建築物、科技和升級的數量。為了清楚起見,上圖中僅顯示了一小部分。另有一個輸入表示人口數量。神經網絡具有四個隱全連接層,每個都有128個單元,使用ReLU激活函數。這些層之後是使用softmax激活函數的輸出層,網絡的輸出是接下來在給定狀態下生成的每個構建動作的預測。
表2.神經網絡配合UAlbertaBot對戰遊戲內建AI人族的勝率
Probablilistic為遵循網絡輸出最高可能性的策略,Greedy為總是選擇輸出值最大的可能策略,Random為隨機選擇可能範圍內的策略。Blind策略中,AI不會收集對手的信息。如果固定採用龍騎Rush策略(捨棄經濟,追求快速生產戰鬥單位的策略),新方法對陣人族AI的勝率為100%。
圖5.神經網絡在與遊戲內建AI對戰時形成的開放性生產策略(生產順序也取決於觀察到的對手信息)。
每個圖標旁邊的數字表示接下來安排生產的概率,橫軸為生產時間。在本例中,生產遵循Greedy策略,總是以最高可能性安排生產。
表3.在對戰人族時Probabilistic和Greedy量種策略生產單位/升級時的選擇。由表可見,Greedy策略的選擇相對單一,Probabilistic策略的變化更多。
研究人員認為,雖然目前的方法並未達到業內最先進的結果,但這是一個讓人工智慧學會在RTS遊戲中進行運營非常有希望成功的方向。此外,這種方法不僅可以適用於星際爭霸系列,也可以直接適用於其他RTS遊戲。
論文:LearningMacromanagementinStarCraftfromReplaysusingDeepLearning
論文連結:https://arxiv.org/abs/1707.03743
摘要
即時戰略遊戲《星際爭霸》已被證明對於人工智慧而言是一個具有挑戰性的環境,目前最好的遊戲AI都加入了大量人為編寫的模塊。在本論文中,我們展示了如何用深度學習通過遊戲Replay的訓練,讓人工智慧學會星際爭霸的大局觀。神經網絡從2005個頂級玩家對戰的replay裡訓練了789,571個動作對,在預測下一個建築動作的精確度上達到了top-1:54.6%,top-3:22.9%的水平。通過結合已訓練的神經網絡和開源星際爭霸機器人UAlbertaBot,新系統的表現顯著超越了遊戲內建的人族AI,新方法使用固定的rush策略可以輕鬆打敗人族AI,表現明顯好於原版UAlbertaBot。據我們所知,這是第一次有人通過星際爭霸的replay讓計算機直接學會大局觀。儘管目前手動設定的策略仍然表現最佳,但深度神經網絡的方法可以展現出多種不同策略,而使用深度強化學習則是未來的一個研究方向。我們認為,最終這種方法可以引出無需大量手工編程策略的強大星際爭霸AI。