鄧暉奕,李勇振,尹奇躍
(1.北京建筑大學(xué) 電氣與信息工程學(xué)院,北京 102616;2.廈門大學(xué) 自動(dòng)化系,福建 廈門 361002;3.中國(guó)科學(xué)院 自動(dòng)化研究所,北京 100190)
多智能體系統(tǒng)(Multi-Agent System,MAS)是在同一個(gè)環(huán)境中由多個(gè)交互智能體組成的系統(tǒng),該系統(tǒng)常用于解決獨(dú)立智能體以及單層系統(tǒng)難以解決的問(wèn)題。如今,現(xiàn)實(shí)世界大規(guī)模決策問(wèn)題的建模依靠單智能體的解決方案難以滿足各種資源與條件的限制,MAS 因其較強(qiáng)的實(shí)用性和擴(kuò)展性,能夠?qū)⒋蠖鴱?fù)雜的系統(tǒng)建設(shè)成小而彼此互相關(guān)聯(lián)的易于管理的系統(tǒng)。自提出以來(lái)已經(jīng)在諸多領(lǐng)域都得到廣泛應(yīng)用[1]。
強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)作為機(jī)器學(xué)習(xí)的一類,它是為了描述和解決智能體在與環(huán)境的交互過(guò)程中以最大化獎(jiǎng)勵(lì)為目標(biāo)來(lái)學(xué)習(xí)策略的問(wèn)題[2]。近年來(lái),隨著科技的發(fā)展,計(jì)算能力與存儲(chǔ)能力大幅提高,深度學(xué)習(xí)在諸多領(lǐng)域取得顯著成就。深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的結(jié)合就在此背景下應(yīng)運(yùn)而生,產(chǎn)生了深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL),同時(shí)也成為眾多學(xué)者的熱門研究對(duì)象,它將感知、學(xué)習(xí)、決策匯集到一個(gè)架構(gòu)中,實(shí)現(xiàn)了從輸入到執(zhí)行動(dòng)作“端到端”的感知與決策,并在游戲、機(jī)器人等領(lǐng)域取得了較大的突破[3-5]。
DRL 的巨大成功推動(dòng)了多智能體領(lǐng)域的發(fā)展,研究人員為了解決環(huán)境中的眾多復(fù)雜的問(wèn)題開(kāi)始嘗試將DRL 方法和MAS 結(jié)合在一起,這就產(chǎn)生了多智能體深度強(qiáng)化學(xué)習(xí)(Multiagent Deep Reinforcement Learning,MDRL),科研人員研究了眾多應(yīng)用于各類領(lǐng)域的算法、規(guī)則、框架。在機(jī)器學(xué)習(xí)甚至人工智能領(lǐng)域中,MDRL 由于其具有極高的研究?jī)r(jià)值正在成為當(dāng)下的研究熱點(diǎn)之一[6]。
多智能體技術(shù)在各個(gè)領(lǐng)域深入應(yīng)用的同時(shí),也遇到了諸多瓶頸,典型如環(huán)境的非平穩(wěn)性問(wèn)題、非完全觀測(cè)問(wèn)題、多智能體訓(xùn)練模式問(wèn)題、多智能體信度分配問(wèn)題、過(guò)擬合問(wèn)題等。非平穩(wěn)性問(wèn)題指的是在訓(xùn)練過(guò)程中因智能體不斷改變其策略從而導(dǎo)致的多智能體環(huán)境的非平穩(wěn)性。在單智能體強(qiáng)化學(xué)習(xí)中,智能體只需要根據(jù)自身動(dòng)作和環(huán)境交互即可完成學(xué)習(xí)任務(wù);而在多智能體環(huán)境中,每個(gè)智能體不僅要考慮自身動(dòng)作對(duì)環(huán)境造成的影響和與之帶來(lái)的回報(bào),還要觀測(cè)其他智能體的行為及其影響,由于這些交錯(cuò)復(fù)雜的交互和相互聯(lián)系過(guò)程使得環(huán)境一直在動(dòng)態(tài)地變化;同時(shí),智能體間動(dòng)作及策略的選擇相互影響,這使得回報(bào)函數(shù)的準(zhǔn)確性降低,一個(gè)良好的策略會(huì)隨著學(xué)習(xí)過(guò)程的推進(jìn)不斷變差。環(huán)境的非平穩(wěn)性大幅增加了算法的收斂難度,降低了算法的穩(wěn)定性,并且打破了智能體的探索和利用平衡[7]。
為解決多智能體深度強(qiáng)化學(xué)習(xí)中的環(huán)境非平穩(wěn)問(wèn)題,許多學(xué)者基于深度Q 學(xué)習(xí)算法提出了多種改進(jìn)方案:Casta?eda[8]提出了兩種改進(jìn)方法:一種是通過(guò)改變值函數(shù)的方式;二是改變回報(bào)函數(shù)的方式分別提高智能體之間的相關(guān)聯(lián)性。Diallo 等[9]將并行運(yùn)算機(jī)制引入到深度Q 學(xué)習(xí)中,使多智能體可以在非平穩(wěn)環(huán)境中收斂。Foerster 等[10]為了使算法適用于多智能體非平穩(wěn)環(huán)境改進(jìn)了記憶庫(kù)機(jī)制,同時(shí)提出了兩種方法:一是為標(biāo)記記憶庫(kù)中重要的數(shù)據(jù),丟棄之前的不適應(yīng)環(huán)境的數(shù)據(jù);二是為每個(gè)從記憶庫(kù)中取出的數(shù)據(jù)做時(shí)間標(biāo)記,從而提高訓(xùn)練質(zhì)量。目前針對(duì)該問(wèn)題的解決方法種類繁多,也是未來(lái)多智能體強(qiáng)化學(xué)習(xí)領(lǐng)域研究方向的熱點(diǎn)之一。
在多智能體系統(tǒng)中,每個(gè)智能體的策略不僅受自身的策略動(dòng)作和環(huán)境的反饋獎(jiǎng)勵(lì)所影響,也會(huì)受到其他智能體的行為和合作關(guān)系的影響。比如在對(duì)環(huán)境有完全觀測(cè)能力的條件下,全局狀態(tài)可以在每個(gè)時(shí)間步中被獲得,然后智能體能夠根據(jù)相應(yīng)策略選擇執(zhí)行動(dòng)作;而當(dāng)智能體對(duì)環(huán)境只有局部觀測(cè)能力時(shí),智能體就只能利用局部觀測(cè)值并結(jié)合自身策略來(lái)選擇執(zhí)行動(dòng)作。智能體之間是合作關(guān)系時(shí),所有智能體所獲得的獎(jiǎng)勵(lì)相同,它們?yōu)橐粋€(gè)相同的目標(biāo)而努力;而當(dāng)智能體之間是競(jìng)爭(zhēng)關(guān)系時(shí),由于獎(jiǎng)勵(lì)值的多樣性會(huì)使多智能體強(qiáng)化學(xué)習(xí)更加復(fù)雜。
將強(qiáng)化學(xué)習(xí)從單智能體系統(tǒng)推廣到多智能體系統(tǒng)的兩種思路為分布式學(xué)習(xí)和集中式學(xué)習(xí)。
分布式學(xué)習(xí)方法 對(duì)每個(gè)智能體分別做強(qiáng)化學(xué)習(xí)算法,對(duì)智能體而言,其他智能體被視作環(huán)境的一部分。分布式學(xué)習(xí)又分為獨(dú)立式學(xué)習(xí)(Reinforcement Learning Individually,RLI)與群體式學(xué)習(xí)(Reinforcement Learning in Groups,RLG)。
1)在RLI 中每個(gè)智能體有獨(dú)立的學(xué)習(xí)過(guò)程,它不用關(guān)心其他智能體的信息,只需要考慮環(huán)境中的信息,擁有極高的獨(dú)立性,并且智能體個(gè)數(shù)的變化對(duì)學(xué)習(xí)收斂性影響很小。典型算法如獨(dú)立式Q 學(xué)習(xí)(Independent Q-Learning,IQL)[11]算法,其主要思路是將其余智能體直接看作環(huán)境的一部分,在智能體學(xué)習(xí)的過(guò)程中每個(gè)智能體獲得其局部觀測(cè)值,然后調(diào)整每個(gè)智能體的策略以達(dá)到最大化整體獎(jiǎng)勵(lì)值。
2)RLG 中,智能體狀態(tài)和動(dòng)作都是動(dòng)態(tài)組合的,每個(gè)智能體的Q 函數(shù)表是組合后的映射。與RLI 不同,RLG 中每個(gè)智能體都需要考慮其他智能體的信息,所以其狀態(tài)空間和動(dòng)作空間都非常大,進(jìn)而導(dǎo)致其學(xué)習(xí)速度緩慢,所以此方法只適合智能體很少的情況,并且通常會(huì)加入加速算法進(jìn)行優(yōu)化。RLG 方法的限制在于其狀態(tài)和動(dòng)作空間都會(huì)隨著智能體個(gè)數(shù)指數(shù)增長(zhǎng),需要花費(fèi)大量的時(shí)間來(lái)學(xué)習(xí)[12]。
集中式學(xué)習(xí)方法 集中所有智能體的狀態(tài)空間和動(dòng)作空間,再使用單智能體強(qiáng)化學(xué)習(xí)算法訓(xùn)練,輸入是整個(gè)多智能體系統(tǒng)的信息,輸出是每個(gè)智能體的動(dòng)作。隨著智能體的增加,勢(shì)必會(huì)造成狀態(tài)空間和動(dòng)作空間過(guò)大,以致于無(wú)法進(jìn)行有效的探索和訓(xùn)練[13]。
目前多智能體深度強(qiáng)化學(xué)習(xí)算法常用的結(jié)構(gòu)“集中式訓(xùn)練-分布式執(zhí)行”(Centralized Training with Decentralized Execution,CTDE)結(jié)合了兩者的思路,相關(guān)概念及框架敘述如下。
集中式訓(xùn)練指的是在訓(xùn)練中使用聯(lián)合動(dòng)作行為值函數(shù)對(duì)智能體進(jìn)行訓(xùn)練,即將所有智能體看作一個(gè)整體,并且在訓(xùn)練時(shí),每個(gè)智能體可以無(wú)限制地獲取其他智能體的信息;而分散式執(zhí)行是指智能體只能根據(jù)自身觀測(cè)到的部分信息以及其他智能體的有限信息來(lái)選擇執(zhí)行動(dòng)作。由于多智能體強(qiáng)化學(xué)習(xí)常在模擬環(huán)境中進(jìn)行訓(xùn)練,因此實(shí)際硬件條件不會(huì)對(duì)智能體之間的通信造成限制,這也使智能體更容易獲得額外的環(huán)境狀態(tài),有利于CTDE 結(jié)構(gòu)的實(shí)際應(yīng)用。也正因?yàn)槠浣Y(jié)構(gòu)擁有許多優(yōu)勢(shì),使它被認(rèn)為是多智能體強(qiáng)化學(xué)習(xí)領(lǐng)域的典型學(xué)習(xí)結(jié)構(gòu)之一。
2017 年,為了解決多智能體信用分配(Multi-Agent Credit Assignment)問(wèn)題,DeepMind 團(tuán)隊(duì)提出了一個(gè)基于CTDE 框架的值分解網(wǎng)絡(luò)(Value Decomposition Network,VDN)[14],其主要思路為每個(gè)智能體根據(jù)自己對(duì)團(tuán)隊(duì)的貢獻(xiàn),優(yōu)化各自的目標(biāo)函數(shù)。具體是把整體值函數(shù)Qtot(τ,u),τ∈T進(jìn)行分解,其中T表示聯(lián)合狀態(tài)-動(dòng)作歷史,u表示聯(lián)合動(dòng)作。分解將會(huì)得到每個(gè)智能體a的值函數(shù)Qa(τa,ua;θa),并將其作為各智能體執(zhí)行動(dòng)作的依據(jù),其中θa為每個(gè)智能體值函數(shù)的網(wǎng)絡(luò)參數(shù)。其優(yōu)點(diǎn)在于結(jié)構(gòu)簡(jiǎn)潔,分解得到的Qa可以使得智能體可以根據(jù)自己的局部觀測(cè)值選擇動(dòng)作來(lái)執(zhí)行分布式策略:
對(duì)于一些簡(jiǎn)單的任務(wù),VDN 算法十分高效,但同樣存在對(duì)于一些大規(guī)模的多智能體優(yōu)化問(wèn)題,它的訓(xùn)練效果會(huì)大打折扣的缺點(diǎn)。根本原因在于VDN 只是以簡(jiǎn)單的求和方式分解Qtot函數(shù),缺少值函數(shù)分解的有效的理論支持,使得多智能體Q 網(wǎng)絡(luò)的擬合能力很受限制。
QMIX 算 法[15]則 在VDN 基礎(chǔ)上采用一個(gè)混合網(wǎng)絡(luò)(Mixing Network)替代VDN 中直接求和的操作,該網(wǎng)絡(luò)對(duì)單智能體局部值函數(shù)進(jìn)行合并,并在訓(xùn)練學(xué)習(xí)過(guò)程中加入全局狀態(tài)信息輔助來(lái)提高算法性能:
為了能更好地利用全局狀態(tài)信息,QMIX 算法采用一種超網(wǎng)絡(luò)(Hyper Network),將狀態(tài)作為輸入,輸出為混合網(wǎng)絡(luò)的權(quán)值及偏移量;同時(shí)為了使權(quán)值不小于零,采用一個(gè)線性網(wǎng)絡(luò)以及絕對(duì)值激活函數(shù)保證輸出不為負(fù)數(shù)。使用相同但沒(méi)有非負(fù)性的約束的方法處理偏移量,混合網(wǎng)絡(luò)最后一層的偏移量通過(guò)兩層網(wǎng)絡(luò)以及ReLU(Rectified Linear Unit)激活函數(shù)得到非線性映射網(wǎng)絡(luò)。由于狀態(tài)信息是通過(guò)超網(wǎng)絡(luò)混合到Qtot中的,而不只是簡(jiǎn)單地輸入到混合網(wǎng)絡(luò)中,所以它的優(yōu)勢(shì)在于,如果輸入的狀態(tài)值均大于零,那么就無(wú)法充分利用狀態(tài)值來(lái)提升算法性能,等于舍棄了一半的數(shù)據(jù)量。相關(guān)實(shí)驗(yàn)[15]表明,在星際爭(zhēng)霸Ⅱ?qū)W習(xí)環(huán)境(StarCraftⅡ Learning Environment,SC2LE)中的多個(gè)場(chǎng)景中,QMIX 算法比VDN 算法表現(xiàn)更優(yōu)。
本文在QMIX 算法的基礎(chǔ)上引入通信模型以實(shí)現(xiàn)多智能體間的有效交流,同時(shí)引入好奇心機(jī)制,使智能體在稀疏獎(jiǎng)勵(lì)的環(huán)境中有更好表現(xiàn)。算法結(jié)構(gòu)如圖1 所示。
圖1 算法結(jié)構(gòu)Fig.1 Algorithm structure
改進(jìn)后算法引入智能體網(wǎng)絡(luò)[16]替代QMIX 結(jié)構(gòu)中的Qa網(wǎng)絡(luò),新的Qi(ot,ht-1,·)定義為:
其中:ot、ht-1分別表示智能體在t時(shí)刻的觀測(cè)值和智能體網(wǎng)絡(luò)隱藏層歷史信息,表示智能體j在t時(shí)刻的GRU 模塊輸出結(jié)果[16]。
這樣做能有效提高智能體訓(xùn)練時(shí)有效信息的提取速度和利用率;同時(shí),改進(jìn)算法在智能體執(zhí)行動(dòng)作過(guò)程中加入智能體通信協(xié)議算法[16],讓智能體有條件地交流信息,雖然這種做法與傳統(tǒng)的“集中式訓(xùn)練-分布式執(zhí)行”結(jié)構(gòu)有所沖突,但是在保持整體結(jié)構(gòu)相對(duì)完整的情況下,在執(zhí)行過(guò)程中使智能體間主動(dòng)且有選擇地相互通信,能夠消除環(huán)境所帶來(lái)的噪聲和有效信息量較少的信息,得到更好的訓(xùn)練效果。
為了在智能體之間通信時(shí)限制一個(gè)智能體從其他智能體得到信息的方差,算法引入了信息編碼器的輸出fenc(·)作為損失函數(shù)的一個(gè)額外損失項(xiàng),算法損失函數(shù)定義為:
在這里it、rt分別表示t時(shí)刻的內(nèi)在獎(jiǎng)勵(lì)和外部獎(jiǎng)勵(lì),γ∈[0,1]為折扣因子,θ-為目標(biāo)網(wǎng)絡(luò)參數(shù)。
同時(shí),為了進(jìn)一步緩解環(huán)境非平穩(wěn)性問(wèn)題及其所帶來(lái)的智能體探索與利用平衡問(wèn)題和提高算法在稀疏環(huán)境中的魯棒性,改進(jìn)后算法引入好奇心機(jī)制即內(nèi)在獎(jiǎng)勵(lì)it,其原理是當(dāng)智能體訪問(wèn)新穎狀態(tài)時(shí)予以鼓勵(lì),以此提高智能體探索未知狀態(tài)的可能性,從而幫助智能體找到潛在的更好的狀態(tài)。加入內(nèi)在獎(jiǎng)勵(lì)后的算法獎(jiǎng)勵(lì)函數(shù)定義為:
本文算法使用“端到端”的方式進(jìn)行訓(xùn)練,訓(xùn)練過(guò)程中采用在線網(wǎng)絡(luò)與目標(biāo)網(wǎng)絡(luò)兩個(gè)神經(jīng)網(wǎng)絡(luò)的方式訓(xùn)練。目標(biāo)網(wǎng)絡(luò)用于計(jì)算Q現(xiàn)實(shí),在線網(wǎng)絡(luò)用于計(jì)算Q估計(jì)。通過(guò)最小化Q現(xiàn)實(shí)與Q估計(jì)的差值訓(xùn)練神經(jīng)網(wǎng)絡(luò)參數(shù),使其更逼近于真實(shí)的Q函數(shù)。
訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),通常要求樣本之間是相互獨(dú)立的,這種隨機(jī)采樣的方式大幅降低了樣本之間的相關(guān)性,使算法更加穩(wěn)定?;谶@種原因,本文算法也采用隨機(jī)采樣的方 式,從記憶庫(kù)中隨機(jī)抽取小批量樣本(st,ot,ut,rt,st+1,ot+1),因此根據(jù)狀態(tài)s選取的相關(guān)軌跡也是具有隨機(jī)性的,這保證了算法的穩(wěn)定性。算法偽代碼如下所示:
輸入 訓(xùn)練輪次N,每輪訓(xùn)練的長(zhǎng)度K,觀測(cè)值的步數(shù)M。
輸出 智能體網(wǎng)絡(luò)參數(shù)θ。
在多智能體強(qiáng)化學(xué)習(xí)中,所有智能體在一個(gè)共享的環(huán)境中相互交流,但每個(gè)智能體只能獲得環(huán)境的部分觀測(cè)值,同時(shí)每個(gè)智能體需要基于這些部分觀測(cè)值和來(lái)自其他智能體的間接或直接的交流信息作出決策,這就導(dǎo)致復(fù)雜的交流模型面臨巨大的挑戰(zhàn)[7]。特別是在訓(xùn)練過(guò)程中,每個(gè)智能體都在動(dòng)態(tài)地調(diào)整策略,這將造成環(huán)境的非平穩(wěn)性。與此同時(shí),每個(gè)智能體可能會(huì)被其他智能體的行為所影響從而使自身策略過(guò)擬合。為了緩解此問(wèn)題,本文采用了基于方差控制的有效交流通信模型(Variance Based Control,VBC)算法[16]對(duì)QMIX 算法進(jìn)行改進(jìn)。
VBC 算法的思想是:讓智能體在執(zhí)行過(guò)程中只采用有效信息進(jìn)行交流。具體做法是通過(guò)在交換的信息的方差上插入一個(gè)額外的損失項(xiàng)來(lái)提取信息中有意義的部分。這樣可以提高對(duì)有效信息的提取速度和利用率,有利于每個(gè)智能體的訓(xùn)練;此外,與以前的傳統(tǒng)的通信模型不同的是,VBC 不需要一個(gè)額外的決策模塊來(lái)動(dòng)態(tài)地調(diào)整通信模式,而是每個(gè)智能體先根據(jù)其自身信息作出初步?jīng)Q定,只有當(dāng)它對(duì)這一初步?jīng)Q定的置信水平較低時(shí)才啟動(dòng)通信,這能大幅降低模型的復(fù)雜性;同時(shí),在收到通信請(qǐng)求時(shí),智能體只在其信息有效時(shí)才回復(fù)請(qǐng)求。因?yàn)橹辉谥悄荏w之間交換有效信息,VBC 算法既提高了智能體的性能,又大幅降低了執(zhí)行過(guò)程中的通信開(kāi)銷。最后,從理論上證明,算法可以保證訓(xùn)練的穩(wěn)定性。
強(qiáng)化學(xué)習(xí)是通過(guò)最大化策略的預(yù)期收益來(lái)實(shí)現(xiàn)的。當(dāng)環(huán)境中存在稠密獎(jiǎng)勵(lì)時(shí),強(qiáng)化學(xué)習(xí)可以通過(guò)隨機(jī)抽取行動(dòng)序列來(lái)獲得獎(jiǎng)勵(lì),這種方法十分有效,但當(dāng)獎(jiǎng)勵(lì)變得稀疏且難以找到時(shí),往往會(huì)難以獲得獎(jiǎng)勵(lì)。在現(xiàn)實(shí)中,為多智能體強(qiáng)化學(xué)習(xí)的每項(xiàng)任務(wù)都設(shè)計(jì)密集的獎(jiǎng)勵(lì)函數(shù)往往不切實(shí)際,所以有必要采用定向方式探索環(huán)境的方法[17]。為了在獎(jiǎng)勵(lì)稀疏環(huán)境下幫助智能體探索潛在的更好的狀態(tài),本文引入了好奇心(Curiosity)機(jī)制對(duì)算法進(jìn)行改進(jìn)。
本文采取了隨機(jī)網(wǎng)絡(luò)提煉(Random Network Distillation,RND)[18]算法,RND 算法是一種基于預(yù)測(cè)的獎(jiǎng)勵(lì)方法,其思想是讓智能體從經(jīng)驗(yàn)中學(xué)習(xí)下一個(gè)狀態(tài)的預(yù)測(cè)模型,并使用預(yù)測(cè)誤差作為內(nèi)在獎(jiǎng)勵(lì)來(lái)增強(qiáng)智能體的“好奇心”,激勵(lì)它們探索潛在的未知狀態(tài)。具體而言,RND 算法設(shè)計(jì)了兩個(gè)神經(jīng)網(wǎng)絡(luò)計(jì)算內(nèi)在獎(jiǎng)勵(lì):一個(gè)是固定且隨機(jī)初始化的目標(biāo)網(wǎng)絡(luò),它設(shè)定了預(yù)測(cè)問(wèn)題;另一個(gè)是根據(jù)智能體收集的數(shù)據(jù)訓(xùn)練的預(yù)測(cè)網(wǎng)絡(luò)。其中目標(biāo)網(wǎng)絡(luò)f:O →Rk將智能體觀測(cè)值ot+1作為輸入且在學(xué)習(xí)過(guò)程中不進(jìn)行更新,預(yù)測(cè)網(wǎng)絡(luò):O →Rk同樣將ot+1作為輸入,在學(xué)習(xí)過(guò)程中通過(guò)梯度下降進(jìn)行訓(xùn)練,與目標(biāo)網(wǎng)絡(luò)f進(jìn)行比較來(lái)最小化均方誤差并更新其網(wǎng)絡(luò)參數(shù)。
在學(xué)習(xí)過(guò)程中,隨機(jī)初始化的目標(biāo)網(wǎng)絡(luò)將會(huì)被提煉成一個(gè)經(jīng)過(guò)訓(xùn)練的網(wǎng)絡(luò),當(dāng)遇到與預(yù)測(cè)網(wǎng)絡(luò)所訓(xùn)練的狀態(tài)不同的新?tīng)顟B(tài)時(shí),產(chǎn)生的預(yù)測(cè)誤差將會(huì)變得更高,智能體內(nèi)在獎(jiǎng)勵(lì)it也隨之變大,以此來(lái)激勵(lì)智能體采取不同的動(dòng)作與環(huán)境交互。RND 算法偽代碼如下所示:
實(shí)驗(yàn)所采用的計(jì)算機(jī)硬件配置為NVIDIA Geforce1070 GPU,32 GB RAM,Intel Core i7-9700F CPU,操作系統(tǒng)為Windows 10。使用Pytorch 作為搭建算法的代碼框架,采用PyCharm 2021.1.1 x64 作為仿真工具,在星際爭(zhēng)霸Ⅱ?qū)W習(xí)環(huán)境(SC2LE)下對(duì)算法進(jìn)行模擬測(cè)試。
所有智能體的動(dòng)作空間由一組離散的動(dòng)作組成:Move(Direction)、Attack(EnemyID)、Stop 和 Noop。Move(Direction)表示朝某個(gè)方向移動(dòng),其中方向只有東、南、西、北4 個(gè)選項(xiàng);Attack(EnemyID)表示攻擊ID 為EnemyID 的單位,值得一提的是,只有敵人在攻擊范圍內(nèi)才能執(zhí)行該動(dòng)作,這種做法有利于問(wèn)題的離散化,并可以禁止使用游戲中一邊攻擊一邊移動(dòng)的動(dòng)作;Stop 和Noop 兩個(gè)動(dòng)作分別表示停止行動(dòng)和不采取行動(dòng)。此外,實(shí)驗(yàn)中單位在空閑時(shí)將禁用以下動(dòng)作:對(duì)敵人射擊作出反應(yīng)和對(duì)處在射程內(nèi)的敵人進(jìn)行射擊。這么做的原因是可以迫使智能體進(jìn)行探索,從而找到最優(yōu)的戰(zhàn)斗策略,而不是依賴SC2LE 中內(nèi)置的工具。
環(huán)境的部分可觀察性體現(xiàn)在引入了單位射擊范圍,它限制了智能體接受超出范圍的友方智能體或敵方單位的信息。此外,智能體只能觀察到在視野中活著的單位信息,不能分辨狀態(tài)為死亡和不在視野范圍的單位。
在每個(gè)時(shí)間步中,智能體獲得的聯(lián)合獎(jiǎng)勵(lì)等于對(duì)敵方單位的總傷害量。此外,智能體擊敗每個(gè)敵方單位都能獲得100 分的獎(jiǎng)勵(lì),如果擊敗所有敵軍,能獲得200 分的獎(jiǎng)勵(lì)。最后,為了方便比較,將所獲得的獎(jiǎng)勵(lì)轉(zhuǎn)換為上限為20 的獎(jiǎng)勵(lì)值。
在SC2LE 中,每個(gè)智能體控制一個(gè)單獨(dú)的軍隊(duì)單位。為了驗(yàn)證算法有效性,本實(shí)驗(yàn)按照難度考慮了6 個(gè)不同的戰(zhàn)斗場(chǎng)景:簡(jiǎn)單(3m、2s3z),較難(3s_vs_4z、3s_vs_5z)和極難(5m_vs_6m、6h_vs_8z),并使用兩種算法加以驗(yàn)證。為了衡量每種算法的收斂速度,實(shí)驗(yàn)將每隔200 個(gè)epsode 停止訓(xùn)練并對(duì)訓(xùn)練模型進(jìn)行保存,每隔5 000 或10 000 時(shí)間步運(yùn)行20個(gè)episode 測(cè)試模型勝率。
由于場(chǎng)景的難度不同,所以訓(xùn)練的時(shí)間步數(shù)也各不相同。在每個(gè)場(chǎng)景中每種算法訓(xùn)練了3 次,圖2 為每種算法在不同場(chǎng)景下訓(xùn)練的平均勝率,其中陰影部分為其置信區(qū)間(95%)。
圖2 兩種算法在6個(gè)場(chǎng)景下的勝率對(duì)比Fig.2 Win rates of two algorithms under six scenarios
實(shí)驗(yàn)結(jié)果表明,在簡(jiǎn)單場(chǎng)景中,QMIX 算法與改進(jìn)算法都能收斂到較高的勝率,但改進(jìn)算法在執(zhí)行過(guò)程中使智能體間主動(dòng)且有選擇地相互通信,能夠消除環(huán)境所帶來(lái)的噪聲和有效信息量較少的信息,所以算法在收斂速度和穩(wěn)定性上有更好的表現(xiàn);在較難場(chǎng)景中,在相同的訓(xùn)練步數(shù)中,改進(jìn)算法訓(xùn)練勝率高于QMIX 算法;在極難場(chǎng)景中,智能體難以擊敗對(duì)手,獎(jiǎng)勵(lì)也難以獲取,在這種獎(jiǎng)勵(lì)較為稀疏的環(huán)境且訓(xùn)練步數(shù)有限的情況下QMIX 算法無(wú)法訓(xùn)練有效的智能體,相比之下,改進(jìn)后的算法引入了好奇心機(jī)制,智能體根據(jù)下一步觀測(cè)值來(lái)計(jì)算出內(nèi)在獎(jiǎng)勵(lì),使智能體具有一定的探索性,在獎(jiǎng)勵(lì)較為稀疏的環(huán)境下能夠提高算法的收斂速度。
為了進(jìn)一步驗(yàn)證算法的有效性,實(shí)驗(yàn)將改進(jìn)算法分別與單獨(dú)引入通信的VBC 算法和單獨(dú)引入好奇心機(jī)制的RND 算法進(jìn)行對(duì)比,同時(shí),給出原始的QMIX 算法訓(xùn)練結(jié)果以作為基線參考。
具體實(shí)驗(yàn)參數(shù)設(shè)置與3.3 節(jié)設(shè)置基本一致,其中不同的是此次消融性實(shí)驗(yàn)在兩個(gè)極難的戰(zhàn)斗場(chǎng)景(corridor,6h_vs_8z)下進(jìn)行訓(xùn)練,每隔10 000 時(shí)間步運(yùn)行20 個(gè)episode 測(cè)試模型勝率,同時(shí),為了衡量每種算法的收斂速度,實(shí)驗(yàn)將每隔200 個(gè)episode 停止訓(xùn)練并對(duì)訓(xùn)練模型進(jìn)行保存。
從圖3 實(shí)驗(yàn)結(jié)果可以看出,當(dāng)實(shí)驗(yàn)環(huán)境收斂難度較高時(shí),除改進(jìn)算法外的其他三種算法均不能收斂出很好的效果。在corridor 場(chǎng)景下,QMIX 算法難以訓(xùn)練出有效的模型,相比之下,VBC 算法與RND 算法的實(shí)驗(yàn)勝率均有小幅度提升,而改進(jìn)算法所提升的性能更高,所訓(xùn)練出的智能體可以大概率擊敗對(duì)手;在6h_vs_8z 場(chǎng)景下,RND 算法因其具有一定的探索性,在獎(jiǎng)勵(lì)稀疏的場(chǎng)景中的表現(xiàn)比VBC 算法表現(xiàn)稍好,但在該收斂難度極大的場(chǎng)景中仍可以明顯地看出,改進(jìn)算法結(jié)合了兩者特點(diǎn)訓(xùn)練出了性能更高的模型??傊噍^于原始的QMIX 算法,在極難環(huán)境中,引入通信的VBC 算法與引入好奇心機(jī)制的RND 算法表現(xiàn)更好,但所提升的幅度有限,而改進(jìn)算法可以訓(xùn)練出更有效的模型。
圖3 兩個(gè)極難場(chǎng)景下四種算法的勝率對(duì)比Fig.3 Win rates of four algorithms under two super hard scenarios
綜合3.3 節(jié)的實(shí)驗(yàn)結(jié)果來(lái)看,相較于QMIX 算法,本文改進(jìn)算法因引入了通信機(jī)制,加強(qiáng)了智能體間有效信息的交流,具有更好的性能和穩(wěn)定性。此外,在VBC 算法難以收斂的獎(jiǎng)勵(lì)稀疏環(huán)境中,本文改進(jìn)算法因引入了好奇心機(jī)制,提高了智能體探索未知狀態(tài)的可能性,所以仍可以訓(xùn)練出更為有效的模型,算法性能更好。
本文針對(duì)強(qiáng)化學(xué)習(xí)中環(huán)境的非平穩(wěn)性問(wèn)題,提出了一個(gè)基于多智能體間通信與探索的QMIX 改進(jìn)算法。環(huán)境的非平穩(wěn)性會(huì)增加算法的收斂難度,降低算法的穩(wěn)定性,并且打破智能體的探索和利用平衡。本文提出的改進(jìn)算法分別從智能體間通信和探索的兩個(gè)角度出發(fā)對(duì)QMIX 算法進(jìn)行改進(jìn),緩解環(huán)境非平穩(wěn)性問(wèn)題。實(shí)驗(yàn)結(jié)果表明,與原算法相比,算法性能更高。在未來(lái)研究中,將進(jìn)一步在更復(fù)雜的場(chǎng)景下進(jìn)行算法性能的驗(yàn)證。