南京大學團隊使用分層強化學習,結合宏動作學習、課程學習等方法,僅使用12個物理CPU核和48個線程,單機訓練一天時間內,擊敗了《星際爭霸2》內置AI。
9月19日,騰訊AI Lab團隊號稱“首次在《星際爭霸2》完整的蟲族VS蟲族比賽中擊敗了游戲的內置AI Bot”,這是首個能在正式比賽中擊敗內置機器人的AI系統,堪稱研究道路上的一大突破。
根據發表在arXiv上的預印版論文,騰訊AI Lab團隊使用的方法是人工定義大量的宏動作(macro-action)、人工編碼科技樹建造建筑,用蟲族(擅長快推)在3000多個CPU上取得了這一成果。
實際上,在更早的4月份,來自南京大學的俞揚團隊也深入研究了《星際爭霸2》的分層強化學習方法。與騰訊AI Lab不同的是,南京大學團隊不依賴人工定義的宏動作,而是從人類的演示數據中自動學習宏動作。再依靠強化學習自動學習基地運營和戰斗調度,并僅在12個物理CPU核、48個線程、智能體設定為神族、對手設定為人族的情況下,取得了突破性的成果。
在“《星際爭霸2》學習環境”SC2LE上的實驗結果表明,南大團隊通過分層強化學習和課程學的方法,在最困難的非作弊內置AI(level-7)中獲勝的概率超過了93%,是當前最佳成績。
負責這項研究的南京大學計算機系副教授俞揚博士表示:
《星際爭霸》這一款超大規模游戲是強化學習的一大挑戰。擊敗內置AI只是小小的并不值得宣揚的第一步,其實我們的研究目標在于探索適用于大規模問題而又不失通用性的強化學習方法,因此我們必須找到在盡可能避免手工設定、使用少量計算資源的條件下仍能高效學習的方法。在這一篇工作中,我們結合分層強化學習、宏動作學習、課程學習、獎賞設計等多種不同的強化學習技巧,達到了只使用單機計算資源在一天時間單機訓練可達到擊敗《星際爭霸2》內置AI的水平,為未來大規模強化學習方法提供參考。
現在,這篇論文的預印版已經可以在arXiv上公開訪問,地址如下:
https://arxiv.org/abs/1809.09095
《星際爭霸2》為何如此難以攻克?
從資源的角度來看,在剛剛進入游戲界面時,每方都擁有晶體礦(左上角水晶)和氣礦(頂部綠色氣體彌漫的礦山)兩種資源。
從人口單位來看,截圖中的兵種包括農民和狂熱者,都屬于最初級人口單位。
截圖中的建筑包括主控基地(生產農民、母艦,可解鎖其它建筑)、采氣廠(用于采集氣礦)、水晶塔(提高人口單位上線)、傳送門(可生產狂熱者、追蹤者以及其它高級兵種)。
在開局一段時間后,單從人口單位上來看,需要操縱的智能體數量已然遠遠超過類似Dota2僅需操縱5個智能體的游戲。而在后期階段,隨著基地的不斷發展與擴大,人口會隨之大幅度增加,需操縱的人口單位也隨之上升。
在戰略層面上,由于人口單位種類、功能的不同,也會大幅提高策略的難度。
其次,建筑物之間存在解鎖新功能的關系,所以建筑物的生成順序也是需要考慮的策略之一。
最后,游戲中的視野是有限制的,派遣兵種開拓視野也要考慮在決策范疇之內。
總而言之,觀察空間巨大、動作空間連續、無窮,并且視野受限等諸多原因促使《星際爭霸2》成為史上最難攻克的游戲!
并且在以往的研究中,重點往往放在對游戲局部信息的處理上,主要分為微操和宏操。例如在游戲開局前,預先設定好雙方兵力的數量,只需對這些兵力進行把控,便可取得游戲勝利;或者對建筑序列做預測,在游戲進程當中,判斷當前戰局下應該建造什么樣的建筑。
而南大團隊此次不僅在《星際爭霸2》游戲本身的難度基礎上對大規模強化學習技術做研究,更是將重點著眼于完整的游戲,全面且綜合的考慮到了一局完整游戲過程中涉及到的所有局部信息以及相應的技術處理問題。并且以高勝率打敗了Level7(非作弊最高級別)的內置AI。
用分層強化學習,一天時間單機訓練擊敗《星際爭霸2》內置AI
為了提高強化學習的能力,像星際爭霸這樣的復雜戰略游戲已經成為許多機構的完美模擬環境。
《星際爭霸2》為強化學習提出了巨大的挑戰。而《星際爭霸2》之所以如此困難,是因為它的觀察空間巨大、動作空間連續、無窮,并且視野受限。
《星際爭霸2》包含10個難度較高的內置AI,它們都是由規則和腳本編寫的。從1級到10級,內置AI的能力不斷提高:
南大團隊研究了《星際爭霸2》的分層強化學習方法。層次結構涉及兩個抽象層次。
一個是從專家的游戲錄像中自動提取宏動作,將原始復雜的動作空間拆分整合成一個新的動作空間。
另一種是兩層的分層結構,由上層的控制器(controller) 來選擇下層不同的子策略(sub-policies)。
除此之外,論文中還提供了該結構的分層強化學習的訓練算法。在64×64的地圖上,使用有限的人口和建筑單位,在挑戰難度級別為2的內置AI中的勝率超過了90%。
之后再通過課程學習的方法,在最困難的非作弊內置AI(level-7)中獲勝的概率超過了93%。
在SC2LE上的實驗結果表明,該方法達到了目前為止最好的結果。
具體研究方法:分層強化學習,自動生成宏動作,課程學習
南大團隊使用了兩層的分層框架,如下圖所示。每隔一個較長的時間間隔,控制器根據當前的全局信息,選擇一種子策略。之后,子策略會每隔一個較短的時間間隔來選擇一個宏動作。
圖1 總體架構
分層結構的優點在于:
該分層結構可以讓底層的每個子策略和高層的控制器擁有不同的狀態和動作空間,能夠將原來巨大的狀態空間進行簡化。
這其實也不難理解,對于高層的控制器來說,它只需要關注少量的全局信息就可以做出選擇。而對于一個負責戰斗的底層子網絡來說,它只需要戰場上的相關信息即可。
宏動作的生成
在星際爭霸中,原始動作空間是巨大且零碎的,人類玩家總是需要連續做好幾個原始動作才能達到一個簡單的目的。
例如,如果想要在游戲中建造一個建筑物,必須先選擇一個農民,然后命令它在特定位置建造建筑物,在完成后讓它回來繼續采礦。這些原始動作的序列往往是我們人類玩家進行游戲時的一些固定序列。
因此,通過對專家的游戲錄像數據進行挖掘,生成一些宏動作, 以此生成的宏動作空間來取代原始動作空間。 這將極大地提高學習效率和運行速度。
訓練算法
算法1給出了該結構的訓練過程:
算法1 強化學習訓練算法
課程學習
課程學習是一種有效的強化學習方法。它的思路是將一個復雜的任務分解成若干個難度遞增的子任務。智能體先從最簡單的任務開始學習,隨著它的能力不斷提高,再切換到較為困難的任務,最終能夠解決原始的復雜任務。
星際爭霸2一共有十個難度,包括非作弊和作弊的。不難想象,若直接讓智能體在較高難度上開始學習,那么它只能得到較少的積極反饋,使其學習過程變得十分困難。因此,我們需要設計了一個合適的學習序列:首先讓智能體在低難度中進行訓練,然后再使用這個預訓練的模型在高難度上繼續訓練。
使用混合作戰模型與規則,在1~7難度下均取得最佳結果
設置
結構設置如下:控制器每8秒選擇一個子策略,子策略每1秒執行宏動作。子策略池中有兩個子策略。 一個子策略控制著基地的建筑物和人口單位的生產,稱為基地網絡(base network)。另一個子策略負責控制戰斗,稱之為戰斗網絡(battle network)。
1v1模式下SC2的一局完整的游戲過程如下:首先,兩個玩家在地圖不同的隨機點上“誕生”,并開始積攢資源。而后開始建造一些必要的建筑。接著,開始生產作戰部隊。最后,攻擊并摧毀對手的所有建筑,如圖2所示。
圖2 《星際爭霸2》截圖
為了簡單起見,智能體的種族設置為神族,并將對手AI的種族設置為人族。
使用的地圖是SC2LE上的64x64地圖simple64。將每場比賽的最長時間設置為不超過15分鐘。智能體不開分礦,只使用了神族中的狂熱者和跟蹤者這兩個初級兵種。
戰斗網絡可以有三種不同的策略模型。
作戰規則(combat rule)。該規則是最簡單的戰斗策略,其中敵人的位置由先驗知識自動選擇。
作戰規則的動作只有一個:就是攻擊。由于攻擊的結果完全取決于基地的建設和人口單位的生產。這種設置就促進了在基地建設和人口單位生產方面的訓練。
如下GIF,演示了采用作戰規則策略模型的效果:
視頻鏈接:
https://v.qq.com/x/page/q0716bthkjz.html
作戰網絡(combat network)。雖然作戰規則簡單有效,但是在更大、更復雜的地圖上可能會失敗。因此采用更為智能的方法,就是作戰網絡。作戰網絡被構造為卷積神經網絡,接收小地圖和屏幕中的“特征地圖”(feature-map)。如圖3所示。作戰網絡的輸出包括3個動作和1個位置矢量。3個動作分別是:全體進攻某個位置、全軍撤退或者不做任何動作。
圖3 作戰網絡結構
混合模型(mixture module)。研究者發現,當把作戰規則和作戰網絡進行結合以后,會獲得比兩者更好的結果。當在作戰網絡的位置向量中預測到某一值時,軍隊的攻擊位置將變為由先驗知識計算出來的位置。這就是混合模型策略。
訓練方法比較
在訓練初期,智能體會構建許多冗余的建筑物,而在訓練后,智能體將更有效地利用建筑資源,并且控制每種人口單位的生產數量比例。
南大的研究團隊還研究了各種的訓練方法對學習效果的影響性。
圖a到圖d分別演示了課程學習的有效性(圖a),模塊化訓練的作用(圖b),以及使用戰斗規則(圖c)和戰斗網絡(圖d)時同時更新(simultaneous)與交替更新(alternative)的區別。
圖4 訓練過程中的勝率曲線
作戰模型比較
在難度級別1-10的條件下做了評估測試。在每個難度條件下進行了100場比賽。從表1中可以看到,在難度1-7的條件下,智能體的表現非常良好。在難度8、難度9和難度10條件下,由于智能體沒有在這些難度下進行訓練,并且內置bot具有不同的作弊技巧,所以它們對智能體的泛化性要求很高。然而,可以看出智能體在與他們的戰斗中仍然有很好的表現。
表1 評估結果
作戰網絡的表現似乎并不如作戰規則,這是由于作戰網絡在對局中產生了過多的平局。如果把平局的表現也考慮進去的話,那么作戰網絡的性能也具備可比性。
值得一提的是,通過表1,可以發現作戰網絡和作戰規則的混合模型在1-7難度級別中取得了最佳的結果。
為了驗證訓練出的智能體的泛化性,研究團隊還測試了智能體對抗其他兩個種族的勝率表現。如表2所示:
表2 與其他兩個種族對抗的測試結果
設置比較
研究團隊還實驗了各種不同的設置對于訓練結果的影響。
結果如圖5所示,顯示出了分層結構、獎勵設置以及超參數對結果的重要影響。
圖5 設置的比較
為大規模強化學習現實應用提供啟示
在這篇論文中,南京大學團隊研究了用于完整長度《星際爭霸2》游戲的分層強化學習方法。
該結構采用兩級抽象層次結構。 經過適當的訓練,本文的結構在當前具有挑戰性的平臺SC2LE上取得了最佳的結果。
不過,雖然實驗結果非常理想,但這項工作仍然存在一些不足。 例如,目前測試的64x64地圖很小,只使用初級的兩個兵種。南大團隊表示,他們將來會在更大的地圖上探索、學習,并嘗試使用更多的武器和兵種來組織戰術。
希望這個框架可以為今后強化學習在現實世界問題上的研究提供一些啟示。
-
AI
+關注
關注
87文章
31130瀏覽量
269447 -
強化學習
+關注
關注
4文章
268瀏覽量
11268
原文標題:【星際爭霸2】南大AI單機訓練一天,擊敗最高難度內置 Bot
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論