聯盟訓練在遊戲AI多樣化的探索

Yaqing發表於2021-10-21
導語

在深度強化學習中,聯盟訓練通過引入主智慧體的“陪練”,發現主智慧體策略的缺點,幫助其得到更快的提升。本文通過對模型特徵和模型池多樣性的建模,並基於此提升聯盟模型池的多樣性,引導剋制主智慧體的多種策略並提升主智慧體的強度;同時,模型池的多樣性也可以作為訓練目標,為遊戲AI的線上應用提供更多選擇。

一、 背景介紹

隨著DeepMind、OpenAI等AI實驗室在《星際2》[1]、《Dota 2》[2] 視訊遊戲智慧體研究上的突破,深度強化學習在近幾年得到了廣泛的關注。如何在玩家資料有限或缺失的條件下,訓練出接近或超過真人頂尖水平玩家能力的AI,是當前深度強化學習的研究熱點之一。在實際訓練場景中,我們很難為智慧體搭建一個複雜的環境來一步到位學習到人類頂尖水平的模型,這樣對人力和計算資源會提出更高的要求。針對這個問題,人們提出了自對弈[3](self-play)訓練框架(如圖1),如同“左右互搏術”一樣,使AI在不斷和自己以及歷史模型對戰中學習到更優的策略。

聯盟訓練在遊戲AI多樣化的探索
[ 圖1.自對弈(self-play)示意圖 ]

自對弈方式能產生複雜環境或複雜的對抗形式,來不斷進化智慧體的能力。但正所謂“天下武功,唯快不破”,即使再高的競技水平,都有可能會被攻破。比如擊敗曾經TI8 Dota2世界冠軍OG的OpenAI Five[2],線上上和玩家對戰的時候,儘管最終AI勝率到達了99%,有一小部分玩家抓住了OpenAI Five的弱點,利用了AI不善於應對分路推進和隱身單位的弱點[4],連續戰勝了AI[5],如下圖所示:

聯盟訓練在遊戲AI多樣化的探索
[ 圖2.OpenAI Five Arena AI失敗對局 ]

使用當前主流深度強化學習方法訓練的模型,一旦產生,它的引數已經固定;從另外一個角度來說,也就是行為模式、打法基本都是固定的:在某個特定遊戲場景下,智慧體往往會收斂至一個"區域性最優"策略。這個現象導致了人們可以根據歷史對戰,發現和總結AI的戰術打法,並根據此來利用AI的弱點進行鍼對性對戰。由於在自對弈訓練過程中,會受到對手模型池豐富度的影響,很難覆蓋到所有打法風格,那麼就有可能在訓練中很少出現上面提到的分路推進、隱身英雄針對敵方陣容弱點的訓練場景。而目前的技術很難支援固定的AI模型在失敗對局中繼續學習,並彌補這些弱點。為了應對這種情況,我們就需要構建一個具備更加豐富的訓練環境,使智慧體充分應對隨時變化的對手策略,並做出更加合理的決策。DeepMind在《星際2》智慧體[1]中,首先提出聯盟的訓練方式:AlphaStar League。為了訓練最終打榜的智慧體(這裡稱之為"主智慧體"),AlphaStar League中不僅僅是需要主智慧體擊敗當前存在的對手,並希望能及時找到主智慧體的瑕疵,來幫助主智慧體發現自己的缺點,從而得到更快的提升。AlphaStar League通過不同對手建模和取樣的方式,來引導主智慧體的對手策略多樣性,目的是增加主智慧體的整體強度。在實際博弈場景中,可能存在多種打法風格會同時剋制主智慧體(如速推會被對線優勢、防守強力的打法剋制),也有不同戰術體系的迴圈剋制(如帶線剋制團戰、Gank剋制帶線、團戰剋制Gank),基於此,我們也需要關注產生具有不同打法風格的模型池,並且進一步強化主智慧體的魯棒性。

聯盟訓練在遊戲AI多樣化的探索
[ 圖3. 賽博朋克遊戲場景 ]

