多圖詳解 DeepMind 的超人類水準《星海爭霸》AI「AlphaStar」

作者 | 發布日期 2019 年 01 月 25 日 17:05 | 分類 AI 人工智慧 , Google , 電子娛樂 line share follow us in feedly line share
多圖詳解 DeepMind 的超人類水準《星海爭霸》AI「AlphaStar」


英國當地時間 24 日,DeepMind 在倫敦線上直播,向全世界的遊戲 AI 研究人員及遊戲愛好者介紹 AI 研發最新進展。

參加直播的 DeepMind 研究人員是 DeepMind 團隊聯合研發負責人 Oriol Vinyals 和 David Silver,後者也是 AlphaGo 計畫的核心開發人員,外界對他應該比較熟悉。

▲ Oriol Vinyals(左)與 David Silver。

DeepMind 的《星海爭霸 2》AI 名為「AlphaStar」,命名方式正如之前的圍棋 AIAlphaGo」及蛋白質摺疊計算 AIAlphaFold」。

DeepMind 介紹,AlphaStar 操作神族(Protoss),2018 12 10 日以 5:戰績打敗了 Team Liquid 的職業《星海 2》選手 TLO,然後經過更多訓練後,12 19 日再次以 5:完勝戰績打敗了同一戰隊的職業選手 MaNa。直播現場重播、解說其中數場比賽。

AlphaStar 展現出職業選手般成熟的比賽策略,以及超越職業選手水準的微操作,甚至可在地圖上多地點同時展開戰鬥(人類選手在這種狀況下會吃不少虧)。

▲ 職業選手式的建築布局,並快速派出偵查兵探索地圖及對方基地。

▲ AlphaStar 會製造大量工人,快速建立資源優勢(超過人類職業選手的 16 個或 18 個上限)。

▲ AlphaStar 的追獵者從三面圍攻人類選手 MaNa 的不朽者。

▲ AlphaStar 控制的兩個追獵者黑血極限逃生。

直播時 DeepMind 還再次讓 AlphaStar 與 MaNa 現場比賽。這次比賽的 AlphaStar 是重新訓練的新版本,需要自己控制視角(不像之前版本可直接讀取地圖所有可見內容)。這次 MaNa 終於取得勝利。

《星海爭霸》AI 背景

從以圍棋為代表的完全資訊博弈/遊戲被 AlphaGo 攻克、取得超出人類頂尖棋手水準之後,研究人員立刻向非完全資訊博弈發起更猛烈的進攻。典型的非完全資訊博弈如德州撲克,玩家需在看不到對手牌面的狀況下決策,CMU 的德撲 AI 論文也拿到 NIPS 2017 最佳論文獎。

另一方面,深度學習的研究人員也希望借助深度強化學習的力量探索更複雜的博弈/遊戲。德州撲克顯然不夠難,德撲 AI 之父表示沒有用到任何深度學習;再看圍棋,雖然圍棋可能出現的局面總數是天文數字,但每回合雙方只需選擇在棋盤某處落一顆棋即可。相比之下,現代競技類電子遊戲的移動空間就複雜得多,比賽可有 個以上玩家參與、每個玩家可同步行動、每個行動有不同時間長短、位移和移動都是空間連續,攻擊防禦技能等物品也有很多變化。

隨著當年的狂熱玩家如今成為電腦科學領域的研究人員,電子競技遊戲 AI 研發也快速分出兩大主要陣營:《星海爭霸/星海爭霸 2》,以及 DOTA 2。兩者都有廣泛群眾基礎,玩家對遊戲 AI 喜聞樂見,也有許多高水準的職業選手可與 AI 切磋學習。

雖然都是 RTS (即時戰略)遊戲,都需要在收集資源和打仗間找到平衡,但星海和 DOTA 2 也有不少區別。星海需要控制多種不同類別的單位,這些單位有各自的運動和攻擊特點,DOTA 2 可從頭到尾只控制同一個英雄;星海每一方只有一位玩家,而 DOTA 2 每一方有 5 位玩家。因此遊戲策略和執行區別也讓星海 AI 和 DOTA 2 AI 研究走出不同的發展路線。

