讓人工智能來打王者榮耀 狄仁杰成最強英雄

AI與游戲的化學反應
對于研究者而言,游戲是完美的 AI 訓練環(huán)境,教會人工智能打各種電子游戲一直是很多人努力的目標。
AlphaGo 在圍棋上戰(zhàn)勝人類頂尖選手之后,DeepMind 與暴雪合作開展星際爭霸 2 的人工智能研究。去年 8 月,OpenAI 的人工智能也曾在 Dota 2 上用人工智能打敗了職業(yè)玩家。
那么如果是手機上流行的多人在線戰(zhàn)術競技游戲(MOBA 游戲)《王者榮耀》呢?最近,匹茨堡大學、騰訊 AI Lab 等機構提交到 ICML 2018 大會的一篇論文揭開了王者榮耀 AI 研究的面紗。
案例分析:《王者榮耀》MOBA 游戲 AI
《王者榮耀》中,玩家被分為對立的兩隊,每一隊有一個基地,分別在游戲地圖的相反角落。每條線上有防御塔來防御,它可以攻擊在一定范圍內的敵人。每支隊伍的目標是推塔并最終摧毀對方的水晶。
該實驗中采用 1v1 模式,使用AI分析1V1對戰(zhàn)中的游該方式,不同英雄的對戰(zhàn)方法。結合模擬戰(zhàn)斗訓練,分析出英雄的強弱。
實驗設置
系統(tǒng)的狀態(tài)變量是一個 41 維的向量,包含直接從游戲引擎獲取的信息,包括英雄位置、英雄健康度(血量)、小兵健康度、英雄技能狀態(tài)和不同結構的相對位置。有 22 個動作,包括移動、攻擊、治療術(heal)和特殊的技能動作,包括(扇形)非指向技能。
獎勵函數(shù)的目標是模仿獎勵形態(tài)(reward shaping),使用信號組合(包括健康、技能、傷害和靠近水晶的程度)。研究者訓練了五個《王者榮耀》智能體,使用的英雄是狄仁杰:
1、FBTS 智能體使用基于反饋的樹搜索算法進行訓練,一共迭代 7 次,每次進行 50 局游戲。搜索深度 d = 7,rollout 長度 h = 5。每次調用 MCTS 運行 400 次迭代。
2、第二個智能體因為沒有 rollout 被標注為「NR」。它使用和 FBTS 智能體相同的參數(shù),除了未使用 rollout??傮w來看,它在批量設置上與 AlphaGo Zero 算法有些相似。
3、DPI 智能體使用 Lazaric et al., 2016 的直接策略迭代技術,進行 K = 10 次迭代。沒有價值函數(shù)和樹搜索(因為計算限制,不使用樹搜索就可能進行更多次迭代)。
4、AVI 智能體實現(xiàn)近似價值迭代(De Farias & Van Roy, 2000; Van Roy, 2006; Munos, 2007; Munos & Szepesvari ´ , 2008),K = 10 次迭代。該算法可被認為是 DQN 的批量版本。
5、最后是 SL 智能體,它通過在大約 100,000 個人類玩游戲數(shù)據(jù)的狀態(tài)/動作對數(shù)據(jù)集上進行監(jiān)督學習來訓練。值得注意的是,此處使用的策略架構與之前的智能體一致。
AI分析模型
事實上,策略和價值函數(shù)近似在所有智能體中都是一樣的,二者分別使用具備五個和兩個隱藏層的全連接神經(jīng)網(wǎng)絡和 SELU(scaled exponential linear unit)激活函數(shù)(Klambauer et al., 2017)。
初始策略 π0 采取隨機動作:移動(w.p. 0.5)、直接攻擊(w.p. 0.2)或特殊技能(w.p. 0.3)。除了將移動方向挪向獎勵方向之外,π0 不使用其他啟發(fā)式信息。MCTS 是 UCT 算法的變體,更適合處理并行模擬:研究者不使用 UCB 分數(shù)的 argmax,而是根據(jù)對 UCB 得分應用 softmax 函數(shù)所獲得的分布進行動作采樣。
與理論不同,在算法的實際實現(xiàn)中,回歸使用 cosine proximity loss,而分類使用負對數(shù)似然損失。由于在該游戲環(huán)境中我們無法「倒帶」或「快進」至任意狀態(tài),因此采樣分布 ρ0 由第一次采取的隨機動作(隨機的步數(shù))來實現(xiàn)并到達初始狀態(tài),然后遵循策略 πk 直到游戲結束。
為了減少價值逼近中的相關性,研究者丟棄了在這些軌跡中遇到的 2/3 的狀態(tài)。對于 ρ1,研究者遵循 MCTS 策略,偶爾帶入噪聲(以隨機動作和隨機轉向默認策略的方式)來減少相關性。在 rollout 中,研究者使用游戲內部 AI 作為英雄狄仁杰的對手。
實驗結果
由于該游戲幾乎是確定性的,因此研究者的主要測試方法是對比智能體對抗內部 AI 對手的有效性。研究者還添加了游戲內建 AI 的狄仁杰作為「完整性檢查」基線智能體。
為了選擇測試對手,研究者使用內建 AI 狄仁杰對抗其他內建 AI(即其他英雄)并選擇六個內建 AI 狄仁杰能夠打敗的射手類英雄。研究者的智能體每一個都包含內建狄仁杰 AI,使用智能體對抗測試對手。
下圖顯示了每個智能體打敗測試對手的時間長度(單位為幀)(如果對手贏了,則顯示為 20,000 幀)。在與這些共同對手的戰(zhàn)斗中,F(xiàn)BTS 顯著優(yōu)于 DPI、AVI、SL 和游戲內建 AI。
但是,F(xiàn)BTS 僅稍微超出 NR 的表現(xiàn)(這并不令人驚訝,因為 NR 是另外一個也使用 MCTS 的智能體)。研究者的第二組結果幫助可視化了 FBTS 和四個基線的對決(全部都是 FBTS 獲勝):下圖顯示了 FBTS 智能體及其對手的金幣比例,橫軸為時間。
王者榮耀游戲中英雄對敵人造成傷害或者戰(zhàn)勝敵人時,都會得到金幣,因此金幣比例大于 1.0(高出紅色區(qū)域)表示 FBTS 的良好性能。如圖所示,每個游戲結束時 FBTS 的金幣比例都在 [1.25, 1.75] 區(qū)間內。
同時也展示出幾種智能體戰(zhàn)勝其他射手英雄所用時間(以幀為單位,即幀的數(shù)量),數(shù)字越小越好。其中 FBTS 為新研究提出的智能體。