在實際遊戲AI應用中,"多樣性"不僅僅是作為模型生產的一個手段,同時也可以作為目的:不同線上玩家的對於AI的需求也是多樣的。比如,打法偏向保守的玩家會希望AI對手不會特別激進,喜歡Gank擊殺的玩家更希望AI隊友可以配合自己完成Gank行為。又比如對於NPC AI,目前遊戲內建NPC,很多都是固定的模版,或者固定的對話,比如上圖在《賽博朋克2077》中,玩家在車堆中扔了個手雷,所有NPC都整齊的從車裡下來,蹲地抱頭[6],影響了遊戲體驗。

聯盟訓練在遊戲AI多樣化的探索
[ 圖4. 遊戲捏臉,圖片來自[7] ]

為了增強遊戲內AI的多樣性和個性化,如上圖所示,如同遊戲中"捏臉"[7]應用一樣,如果我們在訓練時控制智慧體的不同演化方向,並且根據玩家畫像或玩家需求,或根據玩家和其他AI之間的互動行為,定製匹配和玩家進行遊戲的個性化AI模型,對於提升玩家遊戲體驗是非常有價值的。

本文從聯盟訓練出發,探索可行的遊戲AI多樣性度量、生產和利用方案,將從以下幾點展開進行具體介紹:

1.聯盟訓練介紹

2.模型風格和模型池多樣性度量

3.聯盟訓練在AI多樣化中的探索

二、聯盟訓練介紹

2.1 聯盟訓練

聯盟(League)訓練的概念由DeepMind在AlphaStar中被提出並得到應用,它是在虛擬自我博弈(Fictitious Self-Play,簡稱FSP)基礎上引入了一組不同功能的智慧體,稱之為"聯盟"。實際上,"聯盟"訓練方式在競技體育中已經得到了應用,比如,在國家隊乒乓球訓練中,都會選取一部分非核心球員,或具有特殊打法的球員,或者模仿國外某種對手的打法風格,作為陪練來鍛鍊主力隊員適應各種打法的能力[8]。這些陪練隊員可能在國際比賽中並不能夠戰勝所有的對手取得冠軍,但是對於幫助主力隊員及時發現自己的弱點並且進行打法上的調整和優化,是十分必要的。

聯盟訓練在遊戲AI多樣化的探索
[ 圖5. AlphaStar League ]

如上圖所示,AlphaStar使用了一個全自動的聯盟訓練框架,聯盟一共包含三類智慧體,分別是Main Agent、Main Exploiter和League Exploiter,從名字上來看,可以分別理解為是主力選手、開發主力選手弱點的陪練和開發整個聯盟選手弱點的陪練,在AlphaStar中,使用了不同的對手取樣方式,來訓練這三類智慧體:

Main Agent:Main Agent主要使用了PFSP(Prioritized Fictitious Self-Play)方法,在每一輪次訓練開始前,通過當前智慧體和聯盟的模型池進行評估對戰,根據勝率戰勝P[A戰勝B],從聯盟歷史模型池中增加更加匹配的對手的概率 聯盟訓練在遊戲AI多樣化的探索 ,作為下一輪次訓練的對手模型分佈集合,其中 聯盟訓練在遊戲AI多樣化的探索 是權重函式,使用 聯盟訓練在遊戲AI多樣化的探索 時較難對手取樣概率會更高,或使用 聯盟訓練在遊戲AI多樣化的探索 時會傾向於選擇更匹配的對手(勝率接近50%) ;在AlphaStar中,Main Agent使用了混合策略的形式取樣對手模型,其中35%概率使用傳統Self-Play自對弈方式按照一定概率分佈選擇Main Agent歷史模型,50%使用PFSP方法從聯盟模型池中進行取樣,另外15%從已經淘汰的歷史對手中進行隨機挑選(即Main Agent對戰這些智慧體勝率已經達到100%)。

