李 琳,李雙霖,高佩忻
(1.中國(guó)電子科技集團(tuán)公司第二十研究所, 西安 710068; 2.西北工業(yè)大學(xué) 電子信息學(xué)院, 西安 710072)
近年來,無人機(jī)(UAV)應(yīng)用場(chǎng)景更加廣泛。其不僅在農(nóng)業(yè)、安保、搜索救援、地面勘探、物流等許多商業(yè)領(lǐng)域取得了不俗的成績(jī),而且在軍事領(lǐng)域也大放異彩,出色地完成了許多有人駕駛飛機(jī)難以完成的任務(wù)。
傳統(tǒng)無人機(jī)路徑規(guī)劃通常采用人工勢(shì)場(chǎng)法、柵格法、遺傳算法、動(dòng)態(tài)貝葉斯網(wǎng)絡(luò)等方法。但是,由于這些算法存在對(duì)復(fù)雜情況適應(yīng)程度低、在線求解效率低、計(jì)算量大、甚至無法在線求解等問題,使得無人機(jī)路徑規(guī)劃的自主性大大降低,難以滿足在軍事領(lǐng)域無人機(jī)智能化的要求。
隨著深度強(qiáng)化學(xué)習(xí)的快速發(fā)展,運(yùn)用其快速求解無人機(jī)航路問題成為可能。本文基于深度強(qiáng)化學(xué)習(xí),提出一種無人機(jī)路徑規(guī)劃算法。首先,建立了無人機(jī)運(yùn)動(dòng)模型和威脅模型;然后采用深度強(qiáng)化學(xué)習(xí)理論構(gòu)建了無人機(jī)路徑規(guī)劃算法;最后,通過仿真驗(yàn)證了本文所提出算法的有效性。
不考慮無人機(jī)的形狀大小等物理特性,將無人機(jī)簡(jiǎn)化為質(zhì)點(diǎn)運(yùn)動(dòng)。無人機(jī)在二維空間的簡(jiǎn)化運(yùn)動(dòng)模型定義為:
(1)
主要考慮地面的雷達(dá)威脅和防空導(dǎo)彈威脅。
雷達(dá)威脅主要是指在無人機(jī)飛行時(shí)防空雷達(dá)對(duì)其造成的威脅程度。假設(shè)敵方防空雷達(dá)的探測(cè)角度是360°,為雷達(dá)最大探測(cè)距離,因此雷達(dá)威脅的數(shù)學(xué)模型為:
(2)
式(2)中,是無人機(jī)當(dāng)前位置與雷達(dá)位置的相對(duì)距離。
導(dǎo)彈威脅主要是指無人機(jī)飛行時(shí)防空導(dǎo)彈對(duì)其造成的威脅程度。導(dǎo)彈威脅數(shù)學(xué)模型為:
(3)
式(3)中:是無人機(jī)當(dāng)前位置與導(dǎo)彈位置的距離;為導(dǎo)彈所能攻擊的最遠(yuǎn)距離;為不可逃逸半徑。一旦無人機(jī)與導(dǎo)彈的距離小于,則無人機(jī)一定會(huì)被擊中。
DDPG算法(deep deterministic policy gradient,DDPG)是深度確定性策略梯度算法。DDPG算法繼承了DPG算法(deterministic policy gradient,DPG)的確定性策略,智能體根據(jù)狀態(tài)決策輸出確定性動(dòng)作,并且DDPG采用深度神經(jīng)網(wǎng)絡(luò),增強(qiáng)對(duì)決策函數(shù)的擬合能力。相比隨機(jī)性策略,DDPG大大減少了采樣數(shù)據(jù)量,提高了算法的效率,更有助于智能體在連續(xù)動(dòng)作空間中進(jìn)行學(xué)習(xí)。
DDPG算法采用Actor-Critic框架形式, 主要包含演員(actor)網(wǎng)絡(luò)和評(píng)論家(critic)網(wǎng)絡(luò)。Actor網(wǎng)絡(luò)負(fù)責(zé)為無人機(jī)生成動(dòng)作和環(huán)境交互,Critic網(wǎng)絡(luò)負(fù)責(zé)評(píng)估狀態(tài)和動(dòng)作的表現(xiàn),并指導(dǎo)策略函數(shù)生成下一階段的動(dòng)作。Actor和Critic均采用雙網(wǎng)絡(luò)結(jié)構(gòu),擁有各自的目標(biāo)(target)網(wǎng)絡(luò)和估計(jì)(eval)網(wǎng)絡(luò)。DDPG的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 DDPG的網(wǎng)絡(luò)結(jié)構(gòu)示意圖
圖1中,Actor-eval網(wǎng)絡(luò)主要負(fù)責(zé)策略網(wǎng)絡(luò)參數(shù)的迭代更新,根據(jù)當(dāng)前的狀態(tài)來選擇動(dòng)作,在和環(huán)境交互過程中,生成下一時(shí)刻的狀態(tài)′和執(zhí)行當(dāng)前動(dòng)作產(chǎn)生的回報(bào)值。Actor-target網(wǎng)絡(luò)負(fù)責(zé)根據(jù)經(jīng)驗(yàn)池中采樣下一狀態(tài)′選擇最優(yōu)的下一時(shí)刻動(dòng)作′。網(wǎng)絡(luò)參數(shù)′定期從Actor-eval 網(wǎng)絡(luò)中的復(fù)制。Critic-eval網(wǎng)絡(luò)主要是對(duì)網(wǎng)絡(luò)參數(shù)的迭代更新,計(jì)算當(dāng)前值(,,)和目標(biāo)值=+′(′,′,′),其中表示折扣因子,影響訓(xùn)練過程中未來獎(jiǎng)勵(lì)相對(duì)于當(dāng)前獎(jiǎng)勵(lì)的重要程度。Critic-target網(wǎng)絡(luò)中主要參數(shù)′是從定期復(fù)制Critic-eval網(wǎng)絡(luò)的參數(shù)得來的,主要負(fù)責(zé)計(jì)算目標(biāo)值中的′(′,′,′)。
設(shè)時(shí)刻,無人機(jī)的狀態(tài)為,動(dòng)作為。則:
1) Actor-eval網(wǎng)絡(luò)輸出實(shí)時(shí)的動(dòng)作(|),被無人機(jī)執(zhí)行,并與環(huán)境進(jìn)行交互;
2) Critic-eval網(wǎng)絡(luò)輸出值(,|),用來判定當(dāng)前狀態(tài)-動(dòng)作的價(jià)值;
3) Actor-target網(wǎng)絡(luò)輸出′(+1|′),根據(jù)經(jīng)驗(yàn)回放池中采樣的下一狀態(tài)+1最優(yōu)的下一時(shí)刻動(dòng)作′計(jì)算目標(biāo)值;
4) Critic-target網(wǎng)絡(luò)輸出目標(biāo)值′(+1,′(+1|′)|′),無人機(jī)從環(huán)境獲得獎(jiǎng)勵(lì)用來計(jì)算目標(biāo)值。
對(duì)DDPG算法相關(guān)基本概念定義如下:
1) 確定性動(dòng)作策略:定義為一個(gè)函數(shù),每一步的動(dòng)作可以通過=()計(jì)算獲得。
2) 策略網(wǎng)絡(luò):用一個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)函數(shù)進(jìn)行模擬,這個(gè)網(wǎng)絡(luò)叫做策略網(wǎng)絡(luò),其參數(shù)為。
3)函數(shù):又叫performance objective,用來衡量一個(gè)策略的表現(xiàn),針對(duì)off-policy學(xué)習(xí)的場(chǎng)景,定義函數(shù)為:
(4)
式(4)中:是基于agent的behavior策略產(chǎn)生的狀態(tài);是它的分布函數(shù);(,())表示在不同的狀態(tài)下,都按照策略選擇action時(shí),能夠產(chǎn)生的值。即()是根據(jù)分布時(shí)(,())的期望值。
4) 策略梯度的定義:表示performance objective的函數(shù)針對(duì)的梯度。
5) 動(dòng)作值函數(shù):也稱action-value函數(shù)。在狀態(tài)下,采取動(dòng)作后,且如果持續(xù)執(zhí)行策略情況下,所獲得的期望值,定義為:
(,)=[(,)+(+1,(+1))]
(5)
在RL訓(xùn)練過程中,為了探索潛在的更優(yōu)策略,為action的決策機(jī)制引入隨機(jī)噪聲:將action的決策從一個(gè)確定性過程變?yōu)橐粋€(gè)隨機(jī)過程,再?gòu)倪@個(gè)隨機(jī)過程中采樣得到action,下達(dá)給環(huán)境執(zhí)行,將這個(gè)策略叫做behavior策略,用來表示,這時(shí)RL的訓(xùn)練方式叫做異步策略(off-policy)。因?yàn)閁hlenbeck-Ornstein(UO)隨機(jī)過程的隨機(jī)噪聲在時(shí)序上具備很好的相關(guān)性,可以使agent很好地探索環(huán)境,因此本文在DDPG中,使用Uhlenbeck-Ornstein(UO)隨機(jī)過程進(jìn)行訓(xùn)練。β策略如圖2所示。
圖2 β策略示意圖
DDPG在進(jìn)行網(wǎng)絡(luò)訓(xùn)練過程中,只需要訓(xùn)練和更新Actor 和Critic中的eval網(wǎng)絡(luò)參數(shù),每隔一定時(shí)間后,再通過softupdate算法更新target網(wǎng)絡(luò)的參數(shù),更新過程如下:
(6)
式(6)中:′和′為target網(wǎng)絡(luò)參數(shù);和是eval網(wǎng)絡(luò)參數(shù);值一般取0001。
在計(jì)算更新Critic網(wǎng)絡(luò)參數(shù)時(shí),定義Critic網(wǎng)絡(luò)的損失函數(shù)為均方誤差 (MSE),即:
(7)
式(7)中,將定義為:
=+′(+1,′(+1|′)|′)
(8)
式(8)中:′是critic中target網(wǎng)絡(luò)的參數(shù);′是Actor中target網(wǎng)絡(luò)的參數(shù)。可以將看作為“標(biāo)簽”,在訓(xùn)練時(shí),通過back-propagation算法進(jìn)行網(wǎng)絡(luò)參數(shù)的更新。
在計(jì)算Actor的策略梯度時(shí),采用off-policy的訓(xùn)練方法時(shí),策略梯度為:
▽()≈~[▽(,|)|=()·▽(|)]
(9)
策略梯度是根據(jù)分布時(shí)▽·▽的期望值。使用蒙特卡洛算法來估算▽·▽的值。在經(jīng)驗(yàn)儲(chǔ)存機(jī)構(gòu)中存儲(chǔ)的(transition)狀態(tài)轉(zhuǎn)移信息<,,,′>是基于agent的behavior策略產(chǎn)生的,它們的分布函數(shù)為。所以當(dāng)從replay memory buffer中隨機(jī)采樣獲得mini-batch數(shù)據(jù)時(shí),根據(jù)蒙特卡羅方法,使用mini-batch數(shù)據(jù)代入上述策略梯度公式,可以作為對(duì)上述期望值的一個(gè)無偏估計(jì) (un-biased estimate)。因此,策略梯度為:
▽(,)|=)
(10)
DDPG的算法偽代碼表示為:
DDPG
Randomly initialize critic network(,|) and actor(,) with weightsand
Initialize target network′ and′ with weights′←,′←
Initialize replay buffer
episode=1,
Initialize a random processfor action exploration
Receive initial observation state
=1,
Select actionaccording to the current policy and exploration noise
Execute actionand observe rewardand observe new state+1
Store transition (,,,+1) in
Sample a random mini-batch oftransitions (,,,+1) from
Set=+′(+1,′(+1|′)|′)
:
:
▽(,)|=)
Update the target network:
無人機(jī)自身狀態(tài)包含當(dāng)前時(shí)刻的速度矢量(uav,,uav,)和在環(huán)境中的坐標(biāo)位置(uav,,uav,)。環(huán)境狀態(tài)包含了環(huán)境中個(gè)威脅區(qū)的坐標(biāo)位置、威脅半徑和目標(biāo)的坐標(biāo)位置。其中第個(gè)威脅區(qū)的坐標(biāo)位置和威脅半徑分別表示為(,,,)和,第個(gè)目標(biāo)的坐標(biāo)位置可以表示為(,,,)。
在DDPG算法中,無人機(jī)的狀態(tài)包括了自身的狀態(tài)和環(huán)境狀態(tài)。無人機(jī)在時(shí)刻的狀態(tài)定義為(uav,,uav,,uav,,uav,,,,,,,,,,)。
(11)
無人機(jī)的動(dòng)作輸出受到最小轉(zhuǎn)彎半徑的約束,如果不符合約束條件,則被視為不合理動(dòng)作輸出,需要進(jìn)行重新選擇。
無人機(jī)路徑規(guī)劃的獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)如下:
1) 規(guī)避威脅區(qū)獎(jiǎng)勵(lì),當(dāng)無人機(jī)進(jìn)入威脅區(qū)后,會(huì)被給予一個(gè)負(fù)獎(jiǎng)勵(lì)。即=-1,<,其中為無人機(jī)與威脅區(qū)中心的距離,為威脅區(qū)的威脅半徑。
2) 為了在開始訓(xùn)練時(shí),能夠準(zhǔn)確地引導(dǎo)無人機(jī)的動(dòng)作選擇,并且讓無人機(jī)每一步都擁有一個(gè)密集獎(jiǎng)勵(lì),在這里設(shè)計(jì)了一個(gè)距離獎(jiǎng)勵(lì),計(jì)算每一時(shí)刻無人機(jī)與目標(biāo)的最近距離,以距離的負(fù)值作為獎(jiǎng)勵(lì)值,距離越近,獎(jiǎng)勵(lì)值越大。即=-,其中是無人機(jī)與目標(biāo)的最近距離。最終無人機(jī)的獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)為:
=+
(12)
式(12)中,為距離獎(jiǎng)勵(lì)權(quán)重。
初始化仿真環(huán)境,包含無人機(jī)的初始位置、目標(biāo)的位置和9個(gè)威脅區(qū)的分布情況。具體初始環(huán)境如圖3所示。
圖3 初始環(huán)境示意圖
圖3中紅色三角形表示無人機(jī)初始化位置,紅色圓形代表威脅區(qū),紫色圓形代表目標(biāo)位置。無人機(jī)需要規(guī)避威脅區(qū)并順利到達(dá)目標(biāo)位置。
圖4為無人機(jī)訓(xùn)練時(shí)的獎(jiǎng)勵(lì)變化曲線。橫坐標(biāo)表示訓(xùn)練的回合數(shù)(episodes),縱坐標(biāo)表示每一回合訓(xùn)練時(shí)無人機(jī)的累計(jì)獎(jiǎng)勵(lì)。由圖4可以看出,隨著訓(xùn)練次數(shù)的增多,獎(jiǎng)勵(lì)的絕對(duì)值減小,但是獎(jiǎng)勵(lì)逐漸增大,總體呈收斂趨勢(shì)。
圖5為DDPG算法經(jīng)過訓(xùn)練后得到的無人機(jī)路徑規(guī)劃軌跡曲線。由圖5可以看出,無人機(jī)在躲避了所有的威脅區(qū)的同時(shí)到達(dá)了目標(biāo)區(qū)域。
圖4 訓(xùn)練獎(jiǎng)勵(lì)變化曲線
圖5 規(guī)劃軌跡曲線
進(jìn)行了基于DDPG無人機(jī)路徑規(guī)劃問題的研究。闡述了DDPG算法的原理和特點(diǎn),設(shè)計(jì)了無人機(jī)路徑規(guī)劃任務(wù)的獎(jiǎng)勵(lì)函數(shù),并將DDPG算法和無人機(jī)路徑規(guī)劃問題相結(jié)合,構(gòu)建了基于DDPG的無人機(jī)路徑規(guī)劃的算法模型。通過仿真實(shí)驗(yàn)證明,DDPG算法僅需200回合左右便可規(guī)避障礙,實(shí)現(xiàn)路徑規(guī)劃任務(wù),具有較快的收斂速度和學(xué)習(xí)效率。