截至本次比賽前,《星海爭霸AI 和 DOTA 2 AI 研究領域已見識過的最強 AI 分別來自三星和 OpenAI:

  • 2018 AIIDE《星海爭霸》AI 挑戰賽共有全世界 27 支團隊帶著 AI 參賽,獲得冠軍的人族 botSAIDA」來自三星。這個 bot 的核心特點是有一個穩定的遊戲策略,會首先考慮防守,然後在遊戲中期伺機一波帶走對方。這種策略是從南韓職業星海選手學到的。這個 bot 去年時還無法擊敗職業選手。
  • 《星海爭霸》AI 普遍大量使用固定策略和手工規則,三星 bot 應用一些機器學習技術來幫助控制單位、探索地圖,開發團隊也嘗試更應用機器學習技術。參加同一個比賽的 Facebook 蟲族 botCherryPi」大量應用機器學習技術,但只獲得第二名。
  • 2018 月,OpenAI 舉行線下比賽測試自己的 DOTA 2 AI 系統「OpenAI Five」,在較多比賽限制的情況下對陣歐美前職業選手組成的團隊取得勝利,在稍後 DOTA 2 國際邀請賽 Ti8 對陣中國(前)職業選手組成的團隊時失敗。這之後 OpenAI 持續不斷改進,並聲稱後來的某版已大幅超越之前比賽的版本。
  • OpenAI Five」是一套精心設計的深度強化學習系統,由 個獨立神經網路分別控制 個英雄。研究人員使用許多技巧啟動 AI 學習 DOTA 2 各種行為,也設計超參數幫助網路學習團隊合作;但比賽過程中 AI 之間沒有直接溝通。

AlphaStar 技術介紹

活動預告文中,盤點了之前 DeepMind 在星海 2 AI 研究的動向。以深度強化學習著稱的人工智慧企業,如今我們見到的 DeepMind《星海爭霸 2AIAlphaStar」自然毫不意外是一套基於深度強化學習的系統。

▲ 2018 12 月比賽,觀戰室的 Oriol Vinyals David Silver(看出來中間是誰了嗎)。

AlphaStar 模型設計

AlphaStar 是一個把遊戲看作長串列建模學習工作的強化學習 AI,模型設計也就以長串列建模為能力為核心。模型從遊戲介面接收的資料是單位清單和這些單位的屬性,經過神經網路計算後匯出遊戲執行的指令。這個神經網路的基礎是 Transformer 網路,並結合一個深度 LSTM 網路核心、一個帶指標網路的自動回歸策略頭,以及一個中心化的評分基準。這網路架構是 DeepMind 對複雜串列建模工作的最新思考結果,他們也相信這先進模型可在其他需要長串列建模、有很大行動空間的機器學習工作(比如機器翻譯、語言建模和視覺表示)同樣發揮出優秀的表現。

網路設計的相關論文:

AlphaStar 訓練策略

AlphaStar 的初始訓練策略與早期 AlphaGo 相同,DeepMind 研究員首先用人類比賽的 replay 監督學習訓練模型,以模仿學習的思路讓模型快速學到高級玩家在星海天梯使用的基礎策略和微操作。這時的 AlphaStar 就能以 95% 的勝率打敗《星海爭霸 2內建的「精英」等級 AI(對比 OpenAI 的 DOTA 2 AI 是完全從零開始的強化學習,初始階段花了很多時間在無意義的遊戲操作)。

下面當然就是強化學習的自我對弈、繼續提升水準階段了,這也是和 AlphaGo 的訓練策略不同的地方。之前介紹過,AlphaGo 自我對弈階段的棋局是由所有之前更新過程的表現最好版本生成,也就是說每時刻都有一個「最好的版本」,也不斷搜尋比前輩還好的版本替換。但對《星海爭霸》,DeepMind 研究員認為不同的優秀策略之間可相互剋補,沒有哪個策略可完勝其他策略。所以這次他們分別更新、記錄許多不同版本的網路(合稱為 AlphaStar league)。

如上圖,AlphaStar 用人類資料初始訓練後,繼續進行多輪 AlphaStar league 自我對戰,每輪都會在之前數個較強的版本基礎上分叉;分叉前的版本會固定參數保留下來,一直參與後續多輪自我對戰;不同版本也可能會安排不同對戰策略和學習目標。這樣不斷提升網路水準、提高對戰難度的同時,也保留足夠多樣性。根據每輪自我對戰的結果,每個網路參數都會更新;這種做法來自群體強化學習的想法,保證持續穩定的表現提升,且很新的版本也不會「忘記」如何擊敗很早的版本。

群體自我對弈的過程會產生許多策略。有些策略僅細微改善早期策略,也有一些策略會有全新的建造順序、單位組合、微操作;能穩定擊敗早期策略的策略也開始出現。比如 AlphaStar league 自我對戰早期,快速 rush 的策略有較高勝率;但隨著訓練過程持續,其他策略開始展現更高勝率,比如用更多工人快速擴大基地,獲取更多資源後建立經濟優勢;或派幾個兵去對方基地騷擾,獲得發展速度的優勢。這種策略更換演化也和人類選手數年摸索之路非常類似。如下圖,隨著總訓練時間越來越長,AI 平均使用的單位數目也越來越多。

多輪自我對戰結束後,研究人員會以 AlphaStar league 的 Nash 分散取樣出一個版本,當作訓練結束後最終得到的 AI。這做法可得到已發現的多種策略綜合最優解。

據 DeepMind 介紹,擊敗 TLO(蟲族選手操作神族,並不是他最佳水準)和 MaNa 的 AlphaStar 版本分別來自第 天和第 14 天的自我對戰(如下圖),實際上觀賽選手和遊戲解說也都注意到兩次比賽 AlphaStar 的變化。