Main Exploiter:Main Exploiter訓練時主要對戰當前版本Main Agent,目的是發現Main Agent策略的弱點,產生的模型作為Main Agent的對手加入至其訓練對手中。

League Exploiter:使用PFSP方法從整個聯盟模型池中選擇對手和對手概率分佈,目的是發現整個聯盟策略的弱點,產生的模型也作為Main Agent的對手加入至其訓練流程中。

AlphaStar聯盟首先使用監督學習方式,利用人類玩家資料進行三類智慧體的模型進行初始化,然後同時開始訓練。對於每一個智慧體,會進行一個"訓練輪次"的迭代,即在開始訓練時都會進行初始化,根據當前模型的對應策略,選擇智慧體的載入模型,以及對手模型分佈;在到達訓練輪次的結束條件(通常是高於一定訓練勝率或超過一定訓練步長)後結束這一輪次,並進行下一輪次的迭代。為了提升模型池的豐富程度,發現模型池中沒有探索到的"盲區",對於Main Exploiter和League Exploiter,都會以一定概率從人類樣本訓練得到的監督學習模型初始化,進行下一輪訓練;而Main Agent不需要進行重新初始化。

聯盟訓練在遊戲AI多樣化的探索
[ 圖6. AlphaStar訓練各階段模型強度變化 ]

如上圖所示,引入了聯盟訓練的方式,AlphaStar模型在能力上得到了進一步的提升,達到了職業玩家的水平。

聯盟訓練近幾年在業界得到了應用和優化,TEG Robtics X和AI平臺部提出了TStarBot-X訓練結構[9],對聯盟中的Exploiter進行優化改造,如僅使用勝負獎勵和策略蒸餾的方式來訓練某個特定策略智慧體的Specific Exploiter、從歷史版本模型中探索發現最新Main Agent弱點的Evolutionary Exploiter等。在啟元世界星際2打敗職業玩家的聯盟訓練[10]中,同時也使用了多個主智慧體,並通過Agent Branching方式來增加聯盟的策略多樣性。

2.2 基於Avatar分散式強化學習平臺的聯盟訓練框架

聯盟訓練在遊戲AI多樣化的探索
[ 圖7. 基於Avatar平臺的聯盟訓練框架 ]

我們基於 Avatar分散式強化學習平臺 搭建了一套全自動聯盟訓練框架,如圖7所示。聯盟中每一個智慧體使用Avatar分散式框架和遊戲環境互動和訓練、評估。聯盟是基於群體的訓練方式,必然存在資訊共享、中央控制的需求,因此在此基礎上我們使用了一箇中央協調器"Coordinator"來管理每一個訓練或評估任務的引數。聯盟框架包括Coordinator和Worker兩個主要模組:

Coordinator:聯盟的中央協調器,主要負責任務及其引數的分配、聯盟模型池的管理、訓練和評估資料的管理,它主要包含以下幾個部分:

Coordinator:聯盟的中央協調器,主要負責任務及其引數的分配、聯盟模型池的管理、訓練和評估資料的管理,它主要包含以下幾個部分:

共享模型池:管理和維護聯盟的所有智慧體持續產生的模型,這些模型引數固定,每一個模型都會標示它所屬的Worker、模型ID、各項評估指標等資訊;

訓練和評估資料管理:提供不同智慧體對應訓練任務、評估任務和模型天梯的查詢介面;

模型匹配策略:基於智慧體的匹配策略、模型池和訓練評估結果資料,對當前請求新任務的訓練Worker匹配訓練模型、對手模型和分佈以及訓練各元件的引數。

Worker:管理並監控聯盟中每個智慧體在Avatar強化學習平臺上的訓練或評估任務,主要包括:

訓練Worker:接收到Coordinator訓練任務後,進行訓練任務的自動執行,包括啟動、停止、更新並監控當前的訓練任務,每一訓練輪次結束後,會通知Coordinator新增模型並請求下一輪次的訓練任務;

評估Worker:接收到Coordinator待評估的對戰模型列表後,進行評估任務的自動執行,包括啟動、停止和監控當前評估任務,評估任務結束後,會通知Coordinator並進行下一批次的對戰模型評估。

