DeepMind:星際爭霸2:強化學習新挑戰(論文翻譯)

星際爭霸2:強化學習新挑戰

原文下載鏈接:https://deepmind.com/documents/110/sc2le.pdf

整個論文分爲:

摘要(Abstract)

1.介紹(Introduction)

2.相關工作(Related work)

3.sc2le環境(The SC2LE Environment)

4.強化學習:基線代理(Reinforcement Learning : Baseline Agents)、

5.錄像監督學習(Supervised Learning from Replays)

6.結論和未來工作(Conclusions & Future Work)

 

摘要

本文介紹了SC2LE(星際爭霸II學習環境),這是一個基於星際爭霸II遊戲的強化學習環境。該領域對強化學習提出了新的巨大挑戰,代表了比大多數先前工作中考慮的更具挑戰性的一類問題。這是多個玩家互動的多代理問題;由於地圖的部分觀察性,信息不完善;它有一個大的行動空間,涉及數百個單位的選擇和控制;它有一個大的狀態空間,必須僅從原始輸入特徵層觀察;並且它延遲了信度分配,需要數千個步驟的長期策略。我們描述了星際爭霸II的觀察,動作和獎勵規範並提供了基於Python接口的開源,用於與遊戲引擎進行通信。除了主要的遊戲地圖,我們還提供一系列小遊戲,專注於星際爭霸II遊戲的不同元素。對於主要遊戲地圖,我們還提供來自人類專家玩家的遊戲回放數據的附帶數據集。我們給出了根據用這些數據訓練的神經網絡的初始基線結果,以預測遊戲結果和玩家行爲。最後,我們提出應用於星際爭霸II領域的規範化深度強化學習代理的初始基線結果。在小遊戲中,這些代理學會達到與新手玩家相當的遊戲水平。但是,當對完整遊戲進行訓練時,這些代理無法取得明顯的進展。因此,SC2LE爲探索深度強化學習算法和架構提供了一個新的,具有挑戰性的環境。(信度分配問題與強化學習有關。 假設你正在玩象棋遊戲,每次移動都會給你零獎勵,直到最後一次移動。 最後的移動決定了你是否贏了比賽。 如果你贏了比賽,你將獲得+1獎勵。但是哪一步(或一系列動作)導致了你的勝利? 也許你的第一步將獲勝的機率提高了25%,但第二步實際上減少了你的機會。 在未來的迭代中,你想要進行更多的移動,比如移動棋子1,但不太喜歡移動棋子2。不幸的是,你在遊戲結束時只獲得+1,因此你不知道每個移動如何影響你的遊戲,這是就是信度分配問題。)

 

 

 

  1. 介紹

語音識別[7],計算機視覺[15]或自然語言處理[37]等領域的最新進展可以歸因於深度學習的復興[16],它爲使用神經網絡的非線性函數逼近提供了強大的工具。這些技術在強化學習問題上也證明是成功的,在Atari [20],圍棋[31]遊戲,三維虛擬環境[3]和模擬機器人領域[17,28]中取得了顯著的成功。這種成功的大部分是由具有適當困難度的模擬領域的可用性所刺激的。基準測量對於測量和因此推進深度學習和強化學習(RL)研究至關重要[4,20,27,8]。因此,因此,確保超出當前方法能力的領域的可用性至關重要。。

在本文中,我們介紹了基於星際爭霸II視頻遊戲的SC2LE1(星際爭霸II學習環境),這是一個新的,更具挑戰性的強化學習領域。 “星際爭霸”是一款即時戰略(RTS)遊戲,它結合了快節奏的微操與高水平的計劃和執行能力的需求。星際爭霸I,星際爭霸II和開展電子競技活動的先鋒和保持者,有着數以百萬計的休閒玩家和高競技水平的職業玩家。因此,擊敗頂級人類玩家將成爲一個有意義且可衡量的長期目標。

從強化學習的角度來看,星際爭霸II還提供了一個無與倫比的機會來探索許多具有挑戰性的新領域。首先,這是一個多智能體問題,其中有幾個參與者競爭影響力和資源。它也是較低級別的多智能體:每個玩家控制數百個單位,需要協作以實現共同目標。其次,它是一個不完善的信息遊戲。僅通過本地鏡頭部分地觀察地圖,必須主動移動該鏡頭以便玩家整合信息。此外,還有“戰爭迷霧”,模糊了地圖中未被訪問的區域,有必要積極探索地圖,以確定地圖的狀態。第三,動作空間和多樣性。玩家在大約108種可能性的組合空間中進行選擇,使用點擊式界面。有許多不同的單位和建築類型,每個都有獨特的動作。此外,隨着玩家通過可能科技樹的發展,這套動作規則也會有所不同。第四,遊戲通常持續數千幀和動作,並且玩家必須做出早期決定(例如構建哪些單位),其結果可能直到遊戲後期(玩家的軍隊相遇時)才能看到,導致來自信度分配和探索所帶來的豐富挑戰。

本文介紹了一個接口,旨在使星際爭霸中的強化學習更直接:觀察和動作是根據低分辨率網格特徵定義的;獎勵是基於星際爭霸II引擎對內置計算機對手的得分;除了完整的遊戲地圖,還提供了幾個簡化的小遊戲。未來版本將擴展接口以應對星際爭霸II的全面挑戰:觀察和行動將根據RGB像素;代理將根據多人遊戲中的最終贏/輸結果進行排名;並且評估將僅限於在具有競爭性的在人類遊戲中使用的完整遊戲地圖。

此外,我們提供了一個基於人類玩家記錄的遊戲回放的大型數據集,隨着人們玩遊戲,這將增加到數百萬次回放。我們相信開源接口和這個數據集的結合將提供一個有用的基準,不僅可以測試現有的和新的強化學習算法,還可以測試感知,記憶和注意力,序列預測和建模不確定性等有趣方面,所有這些都是機器學習研究的活躍領域。

在星際爭霸的原始版本中已經存在幾種用於強化學習的環境[1,33,32]。我們的工作在以下幾個方面與以前的環境有所不同:它關注的是更新版本的星際爭霸2;觀察和動作是基於人類界面而不是底層程序化的;並且由Windows,Mac和Linux上的遊戲開發者暴雪娛樂直接支持。

目前最好的人造星際爭霸機器人,基於內置AI或以前的環境研究,可以被全部業餘玩家擊敗[cf.6,and later versions of the AIIDE competition]。這一事實加上星際爭霸有趣的遊戲特性和大型玩家羣,使其成爲探索深度強化學習算法的理想研究環境。

 

 

2.相關工作

計算機遊戲爲評估和比較在標準化任務中的不同的學習和計劃方法提供了一個引人注目的解決方案,並且是人工智能(AI)研究的主要挑戰。這些遊戲具有多重優勢:1。他們有明確的客觀成功衡量標準; 2.計算機遊戲通常輸出豐富的觀測數據流,這是深度網絡的理想輸入;它們在人類看來很有難度且有趣。這確保了研究人員不會調整挑戰本身,以使開發算法的問題更容易; 4.遊戲被設計成可以在任何地方運行,無論是接口還是遊戲引擎,這使研究者很方便地分享;

