首次!騰訊的人工智慧在星際爭霸2中打敗了「開掛」內建AI
OpenAI 一直致力於用深度強化學習戰勝《Dota 2》的人類玩家,目前 OpenAI Five 勉強達到了職業玩家水準。而由於遊戲主體數量更多(幾十到數百)、觀察空間以及動作空間巨大,《星際爭霸 II》的遊戲難度實際上比 Dota 2(5 個遊戲主體)更高,目前 AI 僅在「星際爭霸 II 學習環境」的多個小遊戲上達到專業水平。近日,騰訊 AI Lab 等利用深度強化學習開發出了能在《星際爭霸 II》全場遊戲中打敗「開掛」內建 AI 的智慧體(深海暗礁地圖,蟲族 1 對 1),這個「開掛」AI 的能力相當於暴雪戰網(Battle.net)天梯排名系統中前 30% - 50% 的人類玩家。
最近,深度學習與強化學習的結合為許多棘手問題的決策系統帶來了重大突破。深度強化學習從頭開始訓練(或從預訓練的模型開始訓練),饋入的(幾乎)都是原始的觀察特徵,在一大批應用中表現出了令人驚豔的效能,包括玩圍棋遊戲 [6, 7]、玩電子遊戲(如 Atari [8]、第一人稱射擊遊戲 Doom/ViZDoom [9, 10] 或 Quake/DeepmindLab [11]、Dota 2 [12])、機器人視覺運動控制 [13] 及機器人巡航 [14, 15] 等。學到的策略/控制器執行效果出人意料,有時甚至超越人類 [8, 7]。
然而,《星際爭霸 II》,這一被公認為最具挑戰性的 RTS 遊戲還一直沒有被 AI 攻克。在這款遊戲中,人類玩家必須控制數十至數百個單位(unit)來實現各種目的,如收集兩種資源、擴充套件額外資源、更新技術、組建其它單位、派遣隊伍進行攻擊或防禦、對戰鬥中的每個單位實施微觀管理等。這是《星際爭霸 II》比 Dota 2 難的關鍵原因之一,後者的單位總數要控制在 5 個以內(分別由 5 個玩家控制)。圖 1 是人類玩家互動的截圖。對手對玩家隱藏,除非對手的單位出現在玩家的視野範圍內。因此,玩家需要派遣單位偵察對手的策略。所有決策都要實時做出。在設計 AI 智慧體方面,《星際爭霸 II》包含很大的觀察空間、巨大的動作空間、區域性觀察、多玩家同時遊戲、長期決策等。所有這些因素都增加了《星際爭霸 II》的難度。為了擴充套件 AI 能力的邊界,Deepmind 和 Blizzard 聯合推出了「星際爭霸 II 學習環境」(StarCraft II Learning Environment,SC2LE)[16]。Deepmind 的近期研究成果 [16, 17] 顯示其 AI 智慧體能夠在多個小遊戲中達到職業選手的水平,但要在全場遊戲上達到專業水平還有很長的路要走。
圖 1:《星際爭霸 II》遊戲中人類玩家操控單位的截圖。
為了在全場遊戲中開展研究,本文作者將研究限制在以下環境中:深海暗礁地圖上的 1 對 1,蟲族對蟲族。他們開發了兩個 AI 智慧體——智慧體 TStarBot1 基於平面動作(flat action)的深度強化學習,智慧體 TStarBot2 基於分層動作(hierarchical action)的規則控制器。TStarBot1 和 TStarBot2 都能夠在全場遊戲中擊敗水平從 1 級到 10 級的內建 AI 智慧體。注意,8、9、10 級內建 AI 都作弊了:8 級擁有對整個地圖的完整視角;9 級的資源收穫增加,而 10 級則前兩者都有。另外,根據《星際爭霸 II》論壇裡的一些非正式討論,10 級內建 AI 智慧體被估計為白金級至鑽石級 [1],相當於暴雪戰網(Battle.net)Leagues 排名系統中排名前 30% - 50% 的人類玩家。
具體而言,TStarBot1 基於「平面」動作建模,它會展平動作結構並生成一系列離散的動作。通過這種方式,TStarBot1 能馬上為任何現成的 RL 演算法做好準備,並將離散動作作為輸入。TStarBot2 基於「深度」動作建模,這令我們可以手動指定動作的層級。「深度」建模直觀上更好地捕捉了動作依賴關係,並具有倍增的表達能力。然而,由於複雜的分層 RL 可能會參與其中,訓練將更具挑戰性。請注意這種權衡,在這項初步研究中,研究者為 TStarBot2 採用了基於規則的控制器。
論文:TStarBots: Defeating the Cheating Level Builtin AI in StarCraft II in the Full Game
論文連結:https://arxiv.org/pdf/1809.07193.pdf
摘要:《星際爭霸 II》(SCII)被公認為是目前最具挑戰性的即時戰略(RTS)遊戲,因為它具有很大的觀察空間、巨大的(連續和無限)動作空間、區域性觀察、多玩家同時遊戲模式、長期決策等。為了擴充套件 AI 的能力邊界,DeepMind 和暴雪聯合推出了「星際爭霸 II 學習環境」(SC2LE)——一個設計複雜決策系統的測試平臺。SC2LE 提供了一些小型遊戲,如 MoveToBeacon、CollectMineralShards、DefeatRoaches。雖然在這些遊戲中,一些 AI 智慧體達到了專業玩家的水平,但它們離在全場遊戲中達到專業水平還有很遠的距離。為了啟動全場遊戲中的調研,我們開發了兩個 AI 智慧體:智慧體 TStarBot1 基於平面動作結構上的深度強化學習;智慧體 TStarBot2 基於分層動作結構上的規則控制器。TStarBot1 和 TStarBot2 都能在全場遊戲中擊敗水平 1 到 10 級的內建 AI 智慧體(在深海暗礁地圖裡,蟲族 1 對 1),注意在全場遊戲中,8、9、10 級的智慧體作弊了:8 級擁有對整個地圖的完整視角;9 級的資源收穫增加,而 10 級則前兩者都有。具體來說,TStarBot1 採用一組平面巨集觀動作,在這些動作上,單個控制器通過強化學習進行訓練;TStarBot2 採用分級組織的巨集微觀混合動作,並依賴硬編碼專家規則的控制器。
據我們所知,這是第一次公開調查能夠在《星際爭霸 II》全場遊戲中擊敗內建 AI 的智慧體。程式碼將開源 [3]。我們希望本研究提出的框架在這些方面有益於未來的研究:1)成為混合系統的基線,在該系統中越來越多的學習模組將逐漸被採用,規則仍然被用來表達難以學習的邏輯;2)生成用於模仿學習的軌跡;3)成為自我對抗(self-play)訓練的對手。
TStarBot1:基於巨集觀動作的強化學習智慧體
圖 2:基於巨集觀動作和強化學習的智慧體架構概覽。
如圖 2 所示,頂部:基於巨集觀動作的可學習控制器;底部:165 個可執行巨集觀動作,硬編碼了遊戲規則的先驗知識(例如,技能樹),並對控制器隱藏了瑣碎的決定因素(例如,構建佈局)和一些執行細節。圖中還展示了兩個巨集觀動作的定義作為示例:BuildRoachWarren 和 ZoneAAttackZoneI。
表 1:165 個巨集觀動作的總結:分類、示例和硬編碼規則/知識。在最右列,RandUnit 表示隨機選擇一個主體單元; RandPlacer 表示隨機選擇一個有效的放置座標。
TStarBot2:一個基於分層巨集觀-微觀行動的智慧體
基於巨集觀動作的智慧體 TStarBot1 可能存在侷限。儘管巨集觀動作可以按功能分組,單個控制器必須基於整個動作集合來工作,其中這些動作在每個決策步驟是互相排斥的。此外,當預測採取哪個策略時,共同觀察(對於動作組是不可知的)被饋送給控制器。這給控制器訓練帶來了不必要的困難,因為不想要的資訊可能會影響觀察和動作。另一方面,巨集觀動作本身並不對微觀動作(即,每個單元的控制)控制產生影響,當我們想使用多智慧體型別的方法時,這變得很不靈活。因此,我們嘗試了一系列不同的行動,如圖 3 所示。
圖 3:巨集觀-微觀分層動作總覽
寫程式碼的時候,我們將每個控制器封裝為一個模組。模組以類似於 UAlbertaBot 的方式組織,如圖 4 所示。
圖 4:基於巨集觀-微觀分層行動的智慧體模組圖。
實驗
我們在 1v1 蟲族對蟲族的全場比賽中分別測試 TStarBot1 和 TStarBot2 智慧體。具體來說,智慧體需要和等級 1(最簡單)到等級 10(最困難)的內建 AI 進行比賽。我們使用的地圖是深海暗礁模式,據報道在該地圖中,在原始 PySC2 觀察/動作上,一般 A3C 智慧體與內建 AI 進行人族 vs 人族全場比賽時表現不佳。
圖 5:TStarBot1 使用 PPO 演算法的學習曲線。注意 TStarBot1 - PPO 在大約 30M 幀後開始打敗等級 2(簡單)的內建 AI(至少 75% 的勝率),打敗等級 4(困難)、等級 6(非常困難)、等級 9(資源作弊)、等級 10(瘋狂作弊)則分別是在大約 250M 幀、800M 幀、2000M 幀、3500M 幀的時候。
表 2:TStarBot1 和 TStarBot2 智慧體在不同難度等級下和內建 AI 比賽的勝率(%)。對於 TStarBot1,我們報告了使用 DDQN、PPO 和隨機策略的比賽結果。每個勝率通過對使用不同的隨機種子在 200 場比賽的結果取平均值得到,其中允許使用戰爭迷霧。
表 3:TStarBot vs 人類玩家。每個項表示 TStarBot1/TStarBot2 的勝利/失敗場數。
圖 6:關於 TStarBot1 戰爭時機的學習策略:Rush 和經濟優先。
ofollow,noindex" target="_blank">理論 騰訊AI Lab 強化學習 星際爭霸
相關資料
Deep reinforcement learning
強化學習(Reinforcement Learning)是主體(agent)通過與周圍環境的互動來進行學習。強化學習主體(RL agent)每採取一次動作(action)就會得到一個相應的數值獎勵(numerical reward),這個獎勵表示此次動作的好壞。通過與環境的互動,綜合考慮過去的經驗(exploitation)和未知的探索(exploration),強化學習主體通過試錯的方式(trial and error)學會如何採取下一步的動作,而無需人類顯性地告訴它該採取哪個動作。強化學習主體的目標是學習通過執行一系列的動作來最大化累積的獎勵(accumulated reward)。 一般來說,真實世界中的強化學習問題包括巨大的狀態空間(state spaces)和動作空間(action spaces),傳統的強化學習方法會受限於維數災難(curse of dimensionality)。藉助於深度學習中的神經網路,強化學習主體可以直接從原始輸入資料(如遊戲影象)中提取和學習特徵知識,然後根據提取出的特徵資訊再利用傳統的強化學習演算法(如TD Learning,SARSA,Q-Learnin)學習控制策略(如遊戲策略),而無需人工提取或啟發式學習特徵。這種結合了深度學習的強化學習方法稱為深度強化學習。
來源: Scholarpedia
Imitation learning
模仿學習(Imitation Learning)背後的原理是是通過隱含地給學習器關於這個世界的先驗資訊,就能執行、學習人類行為。在模仿學習任務中,智慧體(agent)為了學習到策略從而儘可能像人類專家那樣執行一種行為,它會尋找一種最佳的方式來使用由該專家示範的訓練集(輸入-輸出對)。
來源:機器之心
Logic
人工智慧領域用邏輯來理解智慧推理問題;它可以提供用於分析程式語言的技術,也可用作分析、表徵知識或程式設計的工具。目前人們常用的邏輯分支有命題邏輯(Propositional Logic )以及一階邏輯(FOL)等謂詞邏輯。
來源:機器之心
prior knowledge
先驗(apriori ;也譯作 先天)在拉丁文中指“來自先前的東西”,或稍稍引申指“在經驗之前”。近代西方傳統中,認為先驗指無需經驗或先於經驗獲得的知識。先驗知識不依賴於經驗,比如,數學式子2+2=4;恆真命題“所有的單身漢一定沒有結婚”;以及來自純粹理性的推斷“本體論證明”
來源: 維基百科
Reinforcement learning
強化學習是一種試錯方法,其目標是讓軟體智慧體在特定環境中能夠採取回報最大化的行為。強化學習在馬爾可夫決策過程環境中主要使用的技術是動態規劃(Dynamic Programming)。流行的強化學習方法包括自適應動態規劃(ADP)、時間差分(TD)學習、狀態-動作-回報-狀態-動作(SARSA)演算法、Q 學習、深度強化學習(DQN);其應用包括下棋類遊戲、機器人控制和工作排程等。
來源:機器之心
Deep learning
深度學習(deep learning)是機器學習的分支,是一種試圖使用包含複雜結構或由多重非線性變換構成的多個處理層對資料進行高層抽象的演算法。 深度學習是機器學習中一種基於對資料進行表徵學習的演算法,至今已有數種深度學習框架,如卷積神經網路和深度置信網路和遞迴神經網路等已被應用在計算機視覺、語音識別、自然語言處理、音訊識別與生物資訊學等領域並獲取了極好的效果。
來源: LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. nature, 521(7553), 436.

機器之心編輯
推薦文章