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