在這裏插入圖片描述

 

圖1:星際爭霸II學習環境SC2LE,其組件插入一個神經網絡代理。

 5.在某種程度下,一羣狂熱的人類玩家的存在使得有可能對高度熟練的個人進行基準測試.6.在遊戲模擬中,他們可以精確控制,並且可以大規模運行。

也許推動強化學習研究的遊戲的最好的例子是街機學習環境(ALE [4]),在此環境之下,可以對Atrari電子遊戲進行簡單且可復現的實驗。這個標準化的任務集合到現在一直是AI研究領域的翹楚。這個環境的遊戲分數可以直接測量和比較不同的算法。 ALE是人工智能[30]豐富的視頻遊戲基準線傳統中的一個突出例子,包括超級馬里奧[35],喫豆小姐[26],毀滅戰士[13],虛幻競技場[11],以及一般視頻遊戲框架[29,5]和比賽[23]。 RTS遊戲類型吸引了大量的人工智能研究,包括最初的星際爭霸(母巢之戰)。我們推薦Ontanon等人的研究 [21]和Robertson&Watson [25]的概述。許多研究方向集中於遊戲的特定方面(例如,構建順序或戰鬥微管理)或特定的AI技術(例如,MCTS規劃)。我們還沒有發現用端到端RL方法解決完整遊戲的成果。由於豐富的輸入和輸出空間以及非常稀疏的獎勵結構(即遊戲結果),解決完整版本的RTS遊戲似乎令人生畏。到目前爲止,星際爭霸的標準API是BWAPI [1]和相關的包裝器[32]。 RTS遊戲的簡化版本也已經開發用於AI研究,最著名的是microRTS3或更新的ELF [34]。此外,已經在例如微管理迷你遊戲(例如,[22,36])或學習遊戲結果或來自重放數據的構建順序[9,12]中探索了基於學習的代理。

 

 

 

3.SC2LE環境

 

我們論文的主要貢獻是SC2LE的發佈,它將星際爭霸II作爲一個研究環境。該版本包含三個子組件:Linux系統StarCraft II二進制文件,StarCraft II API和PySC2(參見圖1)。

星際爭霸II API4允許對星際爭霸II進行編程控制。該API可用於啓動遊戲,地理觀測,拍攝和回放播放。這個版本可以在Windows和Mac上使用,但是我們還提供了一個在Linux上運行的有限制的版本,尤其適用於機器學習和分佈式用例。

使用這個API,我們們構建了PySC25,一個爲強化學習代理優化的開源環境。PySC2是一個Python環境,它包含了星際爭霸II API,以簡化Python強化學習代理和星際爭霸II之間的交互。PySC2定義了一個動作和觀察規範,幷包括一個隨機代理和一些腳本代理作爲例子。它還包括一些迷你遊戲作爲挑戰和可視化工具,以瞭解代理可以看到和做什麼。

星際爭霸II每秒更新遊戲模擬進度以16(“正常速度”)或22.4(“快速”)時間。遊戲主要是確定性的,但它確實有一些隨機性,這主要是出於美觀的原因;兩個主要的隨機元素是武器攻擊速度和更新順序。可以通過設置隨機種子來移除/減輕這些隨機性源。我們現在描述用於本文所有實驗的環境。

