俞文武 楊曉亞 李海昌 王 瑞 胡曉惠
多智能體強化學習技術在現實世界中有著廣泛的應用,例如踢球機器人團隊[1]、游戲智能[2]、自動駕駛等.隨著深度學習在語音識別[3]、文本翻譯和目標檢測[4]等領域的發(fā)展,多智能體強化學習同這些領域技術融合,已取得了許多成果[5].然而,多智能體強化學習領域仍存在許多開放問題,比如訓練過程非平穩(wěn)性、維度爆炸和信用分配問題等[6].
本文針對部分可觀測的多智能體合作任務,采用基于值函數的強化學習方法進行研究.獨立Q學習(IndependentQ-learning,IQL)[7-8]是將單智能體強化學習方法直接應用到多智能體問題上的典型代表,雖然具有很好的擴展性,但是由于其他智能體的策略在訓練過程中不斷發(fā)生變化,對單個智能體而言,所處環(huán)境是非平穩(wěn)的,在復雜任務上的表現往往不佳.值函數分解方法在一定程度上能緩解智能體間信用分配和懶惰智能體的問題,同時每個智能體學習到自身最優(yōu)的局部值函數,僅僅利用自身的局部值函數進行決策,具有很好的擴展性.因此,本文基于值函數分解系列方法[9-11],采用集中式訓練和分布式執(zhí)行訓練模式[12].在這種模式下,所有智能體在訓練時被統(tǒng)一集中控制,執(zhí)行過程中各個智能體被單獨控制.
本文在值分解框架的基礎上進行改進,對于維度爆炸問題,本文訓練的所有智能體網絡參數共享.而對于其他智能體的存在,會導致訓練不穩(wěn)定現象.本文的應對方案是對其他智能體的策略進行建模,利用這部分信息可以讓智能體處在相對穩(wěn)定的環(huán)境下進行訓練.
本文為每個智能體增加額外的公共網絡,將歷史表現最優(yōu)的策略網絡保存下來.在智能體網絡參數共享的情況下,歷史性能最優(yōu)的網絡即代表最優(yōu)的策略,可以預示智能體將來所要達成的目標.智能體網絡訓練最終目的為獲取最優(yōu)策略,因此歷史最優(yōu)網絡能夠推測出其他智能體的未來信息.本文將歷史最優(yōu)網絡命名為意圖網絡,從意圖網絡得到的信息稱為意圖信息.因此整合這些意圖信息作為交流信息,可以讓交流信息包含不同時間段最優(yōu)網絡對當前狀態(tài)的指導信息,智能體也可以在最初時,有更多的基礎信息篩選.而歷史最優(yōu)網絡是通過測試過程中智能體每一局平均得分的高低來篩選.本文將這部分意圖信息和觀測信息整合起來,并基于注意力機制進行信息提取,繼而利用整合提取后的信息進行決策,加速智能體之間的合作學習.對于歷史最優(yōu)網絡是否可以代替意圖網絡,本文在小規(guī)模的修改版捕食者游戲上,從內在獎勵方面來驗證意圖網絡的可行性.
本文為每個智能體之間增加了交流通道,通過溝通,幫助智能體學會更好地合作.傳統(tǒng)的交流方法有直接固定交流信息、交流離散信息或對于連續(xù)交流信息做一個簡單的加和,這些方式過于簡單,不適用于復雜的合作任務.智能體收到的交流消息會隨著智能體數目的增加而增加,過多的消息反而會引入一些干擾信息,不利于智能體的決策.因此本文提出為每個智能體增加一個交流通道,智能體間的交流信息采用多頭注意力機制進行提取.這種基于注意力的交流模式可以更好地處理智能體數目的變化,具有良好的可擴展性,智能體的交流網絡結構采用門控循環(huán)單元(Gated recurrent unit,GRU)[13]神經網絡.
本文采用集中式訓練、分布式執(zhí)行的訓練框架,提出面向部分可觀測合作問題的多智能體注意力意圖交流學習算法(Multi-agent attentional intention and communication,MAAIC).在訓練過程中,利用額外的意圖信息使訓練更加高效,同時改善了智能體間的交流信息結構.本文算法的主要貢獻有:
1)增加額外的公共網絡,保存其他智能體的歷史時刻最優(yōu)策略,為智能體決策提供了額外的信息來源;
2)采用注意力機制,對意圖信息和交流信息進行處理,從而能夠提取到更為有效的信息;
3)驗證增加意圖網絡的可行性,從內在意圖獎勵角度,對智能體意圖信息的可靠性提供理論依據.
本文結構安排如下: 第1 節(jié)介紹相關工作;第2 節(jié)介紹背景知識;第3 節(jié)詳細介紹本文算法的結構,包括組成成分與訓練過程;第4 節(jié)為具體實驗分析;第5 節(jié)總結研究結果.
繼單智能體領域取得卓越的性能后[14],研究人員轉而朝向更有難度的多智能體環(huán)境上[15-16].最簡單的多智能體學習方法是每個智能體獨立訓練學習,早期的嘗試是IQL[17],但一般在實際應用中表現不好,由于其實現簡單而且隨著智能體數目的增加仍然具有很好的擴展性,因此很多問題都是用獨立智能體學習作為基線來進行實驗對比.
對于多智能體合作任務[18-19]的研究算法,2017年,Lowe 等[20]提出多智能體深度確定性策略梯度,將深度確定性策略梯度擴展和應用到多智能體領域,每個智能體都有自己的動作和評論者網絡.在訓練階段,評論者能夠拿到所有智能體的動作,因此能夠用于混合環(huán)境下每個智能體都有自己局部獎勵的問題.在多智能體深度確定性策略梯度基礎上,基于存儲的多智能體深度確定性策略梯度[21]算法提出了共享內存作為一種交流模式,比另一種受到信息丟棄啟發(fā)的多智能體深度確定性策略梯度[22]算法,具有更好的魯棒性.
另外一種處理全局獎勵信用分配問題的方法是值函數分解,2017 年,Sunehag 等[9]提出值函數分解網絡(Value-decomposition networks,VDN)算法,將一個全局的Q函數分解成智能體的局部Q函數之和.Q混合網絡(Qmixing network,QMIX)[10]在VDN 的基礎上,添加了一個混合網絡,為分解添加了非線性部分,并且保證全局Q函數對于局部Q函數是單調的.反事實多智能體[23]算法利用反事實基線,去衡量智能體在全局獎勵中所做的貢獻.然后,為適用于QMIX 中滿足了分解條件且不滿足單調性的任務,Q因式分解(Q-transformation,QTRAN)[24]算法弱化了QMIX 的結構約束,從而能夠處理更加通用的任務.Q注意力算法[25]從理論上給出一種通用的值函數分解方式,基于多頭注意力顯式建模智能體對整體的影響,并將這種影響引入混合網絡中,實現了一種更精確的值函數表示.Q路徑分解算法[26]提出一種利用積分梯度技巧,沿軌跡路徑分解全局Q值的新的值分解方法,通過積分梯度衡量每個智能體對于全局Q值的貢獻,將這部分貢獻作為局部Q值進行監(jiān)督學習.
在多智能體交流方面,2016 年,Foerster 等[27]提出離散和連續(xù)的智能體間交流兩種方法,是最早在深度強化學習中引入交流信息,旨在緩解離散交流通道的問題,是深度Q網絡(DeepQ-network,DQN)和IQL 的結合應用到多智能體問題上.同年,Sukhbaatar 等[28]提出簡潔的交流網絡(Communication neural net,CommNet),使用了一個連續(xù)的交流通道,智能體接受從其他智能體傳來的信息之和,算法允許多步交流,梯度能夠通過連續(xù)交流通道回傳給各個智能體.雙向協(xié)作網絡[29]提出雙向循環(huán)網絡構建每個智能體,智能體之間并不顯示交流信息,而是發(fā)生在隱藏空間.2018 年,Singh 等[30]提出的獨立控制連續(xù)通信模型,為每個智能體添加一個門控,決定是否同其他智能體進行交流,從而讓智能體學會更好地交流.
在篩選有效信息方面,注意力模型作為一種成功的方法,被廣泛應用于計算機視覺[31]、自然語言處理[32]和強化學習.2018 年,Jiang 等[33]提出的注意力協(xié)作算法,可以讓智能體選擇是否進行通信和同哪些智能體進行通信.有目標的多智能體交流(Targeted multi-agent communication,TarMAC)[34]通過基于簽名的軟注意力機制來衡量消息的相關性,并進行多輪的交流.兩步注意力圖網絡[35]算法使用兩階段注意力網絡模型,分別利用硬注意力機制、確定交互的智能體和軟注意力機制,確定交互的權重,自動學習大規(guī)模復雜游戲中不斷變換的智能體間關系.
在多智能體建模領域,以前的研究多是通過觀測學習其他智能體的模型.2018 年,Raileanu 等[36]提出的自身模仿其他智能體算法,利用自身策略,去預測對手的動作,從而推斷其他智能體的目標信息,再利用這部分目標信息做決策.對于那些共享目標任務,自身模仿其他智能體算法具有很好的表現.社會性影響方法[37]是通過一種統(tǒng)一的方法,去實現多智能體的協(xié)調和溝通,即給予智能體對其他智能體的行為產生因果影響的內在獎勵.但這兩種方法都需要額外地使用監(jiān)督學習方法,去訓練這個預測網絡.
這些交流算法大多局限于當前時刻策略網絡的隱藏層信息.本文算法通過增加意圖網絡,擴大了交流信息的來源,且選擇經典值分解系列的算法流程作為基礎框架,從意圖信息模塊和交流模塊兩個角度進行改善,提取出有效的交流信息,使智能體更好地協(xié)作.相比于自身模仿其他智能體算法,本文的意圖網絡是直接從歷史上挑選出最優(yōu)策略網絡,不需要額外訓練網絡.
多智能體強化學習涉及多個智能體和多個狀態(tài),是馬爾科夫決策過程和矩陣博弈的結合,其中馬爾科夫決策過程包含一個智能體和多個狀態(tài),矩陣博弈包含多個智能體和一個狀態(tài).多智能體強化學習的發(fā)展與博弈論[38]是分不開的,部分可觀測的多智能體合作問題可被定義如下:<N,S,A,R,P,O,γ>,其中N是智能體的數目,S代表全局狀態(tài)空間,A={A1,···,AN}是所有智能體的動作空間,R是獎勵函數,P:S×A1×···×AN→S是環(huán)境狀態(tài)轉移函數,O={O1,···,ON}代表所有智能體的觀測空間,γ是折扣因子.智能體i的策略:Oi×Ai→[0,1],智能體πi執(zhí)行在時刻t動作后,會從環(huán)境中獲得獎勵本文在純合作任務上進行研究,此時所有智能體獲得的獎勵相同即整個任務目標為智能體學到最優(yōu)合作策略,從而最大化累計回報G=
VDN 算法是基于深度循環(huán)Q網絡提出的值分解結構,能夠在僅有全局收益情況下,去學習不同智能體的動作價值函數,從而緩解由于部分可觀測導致的偽收益和懶惰智能體問題.VDN 的值分解函數如下:
QMIX 是在VDN 基礎上進行的改進版本,采用一個混合網絡,對局部智能體函數進行合并,并且在訓練過程中,利用全局狀態(tài)信息為混合網絡提供正向權重.本文對于聯合動作值取arg max 等價于對于每個局部動作值函數求arg max:
QMIX 將上式轉換成為一種單調性的約束,這種約束通過混合網絡實現,其中約束如下:
為了更好地處理多智能體交流合作問題,保證交流信息的充分性和有效性,本文提出MAAIC 算法,為每個智能體增加能夠表示其他智能體意圖的網絡信息輸入,同時使用注意力機制對意圖信息和交流信息進行處理.本節(jié)首先對算法思想和算法整體框架進行詳細闡述;然后,介紹多個意圖網絡注意力單元、多頭注意力的交流結構和算法的整體訓練流程;最后,進一步探究意圖網絡的影響.
在多智能體合作問題中,在已知其他智能體狀態(tài)與動作以及自身策略的信息基礎上,若能夠知道其他智能體的目標,就能更好地推測出其他智能體的意圖.基于此,本文選取智能體歷史上表現最好的網絡結構,這些網絡中間層信息能夠表示智能體的意圖目標,通過對這些意圖進行注意力機制提取,從而得到更加有效的信息.將這部分信息加入到自身的決策中,能夠提升智能體的決策能力.
本文提出的多智能體注意力意圖交流學習算法框架見圖1,共分為3 個階段.第1 階段是對信息特征的處理.提出為智能體增加公共意圖網絡,這些意圖網絡是由近階段表現最好的網絡復制而來.首先將觀測輸入到全連接(Fully connected,FC)層得到初步的特征,然后通過GRU 循環(huán)神經網絡,對智能體的局部觀測和動作進行處理,得到包含歷史的狀態(tài)動作信息,將這部分信息與通過意圖網絡得到其他智能體的意圖信息進行注意力機制提取,得到包含意圖信息的狀態(tài)信息.第2 階段是交流模塊.智能體之間增加多頭注意力機制的交流通道,每個智能體將交流信息廣播出去,智能體根據自身信息和接收到其他智能體傳來的交流信息進行多頭注意力信息的提取,從而得到對自身決策有效的信息輸入給GRU 單元.為了讓交流信息更加充分,智能體作出決策前,會同其他智能體進行多次迭代交流.第3 階段將經過意圖和交流提取到的高層信息,經過一個全連接層,得到智能體當前狀態(tài)下的局部Q值函數,進行一個簡單的加和操作,得到整體Qsum值求和函數.
圖1 MAAIC 算法框架Fig.1 Overall framework of MAAIC algorithm
在上述算法框架中,所有智能體都共享同一套網絡參數,根據不同時刻的觀測輸入和智能體編號的不同,能夠得到不同的信息.本文每個智能體的網絡參數共享,主要有兩個原因: 1)大部分多智能體問題是一個開放的系統(tǒng),智能體進入或退出都有可能發(fā)生,那么此時如果用獨立的網絡去訓練智能體,訓練出來的網絡容易對環(huán)境中智能體數目過擬合,很難泛化;2)對多智能體環(huán)境,如果采用獨立的智能體網絡,需要很大精力去訓練出一個好模型,隨著智能體數目的增加,甚至有可能訓練不出一個好模型.為了緩和部分可觀測帶來的問題,同時也會將智能體的動作和交流信息傳入下一時刻的智能體信息中.第2 階段交流模塊所要經過的2 個GRU 循環(huán)神經網絡也可以共享參數.因此,本文使用1 個GRU 循環(huán)神經網絡來循環(huán)迭代交流.
整個網絡的流程運行過程為: 智能體當前時刻得到觀測后,首先,經過全連接層提取信息;然后,經過GRU 循環(huán)神經網絡,得到包含過往歷史的觀測信息,這部分歷史觀測信息在和過往的意圖網絡信息先做一個注意力機制信息提取后,再同其他智能體進行一個多頭注意力機制的信息交流;在信息交流后,經過一個全連接層,從而得到智能體的狀態(tài)動作值函數;最后,將這些狀態(tài)動作值函數相加,利用DQN 的訓練模式來學習策略.
為了緩和多智能體環(huán)境不穩(wěn)定的問題,可以采取許多辦法,其中對其他智能體的行為進行建模,推測出其他智能體的意圖,相比于簡單地將其他智能體當作環(huán)境的一部分,更有幫助.認知科學研究發(fā)現,人類使用與他們相交互的其他群體的目標、信念和喜好來幫助他們更好地做決策.其中,人類會從對他人的觀測中模擬他人行為,這種腦部過程能夠幫助他們更好地知道他人的意圖和行為,從而在社會環(huán)境中作出正確行為.
式中,σ和tanh 代表要訓練的權重矩陣和偏置.r和z代表重置門和更新記憶門,從而更好地利用歷史信息,緩和局部觀測問題.
在訓練過程當中,有些歷史階段的網絡能有好的表現,也就是從一定程度上說明網絡能夠表示出智能體更好的意圖,因此將這些網絡結構的參數保存下來,再利用這些網絡對當前時刻智能體的觀測做進一步的信息補充,從而讓智能體能夠更好地利用以往經驗進行學習.本文提出的多智能體注意力意圖交流學習算法為每個智能體增加三個意圖網絡,如圖2 第1 階段,其中線性層Linear(Q)表示Q為一個線性層,Linear(K)和Linear(V)也是線性層.這樣對當前時刻智能體的觀測就得到一個信息向量其中代表當前網絡的信息,代表歷史網絡的信息,該向量能夠在一定程度上表示出對其他智能體的意圖理解信息.
圖2 對意圖網絡進行自注意力信息的提取Fig.2 Extracting self attention information from intention network
交流是一種重要的獲得信息方式,作為智能體的一種必要手段,能夠幫助從其他智能體的經驗中學習,在部分可觀測環(huán)境中,交流能夠幫助傳遞其他智能體的觀測信息,從而能夠去緩和多智能體環(huán)境不穩(wěn)定問題.本文研究致力于為星際爭霸這樣復雜的環(huán)境,尋找更好的處理方案,讓交流發(fā)生在隱藏空間,進而讓高層次信息能夠傳遞到各個智能體中,以及讓每個智能體得到的策略梯度能夠回傳到整個網絡中.
在多智能體合作環(huán)境下,智能體agent0接受環(huán)境的觀測通過自身的網絡輸出相應動作根據當前狀態(tài)執(zhí)行完動作后,環(huán)境給出一個集體獎勵.集中式訓練分布式執(zhí)行的多智能體同環(huán)境交互見圖3,智能體間可以選擇是否利用有限通道進行交流信息.本文從另一個角度出發(fā),為了更好地利用交流信息,考慮到在不同時刻,當前智能體策略對于其他智能體的關注點是不一樣的,因此在交流信息上選擇使用注意力模型,通過給其他智能體的交流信息分配不同權重,提取出有效的交流信息.
圖3 基于集中式訓練分布式執(zhí)行的多智能體同環(huán)境交互Fig.3 Multi-agent interaction with environment under centralized training and decentralized execution
本文智能體間交流信息計算采用多頭注意力模型,相比于單頭注意力模型,多頭注意力模型本身為多個注意力的計算,彼此之間相互獨立,起到一個集成的作用,防止出現過擬合.本文選擇GRU 神經網絡處理智能體交流,智能體間的交流可循環(huán)迭代k個時間步,GRU 網絡隱藏層狀態(tài)來自前一階段GRU 隱藏層狀態(tài)輸出.考慮到智能體在實際問題中發(fā)送交流信息是需要一定時間的,如果同步處理交流信息,每次需要等到所有信息都發(fā)送過來,決策效率必然不高.因此實現交流信息時,一般采用異步處理即當前時刻接受前一時刻的交流信息進行處理,并且輸出下一時刻的交流信息.交流通道使用的多頭注意力模型見圖4.交流信息c的計算公式見式(6),其中Q、K、V根據交流時刻以及決策時刻存在不同的情況,本文采用8頭注意力模型,映射權重矩陣為其中dmodel為智能體意圖融合向量的維度,dk為每個注意力頭部的維度.
圖4 交流通道使用的多頭注意力模型Fig.4 Multihead attention model used in communication channels
本文在每個決策時刻,智能體之間可以交流k時間步,每次交流的計算流程如下:
式中,t表示當前決策時刻,k代表交流時間步,智能體之間最多進行k步交流.矩陣A由每個智能體經過意圖網絡注意力模型的輸出構成,矩陣H由每個智能體經過GRU 得到的隱藏層狀態(tài)構成.在本文提出的智能體交流結構中,智能體會將上一時刻經過交流單元GRU 后,得到的隱藏層信息加入當前時刻,進行一個注意力的提取,從而使整個智能體的決策與過去的信息更加緊密地結合起來.交流信息c的計算共分為3 種情況: 1)智能體第1 次同環(huán)境進行交互做決策,在t=0 且k=0時刻,此時智能體沒有前一時刻的交流信息,輸入給多頭注意力交流通道的信息為 (At,At,At).2)智能體在t>0 且k=0 時,此時智能體的交流信息是由上一決策時刻的隱藏層向量給出.在k=0 時刻,智能體需要利用意圖觀測信息進行注意力的提取,此時多頭注意力單元的輸入為3)當交流時間步k>0,此時輸入由當前時刻上一交流時間步的隱藏層信息構成.
本文算法采用離線更新方式,將多個智能體同環(huán)境進行交互的狀態(tài)、動作、獎勵、終止狀態(tài)等數據放到經驗池中,每次從經驗池中選取批量完整的每局游戲過程進行學習.算法同DQN 一樣,構建一個目標網絡,每隔固定周期,將當前網絡參數復制,用于計算下一時刻狀態(tài)值,用自舉方式對狀態(tài)值進行更新,能夠加速收斂并且有助于算法的穩(wěn)定.算法的損失函數loss為:
多智能體注意力意圖交流學習算法的流程見附錄A 中算法1.該算法是基于Q值算法,在算法訓練過程中,通過對損失函數最小化,找到最優(yōu)價值函數估計,最優(yōu)策略來自對動作空間遍歷后的最大Q值動作.在智能體學習過程中,會不斷根據評估時刻智能體的表現,將性能更好的網絡替換過往的意圖網絡.
針對本文的一個最主要的假設,意圖網絡是可以短暫地作為最優(yōu)策略網絡,本文從內在獎勵方面研究意圖網絡的影響,為意圖信息的有效性提供理論依據.修改智能體i做出動作后得到的即時獎勵:
計算內在意圖獎勵需要知道智能體當前策略網絡與意圖網絡在環(huán)境狀態(tài)下作出的行為,一種直觀的獎勵方式可以是當兩者的行為a一致時,給出正向獎勵然后,它可以獎勵自己采取它認為最具影響力的行動.這是一種自然而然的方式,因為它類似于人類思考自己對他人的影響方式.
本文設置了多個意圖網絡且多個智能體是共享網絡,得到的反饋是團隊獎勵,因此只有當所有智能體行為都與意圖網絡行為一致時(多個意圖網絡只要有一個滿足要求即可),才會有內在意圖獎勵.在t時刻得到的獎勵為:
式中,o和a是所有智能體的觀察和動作,QIntention代指多個意圖網絡中的一個.
在經過精心設計的SMAC 游戲場景中,智能體必須學會一種或多種微管理技術,才能擊敗敵人.每個場景都是兩支部隊之間的對抗,每個部隊的初始位置、數量、類型都隨著場景的不同而發(fā)生變化.其中第1 支部隊是由本文算法所控制的智能體構成,第2 支部隊是內置游戲人工智能控制的敵方構成.本文算法所使用的SMAC 實驗場景如表1 所示.SMAC 環(huán)境下具體算法參數設置見附錄B.
表1 SMAC 實驗場景Table 1 Experimental scenarios under SMAC
在每個時間步長,每個智能體都會獲得其視野范圍內的局部觀測結果,其中包含了每個單元圓形區(qū)域內的地圖信息.具體地,每個智能體得到的特征向量包含視野范圍內的友軍和敵軍的屬性(如距離、相對x、相對y、健康、盾牌、unit_type),其中盾牌是能夠抵消傷害并可以在一段時間后重新生成的.同時,特征向量也包含周圍地形特征以及可觀測到友軍的最后行動.在本文的局部觀測中,智能體的觀測無法區(qū)分其余智能體是不是在視野范圍,還是已經死亡.
首先,給出本文的多智能體注意力意圖交流學習算法在SMAC 五個實驗場景下,同基準算法的對比實驗結果(見圖5),其中MAAIC-VDN 是本文的多智能體注意力意圖交流學習算法;然后,對這些實驗結果進行分析.
圖5 MAAIC-VDN 算法在SMAC 上的實驗結果Fig.5 Experimental results of MAAIC-VDN algorithm on SMAC
實驗場景任務目標是要學會讓我方單位戰(zhàn)勝敵方單位,因此本文選取游戲勝率作為最終評估目標.在算法訓練過程中,每間隔evaluate_cycle次,算法會對智能體學習到的策略進行評估.智能體會在相應場景游戲下進行evaluate_epoch輪的游戲測試,通過統(tǒng)計勝利次數給出我方的游戲勝率.為了不失一般性,算法采用不同的隨機種子,進行4 次重復實驗,且使用95%的置信區(qū)間.每次完整訓練進行n_epoch次數,訓練結束后會得到n_epoch/evaluate_cycle個游戲勝率數據用于繪制實驗結果圖.
圖5 給出了5 個場景下,本文多智能體注意力意圖交流學習算法MAAIC-VDN 的對比結果,其中2s_vs_1sc 和3s5z 是簡單場景,算法能夠獲得比較高的勝率;5m_vs_6m 和3s_vs_5z 為困難場景,算法需要學到更好的合作策略才能夠取得勝利;6h_vs_8z 是超級困難場景,需要更長的訓練時間以及需要學會更好的獲勝技巧.由圖5 可以看出,本文算法MAAIC-VDN 在所有場景下的收斂速度明顯優(yōu)于其他基線算法,并且性能表現是最好的.本文算法在場景3s5z 和3s_vs_5z 上,相比于VDN 獲得了一定的性能提升,特別是在超級困難場景6h_vs_8z 中,在其他算法都已經失效的情況下,仍然獲得了25%左右的勝率.IQL 除了在簡單的場景2s_vs_1sc 上,能夠最終獲得和其他算法同樣的性能,在其他的場景下的結果,都遠遠不如VDN 和MAAIC-VDN,說明獨立學習的智能體在復雜環(huán)境不能夠表現出好的合作策略.VDN 算法在2s_vs_1sc、3s5z、3s_vs_5z、5m_vs_6m 上,都能獲得不錯的性能,但是在復雜場景6h_vs_8z 中,基本沒有學到任何策略.
同樣在QMIX 算法上修改,圖6 給出了在5 個場景下,本文多智能體注意力意圖交流學習算法MAAIC-QMIX 算法與QMIX 和IQL 算法在SMAC 上的實驗結果,其中在簡單場景3s5z 和困難場景3s_vs_5z 下,MAAIC-QMIX 算法相較于其他算法收斂更快,最終結果也更好.在超級困難場景6h_vs_8z 中,其他算法結果都接近零,而本文算法獲得了20%左右的勝率.圖7 給出了5 個場景下,基于QTRAN 算法的多智能體注意力意圖交流學習MAAIC-QTRAN 算法在SMAC 上的實驗結果,可以看出,相較于其他基線算法,MAAICQTRAN 算法性能都有顯著提升.其中,所有算法在簡單場景2s_vs_1sc 最終都能取得百分百勝率,而本文MAAIC-QTRAN 算法收斂更快.值得注意的是,在場景3s_vs_5z 下,QTRAN 算法由于其對約束條件的放松,性能不佳,而本文MAAIC 方法可以讓智能體快速地找到最優(yōu)策略.
圖6 MAAIC-QMIX 算法在SMAC 上的實驗結果Fig.6 Experimental results of MAAIC-QMIX algorithm on SMAC
圖7 MAAIC-QTRAN 算法在SMAC 上的實驗結果Fig.7 Experimental results of MAAIC-QTRAN algorithm on SMAC
表2 給出了測試算法的最大中值實驗結果,最大中值為訓練過程最后 2 50k步得到的所有測試結果.實驗結果表明,啟發(fā)式(Heuristic)算法即攻擊最近敵方單位策略算法,性能是最低的.而在基礎算法框架上應用本文MAAIC 方法,智能體之間能更好地協(xié)作,獲取更高性能.除了2s_vs_1sc 外,IQL 的勝率很低,這是因為直接使用全局獎勵更新策略會帶來非平穩(wěn)性,當智能體數量增加時,這種非平穩(wěn)性會變得更嚴重.QTRAN 算法的表現也不是很好,是因為實際場景下的寬松約束可能會阻礙其更新的準確性[25].
表2 測試算法的最大中值實驗結果 (%)Table 2 Maximum median performance of the algorithms tested (%)
在兩個基線算法上加入本文的多智能體注意力意圖交流模型,其最終實驗結果和收斂速度在大多數場景中都有明顯的提升,顯示了本文算法能夠從意圖信息中學習到更多知識.
喬瞧也把藕挑起來了,不過,她挑起來的藕都是斷的。踩藕人見了,就說:“喬瞧你不要踩了,你踩出來的藕都斷了,賣不出好價錢?!?/p>
本文進行三個方面消融實驗分析: 1)對交流結構的消融實驗.對比算法為去掉意圖網絡結構,保留本文的多頭注意力多步交流模塊的VDN with Tar-MAC 算法和去掉本文的交流信息的網絡結構,換成CommNet 的交流結構的VDN with CommNet算法;2)對意圖網絡數目的消融性實驗.對比了1、3、5 個意圖網絡的MAAIC 算法;3)對比歷史最優(yōu)網絡[40]與歷史最近鄰網絡[41],哪個作為意圖網絡更好,本文采用的是歷史最優(yōu)網絡作為意圖網絡.
首先,驗證本文交流結構消融性的實驗結果見圖8.由圖8 可以看出,在6 個場景下,VDN with CommNet 性能是最差的,說明本文多頭注意力交流結構能夠在復雜環(huán)境中提取到有效信息,智能體如果只是簡單地拿到所有智能體信息,簡單求和反而會讓策略變差.算法VDN with TarMAC 除了在場景3s5z 性能與本文算法相當,在其他場景下,MAAIC-VDN 算法性能表現最好.由場景2s_vs_1sc 可以看出,含注意力交流模塊的VDN with TarMAC 算法收斂速度和多智能體注意力意圖算法是一樣的,相比CommNet 交流結構,收斂速度更快,說明本文多頭注意力交流模塊對于提升收斂速度很有效.由場景5m_vs_6m 和場景3m 可以看出,多智能體注意力意圖相比于沒有意圖的VDN 算法,性能要好一些,從而說明本文提出的意圖網絡結構與注意力交流結構結合,能夠幫助改善算法性能.在3s_vs_5z 和6h_vs_8z 場景下,本文算法無論是收斂速度還是性能,都比其他的交流結構要好.這表明,從額外的意圖網絡中提取意圖信息作為交流信息,比只在當前內部網絡提取交流信息,更具有價值,驗證了本文的多個意圖網絡和注意力交流模型的有效性.
圖8 交流結構消融性實驗結果Fig.8 Experimental ablation results of the communication structure
接著,驗證意圖網絡數目對于性能的影響,在SMAC 的3 個實驗場景下,圖9 給出了1 個意圖網絡、3 個意圖網絡和5 個意圖網絡的消融性實驗結果.由圖9 可以看出,在簡單場景2s_vs_1sc中,意圖網絡數并不影響最終性能,算法都能很快地收斂到最好結果.由場景3s_vs_5z 可以看出,5 個意圖網絡的性能大于1 個意圖網絡和3 個意圖網絡性能.在場景5m_vs_6m 中,3 個意圖網絡性能最優(yōu).在3 個場景下,有意圖網絡算法性能收斂都是比基線VDN 算法要快且大多數最終結果也更好.由實驗結果可以看出,意圖網絡對算法性能有明顯提升,能夠處理應對復雜問題且多個意圖網絡性能優(yōu)于1個意圖網絡.
圖9 意圖網絡數的消融性實驗結果Fig.9 Experimental ablation results of the number of intention networks
表3 為本文訓練1 000 輪后,MAAIC-VDN 算法在不同意圖網絡數的GPU 上內存開銷,表3 中數值為運行多次求平均值且去掉個位數得到的結果.圖10 為MAAIC-VDN 算法在不同意圖網絡數的時間開銷,縱坐標是平均每局所消耗的時間,本文選擇在場景2s_vs_1sc 下測量,這是由于所有算法都可以快速找到最優(yōu)策略.為了減少其他變量干擾,本文只在1 個GPU 運行且只運行單個程序.VDN 算法內存開銷和時間開銷都是最小的,而添加注意力機制的交流模塊且無意圖網絡VDN with TarMAC算法的內存和時間開銷大幅度增加.隨著意圖網絡數量的增加,MAAIC-VDN 算法的內存和時間花費也越來越大,總體上呈現線性增長.其中注意力機制交流模塊是必不可少的,因此,本文在衡量算法性能與消耗情況下,選擇使用3 個意圖網絡.
表3 MAAIC-VDN 算法在不同意圖網絡數的GPU 內存開銷 (MB)Table 3 GPU memory cost for different numbers of intention networks based on MAAIC-VDN algorithm (MB)
圖10 MAAIC-VDN 算法在不同意圖網絡數的時間開銷Fig.10 Time cost for different numbers of intention units based on MAAIC-VDN algorithm
圖11 給出了歷史最優(yōu)網絡作為意圖網絡和歷史最近鄰網絡作為意圖網絡2 個算法的消融性對比實驗.可以看出,在3 個場景下,2 個算法相比于算法VDN,其收斂速度和最終性能結果更好.本文采用的歷史最優(yōu)網絡作為意圖網絡算法,在3 個場景中性能表現最優(yōu),這表明了使用歷史最優(yōu)網絡作為意圖網絡,得到的意圖信息更為有效.
為了更好地探究意圖網絡的作用,本文單獨在小規(guī)模的球形環(huán)境(即修改版捕食者(Modified predator-prey,MPP)游戲)驗證意圖網絡的性能,實驗參數見附錄C.修改的捕食者游戲比經典的捕食者游戲更復雜.兩者狀態(tài)空間和行動空間的構造是相同的,捕獲獵物就相當于將獵物置于代理人的觀察視界內.修改的捕食者游戲將經典的捕食者游戲擴展到只有當多個捕食者同時捕獲獵物時,才會給予積極獎勵,這需要更高程度的合作.如果兩個或兩個以上捕食者同時捕獲獵物,捕食者將獲得+1的團隊獎勵,但如果只有一個捕食者捕獲獵物,捕食者將獲得負獎勵P.
圖12 給出了2 個智能體、不同懲罰值P下VDN與本文VDN-Intention 的內在意圖獎勵實驗結果,其中意圖網絡數為3.圖12 中,每個算法都繪制了5 次測試的平均獎勵和95%的置信區(qū)間.可以看出,基線算法VDN 隨著懲罰值P的增大,訓練難度增大,得到的獎勵減少.而本文VDN-Intention 算法是在VDN 基礎上,只增加了內在意圖獎勵,沒有額外添加注意力機制和交流結構,可以看出,與基線算法VDN 相比,有較大的性能提升.即使懲罰值P很大,VDN-Intention 算法中智能體還是能很好地合作捕捉獵物.這充分表明本文最主要假設的可行性,即意圖網絡是可以短暫地作為最優(yōu)策略.因此,在大型復雜環(huán)境下,可以從意圖網絡中抽取意圖信息,幫助智能體更好地決策.
本文提出一種意圖存儲機制,引入額外的公共網絡保存歷史表現最好的策略網絡,以此建模其他智能體的意圖信息.同時引入交流模塊,采用多頭注意力機制提高整個網絡的表示能力.本文的多智能體意圖交流算法可以充分利用過往局部最優(yōu)網絡信息,擴大了信息的來源渠道.最后,將本文的多智能體注意力意圖交流學習算法分別在開源的星際爭霸任務場景上和捕食者環(huán)境上進行驗證和分析,并同領域內的經典算法進行對比,驗證了本文算法的有效性.通過在星際爭霸環(huán)境上的消融性實驗分析,驗證了本文提出的多智能體注意力意圖結構和多頭注意力交流結構的可行性,并通過內在意圖獎勵方式,驗證了意圖網絡提供意圖信息的可靠性.
附錄AMAAIC 算法
算法1.多智能體注意力意圖交流學習算法
附錄BSMAC 環(huán)境下算法參數設置
為了能夠更好地分析本文提出的多智能體注意力意圖交流學習算法的性能,本文在SMAC 多個不同復雜度場景下進行實驗.本文的多智能體注意力意圖學習算法的網絡結構參數見表B1.
首先,環(huán)境初始化后會構建N個智能體的控制器,其中對于本文算法,N個控制器的網絡參數是共享的,區(qū)別只是在于自身的觀測輸入和編號信息是不一樣的.在控制器網絡中,每個智能體將自身的觀測輸入和過往的動作信息等經過1 個FC 層的編碼和ReLU 函數激活,然后經過GRU 循環(huán)神經網絡的編碼,得到當前對于觀測的信息輸出,其中在增加了3 個意圖網絡后的維度輸出為(4,N,rnn_hidden_dim),這部分包括現實信息和三部分意圖信息,對這部分信息進行注意力提取,最后得到(N,attention_dim1)信息,代表每個智能體各自針對觀測和意圖信息的融合所生成的更高層次特征.
接著,進行多智能體間的交流,其中本文采用8 頭注意力機制處理交流結構信息.交流的信息經過多頭注意力的提取為 (N,attention_dim2),通過GRU 循環(huán)神經網絡經過k時間步交流,得到最終信息為 (N,rnn_hidden_dim).最后,這部分信息經過全連接層,輸入動作空間維度大小的q值,大小為 (N,n_actions).
本文算法訓練參數設置見表B2.智能體策略從控制器選取最大Q值對應的動作.多個智能體利用自身策略同環(huán)境進行交互,收集每集游戲的樣本數據放到內存池中,從而通過從內存池當中選取一批數據,利用這些數據來訓練智能體.在每段游戲中,智能體生成n_episodes樣本數據,放入內存池中.根據DQN 的模式計算的當前Q值和下一時刻的目標Q值,首先,對所有的智能體將兩個Q值分別求和;然后,求得損失l=(Q-(r+maxa Qtarget))2,將所有時刻、所有游戲集數的損失求和,得到總損失;最后,按照均方根傳遞(Root mean square prop,RMSProp)優(yōu)化方法對損失進行優(yōu)化求解.
附錄C修改版追捕者環(huán)境下的算法參數設置
表C1 給出了修改版追捕者環(huán)境下訓練的參數設置.每個獨立的策略網絡包含3 個隱藏層.所有隱藏層維度為64,激活函數為ReLU.其中智能體探索策略是保證游戲開始階段,智能體更多地進行探索,隨著訓練持續(xù)進行,智能體學到了更多知識,智能體的探索會逐漸減少,最后維持在一個最小的探測概率?∈[0.1,1],從而更有效地利用已學到的知識保證訓練的穩(wěn)定性和速度.最后,實驗使用前饋策略且使用Adam 優(yōu)化器進行訓練.
表B1 MAAIC 算法網絡參數Table B1 Network parameters of MAAIC algorithm