趙恬恬,孔建國(guó),梁海軍,劉晨宇
(中國(guó)民用航空飛行學(xué)院空中交通管理學(xué)院,廣漢 618300)
隨著大數(shù)據(jù)和人工智能技術(shù)的發(fā)展,無(wú)人機(jī)(unmanned aerial vehicle,UAV)在農(nóng)業(yè)和交通等領(lǐng)域得到廣泛應(yīng)用。無(wú)人機(jī)路徑規(guī)劃是指在環(huán)境中規(guī)劃一條安全路徑,使無(wú)人機(jī)能夠避開(kāi)障礙物,從初始位置到達(dá)目標(biāo)位置[1]。
目前,路徑規(guī)劃領(lǐng)域已經(jīng)有許多研究方法可供借鑒,可以分為智能仿生學(xué)方法和傳統(tǒng)方法兩類。智能仿生學(xué)方法包括蟻群算法、粒子群算法、麻雀搜索算法等;傳統(tǒng)方法包括模擬退火算法、人工勢(shì)場(chǎng)法、A*算法等。Lamini等[2]在考慮距離、安全性和能源因素的情況下,提出一種基于遺傳算法的路徑規(guī)劃方法,相較于其它算法,減少了路徑步數(shù)和平均迭代次數(shù);余翔等[3]提出改進(jìn)A*算法和人工勢(shì)場(chǎng)法的路徑規(guī)劃方法,通過(guò)混合式啟發(fā)函數(shù)改進(jìn)了A*算法的搜索節(jié)點(diǎn),并與APF 算法融合,以提高路徑規(guī)劃的效率和擺脫局部最優(yōu)點(diǎn);Amala 等[4]提出了一種基于Q-Learning動(dòng)態(tài)避障的無(wú)人機(jī)路徑規(guī)劃方法,引入最短距離優(yōu)先級(jí)策略,并將其與A-star和Dijkstra等算法進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果表明該方法能夠減少無(wú)人機(jī)到達(dá)目標(biāo)所需的距離;毛國(guó)君等[5]提出了一種改進(jìn)的算法ε-Q-learning,通過(guò)不斷調(diào)整貪婪因子ε,從而有效減少搜索代價(jià)。
綜上所述,國(guó)內(nèi)外關(guān)于無(wú)人機(jī)路徑規(guī)劃問(wèn)題的研究相對(duì)較多且較深入。研究大多基于已知環(huán)境的信息,缺乏對(duì)未知環(huán)境信息下的三維路徑規(guī)劃的研究。為此,本文提出一種未知環(huán)境下基于Dueling DQN 的無(wú)人機(jī)路徑規(guī)劃方法,首先,在DQN 的基礎(chǔ)上引入了對(duì)抗網(wǎng)絡(luò)架構(gòu);其次,設(shè)計(jì)狀態(tài)空間并定義離散的動(dòng)作和適當(dāng)?shù)莫?jiǎng)勵(lì)函數(shù)以引導(dǎo)無(wú)人機(jī)學(xué)習(xí)最優(yōu)路徑;最后,在一定范圍內(nèi)隨機(jī)生成的三維環(huán)境中進(jìn)行仿真驗(yàn)證。
強(qiáng)化學(xué)習(xí)主要通過(guò)智能體與環(huán)境的交互和不斷試錯(cuò)來(lái)學(xué)習(xí)最優(yōu)策略,已廣泛應(yīng)用于自然科學(xué)和各種工程領(lǐng)域。強(qiáng)化學(xué)習(xí)的問(wèn)題被建模為馬爾可夫決策過(guò)程,其核心為四元組:{s,a,r,s'}。如圖1 所示,在強(qiáng)化學(xué)習(xí)中,智能體負(fù)責(zé)根據(jù)環(huán)境狀態(tài)s進(jìn)行決策,選取動(dòng)作a并執(zhí)行,環(huán)境模型負(fù)責(zé)生成獎(jiǎng)勵(lì)值r和更新后的狀態(tài)值,并反饋給智能體。智能體根據(jù)獎(jiǎng)勵(lì)值進(jìn)行自我調(diào)整,以此不斷迭代優(yōu)化自身的決策機(jī)制[6]。
圖1 智能體強(qiáng)化學(xué)習(xí)交互示意圖
強(qiáng)化學(xué)習(xí)算法通常使用基于表格的Q-Learning算法。然而由于Q-table 的限制,這種算法可能無(wú)法處理高維度問(wèn)題。為了解決這些問(wèn)題,深度強(qiáng)化學(xué)習(xí)將深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)相結(jié)合,以解決復(fù)雜的場(chǎng)景問(wèn)題[7]。首先,使用深度學(xué)習(xí)對(duì)輸入的數(shù)據(jù)進(jìn)行處理,以便發(fā)現(xiàn)數(shù)據(jù)中的規(guī)律。然后結(jié)合強(qiáng)化學(xué)習(xí),不斷調(diào)整神經(jīng)網(wǎng)絡(luò)的參數(shù),使其能夠更好地適應(yīng)Q-table。最后智能體依據(jù)神經(jīng)網(wǎng)絡(luò)能夠獲得一個(gè)更為理想的策略[8]。
DQN[9]是一種強(qiáng)化學(xué)習(xí)算法,通過(guò)學(xué)習(xí)一個(gè)價(jià)值函數(shù)來(lái)指導(dǎo)智能體在環(huán)境中做出動(dòng)作。然而,DQN 存在一個(gè)問(wèn)題,即它將所有的動(dòng)作價(jià)值都通過(guò)一個(gè)網(wǎng)絡(luò)輸出,這樣會(huì)導(dǎo)致每個(gè)動(dòng)作的價(jià)值難以準(zhǔn)確估計(jì)[10]。因此,在DQN 的基礎(chǔ)上引入了對(duì)抗網(wǎng)絡(luò)架構(gòu),即Dueling DQN[11]。Dueling DQN(Dueling DeepQ-Network)是一種將神經(jīng)網(wǎng)絡(luò)分成值網(wǎng)絡(luò)和優(yōu)勢(shì)網(wǎng)絡(luò)的算法,值網(wǎng)絡(luò)用于計(jì)算每個(gè)狀態(tài)的價(jià)值函數(shù),而優(yōu)勢(shì)網(wǎng)絡(luò)用于計(jì)算每個(gè)動(dòng)作相對(duì)于平均水平的優(yōu)勢(shì)程度,如圖2所示,為DQN和Dueling DQN 的網(wǎng)絡(luò)結(jié)構(gòu)圖。通過(guò)結(jié)合這兩個(gè)網(wǎng)絡(luò),Dueling DQN 提高了算法的效率和精度,也適用于解決狀態(tài)和動(dòng)作空間較大的問(wèn)題[12]。最終價(jià)值函數(shù)可以如式(1)所示。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)圖
式中:V(s,ω,α) 為狀態(tài)s下的價(jià)值函數(shù),A(s,a,ω,β)為s下采取a的優(yōu)勢(shì)函數(shù),ω為網(wǎng)絡(luò)參數(shù);α為價(jià)值函數(shù)獨(dú)有部分的網(wǎng)絡(luò)參數(shù),β為優(yōu)勢(shì)函數(shù)獨(dú)有部分的網(wǎng)絡(luò)參數(shù)。
為了對(duì)無(wú)人機(jī)當(dāng)前狀態(tài)進(jìn)行整體評(píng)判,同時(shí)又對(duì)無(wú)人機(jī)當(dāng)前狀態(tài)下的動(dòng)作進(jìn)行優(yōu)勢(shì)評(píng)估,可以通過(guò)式(2)計(jì)算最終的價(jià)值函數(shù)。
式中:∑A為除當(dāng)前動(dòng)作a外其它所有動(dòng)作的集合, |A|為動(dòng)作的個(gè)數(shù)。
為了保證無(wú)人機(jī)能夠避免碰撞并采取合理的行動(dòng),需要考慮環(huán)境中的目標(biāo)位置、邊界信息以及障礙物的高度和位置[13]。在本文仿真環(huán)境中,生成多種隨機(jī)障礙物,且其高度是隨機(jī)變化的。通過(guò)引入這些障礙物,為無(wú)人機(jī)提供了多樣化的飛行場(chǎng)景,增加了環(huán)境的復(fù)雜性和挑戰(zhàn)性。這樣做的目的是測(cè)試無(wú)人機(jī)路徑規(guī)劃算法在各種不同情況下的適應(yīng)性和魯棒性。在計(jì)算無(wú)人機(jī)當(dāng)前位置與目標(biāo)點(diǎn)位置的距離以及初始狀態(tài)位置與目標(biāo)點(diǎn)位置的距離時(shí),使用曼哈頓距離作為衡量標(biāo)準(zhǔn)。
動(dòng)作選擇是強(qiáng)化學(xué)習(xí)中的一個(gè)關(guān)鍵要素。在無(wú)人機(jī)路徑規(guī)劃中,無(wú)人機(jī)通過(guò)采用不同的策略來(lái)選擇下一步的動(dòng)作。通過(guò)執(zhí)行不同的動(dòng)作,無(wú)人機(jī)可以獲得相應(yīng)的獎(jiǎng)勵(lì)值。高獎(jiǎng)勵(lì)值表示該動(dòng)作具有更高的價(jià)值,這使得無(wú)人機(jī)在下一次訓(xùn)練中更有可能選擇該動(dòng)作。通過(guò)不斷優(yōu)化動(dòng)作選擇策略,無(wú)人機(jī)可以逐漸學(xué)習(xí)到最優(yōu)的路徑規(guī)劃策略,以獲得最大的回報(bào)值[14]。在本文實(shí)驗(yàn)中,無(wú)人機(jī)能夠采用27(所在平面網(wǎng)格以及上、下共三個(gè)平面的運(yùn)動(dòng)方向)個(gè)方向的動(dòng)作,圖3 所示為無(wú)人機(jī)所在平面對(duì)應(yīng)的動(dòng)作選擇(包括靜止在原地)。
圖3 無(wú)人機(jī)運(yùn)動(dòng)方向示意圖
在強(qiáng)化學(xué)習(xí)中,獎(jiǎng)勵(lì)函數(shù)是影響無(wú)人機(jī)路徑規(guī)劃的重要因素,設(shè)置合理的獎(jiǎng)勵(lì)函數(shù)可以有效地提高無(wú)人機(jī)路徑尋找的正確性和有效性。獎(jiǎng)勵(lì)函數(shù)R在狀態(tài)S下的t時(shí)刻到t+1時(shí)刻的狀態(tài)所能獲得的期望獎(jiǎng)勵(lì)如式(3)所示。
累計(jì)獎(jiǎng)勵(lì)函數(shù)值Gt,也就是回報(bào),如式(4)所示。
式中,γ是折扣因子,體現(xiàn)在未來(lái)時(shí)刻回報(bào)獎(jiǎng)勵(lì)的衰減效果。無(wú)人機(jī)的目標(biāo)是通過(guò)找到最終目標(biāo)的位置來(lái)最大化回報(bào)值。因此,獎(jiǎng)勵(lì)值的設(shè)定對(duì)路徑規(guī)劃的結(jié)果有不可忽視的影響。
在本文中,考慮了爬升過(guò)程中的獎(jiǎng)勵(lì)和目標(biāo)獎(jiǎng)勵(lì)。爬升過(guò)程中的獎(jiǎng)勵(lì)即如果當(dāng)前位置距離目標(biāo)高度越遠(yuǎn),則高度變化率對(duì)總回報(bào)造成的影響越大,如式(5)所示。目標(biāo)獎(jiǎng)勵(lì)的影響受到無(wú)人機(jī)與目標(biāo)點(diǎn)之間距離的影響。當(dāng)無(wú)人機(jī)距離目標(biāo)點(diǎn)較近時(shí),目標(biāo)獎(jiǎng)勵(lì)的影響較??;反之,影響較大,如式(6)所示。
式中,ωc是爬升參數(shù);hz是無(wú)人機(jī)當(dāng)前位置的高度;htarget是目標(biāo)位置的高度;ωt是目標(biāo)參數(shù);是當(dāng)前位置與目標(biāo)位置的曼哈頓距離。
除此之外,獎(jiǎng)勵(lì)函數(shù)在設(shè)置的同時(shí)也考慮以下因素,如當(dāng)無(wú)人機(jī)到達(dá)目標(biāo)點(diǎn)的獎(jiǎng)勵(lì)值設(shè)置為+100,碰到障礙物的獎(jiǎng)勵(lì)值設(shè)置為-100,處于靜止?fàn)顟B(tài)的獎(jiǎng)勵(lì)值設(shè)置為-500,步數(shù)超過(guò)最長(zhǎng)步長(zhǎng)的獎(jiǎng)勵(lì)值設(shè)置為-10,電量耗盡的獎(jiǎng)勵(lì)值設(shè)置為-10。
Dueling DQN 的訓(xùn)練過(guò)程分為兩個(gè)階段:經(jīng)驗(yàn)回放和神經(jīng)網(wǎng)絡(luò)訓(xùn)練。在經(jīng)驗(yàn)回放階段,智能體從環(huán)境中隨機(jī)采樣一批狀態(tài)序列(s,a,r,s')并存儲(chǔ)到一個(gè)緩存區(qū)中。這些狀態(tài)序列包括成功的路徑,也可以是失敗的路徑或任意時(shí)刻的路徑。通過(guò)不斷地從緩存區(qū)中隨機(jī)采樣狀態(tài)序列,可以避免因?yàn)閿?shù)據(jù)的相關(guān)性導(dǎo)致的數(shù)據(jù)偏差問(wèn)題。如圖4所示為Dueling DQN的結(jié)構(gòu)圖。
圖4 Dueling DQN的結(jié)構(gòu)圖
本文采用梯度下降法來(lái)不斷更新網(wǎng)絡(luò)參數(shù)以使得訓(xùn)練的神經(jīng)網(wǎng)絡(luò)準(zhǔn)確地估計(jì)Q值。為了衡量Q值估計(jì)的準(zhǔn)確性,使用均方誤差作為損失函數(shù)的計(jì)算指標(biāo)。通過(guò)最小化損失函數(shù),可以提高神經(jīng)網(wǎng)絡(luò)對(duì)Q值的準(zhǔn)確估計(jì)能力。
為了驗(yàn)證該算法的性能,本文在Python 的實(shí)驗(yàn)環(huán)境下對(duì)DQN 和Dueling DQN 作對(duì)比試驗(yàn)。首先構(gòu)造了三維網(wǎng)格化環(huán)境,環(huán)境的長(zhǎng)寬高均固定,分別為200、200、50,單位為米。環(huán)境中的障礙物、無(wú)人機(jī)初始狀態(tài)位置和無(wú)人機(jī)目標(biāo)點(diǎn)位置均為一定范圍內(nèi)的隨機(jī)生成。為了減少由于無(wú)人機(jī)自身原因造成路徑規(guī)劃失敗,在每次訓(xùn)練中使用10 架無(wú)人機(jī)對(duì)同一仿真實(shí)驗(yàn)環(huán)境進(jìn)行訓(xùn)練。使用的激活函數(shù)為ReLU,優(yōu)化器為Adam。所使用的仿真環(huán)境軟硬件設(shè)置見(jiàn)表1。
表1 實(shí)驗(yàn)環(huán)境配置表
在訓(xùn)練初期,無(wú)人機(jī)會(huì)以隨機(jī)的軌跡前進(jìn),并且無(wú)法有效躲避障礙物,但通過(guò)學(xué)習(xí)和積累記憶,它可以逐漸學(xué)會(huì)安全地規(guī)避障礙物,并成功到達(dá)目標(biāo)位置。一旦無(wú)人機(jī)在不碰撞障礙物的情況下成功到達(dá)目標(biāo)位置,后續(xù)訓(xùn)練中它將傾向于選擇這條路徑作為最短路徑。使用ε-greedy 探索策略,在每次訓(xùn)練中,無(wú)人機(jī)有一定概率按照預(yù)先設(shè)定的ε 值探索其他路徑,而非僅僅選擇最優(yōu)路徑。通過(guò)這種算法,無(wú)人機(jī)能夠逐步擴(kuò)充自身的經(jīng)驗(yàn)庫(kù),并找到最優(yōu)的最短路徑,具體參數(shù)設(shè)置見(jiàn)表2。
表2 參數(shù)設(shè)置
3.2.1 可視化結(jié)果對(duì)比
根據(jù)上述的實(shí)驗(yàn)環(huán)境和參數(shù)設(shè)置,使用DQN 和Dueling DQN同時(shí)訓(xùn)練50000 次,從簡(jiǎn)單環(huán)境與復(fù)雜環(huán)境進(jìn)行了對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如圖5、圖6 所示。在簡(jiǎn)單環(huán)境中, DQN 和Dueling DQN都成功地規(guī)避障礙物,找到起點(diǎn)到終點(diǎn)的路徑。然而,在尋找路徑過(guò)程中,Dueling DQN 不論是對(duì)障礙物的敏感度還是路徑的平滑性方面都表現(xiàn)更好。在復(fù)雜環(huán)境下,DQN尋找出的路徑在接近終點(diǎn)的時(shí)候陷入了局部收斂狀態(tài),而Dueling DQN 則是避開(kāi)障礙物成功找到一條路徑,因此,在收斂性方面Dueling DQN也優(yōu)于DQN。
圖5 簡(jiǎn)單環(huán)境下仿真結(jié)果示意圖
圖6 復(fù)雜環(huán)境下仿真結(jié)果示意圖
3.2.2 平均回報(bào)值對(duì)比
圖7 所示為兩種算法的平均回報(bào)值對(duì)比。從圖中可以看出,開(kāi)始回報(bào)值為負(fù)值,表示無(wú)人機(jī)處于探索學(xué)習(xí)階段;回報(bào)值上升表示無(wú)人機(jī)通過(guò)探索學(xué)習(xí)到了較好的策略;最后穩(wěn)定階段,表示無(wú)人機(jī)已經(jīng)學(xué)習(xí)到了通往目標(biāo)點(diǎn)的最優(yōu)路徑。在迭代了10000 次后,Dueling DQN 已經(jīng)保持在穩(wěn)定狀態(tài),而DQN 在迭代15000 次以及40000 次附近均有大幅度的變化。該結(jié)果表明基于Dueling DQN的無(wú)人機(jī)路徑規(guī)劃方法可規(guī)劃出更優(yōu)的移動(dòng)路徑,較高的平均回報(bào)值使無(wú)人機(jī)的方向性更好,這種方向性可以有效地避免無(wú)人機(jī)與障礙物的碰撞以及減少非必要的路徑點(diǎn)。
圖7 兩種算法的平均回報(bào)值對(duì)比
3.2.3 三種指標(biāo)對(duì)比
圖8所示為兩種算法的成功率、碰撞率和超過(guò)最長(zhǎng)步長(zhǎng)率對(duì)比。成功率是由在每次迭代中無(wú)人機(jī)成功找到路徑的架次與總架次的比值得到的,由圖8可以看出,在迭代1000次時(shí),兩種算法的成功率無(wú)很大差異,當(dāng)?shù)螖?shù)增加至10000 次、30000 次、50000 次時(shí),Dueling DQN的成功率明顯大幅度增加,在50000次時(shí),保持在80.56%,而DQN的成功率僅有62.85%。
圖8 兩種算法對(duì)比
碰撞率是由在每次迭代中無(wú)人機(jī)因碰撞而造成該次迭代結(jié)束的架次與總架次的比值得到的,在前1000次迭代中,因?yàn)閷?duì)于環(huán)境不熟悉,無(wú)人機(jī)是以一個(gè)隨機(jī)的狀態(tài)去選取動(dòng)作,因此無(wú)法有效地躲避障礙物,在經(jīng)歷了10000 次與50000 次迭代后,Dueling DQN 的碰撞率也是明顯低于DQN的碰撞率。
超過(guò)最長(zhǎng)步長(zhǎng)率是由在每次迭代中無(wú)人機(jī)因超過(guò)設(shè)置的最長(zhǎng)步長(zhǎng)而造成該次迭代結(jié)束的架次與總架次的比值得到的。在迭代訓(xùn)練的初期,無(wú)人機(jī)以隨機(jī)的軌跡前進(jìn),在尋找路徑的過(guò)程中會(huì)浪費(fèi)大量的步數(shù),因此兩種算法的超過(guò)最長(zhǎng)步長(zhǎng)率均較高,隨著迭代次數(shù)的增加,DQN 僅由價(jià)值函數(shù)值去選取動(dòng)作,未考慮該動(dòng)作的優(yōu)勢(shì),因此在50000 次后,其超過(guò)最長(zhǎng)步長(zhǎng)率仍保持為30.68%,而Dueling DQN 由每個(gè)狀態(tài)下價(jià)值函數(shù)與優(yōu)勢(shì)函數(shù)的數(shù)值選取最優(yōu)動(dòng)作,因此在50000 次后,其超過(guò)最長(zhǎng)步長(zhǎng)率由45.73%降至14.54%。
總的來(lái)說(shuō),基于Dueling DQN 的無(wú)人機(jī)路徑規(guī)劃方法相對(duì)于DQN 在未知環(huán)境下表現(xiàn)更好。它能夠規(guī)劃出更優(yōu)的移動(dòng)路徑,具有較高的平均回報(bào)值和成功率,同時(shí)減少了碰撞和超過(guò)最長(zhǎng)步長(zhǎng)的概率。這意味著Dueling DQN 能夠更有效地選擇動(dòng)作,避免與障礙物碰撞并減少不必要的路徑點(diǎn)。因此,該方法在應(yīng)急救援等復(fù)雜場(chǎng)景中能夠高效地規(guī)劃路徑,避開(kāi)障礙物。
(1)基于Dueling DQN 的無(wú)人機(jī)路徑規(guī)劃方法在未知環(huán)境下展現(xiàn)出的綜合性能,包括更好的收斂性、更高的成功率、更低的碰撞率以及更小的超過(guò)最長(zhǎng)步長(zhǎng)率。這說(shuō)明基于Dueling DQN 的無(wú)人機(jī)路徑規(guī)劃方法在復(fù)雜未知環(huán)境下具備更強(qiáng)的適應(yīng)性和優(yōu)越性能,能夠有效地應(yīng)用于諸如應(yīng)急救援等領(lǐng)域的復(fù)雜場(chǎng)景中。
(2)未來(lái)的研究方向包括以下幾個(gè)方面:首先,進(jìn)一步優(yōu)化算法性能,通過(guò)改進(jìn)深度強(qiáng)化學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)、調(diào)整超參數(shù)或引入新的訓(xùn)練技巧,提高路徑規(guī)劃算法的效率和準(zhǔn)確性;其次在路徑規(guī)劃過(guò)程中考慮環(huán)境的變化,以適應(yīng)實(shí)時(shí)的場(chǎng)景變化。這些工作將有助于推動(dòng)無(wú)人機(jī)路徑規(guī)劃技術(shù)的發(fā)展和實(shí)際應(yīng)用。