(3 https://github.com/santiontanon/microrts

4 https://github.com/Blizzard/s2client-proto

5https://github.com/deepmind/pysc2)

 

圖2:PySC2查看器在左側顯示人類可解釋的遊戲視圖,在右側顯示特徵層的彩色版本。 例如,地形高度,戰爭迷霧,行軍,攝像機位置和玩家身份,這些信息顯示在特徵層圖的頂行。 可以在https://youtu.be/-fKUyT14G-8找到視頻。

在這裏插入圖片描述

 

 

 

3.1 完整遊戲描述與回饋結構

在星際爭霸II的完整1v1遊戲中,兩個對手在地圖上出生,地圖上其中包含資源和其他元素,如坡道,瓶頸路段和島嶼。要贏得比賽,玩家必須:1.積累資源(晶體礦和瓦斯),2.建造生產建築,3.積聚軍隊,4.消滅所有對手的建築物。遊戲通常持續幾分鐘到一小時,並且在遊戲中採取的早期動作(例如,建造哪些建築物和單元)具有長期後果。玩家擁有不完善的信息,因爲他們只能看到他們擁有單位的地圖部分。如果他們想要了解並對他們的對手戰略做出反應,他們必須派出部隊進行偵察。正如我們在本節後面所述,動作空間也非常獨特且具有挑戰性。

大多數人在線對抗其他人類玩家。最常見的遊戲是1v1,但團隊遊戲也是可能的(2v2,3v3或4v4),以及人數不平衡團隊遊戲或超過兩個團隊的更復雜的遊戲。在這裏,我們專注於1v1格式,這是最受歡迎的競爭星際爭霸形式,但未來可能會考慮更復雜的情況。

 “星際爭霸II”包含一個內置的AI,它基於一套手工製作的規則,並且有10個難度級別(其中三個最強的AI通過獲取額外資源或視覺特權作弊)。不幸的是,他們編寫腳本的事實意味着他們的策略相當狹窄。因此,它們很容易被利用,這意味着人類往往會很快失去對它們的興趣。然而,對於純粹學習的方法來說,它們是合理的第一個挑戰,例如我們在第4和第5節中研究的基線;它們比隨機代理玩的要好得多,只需很少的計算資源就可以很快地運行,並提供一致的基線來進行比較。

我們定義了兩種不同的獎勵結構:在遊戲結束時收到的三元1(勝利)/ 0(平局)/ -1(失敗)(在比賽期間獲得全零獎勵)和暴雪得分。三元贏/平/輸分數是我們關心的真正獎勵。暴雪得分是玩家在遊戲結束時在勝利屏幕上看到的分數。雖然玩家只能在遊戲結束時看到這個分數,但我們在遊戲的每一步都可以訪問暴雪的得分,以便分數的變化可以用作強化學習的獎勵。它由當前研究的資源和升級的總和,以及當前存活和正在建造的單元和建築物所統計而來的分數總和。這意味着玩家的累積獎勵隨着更多的開採資源而增加,當丟失單位/建築物時減少,而所有其他行動(訓練單位,建築物和研究)不會影響它。暴雪得分不是零和,因爲它是以玩家爲中心的,它遠不如三元獎勵信號稀疏,並且它在某種程度上與輸贏相關。

 

 

 

 

3.2 觀察

星際爭霸II使用遊戲引擎,以3D形式呈現圖形。雖然利用模擬整個環境的底層遊戲引擎,但StarCraft II API目前不會渲染RGB像素。它會生成一組“特徵層”,這些圖像是從人類遊戲中看到的RGB圖像中抽象出來的,同時保持星際爭霸II的核心空間和圖形概念(見圖2)。

因此,主要觀察結果是以N×M像素呈現的特徵層集合(其中N和M是可配置的,儘管在我們的實驗中我們總是使用N = M)。這些圖層中的每一個都代表遊戲中的特定內容,例如:單位類型,生命值,所有者或可見性。其中一些(例如,生命點,高度圖)是標量,而其他(例如,可見性,單位類型,所有者)是分類的。有兩組要素圖層:小地圖是整個世界狀態的粗略表示,屏幕是對應於玩家屏幕視圖的世界子部分的詳細視圖,其中大多數動作執行。屏幕和小地圖都存在一些特徵(例如,所有者或可見性),而其他特徵(例如,單元類型和命中點)僅存在於屏幕上。有關所提供的所有觀察的完整描述,請參閱環境文檔6。

除了屏幕和小地圖之外,遊戲的人機界面還提供各種非空間觀察。這些包括收集的天然氣和礦物質的數量,當前可用的一系列行動(取決於遊戲背景,例如,選擇哪些單位),有關所選單位的詳細信息,構建隊列和運輸車輛中的單位。這些觀察結果是也由PySC2公開,並在環境文檔中有詳細描述。

在完整的遊戲中,屏幕使用高分辨率的全3D透視鏡頭進行渲染。這導致了複雜的觀察,單位越來越小,因爲它們在屏幕上變得“更高”,並且在後面可以看到比前面更多的世界空間。爲了簡化這一點,通過使用自上而下的正投影的相機渲染要素特徵圖層。這意味着要素圖層中的每個像素對應於完全相同的真實世界土地,因此所有單位都將是相同的大小,無論如何它們在哪裏。不幸的是,它還意味着要素層渲染與人類看到的不完全匹配。一個代理在前面看得多一點,在後面會看得少一點。這確實意味着人類在重放中所做的一些動作無法完全表現出來。

在將來的版本中,我們將公開一個渲染的API,允許代理從RGB像素玩遊戲。這將使我們能夠研究從原始像素學習到從特徵層學習的效果,並與人類遊戲進行更密切的比較。與此同時,我們使用要素圖層來玩遊戲,以驗證代理人沒有嚴重缺陷。雖然遊戲體驗明顯改變,但我們發現N,M≥64的分辨率足以讓人類玩家選擇並單獨控制小單位,如小狗。鼓勵讀者使用pysc2- play7嘗試這一點。另見圖2。

6https://github.com/deepmind/pysc2/blob/master/docs/environment.md 7https://github.com/deepmind/pysc2/blob/master/pysc2/bin/play.py

總結:在3.2Observation中論述了基於特徵層的agent是如何觀察遊戲的,儘量做到與人類觀察相近(公平遊戲,目的就是要求教會機器如何像人類一樣玩遊戲,甚至更好)。

 

 

 

3.3 動作

我們設計了環境動作空間,以儘可能地模仿人類觀察界面,同時保持一些強化學習環境中使用的一些慣例,例如Atari [4]。圖3顯示了由玩家和代理生成的一小段動作。

在這裏插入圖片描述

遊戲中的許多基本動作都是複合動作。例如,要在地圖上移動選定的單位,玩家必須首先選擇通過按m移動它,然後可能選擇通過按住shift來排列動作,然後單擊屏幕或小地圖上的某個點來執行操作。而不是要求代理按照三個獨立動作的順序生成這3個按鍵/鼠標按下,我們將其作爲原子複合函數動作:move screen(queued, screen)。

更正式地,動作a表示爲函數標識符a0的組合以及函數標識符所需的參數序列:a1,a2,...,aL。例如,考慮通過繪製矩形來選擇多個單位這時的操作時select_rect(select add,(x1,y1),(x2,y2))。第一個參數select_add是二進制的。其他參數是定義座標的整數 - 它們的允許範圍與觀察的分辨率相同。此操作以[select rect,[[select add],[[x1,y1],[x2,y2]]]的形式提供給環境。爲了表示完整的動作空間,我們定義了大約300個動作函數標識符,其中包含13種可能類型的參數(從二進制到指定離散2D屏幕上的點)。有關通過PySC2可用操作的更詳細說明和描述,請參閱環境文檔;有關一系列操作的示例,請參見圖3。

在星際爭霸中,並非每個遊戲狀態都可以使用所有操作。例如,移動命令僅在選擇單位時可用。人類玩家可以在屏幕上的“命令卡”中查看哪些操作可用。類似地,我們通過在每個步驟給代理的觀察提供可用操作的列表。執行不可用的操作被認爲是錯誤,因此代理應該過濾他們的操作選擇,以便僅採取合法的行動。人類通常每分鐘進行30到300次動作(APM),APM大致隨着玩家技能的提高而增加,專業玩家通常會超過500 APM。在我們所有的強化學習實驗中,我們每8個遊戲幀行動​​一次,相當於約180 APM,這對於中級玩家來說是一個合理的選擇。

我們相信這些早期的設計選擇使我們的環境成爲開發複雜強化學習代理的有希望的測試平臺。特別地,固定大小的特徵層輸入空間和類似人的動作空間對於基於神經網絡的代理是自然的。這與其他最近的工作[32,22]形成對比,其中游戲以單位/單位進行訪問,並且每個單元都單獨指定操作。雖然兩種界面風格都有優勢,但是PySC2提供瞭如下優點:

1.使從人類錄像中學習變得更簡單

2.沒有要求針對於每個單位超人類操作

3.agent和UI界面玩,並不是通過底層API。

 

 

總結:在3.3Actions中,首先簡述設計環境動作空間的目的是儘可能最小化與人類界面的動作空間的差別與此同時又使這種設計模式能運用到其他深度學習環境。然後介紹遊戲中的一些基礎的操作演習是由一系列的動作符合而成(例如建造建築)。接下來說明了,在不同遊戲狀態下,合法操作是不同的,代理通過過濾動作選擇來做出合法動作。其次,講清楚了agentAPM(每分鐘操作數)的問題,通過控制在每8幀的動作數使平均APM穩定在180左右,相當於人類中等水平。最後總結了PySC2的優點。Pysc2使代理的操作條件儘可能和人類玩家一致,鼓勵代理通過策略取勝。

 

 

3.4 小遊戲任務描述

爲了單獨研究遊戲的元素,併爲完整遊戲提供進一步細化的步驟,我們構建了幾個小遊戲。這些是小地圖上的重點場景,這些小地圖的構建目的是測試具有明確獎勵結構的動作子集和/或遊戲機制。與獎勵只是贏/輸/平的完整遊戲不同,迷你遊戲的獎勵結構可以獎勵特定行爲(如在相應的.SC2Map文件中定義的那樣)。

我們鼓勵社區使用強大的星際爭霸地圖編輯器構建mod或新的迷你遊戲。這不僅會讓小型遊戲任務種類更多而且會讓研究者們分享統一設置與評價標準,進而獲得更加直觀地獲得可比較的評價分數。受限制的動作集,自定義回饋方程或有時間限制在SC2Map文件中。       

圖3:人類在星際爭霸II上的行爲與PySC2顯示的行爲進行比較。我們將行動空間設計爲儘可能接近人類行爲。第一行顯示遊戲屏幕,第二行顯示人類操作,第三行顯示PySC2中的邏輯操作,第四行顯示環境公開的操作(以及紅色,代理在每個時間步驟選擇的內容) )。請注意,前兩列沒有“建造補給站”操作,因爲在這些情況下代理尚不可用,因爲必須先選擇工人。

 

因此,我們鼓勵用戶使用這種定義新任務的方法,而不是在代理進行自定義。

我們發佈的七個迷你遊戲如下:

1.MoveToBeacon:一個機槍拾礦,基於平常的貪婪策略。

2.CollectMineralShards:兩個機槍拾礦,效率高,分數高。

3.FindAndDefeatZerglings:三個機槍在地圖上搜尋並打敗小狗,需要移動鏡頭,效率高,分數高。

4.DefeatRoaches:打敗蟑螂,起始9個機槍對陣4只蟑螂,每打敗所有蟑螂獎勵5個機槍,又開始新的一輪,產生4個蟑螂,打敗一隻蟑螂加十分,死掉一個機槍減一分

5.ZerglingsAndBanelings:打敗狗和毒爆,打敗一個加五分(PS:看我用槍兵滾毒爆。2333

6. CollectMineralsAndGas:收集晶體礦和瓦斯,目的:在有限時間內收集儘可能多的礦和氣,其中包括生產更多的農民

7. BuildMarines:在有限的時間和動作集條件下生產更多的槍兵,動作包括生產農民,收集資源,建造補給站,建造兵營,訓練槍兵(人族開局)

以上均有時間限制。在線更詳細地介紹https://github. com/deepmind/pysc2/blob/master/docs/mini_games.md。

 

 

3.5內部回調接口

在這種情況下,利用接口可以同時看見在視野範圍內的所有單位的特徵而不用移動攝像頭,這被認爲是作弊。因爲這樣可以不用框選單位而同時操作所有單位,遠超人類界面所能做的操作。雖然機器學習用不着,但是被包括在發佈版本中,因爲社區研究可能會用的着(腳本代理或者可視化)。

 

 

3.6表現

我們經常可以比實時更快地運行環境。觀察的速度取決於幾個因素:地圖複雜性,屏幕分辨率,每個動作的非渲染幀數和線程數。

對於複雜的地圖(例如,完整的天梯地圖),計算主要受模擬速度的影響。較少採取行動,允許較少的渲染幀,減少計算,但收益遞減的速度相當快,意味着每個動作的超過8個步數的增益較少。花一些時間渲染高分辨率上並不傷,並且在並行線程中運行更多實例可以擴展的很好。

對於更簡單的地圖(例如,CollectMineralShards收集晶體礦),世界模擬速度非常快,因此渲染觀察界面很重要。在這種情況下,增加每個動作的幀數並降低分辨率會產生很大的影響。而瓶頸在於python解釋器,當在一個解釋器上運行大約在4個線程以上時,渲染效果變得消極。

在分辨率是64x64和每個動作8幀的速度的條件下,單線程的天梯地圖的遊戲速度從200到700遊戲步數每秒不等,這比實時速度快一個數量級。遊戲的實際速度取決於多重因素,包括:遊戲的階段、操作單位的數量、遊戲所運行的計算機。在收集晶體礦的地圖上,同樣的設置允許1600到2000遊戲步驟每秒。

總結:3.5講了原生API已經包含在裏面,我們搞機器學習用不着,有需要的自取。

3.6節主要講了觀察過程的速度控制問題,有很多因素會影響觀察的速度進而影響遊戲的進程。主要從小地圖和大地圖兩個方面論述了動作頻率、渲染高分辨率對遊戲效果的影響。意思是我們控制觀察速度方面已經摸透了,你也可以自己去研究和調試。

 

 

4.ReinforcementLearning:BaselineAgents強化學習:基線代理

這一節提供了一些用於校準地圖難題和證明已建立的RL算法至少在小型遊戲中可以學習有用的策略的基線結果,但是仍有很多挑戰。另外,我們還提供了兩個人類玩家的分數:一位遊戲測試者(新手級別)和一位星際爭霸大師(職業水平)

4.1介紹了重中之重————學習算法

在我們強化學習代理的的核心有着具有參數θ的深度神經網絡,這確定了πθ,πθ由輸入觀察St,輸出動作at確定

然後從環境中收到一個rt的回饋值。代理的目標是最大化返回值,其中γ是折扣因子。爲了表達地更清楚,我們假設策略僅僅以觀察St爲條件,但不失一般性,它可能以先前所有的狀態爲條件,例如通過一個我們接下來描述的一個隱藏的記憶狀態。

策略的參數通過使用A3C算法來學習。這種算法能在不同的環境中表現出最先進的結果。這是一種在E[Gt]上表現出近似梯度上升的策略梯度方法。A3C梯度下降被定義如下:

在這裏插入圖片描述

其中 vθ(s)是由同樣的網絡產生的預期返回的價值函數估值。與一次全部返回不同,這時我們在上面的梯度中可以使用n步返回Gt = ,其中n爲超參數。

最後一個術語是規則化策略以免熵變大,促進探索進程並且β和η是權衡不同損失成分重要性的超參數。若想獲取更多細節建議讀者參考原論文。

4.1總結:介紹了主要算法,神經網絡的一些參數設定,介紹了參數學習的參考算法A3C

 

 

4.2策略表示

正如第三節描述的一樣,API將動作顯示爲包含函數標識符a0和一組參數的嵌套列表a。因爲所有的參數包括屏幕和小地圖上的點的座標是離散的,所以參數π(a | s)的樸素參數化將需要數百萬個值來指定a上的聯合分佈,即使對於低空間分佈率。相反,我們建議使用鏈式規則,以自動迴歸的方式表示策略:

在這裏插入圖片描述

這種表示如果實施得當可以說是相當簡單了,因爲它把選擇一整個動作a的問題轉化爲對於每一個參數at一系列決策。注意,根據函數標識符a0,所需參數的數量L不同。一些動作(例如noop—action,無操作)不要求任何操作,與此同時其他動作(例如,move_screen(x,y))要求參數。請參見圖3,以瞭解表示這種可變性的一系列簡短操作的示例。

你可以使用對參數使用任意的排列去定義鏈式規則的使用順序,然而,點擊的位置自然取決於點擊的目的,即被稱爲函數標識符。在我們的大多數實驗中,我們發現很容易獨立地模擬子動作,然而,我們還探討了自動迴歸策略,其中選擇了排序,以便我們首先確定函數標識符,然後確定所有分類參數,最後,如果相關的話,確定像素座標。

4.2總結:用鏈式規則以自動迴歸的方式表示策略是本節的重點,側重講如何完成一系列動作的策略數學表示。

 

 

 

4.3代理結構

本節介紹了幾種代理體系結構,旨在生成合理的基線。我們採用文獻【20,19】中的既定架構,並根據環境的具體情況,特別是動作空間進行調整。

在這裏插入圖片描述

輸入預處理 :所有基線代理分享同樣的輸入特徵層的預處理。我們將所有包含分類值的特徵層嵌入到一個連續空間中,這相當於在通道維度中使用one-hot編碼然後使用1×1卷積。我們也用對數轉換重新縮放數值特徵,因爲其中的一些特徵,如撞擊點(?)或礦物,可能會達到相當高的值。

Atari-net Agent :第一個基線是成功用於Atari [4]基準測試和DeepMind Lab環境的架構的近似改編[3]。它使用與 [19深度強化學習的異步方法]  中相同的卷積網絡處理屏幕和小地圖特徵層 - 兩層分別具有尺寸爲8,4和步長4,2的16,32個過濾器。非空間特徵向量由具有tanh非線性的線性層處理,>結果被連接並通過具有ReLU激活的線性層發送。最後,結果向量這時用作線性層的輸入,線性層通過動作函數id a0和每個動作函數參數{al} L l = 0獨立地輸出策略。對於空間動作(座標),我們獨立地對策略建模以選擇(離散化)x和y座標。

FullyConvAgent(完全卷積代理):用於強化學習的卷積網絡(如上面的Atari網絡基線)通常會降低每層輸入的空間分辨率,並在最終的確定完全連接的層將其丟棄。這允許在推斷動作之前提取空間信息。然而,在星際爭霸中,一個主要的挑戰是推斷空間動作(點擊屏幕和小地圖)。由於這些空間動作在與輸入在相同的空間內起作用,因此丟棄輸入的空間結構可能是有害的。

在這裏,我們提出了一個完全卷積網絡代理,它直接通過一系列保持分辨率的卷積層來預測空間動作。我們提出的網絡沒有跨步,並且在每一層都使用填充,從而保留了輸入中空間信息的分辨率。爲了簡單起見,我們假設屏幕和小地圖輸入具有相同的分辨率。我們通過單獨的兩層卷積網絡來傳遞屏幕和小地圖的觀察,其中1632個過濾器的尺寸分別爲5x5、3x3。然後通過屏幕和小地圖網絡輸出的級聯以及沿着信道維度的廣播矢量統計來形成狀態表示。爲了計算分類(非空間)操作的基線和策略,狀態表示首先通過一個有256個單元和relu激活的完全連接的層,然後通過完全連接的線性層。最後,利用單輸出信道狀態表示的卷積獲得空間動作策略。有關此計算的可視化表示,請參見圖4。

FullyConvLSTMAgent(完全卷積LSTM代理):上述兩個基線都是前饋體系結構,因此沒有內存。雖然這對某些任務來說是足夠的,但我們不能指望它足以滿足星際爭霸的全部複雜性。這裏我們介紹一種基於卷積LSTM的基線架構。我們遵循上面描述的完全卷積代理的管道,並在小地圖和屏幕特徵通道與非空間特徵連接後簡單地添加捲積LSTM模塊。

Random agents (隨機代理):我們使用兩個隨機基線。隨機策略是一種在所有有效動作中隨機一致地選擇的代理,它突出了在一個非常大的動作空間中跌跌撞撞成功的困難(成功很難,但是最後結果較可靠)。隨機搜索基線的工作原理是採用許多獨立的,隨機初始化的策略網絡,對每個網絡進行20次評估,並保持最高的平均分數的網絡。這是互補的,因爲它在策略空間而不是行動空間中進行採樣。

總結:4.3節主要介紹了代理的結構,分別從輸入預處理、Atari網絡代理、完全卷積代理、完全卷積LSTM代理、隨機代理五個方面闡述了代理的結構。

在輸入預處理方面,主要是將特徵值連續化,以及重新縮放一些值。

Atari網絡代理方面,這個基線用來處理屏幕和小地圖的特徵層,並用tanh函數將非空間特徵向量,轉化爲與空間特徵向量相同的狀態表示值,最終形成空間策略和非空間策略。

在完全卷積代理方面,主要介紹了Atari網絡代理的缺點是會降低每層輸入的空間分辨率,從而對輸入的完整結構具有破壞性。因此提出了完全卷積代理,它擁有通過填充卷積層來保持分辨率。看圖4

在完全卷積LSTM代理方面,以上的代理均是前饋網絡,爲了完全滿足星際爭霸2的複雜度,必須考慮並處理和預測時間序列中間隔和延遲相對較長的重要事件,因此提出了採用LSTM代理,並介紹了添加方式。

在隨機代理方面,爲了保證學習效果的可靠性,運用隨機策略學習,雖然學習過程相較於確定性策略較慢,但是能保證不同動作概率的接近確定性差異。

(在強化學習中,確定性策略和隨機策略是modle free策略搜索的兩類主要方法。這兩者的區別也比較明顯,有各自的優缺點。

兩者的區別

確定性策略,在相同的狀態下,其輸出的動作是確定的;而對於隨機策略,對於相同的狀態,其輸出的狀態並不唯一,而是滿足一定的概率分佈,從而導致即使是處在相同的狀態,也可能輸出不同的動作。

另外,就兩者的優缺點來說,確定性策略的優點是能夠利用確定性梯度優化策略,所以不需要太多的採樣數據,計算效率也很快。缺點是由於每次面對同一狀態其輸出的動作是唯一的,無法討論一些其它動作的效果,不具有自學習的能力;

而隨機策略的優點是能夠探索好的經驗,然後集成到一個策略中。而且隨機策略比較成熟,現有的輪子比較多。而缺點是需要採樣的數據量較大,學習比較慢;

兩者對應的經典算法

確定性策略的經典算法

DPG

DDPG

隨機性策略的經典算法

TRPO

PGQ

MC Control

SARSA

Q learning

 

 

 

4.4結果

A3C中,我們在一個網絡的k=40前進步數後,或者在接收到終端信號時,切斷軌跡並進行反向傳播。 優化過程使用共享的rmsprop算法運行64個異步線程。

RMSProp算法的全稱叫 Root Mean Square Prop,是Geoffrey E. HintonCoursera課程中提出的一種優化算法,在上面的Momentum優化算法中,雖然初步解決了優化中擺動幅度大的問題。所謂的擺動幅度就是在優化中經過更新之後參數的變化範圍,如下圖所示,藍色的爲Momentum優化算法所走的路線,綠色的爲RMSProp優化算法所走的路線。 

http://shp.qpic.cn/collector/812193313/30fcc573-156e-45ab-bade-9b9ac392465b/0

對於每種方法,我們進行了100個實驗,每個實驗都使用隨機抽樣的超參數。從表格(10-5,10-3)間隔中抽取學習率。 對於所有的代理,學習率從一個採樣值線性退火到初始速率的一半。

(模擬退火算法來源於固體退火原理,退火就是講材料加熱後再經過特定速率冷卻,目的是增大晶粒的體積,並且減少晶格的缺陷。材料中的原子原來會停留在使內能有局部最小值的位置,加熱使能量變大,原子會離開原來的位置,而隨機在其他位置中移動。退火冷卻時速度較慢,徐徐冷卻時粒子漸趨有序,原子有可能找到內能比原先更低的位置,最後在常溫時達到基態,內能減爲最小。

根據Metropolis準則,粒子在溫度T時趨於平衡的概率爲e-E/(kT),其中E爲溫度T時的內能,爲其改變量,KBoltzmann常數。用固體退火模擬組合優化問題,將內能E模擬爲目標函數值f,溫度T演化成控制參數t,即得到解組合優化問題的模擬退火算法由初始解i和控制參數初值t開始,對當前解重複進行產生新解–>計算目標函數差–> 接受或捨棄的迭代,並逐步衰減t值,算法終止時的當前解即爲所得近似最優解,這是基於蒙特卡羅迭代求解法的一種啓發式隨機搜索過程。退火過程由冷卻進度表控制,包括控制參數的初值t及其衰減因子t,每個t值時的迭代次數L和停止條件S

思路

針對學習率不變化、收斂速度較慢的情況,即可使用退火算法方案,讓學習率隨時時間而變化。學習率計算公式爲

訓練深度網絡時,讓學習率隨着時間退火通常很有幫助。如果學習率很高,系統的動能就過大,參數向量就會無規律地跳動,不能夠穩定到損失函數更深更窄的部分去。

 何時開始衰減學習率是有技巧的:緩慢減小它,可能很長時間內只能是浪費計算資源地看着它混沌地跳動,實際進展很少。而如果快速地減小它,系統可能過快地失去能量,不能到達原本可以到達的最好位置。

通常,實現學習率退火以下三種:

隨步數衰減:每進行幾個週期就根據一些因素降低學習率。典型的值是每過5個週期就將學習率減少一半,或者每20個週期減少到之前的0.1。這些數值的設定是嚴重依賴具體問題和模型的選擇的。在實踐中經驗做法是:使用固定的學習率訓練的同時觀察驗證集錯誤率,每當驗證集錯誤率停止下降,就乘以一個常數(比如0.5)來降低學習率。

指數衰減。數學公式是α=α0ektα=α0ekt,其中α0,kα0,k是超參數,tt是迭代次數(也可以使用週期作爲單位)。

1/t1/t衰減的數學公式是α=α0/(1+kt)α=α0/(1+kt),其中α0,kα0,k是超參數,t是迭代次數。)

我們以每8個遊戲步數一個固定的速率行動,這相當於每秒約三次動作或180 APM

4.4.1 完整遊戲

爲了完整的遊戲實驗,我們挑選了作爲在線排位和職業比賽的深海暗礁天梯地圖。代理以人類對戰人類的方式與最簡單的內置AI對戰。遊戲最長時間設爲30分鐘,之後宣佈平局,該場比賽終止。

比賽結果在圖表5中。

http://shp.qpic.cn/collector/812193313/4e8e1c7c-1298-48c1-b723-2474bb838cf9/0

5:有着最好的超參數的對陣內置的最簡單AI的完整遊戲表現(TVT,深海暗礁天梯地圖):1.使用結果作爲反饋(-1 = 輸,0 = 平,1 =贏);2.使用暴雪提供的本地遊戲分數作爲獎勵。值得注意的是,基線代理甚至沒有學會贏得一場比賽。使用的結構體系包括:(a)用於DQN的原始Atari-Net架構(b)使用convnet保存屏幕和小地圖操作的空間信息的網絡,(ConvNet是一個基於GPU實現的卷積神經網絡開源代碼(C++11),是由多倫多大學的Geoffrey Hinton深度學習團隊編寫的,它的最初版本是Hinton的學生Alex Krizhevsky編寫的cuda-convnet(其項目地址在google code上面),最近cuda-convnet也從1.0版本更新到2.0版本。(c):和(b)相同但是在一層有一個卷積LSTM。線條是平滑的以提高可視性。

 

不出所料,接受過稀疏三元獎勵訓練的代理中沒有一個能爲整個比賽制定出可行的策略。最成功的代理基於無內存的完全卷積結構,通過使用人族升起建築物並將其移出攻擊範圍來避免持續損失。

接受暴雪分數訓練的代理們集中在一些瑣碎的策略上,這些策略只能避免分散工人單位對採礦的注意力,從而保持分數的穩定提高。(PS:光采礦也不行)因此,大多數代理的得分集中到簡單地保留初始挖掘過程,而不構建更多的單元或結構(在下面提出的迷你遊戲中也觀察到了這種行爲)。

這些結果表明,完整的星際爭霸遊戲是一個有趣並富有挑戰性的強化學習的領域,尤其在不利用例如人類回放的其他信息來源時。

4.4.2 小遊戲

正如在第三節描述的一樣,可以通過定義一些集中關注某些領域的方面的一系列小遊戲來避免完整遊戲的複雜性(有關每個迷你遊戲的粗略描述,請參閱第3節)。

我們在每個小遊戲上訓練我們的代理。彙總的訓練結果如圖6所示,與人類基線比較的最終結果可以在表1中找到。展示我們的代理的視頻也可以在https://youtu.be/6L448yg0Sm0找到。

總體而言,完全卷積代理在非人類基線中表現最佳。有點令人驚訝的是,Atari-net代理似乎是涉及戰鬥的小遊戲的強大競爭者,即FindAndDefeatZerlingsDefeatRoachesDefeatZerlingsAndBanelings。(PSAtari-net按道理時是相較於後兩個較弱的)

CollectMineralsAndGas小遊戲中,只有最好的卷積代理才能學會通過生產更多的工人單位並將其分配給採礦來增加初始資源收入。

我們發現造槍兵(人族開局)是最具有策略性要求的小遊戲,也或許是最接近星際爭霸完整遊戲的小遊戲。完全卷積LSTM和隨機搜索在這個小遊戲上實現了最好的結果,與此同時,Atari-Net代理在每一次遊戲中沒有學習到持續不斷生產槍兵的策略。值得注意的是,如果沒有地圖所帶來的對動作空間的限制,小遊戲將會很難學習。所有的代理與大師級對手相比表現都不好,除了只需要良好的機械性和反應能力的MoveToBeacon小遊戲任務————這是人工代理所期望擅長的方面。然而,在像DefeatRoachesFind And Defeat Zerglings這樣的遊戲中,我們的代理與DeepMind遊戲測試員相比表現不錯。我們的基線代理的結果表明,即使是相對簡單的小遊戲也會帶來有趣的挑戰,我們希望這些挑戰能夠啓發新的研究。

http://shp.qpic.cn/collector/812193313/054445f2-d447-4fa2-b6df-02a528532674/0

6:基線代理體系結構的訓練過程。所示圖線是遊戲步數的函數平均分數。(x軸爲遊戲步數,y軸爲平均分數)。在這裏我們展示在本論文中使用的三種結構體系。(a)用於DQN的原始Atari-Net架構(b)使用convnet保存屏幕和小地圖操作的空間信息的網絡。(c):和(b)相同但是在一層有一個卷積LSTM

虛線展示了100次用不同參數的運行結果,實線是最好平均值的運行結果。線條是平滑的以提高可視性。

 

1:小遊戲中人類基線和代理的綜合結果。所有代理都接受過600M遊戲步驟的訓練。平均值對應於平均代理性能,最佳平均值是最佳代理在不同超參數下的平均性能,最大值對應於觀察到的個體事件最高得分。

http://shp.qpic.cn/collector/812193313/1d3e59c0-ed2b-4732-988e-48f135babe40/0

 

總結:4.4節主要介紹了遊戲的結果。首先介紹A3C算法的一些具體過程設置、具體的優化算法rmsprop、實驗的次數、隨機抽樣選取超參數、學習率的抽取和採用線性退火方式以及APM(遊戲速度)。然後從完整遊戲和小遊戲的結果對代理進行了簡要而富有啓發的闡述。

 

對於完整遊戲,所有代理對陣最簡單的內置AI均未獲得勝利。表現最好的是單純的完全卷積代理,其特點是飛基地止損。另外,用暴雪分數評價的缺點是使代理將注意力集中在採礦上,並沒能進一步建造更多建築與生產更多單位。(錢多也不一定能贏啊)。如何在不利用學習人類錄像回放的監督學習的情況下,讓代理學會玩完整的星際爭霸遊戲這是一個挑戰。(正如AlphaZero是在沒有學習任何人類棋譜的情況下,自學圍棋,並最終擊敗看棋譜的AlphaGo)。

 

對於小型遊戲任務,總的來說完全卷積代理在三個代理中表現最好。Atari-Netzai在戰鬥型小遊戲中表現的很好。另外還總結了其他代理在不同小遊戲中的特點,這些結果特點啓發着新的挑戰。

 

 

5.從回放中進行監督學習

      遊戲回放是專業和業餘玩家都使用的重要資源,他們通過回放學習新策略,發現遊戲中的重大失誤,或者只是喜歡將看別人玩作爲一種娛樂形式。回放在星際爭霸中尤其重要,因爲隱藏的信息:“戰爭的迷霧”隱藏了所有的對手的單位,除非他們是在你的視野中。因此,在職業玩家中,回顧和分析他們玩的每一場遊戲,即使他們贏了,也是標準的做法。

        監控數據的使用,如回放或人類演示,已經實現成功地實現了機器人技術[2,24]、圍棋遊戲[18,31]和Atari[10]。它也被用於星際爭霸的背景下(如[12]),雖然不是爲了訓練基本的動作策略,而是爲了發現建造順序。星際爭霸II提供了收集和學習大量不斷增長的人類回放的機會。雖然沒有集中和標準化的機制來收集星際爭霸I的回放,但是通過暴雪的在線1v1天梯比賽可以隨時獲得大量匿名的星際爭霸II遊戲。此外,隨着數量相對穩定的玩家不斷玩新遊戲,將有更多的遊戲回放定期添加到此集合中。

        從重播中學習應該有助於引導或補充強化學習。單獨而言,它還可以作爲處理長期相關性的序列建模或內存結構的基準。事實上,要在遊戲展開時理解它,必須有效地跨多個時間步驟整合信息。此外,由於部分可觀察性,重放也可用於研究不確定性模型,例如(但不限於)變分自動編碼器[14]。最後,比較結果/行爲預測的性能,有助於指導神經系統結構的設計,並在該強化學習領域中提供合適的歸納偏差。

在本節的其餘部分,我們使用第4節中描述的體系結構提供基線,但使用一組800K場遊戲數據來學習價值函數(即,從遊戲觀察中預測遊戲的獲勝者)和策略(即 ,預測從遊戲觀察中採取的行動)。 遊戲包含星際爭霸II中所有可能的對決(即,我們不限制代理人蔘加單一比賽)(隨機種族)。

 

圖7:我們用於監督訓練我們的策略和價值網絡的回放集的統計數據。 (左)作爲APM函數的玩家匹配等級(MMR)的分佈。 (右)按人類玩家使用概率排序的動作分佈。

圖7顯示了我們使用的重放的統計數據。 我們總結了一些最有趣的統計數據:1.通過比賽制作評級(MMR)測量的球員技能水平,從休閒玩家,高端業餘,直到職業選手。 2.平均每分鐘動作次數(APM)爲153,平均MMR爲3789. 3.重放沒有過濾,而是使用在戰網上玩的所有排位賽。4.不到百分之一是來自頂級選手的大師級比賽回放。 5.我們還顯示了按人類玩家使用頻率排序的動作分佈。 最常見的動作,佔43%時間的動作是移動相機。 總的來說,動作分佈具有重尾部,其具有一些常用動作(例如,移動攝像機,框選,攻擊屏幕)和不經常使用的大量動作(例如,構建工程站)。(8http://wiki.teamliquid.net/starcraft2/Battle.net_Leagues)

我們訓練雙頭網絡,預測遊戲結果(1 =贏vs.0=輸或平),以及玩家在每個時間步的動作。 共享網絡主體使得有必要平衡兩個損失函數的權重,但它也允許值和策略預測相互通知。 我們沒有在監督訓練設置中關聯單獨的遊戲結果類,因爲與勝利和失敗相比,數據集中的關係數量非常低(<1%)。

 

5.1值預測

預測遊戲結果是一項具有挑戰性的任務。儘管有完全訪問遊戲狀態(即不受部分可觀察性限制,地圖全開),但即使是專業的星際爭霸II評論員也經常無法預測獲勝者。準確預測遊戲結果的價值函數是可取的,因爲它們可用於減輕從稀疏獎勵中學習的挑戰。 從給定的狀態中,訓練有素的價值函數可以在看到比賽結果之前建議哪些鄰近狀態值得進入。

我們的監督學習設置從第4節:Atari-net和FullyConv中描述的直接基線架構開始。網絡不考慮先前的觀察,即,它們預測單幀的結果(這顯然是次優的)。 此外,觀察不包括任何特權信息:代理必須僅根據在任何給定時間步驟可以看到的內容產生價值預測(即啓用戰爭迷霧)。因此,如果對手已設法祕密進行 產生許多對代理所建立的軍隊非常有效的單位,它可能錯誤地認爲自己比它強。

 

圖8:使用在屏幕和小地圖特徵平面上運行的網絡以及標量形式地玩家統計數據預測星際爭霸遊戲結果的準確性。 (左)三種不同網絡架構的訓練曲線。 (右)遊戲時間的準確性。 在遊戲開始時(2分鐘之前),網絡準確率達到50%(相當於輸或贏的機會)。 這是意料之中的,因爲遊戲早期的結果不太清楚。 到15分鐘時,網絡能夠在65%的時間內正確預測勝利者。

第4節中提出的網絡獨立地產生了動作識別器及其參數。 然而,通過調節基本動作,例如建立額外的基地而不是移動軍隊,可以提高預測屏幕上的點的準確性。 因此,除了Atari-net和FullyConv架構之外,我們還有arFullyConv,它使用第4.2節中介紹的自動迴歸策略指導,即使用函數標識a0和先前採樣的參數a <l來模擬當前的策略對當前參數a l上基礎上的策略建模。

在星際爭霸II的所有可能的對決中,網絡都經過20萬步梯度下降訓練。 我們使用從所有時間一致的重放中隨機抽取的64個觀察結果的小批量訓練數據集進行訓練。 使用8的乘數步長對觀測值進行採樣,與強化學習設置一致。 屏幕和小地圖的分辨率爲64×64。 每個觀察包括屏幕和小地圖空間特徵層以及玩家統計數據,例如人口上限和收集晶體礦數量,這些都是玩家在屏幕上所能看到的。我們使用90%的重放作爲訓練集,以及從其餘10%的回放中提取的0.5M幀的固定測試集。 隨着訓練的進行,針對該測試集不斷地評估代理性能。

圖8顯示了訓練步驟的平均準確度以及作爲遊戲時間函數的訓練模型的準確性。 隨機基線將在大約50%的時間都在糾正(?),因爲遊戲在所有種族相對平衡,並且平局非常罕見。 隨着訓練的進行,完全卷積架構的準確率達到64%。 此外,隨着遊戲的進行,價值預測變得更加準確,如圖8(右)所示。 這反映了星際爭霸I [9]的先前工作成果。

 

5.2 策略預測

訓練預測值的同一網絡具有單獨的輸出,輸出用於預測用戶發出的動作。 我們有時會將網絡的這一部分稱爲策略,因爲它可以很容易地部署來玩遊戲。

有許多方案可以用來訓練網絡模仿回放中的人類行爲。這裏我們使用一種簡單的方法,與第4節中的強化學習工作直接連接。

 

表2:基本操作和屏幕/小地圖參數的策略前1和前5精度。 arFullyConv指的是FullyConv的自迴歸版本。隨機基線是隨機初始化權重的arFullyConv。

在訓練我們的政策時,我們以8幀的乘數固定步長對觀測值進行採樣。我們將每8幀內發出的第一個動作作爲策略的學習目標。 如果在此期間沒有采取任何行動,我們將目標定爲“無操作”,即一項無效的特殊動作。

當人類玩“星際爭霸II”時,在任何給定時間內只有所有可能動作的子集可用。 例如,僅在當前選擇兵營時才啓用“建造槍兵”。 網絡不應該需要學習避免非法行爲,因爲這些信息隨時可用。 因此,在訓練期間,我們會過濾人類玩家無法使用的操作。爲此,我們採用過去8幀的所有可用操作的集合,並應用一個掩碼,將所有不可用操作的概率設置爲接近零。

請注意,如前所述,我們訓練策略以參與所有可能的對決。 因此,原則上,代理可以參加任何比賽。 但是,爲了與第4節中研究的強化學習代理保持一致,我們報告了單人族與人族對戰中的遊戲內指標。

表2顯示了不同架構在預測動作標識符、屏幕和小地圖參數方面準確性的不同表現。正如預期的那樣,完全卷積和自動迴歸完全卷積架構在空間參數方面的性能都要好得多。此外,a自動迴歸完全卷積體系結構的性能優於完全卷積,這可能是因爲它知道哪些參數將用於特徵識別。

如果直接將訓練的策略插入到遊戲中,代理則可以生產更多的單位,並根據觀察到的回放數據發揮更好的作用,如圖9和視頻https://youtu.be/weozide5xfc所示。它還勝過所有在第4節中訓練過建造槍兵的簡單小遊戲的代理,該小遊戲具有受限的行動空間,相比之下,監督的策略是玩一個不受限制的完整1v1遊戲。這些結果表明,監督模仿學習可能是一個引導星際爭霸二號代理的有前途的方向。未來的工作應該通過加強對我們真正關心的目標(即遊戲結果)的強化學習來直接培訓,從而改進對初始策略的模仿。

 

圖9:隨着訓練策略網絡的進展,在訓練數據上建立部隊的概率。遊戲設置是人族對人族。(左)在遊戲中建立任何部隊的概率。(右)每場比賽建立的部隊平均數量。

 

 

6. 結論和未來工作

本文介紹了星際爭霸II作爲深度強化學習研究的新挑戰。 我們提供免費的Python接口的詳細信息,以及通過暴雪的官方戰網天梯排名比賽中收集的回放數據。 通過這個初始版本,我們描述了針對策略和價值網絡的在人類比賽回放數據上的監督學習結果。我們還描述了七個小遊戲和完整遊戲中直接基線強化學習代理的結果。

我們主要把小遊戲當作單元測試。也就是說,如果要在整個比賽中取得成功,強化學習代理應該能夠相對輕鬆地在這些方面達到人的水平。建立額外的小遊戲可能很有指導意義,但我們將整個遊戲(根據最終結果進行評估)視爲最有趣的問題,並希望首先鼓勵對其進行研究,從而得出解決方案。

雖然代理一些小遊戲的表現接近專業人類玩家,但我們發現,正如預期的那樣,目前最先進的基線代理無法在完整遊戲中學會贏得最簡單的內置AI。 這不僅在遊戲結果(即-1,0,1)被用作獎勵信號時,而且在每個時間步(即,由暴雪提供的本機遊戲得分)提供成型的獎勵分數時也是如此。 從這個意義上說,我們提供的環境提出了一個如何規則化、外部定義,也是現成的基線算法的完全難以處理的挑戰。

這個版本簡化了人類玩遊戲的幾個方面:1.觀察在給予代理之前進行了預處理,2。動作空間已經簡化爲更容易被強化學習代理使用而不是使用人類使用的鼠標點擊和鍵盤設置,3.它以鎖定步數玩遊戲,以便代理可以在每個時間步長而不是實時計算他們需要的時間,並且4.完整遊戲只允許對陣內置AI。 然而,我們認爲構建能夠在人類的地盤上發揮像最佳人類玩家表現一樣的代理纔是真正的挑戰,即使用RGB像素觀察和嚴格的時間限制。 因此,未來的發佈可能會改變上述簡化,並使自己能玩,使我們朝着培養人類認爲是公平對手的代理的目標邁進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章