在聯盟中,每一個訓練Worker都對應訓練一個單獨的智慧體(如Main Exploiter)。開始訓練時,會向Coordinator請求訓練任務,Coordinator接收到請求後,會根據當前Worker的匹配策略和引數,模型池中模型的取樣比例、取樣規則等,計算出當前任務的各項引數,返回給Worker,Worker啟動並完成當前分配的任務,上報給Coordinator,並繼續下一輪的任務請求;同時隨著模型池的數量增長,Coordinator會不斷產生新的待評估模型,評估Worker在每一次評估任務完成後,會繼續請求新生成的評估列表,進行評估和資料上報。

聯盟框架實質上是訓練和評估任務分配和排程的平臺,目前也支援了其他常見形式的自動化訓練方式,如自對弈、PBT(Population-based Training)和自定義的混合策略,引匯出滿足不同應用場景需求的智慧體。第四章中我們也會繼續介紹聯盟訓練框架在AI多樣性中的嘗試。

三、模型風格和多樣性建模

為了引導多樣化AI模型,首先要對"多樣性"的概念進行定義。對於多人玩家PvP遊戲而言,不同型別的陣容搭配可以算做多樣性,不同打法風格也算是多樣性。本文主要分析個體(如玩家、模型)的打法風格來度量模型池的多樣性,而陣容搭配的多樣性暫時不在本文的討論範圍內。

從模型角度來出發,首先就需要提取模型的特徵,通常使用1D的特徵向量進行表示,基於這個向量,可以使用統計方法度量模型池中模型之間的距離,以及整個模型池的空間大小。如何提取有效可靠的策略特徵,並且度量整個模型池的多樣性,是本章需要討論和解決的兩大問題。

3.1 模型特徵提取

這裡定義模型的特徵為模型策略 θi 的表徵,寫作ϕ(θi),其中 聯盟訓練在遊戲AI多樣化的探索 為特徵提取模組。簡單來說,就是將模型的策略對映為一個長度為 聯盟訓練在遊戲AI多樣化的探索 的向量。

無監督方法

提取遊戲的智慧體AI模型的特徵有很多方法,首先想到的就是拿比賽結算資訊,如比賽結束時遊戲時間、勝負、金錢、裝備資訊作為模型的特徵,這些資料能部分反應智慧體AI的一些偏好,但這些資料往往無法捕捉遊戲局內細節,很難還原AI在遊戲內的具體策略,比如是更加激進還是偏向防守。

聯盟訓練在遊戲AI多樣化的探索
[ 圖8. AI局內特徵視覺化 ]

為了捕捉局內細節變化,較多方法使用局內動作或狀態進行特徵降維分析和差異比較,如DeepMind FTW Agent[11]對模型進行視覺化時將局內狀態特徵採用t-SNE Embedding方法,來觀察局內狀態的轉變,從而分析比較模型的打法風格。根據此也可以做特徵降維、pooling等方法將局內特徵聚合成模型特徵。

監督學習方法

聯盟訓練在遊戲AI多樣化的探索
[ 圖9. 通過監督學習方法預測模型語義特徵 ]

通過狀態或者結算資訊來表示模型特徵的方法缺少一定的可解釋性,而在一些遊戲Bot AI的應用中,我們更希望能對智慧體某方面行為能力進行刻畫,比如模型特點屬於激進或是保守,偏向個人發育還是團隊利益,根據不同的應用場合,來選擇使用不同的模型。一種比較通用的做法是手動給不同的模型或玩家打上標籤,然後使用監督學習的方式訓練一個預測網路,預測每個模型各維度的特點。這種方式依賴於標註的資料量和準確度,並且會產生一定的標註成本。

基於難度評估方法

聯盟訓練在遊戲AI多樣化的探索
[ 圖10. 通過難度評估方法評估模型打法強度 ]