保證策略多樣性的努力

DeepMind 在技術介紹部落格提到,為了讓 AlphaStar league 有盡量高的多樣性,他們有意識地為不同 AI 設定不同的學習目標(這也符合人類常識,簡單的隨機擾動帶來的多樣性變化非常有限)。有的 AI 要專門針對擊敗某特定 AI 學習,或為另一些 AI 設定其餘內部動機,比如具體透過建造某種單位,擊敗所有使用某類策略的 AI。這些目標會在訓練時調節。DeepMind 可視化展示了最終形成的多種不同策略分散,如下圖。

AlphaStar league 自我對戰中,每個 AI 的網路權重都會根據強化學習演算法更新,最佳化各自不同的學習目標。權重更新規則來自新的、高效的策略離線 actor-critic 算法,其中含經驗重播、自我模仿學習和策略蒸餾的思想。

AlphaStar 算力需求

為了支援大批不同版本 AlphaStar AI 的對戰與更新,DeepMind 構建大規模可拓展的分散式訓練環境,使用最新的 Google  TPUv3,這訓練環境可支援成群 AlphaStar AI 實例同時執行;《星海爭霸 2遊戲主體也有數千個實例同步執行。AlphaStar league 的自我對戰訓練過程用了 14 天,每個 AlphaStar AI 使用 16 TPU,最終相當於每個 AI 都有長達 200 年的遊戲時間。訓練結束後的模型在單塊消費級 GPU 就可執行。

AlphaStar 的遊戲表現

由於 AlphaStar 首先從人類玩家資料模仿學習,以及神經網路有一定的計算延遲,操作頻率其實比人類選手還低一些。MaNa 的 APM 達平均 390AlphaStar 平均只有 280 左右。AlphaStar 的計算延遲平均為 350 毫秒(從觀察到行動)。相比之下,以往基於固定策略和手工規則的星海 AI 會保持上千 APM。

DeepMind 也根據 AlphaStar 和 MaNa 一局比賽製作 AI 視角和內部資訊的可視化示意圖,如下:展示神經網路接收到的初始資料(左下角小圖藍色點),神經網路內部的觸發狀況(中下方手邊小圖)、AI 考慮點擊和建造建築的地圖區域示意(中下方右側小圖,這也可以理解為 AI 的注意力關注的區域)、AI 作業輸出觸發情況(右下角小圖)及勝率預測。圖中同步展示 MaNa 視角,遊戲中 AlphaStar 看不到對手視角。

本文開頭提到,兩次以 5:擊敗 TLO 和 MaNa AlphaStar 無需控制視角,可直接讀取地圖所有可見內容。相比之下,人類選手顯然需要手動切換視角到地圖不同位置才能看到部分資訊。從這個角度說,AlphaStar 有欺負人類選手的嫌疑。DeepMind 也針對這點分析,他們的資料統計認為 AlphaStar 切換關注區域的速度約是每分鐘 30 次,這個次數和人類職業選手相當。

當然了,最好的辦法還是做實驗證明。所以 DeepMind 重新訓練了需要自己控制視角的 AlphaStar ,也就是直播時 MaNa 擊敗的那版(不過那版只訓練了 天,而不是初始版的 14 天)。這版的 AlphaStar 能抓取的資訊僅限於視角包含的部分,指令也一樣。DeepMind 提供的訓練圖表也顯示這帶來一定的表現下降(雖然仍能追上)。不過 DeepMind 認為表現下降的幅度非常輕微,也表現出 AlphaStar 的強大,主要還是歸功於學到有效的遊戲策略和強力微操作。

DeepMind 的展望

雖然這次模型用在《星海爭霸 2AI,但 DeepMind 認為這是夠複雜、有代表性的工作,用來解決這個工作的技術也可用在其他複雜問題。比如為長串列建模設計的網路架構,可用在更多不完全資訊的長串列建模工作,如天氣預測、氣候建模、語言理解等。他們也會繼續開發 AlphaStar 項目,並利用其中技術收穫,改善更多工作。

另一方面,DeepMind 認為此次設計策略也是通往安全、強健性 AI 的新路徑。現階段的 AI 系統一大難題就是難以預測系統會在多少種不同情況下失效,《星海爭霸的職業選手取勝 AI 也往往依靠搜尋並攻擊 AI 的弱點和錯誤。AlphaStar 提出的群體訓練策略就是一種更可靠、出錯可能性明顯減少的訓練策略。DeepMind 研究員認為,這種方法還有很多潛力可挖掘,也許未來會成為安全因素非常關鍵的重要一環。最終,DeepMind 希望建立真正智慧的系統,幫助人類解決最重要、最基礎的科學難題。

關於技術細節更細緻全面的介紹,DeepMind 正撰寫論文,並計畫投稿到期刊讓同行評議。共同期待正式論文的發表吧。

(本文由 雷鋒網 授權轉載;首圖來源:影片截圖)