閆博為,杜潤樂,班曉軍,周 荻
(1. 哈爾濱工業(yè)大學(xué)航天學(xué)院,哈爾濱 150000;2. 試驗物理與計算數(shù)學(xué)國家級重點實驗室,北京 100076)
自生命誕生以來,追逃博弈問題就廣泛存在于自然界,是捕食者與被捕食者之間的生死游戲。而隨著人類科技的飛速發(fā)展,追逃博弈問題的研究也從生物之間的博弈轉(zhuǎn)變?yōu)槿祟愒煳镏g的博弈,追蹤者想方設(shè)法地追上逃逸者,而逃逸者則盡可能遠(yuǎn)離追蹤者,根據(jù)各自的策略完成博弈。
追逃博弈問題最早于1965年被提出。2014年,J.Y.Kuo等為解決動態(tài)環(huán)境下的追逃博弈問題,運用概率論與圖式理論為追蹤者設(shè)計了一種認(rèn)知行為學(xué)習(xí)機制,首先通過意向圖式預(yù)測逃逸者的位置,之后通過感知圖式為追蹤者選擇動作,為追蹤者處于未知環(huán)境下的追蹤問題提出了一種解決方法[1]。2019年,在主動防御的三者博弈場景中,Sun Q.等基于微分對策設(shè)計了一種制導(dǎo)律,使得追蹤者在無法獲知目標(biāo)與防御者加速度的情況下完成對目標(biāo)的追蹤,并完成對防御者的躲避[2]。
隨著人工智能技術(shù)的飛速發(fā)展,許多應(yīng)用領(lǐng)域均產(chǎn)生了智能化的趨勢。由于環(huán)境與任務(wù)目標(biāo)的復(fù)雜性,在實際應(yīng)用中單個智能體往往無法順利完成目標(biāo),需要多個智能體進(jìn)行協(xié)同合作[3],甚至可能面臨多個智能體之間的競爭博弈[4]。多智能體追逃問題同時存在競爭博弈與協(xié)同合作,是研究多智能體的一種良好平臺。
近年來,國內(nèi)外學(xué)者嘗試將強化學(xué)習(xí)方法引入追逃博弈問題研究之中。2011年,J.Y.Kuo等就通過Q學(xué)習(xí)(Q-Learning)[5]實現(xiàn)了單個追蹤者的追蹤策略學(xué)習(xí),并基于案例推理實現(xiàn)了多智能體之間的協(xié)同學(xué)習(xí)[6]。2017年,針對超級逃逸者,即逃逸者的最大速度超過所有追蹤者的最大速度的圍捕問題,A.A.Al-Talabi提出了一種模糊強化學(xué)習(xí)方法,使得追蹤者通過分散的方式捕獲單個超級逃逸者,并通過編隊控制策略避免碰撞,而逃逸者使用阿氏圓尋找追蹤者之間的空隙[7]。在追逃博弈中,追蹤者往往在與訓(xùn)練環(huán)境類似的場景中進(jìn)行決策,若環(huán)境改變則追蹤策略可能失效。為解決此問題,M.D.Awheda等提出了一種模糊強化學(xué)習(xí)算法,增強了追蹤者在與訓(xùn)練環(huán)境不同的場景中捕獲逃逸者的能力[8]。2018年,針對二維平面中智能小車的追逃問題,譚浪等設(shè)計了一種基于深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法[9]的追逃博弈算法[10]。2019年,Wang L.等將DDPG與模糊理論相結(jié)合,克服了原算法依賴概率分布的缺點[11]。通常在追逃游戲中,對運動學(xué)約束進(jìn)行簡化,并假設(shè)空間中沒有障礙物。2020年,Qi Q.等在考慮智能體運動學(xué)與環(huán)境靜態(tài)障礙物的情況下,提出了一種課程深度強化學(xué)習(xí)方法,追蹤者與逃逸者通過自我博弈的機制同時進(jìn)行訓(xùn)練,并通過課程學(xué)習(xí)的方法逐步增加學(xué)習(xí)任務(wù)難度[12]。針對智能體數(shù)量增多時群體強化學(xué)習(xí)算法狀態(tài)空間過大難以收斂的問題,劉強等提出了一種帶注意力機制的群體對抗策略,智能體只關(guān)注自身周圍的智能體,有效減少了Critic網(wǎng)絡(luò)的計算復(fù)雜度[13]。
上述方法中,多智能體追逃博弈通常在二維平面場景下進(jìn)行,且逃逸方智能體運動不受約束??紤]到任務(wù)狀況的復(fù)雜性,智能體往往不會局限于二維空間,且可能受到運動能力約束。因此,本文針對逃逸方智能體運動受約束的三維空間追逃問題,設(shè)計了一種基于深度Q網(wǎng)絡(luò)(Deep Q-Network,DQN)[14-15]的多智能體逃逸算法,并通過引入強化學(xué)習(xí)方法,解決了無法對智能體準(zhǔn)確建模時難以設(shè)計控制策略的問題,同時根據(jù)任務(wù)難易程度將智能體逃逸策略學(xué)習(xí)分為兩個階段,有效提高了學(xué)習(xí)效果。
本文中研究的多智能體問題為三維空間環(huán)境下的逃逸問題。為便于逃逸算法問題本身的研究,將該問題簡化為質(zhì)點的運動學(xué)問題,忽略智能體的外形與姿態(tài)變化。
雙方智能體在三維空間中初始距離為2km,且相向運動,圖1所示為該場景示意圖。逃逸方與追蹤方均有3個智能體,逃逸方智能體速度較快,但受到運動約束,只可在法向進(jìn)行固定方向的離散機動,即y與z方向,如圖1右上角所示,且逃逸方智能體機動次數(shù)受到約束,只能進(jìn)行有限次的法向機動;追蹤方智能體則可在法向進(jìn)行無限制持續(xù)機動,對逃逸方智能體進(jìn)行追蹤。雙方智能體各項運動學(xué)參數(shù)如表1所示。
圖1 多智能體追逃環(huán)境示意圖Fig.1 Schematic diagram of multi-agent pursuit-evasion environment
表1 智能體運動學(xué)參數(shù)
追蹤任務(wù)開始時,追蹤方智能體依次鎖定距離其最近的一個尚未被追蹤的逃逸方智能體,逃逸方智能體通過在環(huán)境中不斷地探索學(xué)習(xí)得到一種合適的逃逸策略,該逃逸策略可使逃逸方智能體成功完成逃逸。
多智能體逃逸算法以DQN算法為核心,并可基于已有訓(xùn)練結(jié)果進(jìn)行再訓(xùn)練,算法總體框架如圖2所示。
圖2 多智能體逃逸算法框架Fig.2 Multi-agent evasion algorithm framework
若已有訓(xùn)練結(jié)果與當(dāng)前訓(xùn)練時的獎勵函數(shù)不同,則在訓(xùn)練前需對網(wǎng)絡(luò)進(jìn)行初始化,即此時已有訓(xùn)練結(jié)果用于幫助智能體在訓(xùn)練前獲得高質(zhì)量的訓(xùn)練經(jīng)驗。圖2中紅色虛線框中的部分為運用DQN算法學(xué)習(xí)多智能體逃逸策略的主要部分,即DQN網(wǎng)絡(luò)更新在此部分完成。在多智能體逃逸算法中,智能體通過訓(xùn)練不斷改進(jìn)自身逃逸策略,并將已有訓(xùn)練結(jié)果當(dāng)作先驗知識,有效降低了訓(xùn)練難度,提高了訓(xùn)練效率。
DQN算法由Deep Mind公司提出,首次將深度神經(jīng)網(wǎng)絡(luò)與強化學(xué)習(xí)相結(jié)合,利用神經(jīng)網(wǎng)絡(luò)感知環(huán)境并進(jìn)行決策,解決了Q-learning只能應(yīng)用于離散狀態(tài)空間的情況。同時,為解決神經(jīng)網(wǎng)絡(luò)訓(xùn)練在時序樣本數(shù)據(jù)下的收斂問題,引入了經(jīng)驗回放單元與估計值-目標(biāo)值網(wǎng)絡(luò)兩種機制。式(1)與式(2)分別給出了DQN算法中值函數(shù)的迭代公式與Q網(wǎng)絡(luò)的損失函數(shù)。
(1)
(2)
逃逸方智能體采用分布式學(xué)習(xí)的方法,即每個智能體獨立使用一個Q網(wǎng)絡(luò),系統(tǒng)輸入的狀態(tài)為逃逸方和追蹤方之間的相對距離和視線角與視線角速率信息,輸出為智能體的機動動作,其中包括智能體法向上的不機動、單個方向機動與兩個方向同時機動的九種機動動作,逃逸者機動方式如圖3所示,算法整體框架如圖4所示。
在該算法中,神經(jīng)網(wǎng)絡(luò)的輸入為上述5個系統(tǒng)狀態(tài),輸出為智能體的九種動作,由于輸入狀態(tài)與輸出動作數(shù)量較少,因此采用三層全連接神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表2所示。
圖3 逃逸者機動方式Fig.3 Maneuvers of the evader
圖4 分布式多智能體DQN算法框架Fig.4 Distributed multi-agent DQN algorithm framework
表2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
為加快智能體學(xué)習(xí)效率,利用課程學(xué)習(xí)的思想,對任務(wù)目標(biāo)進(jìn)行分解,使智能體根據(jù)任務(wù)難度由易到難分階段進(jìn)行學(xué)習(xí)。在第一階段中,智能體通過學(xué)習(xí)尋找可以成功逃逸的機動策略,而對逃逸能力的強弱不作要求。因此,當(dāng)逃逸方智能體成功逃逸時,獲得一個大的終端獎勵,終端獎勵函數(shù)為
(3)
由于逃逸方智能體存在機動時間限制,為更好利用有限的機動能力進(jìn)行逃逸,鼓勵智能體探索更優(yōu)的逃逸策略,設(shè)計了智能體逃逸時的過程獎勵r2
(4)
其中,qe為視線傾角;qb為視線偏角;t為仿真時間;智能體機動動作編號0為不機動,1~4為單方向機動,5~8為雙方向同時機動。智能體的過程獎勵主要取決于視線角的大小,由于初始視線角趨近于0,因此當(dāng)視線角變大時,視為智能體更有可能完成逃逸。而過程獎勵的系數(shù)取決于智能體機動與機動時機。由于逃逸方智能體機動次數(shù)受限,因此設(shè)置單方向機動或不機動時,即動作編號0~4的獎勵系數(shù)為200,較兩個方向機動時的系數(shù)50更大,以鼓勵智能體進(jìn)行更長時間的機動,增強機動能力的利用效率。同時,過程獎勵系數(shù)與仿真時間相關(guān),逃逸方越晚機動,留給追蹤方的機動時間越少,更易完成逃逸,但是機動時間過晚逃逸方機動空間則會變小。因此,隨著時間t的增加,獎勵系數(shù)變大,鼓勵逃逸方智能體盡可能晚的機動。
由于第一階段訓(xùn)練沒有針對逃逸能力進(jìn)行針對性的強化,因此智能體無法充分運用自身機動能力。當(dāng)面臨新的初始環(huán)境條件時,原來在訓(xùn)練中恰好可以完成逃逸的策略可能就會失效。因此,智能體將在第一階段任務(wù)學(xué)習(xí)的基礎(chǔ)上進(jìn)行訓(xùn)練,第二階段的訓(xùn)練任務(wù)是盡可能地增強逃逸方智能體的逃逸能力,即盡可能地遠(yuǎn)離追蹤者。
智能體在進(jìn)行第二階段任務(wù)學(xué)習(xí)之前,依靠第一階段學(xué)習(xí)所得逃逸策略產(chǎn)生更有價值的數(shù)據(jù),并將其填入經(jīng)驗池中供智能體學(xué)習(xí)。由于此階段中逃逸方智能體的目標(biāo)是最大化逃逸能力,因此在訓(xùn)練時有針對性地選用成功逃逸的經(jīng)驗數(shù)據(jù)進(jìn)行學(xué)習(xí)?;诘诙A段任務(wù)的目標(biāo),即逃逸方智能體盡可能地遠(yuǎn)離追蹤者,對智能體的終端獎勵進(jìn)行了改進(jìn),如式(5)所示
(5)
其中,dmin為逃逸過程中雙方智能體之間的最小距離,這項指標(biāo)體現(xiàn)了智能體的逃逸能力。當(dāng)此距離越大時,逃逸方智能體獲得的獎勵越大,從而鼓勵智能體優(yōu)化其策略,使得智能體可以充分利用其機動能力完成更有效的逃逸。
智能體獲取的獎勵為其過程獎勵與終端獎勵之和
r=r1+r2
(6)
綜上所述,基于DQN的多智能體逃逸算法流程如表3所示。
表3 基于DQN的多智能體逃逸算法
對智能體進(jìn)行了兩個階段四次(共3600回合)的訓(xùn)練。由于在逃逸方智能體不機動或隨機機動時,追蹤方智能體在當(dāng)前雙方機動能力下總能接近至0.5cm,因此設(shè)置當(dāng)雙方智能體最小相對距離大于0.5cm時視為逃逸成功,并在第二階段中對該指標(biāo)進(jìn)行優(yōu)化,其中第一次到第三次訓(xùn)練為第一階段,第四次訓(xùn)練為第二階段。設(shè)置探索概率隨著回合數(shù)的增加,從初始探索概率0.9逐漸下降至0.1,獎勵折扣系數(shù)γ為0.9,學(xué)習(xí)率α為0.01,第一階段與第二階段經(jīng)驗池大小分別為5000與2000。訓(xùn)練結(jié)果如表4所示。
表4 多智能體逃逸算法訓(xùn)練結(jié)果
對訓(xùn)練所得逃逸策略進(jìn)行測試,最終3個逃逸方智能體的逃逸最小距離分別為44.53cm、47.32cm及44.53cm。智能體運動軌跡仿真結(jié)果如圖5所示,圖6所示為其局部放大圖,其中每行代表不同的追逃雙方智能體,第一列至第三列分別表示追逃雙方智能體間的距離與雙方智能體在OXY與OXZ平面內(nèi)的位置。
根據(jù)圖5與圖6可以看出,逃逸方智能體在經(jīng)過學(xué)習(xí)后,可以通過學(xué)習(xí)所得的逃逸策略完成逃逸。根據(jù)圖6中第一列的局部放大圖可以看出,在該訓(xùn)練環(huán)境下追逃雙方智能體在運動過程中的最小距離為0.5m左右。
圖5 多智能體逃逸算法仿真結(jié)果Fig.5 Simulation results of multi-agent evasion algorithm
圖6 仿真結(jié)果局部放大圖Fig.6 Partial enlargement of simulation results
圖7給出了兩個階段的學(xué)習(xí)曲線,其中第一階段取每150回合的平均累計獎勵值,第二階段取每50回合的平均累計獎勵值,可以觀察得出累計獎勵在一定回合后收斂于某一區(qū)間內(nèi)。
若不將智能體的策略學(xué)習(xí)分為由易到難的兩個階段,智能體會直接采用第二階段的獎勵函數(shù)學(xué)習(xí)逃逸策略,其余訓(xùn)練參數(shù)相同。在經(jīng)過相同回合的學(xué)習(xí)后,智能體的訓(xùn)練結(jié)果如表5所示。圖8則給出了不分階段的智能體逃逸策略學(xué)習(xí)曲線,并取每150回合的平均累計獎勵值。將表5與圖8分別與表4與圖7對比可以看出,若不分階段,智能體的策略學(xué)習(xí)難度較大,最終智能體難以習(xí)得可用的逃逸策略。由此可得,根據(jù)任務(wù)難度將智能體逃逸策略學(xué)習(xí)分為兩個階段,可有效提升智能體的策略學(xué)習(xí)效果。
圖7 多智能體逃逸算法學(xué)習(xí)曲線Fig.7 Learning curve of multi-agent evasion algorithm
表5 不分階段的訓(xùn)練結(jié)果
圖8 不分階段的學(xué)習(xí)曲線Fig.8 Learning curve without stages
由于逃逸方智能體只可進(jìn)行總長為1s的機動,根據(jù)經(jīng)驗可知,逃逸方智能體在距離較近時機動逃逸能力較強,而距離過近時則由于時間不足無法完成逃逸。對強化學(xué)習(xí)機動啟動時刻進(jìn)行對比,結(jié)果如表6所示,可以看出,當(dāng)逃逸方智能體在雙方相距200m時,智能體可以在探索概率較大時,即較早的回合得到逃逸成功的樣本數(shù)據(jù),并且同樣經(jīng)過1500回合的學(xué)習(xí)后,啟動距離為200m比300m獲得的成功樣本數(shù)據(jù)更多,由此可以證明當(dāng)啟動距離選擇為200m時開始強化學(xué)習(xí)機動效果較好。
表6 強化學(xué)習(xí)機動啟動時刻效果對比
為了測試算法效果,采用與訓(xùn)練不同的初始條件對學(xué)習(xí)所得逃逸策略進(jìn)行泛化測試,逃逸方智能體初始位置在YOZ平面中200m×200m的范圍內(nèi)進(jìn)行均勻隨機取樣,測試結(jié)果如圖9所示。
(a)智能體1
為檢測逃逸策略的穩(wěn)定性,對測試結(jié)果求均值與標(biāo)準(zhǔn)差,結(jié)果如表7所示。
表7 算法泛化測試結(jié)果
仿真結(jié)果表明,逃逸方智能體采用所學(xué)逃逸策略在初始位置200m×200m范圍內(nèi)均可成功完成逃逸,具有較好的泛化能力,逃逸能力穩(wěn)定,逃逸最小距離平均在40cm以上,且波動較小,表明逃逸方智能體可以通過該算法學(xué)習(xí)得到合適的逃逸策略。
1)本文針對三維空間下的多智能體逃逸問題,設(shè)計了一種基于DQN的多智能體逃逸算法。該算法采用分布式學(xué)習(xí)的方法,多個智能體分別使用一個DQN進(jìn)行決策。通過引入DQN算法,使得智能體可以在不需要系統(tǒng)模型的情況下,通過對環(huán)境不斷地探索與學(xué)習(xí),僅需要雙方智能體相對距離與視線角等少量的環(huán)境狀態(tài),即可得到符合期望的多智能體逃逸策略,并對學(xué)習(xí)任務(wù)進(jìn)行分解,將其分為基礎(chǔ)任務(wù)與進(jìn)階任務(wù),降低了智能體逃逸策略的學(xué)習(xí)難度。
2)仿真結(jié)果表明,逃逸方智能體在不同的初始位置條件下均可以使用學(xué)習(xí)所得的逃逸策略完成逃逸,逃逸能力穩(wěn)定,并且根據(jù)其初始位置的不同呈一定的趨勢,表明該算法在訓(xùn)練中得到有效收斂。
3)本文算法為針對三對三的追逃問題所設(shè)計,若拓展到不同場景不同智能體數(shù)量的情況下,需對算法的結(jié)構(gòu)與獎勵函數(shù)進(jìn)一步設(shè)計,擬在后續(xù)研究中增強算法的泛化能力,使其在不同場景下均可完成決策。
4)在仿真實驗中發(fā)現(xiàn),算法在第二階段任務(wù)中不能保證收斂,同時同方智能體間缺乏協(xié)同合作,擬在后續(xù)研究中嘗試集中式學(xué)習(xí)算法,以增強同方智能體之間的交互合作,并增加雙方智能體博弈競爭的復(fù)雜度,將嘗試改進(jìn)算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與借鑒課程學(xué)習(xí)的思想,以克服策略收斂問題。