在零和遊戲中,能力的強弱是相對的,沒辦法通過"場均擊殺10次"這樣的資料來判斷某個玩家或者模型在擊殺能力上是強是弱。如何度量玩家或模型的能力,首先想到的根據特定指標的平均值進行評價,如勝率、擊殺數、傷害值。但是由於遊戲的匹配機制,玩家通常是和相同水平段位的其他玩家進行匹配,隨著環境的不斷變化,這些指標的參考意義就不是特別大。

聯盟訓練在遊戲AI多樣化的探索
[ 圖11. “戰鬥強度”模型天梯 ]

在業界比較常用的是Elo[12]或TrueSkill[13]等級分,來度量玩家的能力值。比賽完成時會根據己方等級分、對手等級分以及勝、負、平的關係,對己方和對手的等級分進行更新;同樣道理,等級分也可以用來定義某個方面的能力強度。例如比較"擊殺能力",需要定義在"擊殺能力"標準下的"勝、負、平"關係,如"我方擊殺數-敵方擊殺數>5"算作獲勝,"我方擊殺數-敵方擊殺數<-5"算作失敗,其他情況為平,那麼對局後也可以更新對應"擊殺能力"的等級分。最終得到的是具有語義性質的分數集合,並且建立模型天梯,不同等級分的高低,代表了該模型在這個打法風格維度上的強弱。

聯盟訓練在遊戲AI多樣化的探索
[ 圖12. CSGO能力分解,來自知乎[14] ]

不同的遊戲環境可以通過不同維度的能力,來刻畫某個玩家或者模型的能力特徵。如射擊類遊戲CSGO[14],如圖12所示,我們可以通過槍法、配合能力、殘局能力、道具使用時機等不同維度資料來分析各種能力的強弱,同時也可以較為準確分析出模型或玩家的問題和漏洞出現在哪兒。

綜合考慮,基於難度評估方式能更直接反映模型當前各個維度的強弱,便於後續在訓練中對模型行為進行刻畫和理解,也可以線上上應用中準確挑選不同風格的AI模型,因此在下文中我們使用各維度的難度評估結果作為模型的特徵表示。

3.2 模型池多樣性度量

模型池是模型的集合,代表了模型的群體,度量模型池的多樣性,也就是整個群體的豐富程度。深度強化學習模型池的多樣性度量也成為學術界近幾年的研究方向之一,如[15][16]。那麼如何量化模型池的多樣性呢?首先就是要定義兩個模型的特徵向量 聯盟訓練在遊戲AI多樣化的探索聯盟訓練在遊戲AI多樣化的探索 之間的相似性。我們考慮核函式 聯盟訓練在遊戲AI多樣化的探索 ,其中對於任意的 聯盟訓練在遊戲AI多樣化的探索 , 聯盟訓練在遊戲AI多樣化的探索 都有 聯盟訓練在遊戲AI多樣化的探索 。一種常用的核函式是平方指數(Squared Exponential)核:

聯盟訓練在遊戲AI多樣化的探索

根據上述公式,模型特徵之間的距離越小,這兩個向量之間就越相似,也就是兩個模型越相似。

模型池多樣性度量

特徵間相似度的度量僅僅是度量兩個模型之間相似性,模型池作為一個群體,可能存在成百上千的模型,我們更需要通過一個指標描述整個群體的豐富程度。直觀上來說,模型池的策略之間相似度越低,那麼整個模型池的多樣性也就越高。我們用一個定義在模型池集合的相似度度量矩陣上的函式f(K)∈R,其中K是相似度矩陣,比如使用平方指數核進行模型兩兩之間相似度的計算: 聯盟訓練在遊戲AI多樣化的探索 ,輸出是度量模型池多樣性的一個標量,那麼什麼函式可以滿足多樣性的要求呢?

一個比較合適的選擇是矩陣 K的行列式[17] det(K),矩陣可以看作是一組向量的集合,而矩陣的行列式的幾何意義,就是各個向量張成的平行多面體的體積S:

聯盟訓練在遊戲AI多樣化的探索
[ 圖13. 行列式幾何解釋 ]

也就是說,向量之間越不相似,它們之間的夾角就會越大,所張成的多面體的體積也就會越大,矩陣的行列式也就越大,所對應的模型集合的多樣性也就越高。

參考論文[15],給定模型池策略特徵集合 Θ={θ1,θ2,...,θM},通過平方指數核矩陣可以定義整個種群多樣性: 聯盟訓練在遊戲AI多樣化的探索

這個多樣性的定義,使用了行列式點過程[18]方法(Determinantal Point Processes,DPP),DPP方法最早在熱力學中提出,在2018年被應用到提升推薦系統的多樣性上[19],取得了不錯的效果,其中推薦給使用者的列表就是選擇最大後驗概率(Maximum a posteriori,MAP)時的商品子集。同樣地,模型池的多樣性度量,也可以通過選取最大化多樣性的模型子集的多樣性來表示:

聯盟訓練在遊戲AI多樣化的探索

明確了模型的特徵表示和模型池的多樣性的定義,本文在下一章節會探索AI模型多樣性在聯盟訓練中的作用。

四、聯盟訓練在AI多樣化的探索

上文曾經提到,多樣性不僅僅是訓練的手段,也是目的。本章通過聯盟訓練的方式,嘗試引導產生不同打法風格的模型,與此同時,利用這些模型,進一步發現主智慧體的策略"盲區",提升主智慧體的能力。

4.1 訓練目標

根據聯盟的設定,聯盟中智慧體訓練的目標主要分為以下幾類:

對於Main Agent,不斷提升模型能力;

對於Main Exploiter,目標是探索克制Main Agent的打法風格,從而提升對戰Main Agent的勝率,並且豐富模型池的多樣性;

對於League Exploiter,目標是提升對戰聯盟模型池的整體勝率,並且豐富模型池的多樣性。

我們將根據上述目標轉換為每類智慧體選擇的最佳策略:

聯盟訓練在遊戲AI多樣化的探索

聯盟訓練在遊戲AI多樣化的探索

聯盟訓練在遊戲AI多樣化的探索

其中 Elo(π) 表示策略 π 的Elo等級分,表示該策略的整體強弱;Win(π,Πpool) 表示策略對戰某個特定模型池模型的勝率情況,Div(Θ∪θ(π)) 表示模型池 Θ 加入當前策略π 後的多樣性。通過修改目標函式,也可以為每一個Exploiter智慧體選擇特定的策略優化方向(比如偏向激進、分路推進策略),並且使用不同的初始化模型、獎勵配置進行引導訓練,以引匯出特定打法風格的智慧體。

4.2 使用PBT(Population-Based Training)方法進行聯盟多樣化訓練

強化學習的訓練目標時尋找一個策略,從而最大化期望累計獎勵 聯盟訓練在遊戲AI多樣化的探索 。由於視訊遊戲環境的複雜性,使用稀疏的結果獎勵會導致學習效率非常低,因此通常會根據每個時間t的遊戲訊號或事件ρt,設定相對稠密的獎勵訊號 rt=w(ρt) ,來引導智慧體更快進行學習。在訓練過程中,每個智慧體會根據當前的匹配策略,選擇對手並且使用強化學習演算法最大期望累計獎勵。但是獎勵並不代表智慧體的最終訓練結果和表現,也不會對群體的多樣性產生影響,那麼我們就需要通過群體優化的方式,來使得每種型別的智慧體朝著目標方向進行演化。

在使用強化學習對個體進行訓練的基礎上,我們引入了“元優化”(Meta-optimization)[11] 的思想,對不同智慧體群進行分別優化,從而達到我們期望的目標:

聯盟訓練在遊戲AI多樣化的探索
[ 圖14. 基於群體的聯盟訓練方法 ]

這裡我們使用了PBT[20](Population-based Training)方法來訓練聯盟中的各智慧體,來實現多目標優化問題,它分為“探索”和“利用”2個步驟:

