許諾,楊振偉
(四川大學電子信息學院,成都610065)
采用深度強化學習算法[1-3]研究多智能體系統(tǒng)時,不可避免地要面對多智能體環(huán)境中的非平穩(wěn)性問題[4],這將使得深度強化學習算法[5]失去收斂性的保證。因此,提出一個既能解決環(huán)境非平穩(wěn)性問題,又能夠簡化訓練,促進多智能體學會協同策略的算法和訓練框架是非常有必要的,也是進行深入研究的前提和基礎。MADDPG 算法[4]采用了一種中心化訓練-去中心化執(zhí)行架構解決了環(huán)境的非平穩(wěn)性問題,本文針對多智能體合作導航場景,對其進行改進,引入了神經網絡參數共享機制[6]。本文認為帶神經網絡參數共享的MADDPG 算法,能夠大量減少待訓練的網絡數量和網絡參數,降低了網絡的復雜度,加快訓練速度。
獎勵函數在強化學習中是非常重要的[7],它提供了環(huán)境中對智能體行為的唯一反饋,直接決定了智能體是否能學到目標策略,并影響算法的收斂性和最終的實現效果。本文針對某些多智能體協同場景中,無偏的連續(xù)獎勵函數設計困難,提出一種基于群體目標狀態(tài)的獎勵函數。雖然這種獎勵函數更加準確,但也由此帶來了獎勵稀疏性問題,這將嚴重影響智能體的訓練效率,經驗緩存器中大量的無意義樣本會導致智能體無法學會任何協同策略。在單個智能體領域,基于優(yōu)先級的經驗重放方法[8]通過賦予經驗緩存器中“高價值”樣本以更高的采樣權重,特別在稀疏獎勵場景中,取得了較好的效果。本文將帶優(yōu)先級的經驗重放方法擴展至多智能體環(huán)境中,在基于群體目標狀態(tài)的獎勵函數下,結合帶有優(yōu)先級的經驗重放方法,可以訓練出穩(wěn)定的協同策略。本文在不同智能體數量的合作導航場景中進行了仿真實現,展示了方法的有效性。
采用強化學習方法研究多智能體系統(tǒng)時,最極端的訓練架構是完全中心化架構[9],將一個協作場景下的多智能體系統(tǒng)建模為一個單智能體(Meta-agent),輸入是所有智能體狀態(tài)的拼接,輸出是所有智能體的聯合動作,采用單智能體強化學習方法處理。然而,這個Meta-agent 的狀態(tài)空間和動作空間的維數隨著智能體數量的增加而指數級增長。另一種訓練架構是去中心化架構,每個智能體被獨立于其他智能體進行訓練,即將其他智能體都視為環(huán)境的一部分,獨立維護自己的價值函數網絡或策略函數網絡。盡管這一架構下,神經網絡輸入維度不會隨著智能體數量增長而增長,可擴展性好。但是,去中心化架構下智能體之間缺乏顯式的合作,同時由于多智能體環(huán)境的非平穩(wěn)性造成訓練效果差。目前,比較最有效的訓練范式是結合中心化架構和去中心化架構的優(yōu)點,采用中心化訓練-去中心化執(zhí)行架構[4,10],其中最具代表性的是2017 年OpenAI 提出的一種基于Actor-Critic 算法[11]的變體:MADDPG 算法。MADDPG 算法解決了多智能體環(huán)境中的非平穩(wěn)性問題,在許多混合合作和競爭的高維連續(xù)狀態(tài)空間的場景中都表現良好。本文在MADDPG 算法基礎上,針對完全合作的任務場景,加入了網絡參數共享機制。具體實現形式是:將原本分布式的Critic 網絡改進為集中式,所有智能體共享一個Critic 網絡,原本分布式的Actor 網絡依然分布式設計,但全部Actor 共享底層網絡參數,如圖1。引入網絡參數共享后,既減少了網絡中待訓練的參數,降低網絡的復雜度,又能促進智能體間產生類似行為,利于合作。
圖1 加入神經網絡參數共享機制的網絡結構
強化學習中,獎勵函數可以視為一種特殊語言,將期望實現的目標任務數學化,實現了環(huán)境與算法之間的溝通。在大多數單個智能體問題中,一般將獎勵函數設計成基于某個變量(距離、時間等)的函數,在這種連續(xù)函數的引導下,智能體能很快探索到目標,訓練速度和算法收斂性都很好。但是,擴展至多智能體環(huán)境時,特別在任務復雜度較大的場景下,這種獎勵函數就很難再有良好的效果了。本文總結了在合作導航場景中,獎勵函數的設計尤其存在以下兩個難點:
(1)無偏的連續(xù)獎勵函數設計困難
在合作導航場景中,連續(xù)的獎勵函數在每一步需要考慮每個智能體與全部目標點的相對距離,這就使得獎勵函數非常復雜。并且,這種獎勵函數是不夠準確的,獎勵函數引導下的最優(yōu),不一定是我們期望實現的策略??赡軋鼍爸写嬖谝粋€點,相比于智能體在目標點鄰域內時,與全部目標點的距離之和更小,
這種復雜且不夠精確的引導式連續(xù)獎勵函數,使得訓練只能收斂至局部最優(yōu)。
(2)多智能體信用分配問題
協同場景下設計一個離散的全局獎勵,每個智能體在當前動作下獲得獎勵或懲罰經過累加后,由全部智能體共享。這種方式容易造成多智能體信用分配問題[12-13],產生“Lazy”智能體[14]。即當群體中某些智能體表現很好時,全部智能體都會獲得獎勵,此時,另一些智能體就會放棄探索而維持當前狀態(tài),因為探索是有風險的,而保持當前狀態(tài)能獲得獎勵。
本文提出的基于群體目標狀態(tài)的獎勵函數,旨在解決以上兩個問題。由于期望實現的最終目標狀態(tài)是明確的,當全部智能體都處于目標狀態(tài)時,才能獲得獎勵。一方面,這大大簡化了獎勵函數的設計,另外,這種方式下,只有單個智能體到達目標狀態(tài)是沒有意義的,需要全部智能體都到達目標狀態(tài)才能獲得獎勵,這就避免了出現“Lazy”智能體。合作導航場景中,只有當N 個智能體完全覆蓋N 個目標點時,才給予一個正的獎勵,只有單個目標點被覆蓋不會獲得獎勵。于是,基于群體目標狀態(tài)的獎勵函數為:
顯然,基于群體目標狀態(tài)的獎勵函數下,正的獎勵值是稀疏的,智能體的經驗重放緩存(Replay Buffer)中會充滿大量0 獎勵的經驗樣本,這對于訓練來說是非常不利的。本文擴展基于優(yōu)先級的經驗重放方法到多智能體環(huán)境中,使得經驗重放緩存中有意義的樣本有更大的概率被采集,提高訓練速度。
帶有優(yōu)先級采樣方法會根據模型對當前樣本的表現情況,給予樣本不同的采樣權重,打破了傳統(tǒng)的均勻采樣方法,提高了樣本的利用率和學習效率。相比而言,帶優(yōu)先級的經驗重放主要額外增加了以下兩步:
(1)樣本優(yōu)先級的設置;
(2)基于優(yōu)先級的采樣。
樣本優(yōu)先級可以采用強化學習中TD 偏差來衡量:
在本文采用的帶有網絡參數共享機制的MADDPG算法下,對集中式的Critic 網絡訓練過程中采用帶優(yōu)先級的采樣方法,具體訓練流程如圖2。
TD 偏差越大,說明智能體在該狀態(tài)處的參數更新量越大,該樣本的學習價值越高。設經驗樣本i 對應的TD 偏差為δi,對該經驗樣本的采樣概率為:
圖2 對集中式Critic帶優(yōu)先級采樣的訓練流程
在合作導航場景,設置環(huán)境狀態(tài)空間為二維連續(xù)狀態(tài)空間:
space.Box(-1.0,+1.0,(2,2),np.float32))
結合狀態(tài)空間的大小,規(guī)定當智能體進入目標點的半徑為0.1 的領域內時,認為該目標點被該智能體覆蓋。只有全部目標點都被唯一覆蓋時,認為協同任務成功。如圖3 所示。
圖3 合作導航場景示意圖
為了避免智能體陷入無意義的探索,設置每回合最大30 步長,即智能體經過30 次狀態(tài)-動作決策后,不論是否完成任務都結束本回合的探索,環(huán)境初始化,重新開始下一回合的探索。
第2 章中已經說明,基于距離的連續(xù)獎勵函數存在設計缺陷,訓練后的智能體只能收斂至局部最優(yōu)。因此,本文采取的對比方法是累加個體獎勵值的全局獎勵函數,在合作導航場景中,當單個智能體唯一覆蓋一個目標點時,獲得一個獎勵值。由于是智能體之間是合作關系,于是累加各個智能體的獎勵值作為全局獎勵,所有智能體共享這個全局獎勵:
實驗采用帶網絡參數共享的MADDPG 算法,比較不同智能體數量場景中,均勻采樣和基于優(yōu)先級采樣兩種方式下,本文提出的基于目標狀態(tài)的獎勵函數和累加個體獎勵值的全局獎勵函數下,平均每回合內協同任務成功次數,如圖4。
圖4 表明,采用基于目標狀態(tài)獎勵函數結合帶優(yōu)先級的采樣方法時,能夠實現任務協同,取得較好的訓練結果。特別是在4Agents-4Targets 場景下,由于智能體數量增加,任務的復雜度增加,累加個體獎勵的全局獎勵函數會因為出現“Lazy”智能體,導致無法完成目標任務,而本文所提出的獎勵函數則不會出現這種情況。但本文所提出的基于目標狀態(tài)獎勵函數必須結合帶優(yōu)先級的采樣方法,否則會因為“高價值”樣本稀疏,導致均勻采樣下訓練的智能體無法學會任何策略。
圖4 合作導航場景中,平均每回合內任務成功次數
圖4 中,曲線A、B、C、D 對應采用的方法如表1。
表1 各條曲線對應訓練時所采用的方法
如圖5 所示,本文發(fā)現了一個有意義的現象:從圖A 至圖B 可以發(fā)現,智能體1,2,3 都有靠近右邊目標點的運動趨勢,但任務獎勵要求目標點只能被唯一覆蓋。隨著時間步的推移,智能體1,2,3 似乎發(fā)現了這個問題,智能體1,2 觀察到智能體3 更靠近這個目標點,于是它們立即改變自己的策略,往其他附近沒有智能體的目標點移動,如圖C 所示。這一過程中,智能體1,2,3 都沒有覆蓋某一目標點,它們只是通過觀察當前的局勢和隊友的移動趨勢,臨時調整了自己的策略,這種臨時調整策略的能力不是用獎勵函數引導的,而是自身在與環(huán)境交互中涌現出來的。
圖5 經過30000eposides 的訓練后,4 個智能體合作導航實現效果
本文提出了一種帶有網絡參數共享機制的MADDPG 算法,在此基礎上針對多智能體合作場景中獎勵函數設計難題,提出了一種基于群體目標狀態(tài)的獎勵函數,并進一步把帶優(yōu)先級的經驗重放方法引入多智能體領域。最后在不同智能體數量的合作導航場景中,證明了在帶有網絡參數共享機制的MADDPG 算法下,本文提出的基于群體目標狀態(tài)的獎勵函數結合帶優(yōu)先級的經驗重放方法能夠取得很好的效果。