探索:每一輪訓練,每個智慧體會對不同的引數組合進行“探索”,在本文中引數主要關注不同的獎勵配置,探索有幾種形式:或基於上一輪最佳訓練模型的獎勵配置進行隨機擾動,或從某個給定隨機種子獎勵配置進行初始化,同時並行啟動N組實驗,稱為“Trial”。

利用:根據4.1的不同智慧體優化目標的定義,每一輪訓練結束後,我們對相同智慧體訓練任務的N個Trial進行分別評估,並根據優化目標計算歸一化得分。我們會“利用”得分最高的模型和引數配置,作為最優模型和配置,進行下一輪任務的迭代,據此不斷演化出更容易達到特定智慧體目標的引數配置。

4.3 實驗結果

下面從聯盟的強度、演化過程以及多樣性角度,來分析聯盟訓練與AI多樣化之間的影響。

主智慧體強度

聯盟訓練在遊戲AI多樣化的探索

首先看主智慧體強度,如上表所示。相比於遊戲內建最高等級AI(行為樹實現),使用深度強化學習和自對弈(self-play)訓練方式對Elo分提升超過1100分。在此基礎上,聯盟訓練通過Exploiter發現主智慧體的策略弱點,進一步提升其強度;使用Population-based方法,以目的為導向,演化出更加適合主智慧體的獎勵配置和對手打法,其Elo分已經達到1362分,並依舊在緩慢提升。

聯盟智慧體

聯盟訓練在遊戲AI多樣化的探索

聯盟中不同的智慧體由於優化目標不同,達到的模型強度也是不同的。相比聯盟中的其他智慧體,Main Agent以最終強度為優化目標,演化出的智慧體達到了最高的等級分;League Exploiter訓練對手是聯盟模型池中的所有模型,也具有一定強度;而Main Exploiter訓練的目標就是為了剋制Main Agent,本身模型強度並不會達到較高水平:這個結論和我們的認知也是比較一致的。

獎勵演化趨勢

聯盟訓練在遊戲AI多樣化的探索
[ 圖15. 聯盟的各智慧體獎勵演化過程 ]

由於訓練目標的差異,不同智慧體引數的演化方向是存在區別的。如圖15所示,主智慧體以最終結果為導向,Result相關的獎勵權重隨著訓練程式不斷提升;而其他Exploiter的獎勵配置的演化也呈現出不同方向,可以初步看出,不同目的導向的智慧體,它們的最優獎勵是有所區別的。

模型池多樣性分析

聯盟訓練在遊戲AI多樣化的探索
[ 圖16. 模型池雷達圖隨訓練輪次的變化 ]

隨著訓練的進行,模型池的多樣性也在不斷提升。我們將模型策略分成10個維度進行表示,分別為模型整體強度、戰鬥強度、對線強度等,如上圖所示,可以看到,由於初始化模型相同,剛開始訓練時(第1輪),所有模型的分佈都比較接近;隨著訓練迭代的進行,不同智慧體朝著不同的方向進行演化,每個模型的雷達圖的差異也開始逐漸增大。

五、總結和展望

本文在AlphaStar League基礎上,探索了模型池多樣化的評估和訓練方法,同時模型池的多樣性也提升了主策略的強度。基於聯盟和AI多樣性訓練的方式,本文僅做了初步的嘗試和驗證,行為策略的多樣性是遊戲之所以吸引不同玩家的一個原因之一,因此對於遊戲內AI模型的多樣性和聯盟訓練,我們還會持續進行研究,同時從技術和應用角度,也存在很多問題需要優化和解決:

從技術角度上來說,可以在更高效、更具針對性引導多樣性的方向做進一步探索和研究,比如:

如何在保證種群不斷豐富的前提下,將計算量限制在一定可控範圍內,比如是否可以使用貝葉斯優化方法對PBT方法探索空間的減少[21];

如何使用少量訓練模型,同時產生多種打法風格,比如使用分層的泛化模型,可以針對不同的獎勵配置進行引導訓練;

如何根據玩家資料或特徵,作為群體進化中的一系列“種子”,進行聯盟訓練,從而使聯盟中的模型策略更接近玩家。

聯盟訓練在遊戲AI多樣化的探索
[ 圖17. AI多樣化和個性化在遊戲中的應用 ]

從應用角度上來說,無論是Bot AI還是NPC AI,我們都不希望他們是一成不變的。每個AI可以有不同的性格、特點,同時AI也能夠和玩家、AI互相之間進行一些互動,來驅動AI不斷改變自己的行為、認知和生活方式[22]。我們暫不追求《西部世界》或者《失控玩家》中的NPC具有獨立的想法,但可以首先和環境、玩家建立友好的互動關係,並且會根據玩家的不同喜好做出不同的對策,提供給玩家更加真實的體驗。如圖17所示,這也需要我們去生產多樣性的AI模型或模型池,而且可以根據玩家或周圍AI互動的結果,動態調整AI的行為模式,來符合玩家所想要得到的體驗。

腳註


[1]https://deepmind.com/blog/article/AlphaStar-Grandmaster-level-in-StarCraft-II-using-multi-agent-reinforcement-learning AlphaStar: Grandmaster level in StarCraft II using multi-agent reinforcement learning
[2]https://openai.com/five/ OpenAI Five
[3]https://openai.com/blog/competitive-self-play/ Competitive Self-Play
[4]https://www.sohu.com/a/310018113_354973 AI Dota2雖完虐人類卻弱點頻現 | OpenAI Five親測報告
[5]https://zhuanlan.zhihu.com/p/63306194 碾壓Dota2世界冠軍的AI,被一小撮人持續幹翻了
[6]https://3g.163.com/dy/article_cambrian/FU4F329T05491OUS.html 賽博朋克2077--遍地是BUG,處處是妥協
[7]https://cloud.tencent.com/developer/article/1805866 遊戲“捏臉”需要高手教程?用這個AI模型,一張肖像照就能快速生成
[8]https://www.zhihu.com/question/29910983 知乎:乒乓球國家隊陪練都是什麼水平?
[9]https://arxiv.org/pdf/2011.13729.pdf TStarBot-X: An Open-Sourced and Comprehensive Study for Efficient League Training in StarCraft II Full Game
[10]https://arxiv.org/pdf/2012.13169.pdf SCC: an Efficient Deep RL Agent Mastering the Game of StarCraft II
[11]https://deepmind.com/blog/article/capture-the-flag-science Capture the Flag: the emergence of complex cooperative agents
[12]https://en.wikipedia.org/wiki/Elo_rating_system Wiki: Elo
[13]https://en.wikipedia.org/wiki/TrueSkill Wiki: TrueSkill
[14]https://zhuanlan.zhihu.com/p/362806149 【CSGO】如何分析遊戲資料
[15]https://arxiv.org/pdf/2002.00632.pdf Effective Diversity in Population Based Reinforcement Learning
[16]https://arxiv.org/pdf/2103.07927.pdf Modelling Behavioural Diversity for Learning in Open-Ended Games
[17]https://zh.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F Wiki:行列式
[18]https://arxiv.org/pdf/1207.6083.pdf Determinantal point processes for machine learning
[19]https://zhuanlan.zhihu.com/p/95607668 行列式點過程DPP在推薦系統中的應用
[20]https://arxiv.org/pdf/1711.09846.pdf Population Based Training of Neural Networks
[21]https://proceedings.neurips.cc//paper/2020/file/c7af0926b294e47e52e46cfebe173f20-Paper.pdf Provably Efficient Online Hyperparameter Optimization with Population-Based Bandits
[22]http://www.coreesports.net/13845.html rct studio聯合創始人陳雨恆:如何讓NPC成為有血有肉的“虛擬人”


來源:騰訊遊戲學堂
原文:https://mp.weixin.qq.com/s/Sfwk1Afbn05Jphqg6YNZRg

相關文章