魏瑤, 劉志成, 蔡彬, 陳家新, 楊堯, 張凱
(1.西北工業(yè)大學(xué) 航天學(xué)院, 陜西 西安 710072;2.空軍裝備部駐北京地區(qū)軍事代表局駐天津地區(qū)第三軍事代表室, 天津 300000;3.上海航天控制技術(shù)研究所, 上海 201109;4.中國航天科技集團有限公司紅外探測技術(shù)研發(fā)中心, 上海 201109;5.西北工業(yè)大學(xué) 無人系統(tǒng)技術(shù)研究院, 陜西 西安 710072)
人工智能的高速發(fā)展使與其關(guān)聯(lián)緊密的機器人行業(yè)獲得了強大的生命力,無人飛行器(unmanned aerial vehicle,UAV)技術(shù)作為其中一個重要的組成部分,也借助著這蓬勃的發(fā)展趨勢得到了顯著提升。隨著無人機在各個行業(yè)的使用越來越普遍,其安全問題也日益受到關(guān)注,而無人機是否能夠在充滿障礙物環(huán)境中成功避開障礙物安全到達指定地點完成任務(wù)成為衡量其安全性能的關(guān)鍵標準。因此,有效的避障功能對于無人機是十分重要的。
基于視覺和傳感器的自主避障方案[1-4],通過實時采集周圍環(huán)境信息,模擬人類對外界事物的感知能力,一直以來是無人機等移動機器人領(lǐng)域的研究熱題。然而這種首先通過對環(huán)境建模,再對已知環(huán)境進行避障的方法其有效性過多依賴于無人機自身動力學(xué)和所構(gòu)建的環(huán)境模型的準確性。隨著環(huán)境復(fù)雜度的增高,需要實時計算和處理的數(shù)據(jù)量大幅上漲,難以彌補傳統(tǒng)模型在建模過程中出現(xiàn)的錯誤。當無人機初次到達一個新的環(huán)境時,其必須再次經(jīng)歷一系列的模型構(gòu)建任務(wù),這在很大程度上限制了算法的使用范圍。
強化學(xué)習(xí)作為機器學(xué)習(xí)領(lǐng)域的一個重要分支,與深度學(xué)習(xí)相比較,深度學(xué)習(xí)側(cè)重于識別和表達,強化學(xué)習(xí)則側(cè)重于通過與環(huán)境進行反復(fù)交互從而尋找解決問題的策略。其思想源于行為心理學(xué),在特定的環(huán)境中讓智能體感覺“舒適”的行為會加強該動作與環(huán)境的聯(lián)系,反之則削弱聯(lián)系[5-6]。訓(xùn)練時,智能體發(fā)出動作與環(huán)境進行交互,每次交互后根據(jù)環(huán)境反饋的回報值判定當前的行為是否利于實現(xiàn)目標,通過記錄智能體經(jīng)歷的狀態(tài)轉(zhuǎn)換及經(jīng)驗,不斷迭代更新自身策略,直到策略收斂到最優(yōu)。
在強化學(xué)習(xí)中,智能體下一時刻狀態(tài)僅與當前狀態(tài)有關(guān)而與之前狀態(tài)無關(guān)。由于強化學(xué)習(xí)過程也服從馬爾可夫性,無需對環(huán)境進行精確建模和引入先驗知識,就可以通過感知環(huán)境狀態(tài)完成從環(huán)境狀態(tài)到動作映射的學(xué)習(xí)?;诖?研究人員將強化學(xué)習(xí)引入無人機避障[7],避免了上述傳統(tǒng)算法需要構(gòu)建復(fù)雜環(huán)境模型的工作。
2015年Deepmind團隊首次提出了一種結(jié)合深度學(xué)習(xí)和增強學(xué)習(xí)的深度增強學(xué)習(xí)框架——Deep Q-Learning[8],該方法可以用于解決狀態(tài)量為圖片信息的增強學(xué)習(xí)問題。隨后Kulkarni等[9]對深度增強學(xué)習(xí)框架做了進一步改進,使其更加適用于自主控制領(lǐng)域。2016年,由Sliver等[10]提出的以深度強化學(xué)習(xí)算法為基礎(chǔ)的圍棋算法程序AlphaGo,是第一個戰(zhàn)勝世界圍棋冠軍的人工智能機器人,開創(chuàng)了人工智能又一個新的里程碑。同年,CAD2RL[11]提出了一種用于室內(nèi)飛行避障的深度強化學(xué)習(xí)(deep reinforcement learning,DRL) 方法。這項工作使用模擬的3D走廊環(huán)境訓(xùn)練無人機進行導(dǎo)航。需要生成大量具有不同照明、墻壁紋理、家具放置的3D走廊環(huán)境圖像,由深度Q網(wǎng)絡(luò)在這些圖像上學(xué)習(xí)無人機避障策略。然而這項工作需要大量關(guān)于走廊環(huán)境圖像的數(shù)據(jù)并且效率不高。此外,由于幫助人腦進行導(dǎo)航的是由雙眼輸入的深度信息,如果僅將RGB圖片輸入到神經(jīng)網(wǎng)絡(luò)之中,無人機無法像人類一樣具有避障主觀性。由于人腦具有記憶性可以總結(jié)和存儲解決問題的關(guān)鍵信息,當人類對環(huán)境的接觸有限或者只能得到部分有關(guān)環(huán)境的信息時仍舊可以解決日常生活中的各種問題。這種記憶性可以有效存儲和回憶起隨時間收集的相關(guān)信息,以便人腦在不同的場景下做出合適的選擇。而無人機的避障和導(dǎo)航也存在著類似的對環(huán)境部分可觀察性問題[12],需要引入記憶的概念。
綜上所述,本文的主要貢獻為:①傳統(tǒng)強化學(xué)習(xí)使用單網(wǎng)絡(luò)結(jié)構(gòu)的無人機避障算法在估計動作價值時反復(fù)取用最大理論價值,導(dǎo)致正向誤差的累積,本文將單網(wǎng)絡(luò)結(jié)構(gòu)變換為雙網(wǎng)絡(luò)結(jié)構(gòu),在訓(xùn)練學(xué)習(xí)過程中,解耦了最優(yōu)動作選擇和動作價值估計,降低了單網(wǎng)絡(luò)結(jié)構(gòu)無人機避障算法的過度估計問題,提高了避障算法的性能。②針對無人機部分可觀察性問題,提出一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu)的避障算法。通過循環(huán)神經(jīng)網(wǎng)絡(luò)的記憶力增強真實網(wǎng)絡(luò)的可分析性使其更好處理時間維度的信息并提高算法在部分可觀察環(huán)境中的中的性能,從而增強無人機的避障能力。使得UAV控制器能夠隨時間收集和存儲對環(huán)境的觀察結(jié)果,提升無人機避障效率。
馬爾可夫決策過程(Markov decision process,MDP)是Howard[13]于1960年提出的,MDP常應(yīng)用于采用動態(tài)規(guī)劃和強化學(xué)習(xí)解決的優(yōu)化問題中[14]。無人機在避障過程中,下一時刻無人機所處的狀態(tài)僅僅依賴于當前場景以及其采用動作后的狀態(tài)轉(zhuǎn)移方程,而與之前所處的一系類歷史狀態(tài)無關(guān)。因此,可以將無人機的避障問題看作是一個馬爾可夫決策過程,從而納入到強化學(xué)習(xí)框架中進行求解。
(1)
式中:st為當前狀態(tài);at為當前狀態(tài)下的動作。在傳統(tǒng)RL(reinforcement learning)中,(1)式可通過貝爾曼方程進行迭代更新直至最終收斂,即當i→∞時,Q→Q*
(2)
式中,s′和a′分別表示當處于(s,a)狀態(tài)時,智能體下一步的狀態(tài)和動作。
深度Q網(wǎng)絡(luò)(deep Q network,DQN)是目前被廣泛使用的深度強化學(xué)習(xí)算法之一,實現(xiàn)了無環(huán)境模型的、基于值函數(shù)的端到端學(xué)習(xí)。DQN在Q-learning算法的基礎(chǔ)上,引入了深度神經(jīng)網(wǎng)絡(luò)和特殊的訓(xùn)練機制,解決傳統(tǒng)Q-learning在內(nèi)存空間和處理能力上的局限性,并將強化學(xué)習(xí)問題轉(zhuǎn)化為可以使用監(jiān)督學(xué)習(xí)方式進行訓(xùn)練。
(3)
傳統(tǒng)的DQN算法使用單網(wǎng)絡(luò)結(jié)構(gòu),在用于無人機避障算法之中時,由于反復(fù)使用最大估計來近似下一個狀態(tài)的動作值函數(shù),導(dǎo)致Q值過高估計。因此需要解耦動作選擇與價值網(wǎng)絡(luò),選用雙Q網(wǎng)絡(luò)避免過高估計問題。則(3)式可以表達為
(4)
(5)
無人機避障和導(dǎo)航也存在可觀察性問題,需要引入記憶的概念。例如,在避障導(dǎo)航時,無人機可能會飛向角落。當它接近角落時,與側(cè)面相比,深度圖可能表明前方有更多的空間。時間信息的缺乏加上單目相機視野有限使得無人機向前移動到角落并撞到墻上。這種場景在無人機導(dǎo)航中非常常見,因此需要一個可以利用相關(guān)過去信息的控制器。循環(huán)神經(jīng)網(wǎng)絡(luò)的主要特點是在一定的時間節(jié)點內(nèi),神經(jīng)元的輸出可以再次用作神經(jīng)元的輸入。這種序列的網(wǎng)絡(luò)結(jié)構(gòu)可以很大程度保持數(shù)據(jù)中的依賴關(guān)系非常適合于處理時間序列數(shù)據(jù)。GRU[16]作為RNN網(wǎng)絡(luò)的一種衍生網(wǎng)絡(luò),與傳統(tǒng)的長短期記憶網(wǎng)絡(luò)[17](long short-term memory,LSTM)相比,其將忘記門和輸入門合成了一個單一更新門,混合了細胞狀態(tài)和隱藏狀態(tài)為一個新的狀態(tài),減少了神經(jīng)網(wǎng)絡(luò)的計算量,加快網(wǎng)絡(luò)訓(xùn)練時間。
因此,將循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)與深度強化學(xué)習(xí)網(wǎng)絡(luò)相結(jié)合可以更好處理無人機避障之中的部分可觀測問題,提升算法性能。
本文中,無人機的任務(wù)是通過與環(huán)境進行隨機交互,在沒有任何碰撞的情況下使無人機能夠到達指定目標點。在這一過程中,將生成一系列的狀態(tài)、動作和獎勵。傳統(tǒng)的強化學(xué)習(xí)將無人機的避障過程看作是一個全觀測的馬爾可夫過程,假設(shè)無人機可以從環(huán)境中完全觀察到所處狀態(tài),因此下一個時間步的任何序列對于無人機所有可能的動作都是已知的,并且可以通過該序列來學(xué)習(xí)策略。實際上,由于輸入至神經(jīng)網(wǎng)絡(luò)的深度圖片僅僅來自于無人機上所搭載的雙目相機,智能體并不知道自身所處位置以及當前速度,因此需將無人機的避障過程看作一個部分可觀測的馬爾可夫過程。
本文設(shè)計了一種全新的DRL模型——深度循環(huán)雙Q網(wǎng)絡(luò)模型,來解決四旋翼無人機在未知三維環(huán)境中的避障問題。在DDQN深度強化學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,引入循環(huán)神經(jīng)網(wǎng)絡(luò)GRU,通過GRU單元的記憶力增強真實神經(jīng)網(wǎng)絡(luò)的可分析性,使其更好處理時間維度的信息。同時,由于GRU層可以記憶歷史信息,可以提高算法在部分可觀察環(huán)境中的性能,從而增強無人機的避障能力。
表1 DDQN-GRU網(wǎng)絡(luò)詳細結(jié)構(gòu)
圖1 DDQN-GRU網(wǎng)絡(luò)模型架構(gòu)
具體的網(wǎng)絡(luò)模型架構(gòu)如圖1所示,各層網(wǎng)絡(luò)參數(shù)如表1所示。該網(wǎng)絡(luò)為雙網(wǎng)絡(luò)結(jié)構(gòu),包含主網(wǎng)絡(luò)以及目標網(wǎng)絡(luò)。在本文中將來自環(huán)境的連續(xù)4幀深度圖片d作為當前狀態(tài)序列輸入到主網(wǎng)絡(luò)之中,將下一個時間狀態(tài)序列輸入到目標網(wǎng)絡(luò)之中。最后將不同網(wǎng)絡(luò)計算得到的Q值作為損失函數(shù)的輸入,從而得到誤差值,并根據(jù)誤差梯度對主網(wǎng)絡(luò)進行參數(shù)更新。主網(wǎng)絡(luò)與目標網(wǎng)絡(luò)共享一組參數(shù),但不同步,每隔一固定時間,主網(wǎng)絡(luò)對目標網(wǎng)絡(luò)進行參數(shù)更新。下一狀態(tài)的動作來源于主網(wǎng)絡(luò)所給出的最大Q值時所對應(yīng)的動作,無人機執(zhí)行該動作與環(huán)境進行交互,交互完成后環(huán)境給出反饋。此時,相應(yīng)的狀態(tài)獎勵以及動作等參數(shù)都存儲在經(jīng)驗池Memory之中。經(jīng)驗池中存儲的是每次與環(huán)境交互之后即一個episode后的數(shù)據(jù)信息,分別為當前狀態(tài)、動作、下一個狀態(tài),以及環(huán)境獎勵,表示為(s,a,s′,r)。在進行經(jīng)驗抽取時,本文采用優(yōu)先經(jīng)驗回放代替原有的隨機抽取,給予訓(xùn)練數(shù)據(jù)優(yōu)先級使得含有有效信息的數(shù)據(jù)更有可能被抽取訓(xùn)練,從而提高數(shù)據(jù)的利用率。
AirSim是由美國Microsoft公司推出的開源無人機仿真軟件[18]。該軟件依托著名的游戲開發(fā)平臺:虛幻引擎(unreal engine)。虛幻引擎提供了高品質(zhì)的渲染能力和PhysX物理引擎,能夠便捷地完成無人機、場景和障礙物的模型制作,實現(xiàn)逼真的視覺場景和物理效果。AirSim支持多種傳感器的仿真與自定義,包括攝像機、氣壓計、慣性測量單元、GPS、磁力計、深度攝像機、激光雷達等。它提供基于C++和Python的多種API,例如飛控接口、通信接口、圖像接口等,拓展性較高,便于進行半實物仿真。因此,本文選擇AirSim作為仿真系統(tǒng)的基礎(chǔ),開展無人機避障算法的研究。仿真場景試驗在仿真計算機中完成,計算機軟件配置為:Window 10 操作系統(tǒng),CUDA 10.0,tensorflow1.12.0,Python3.6。
在本文的仿真實驗中,無人機使用深度傳感器在其前向180°的范圍內(nèi)采集來自環(huán)境的深度圖片作為狀態(tài)觀測值,圖2為本文所使用的仿真環(huán)境。
圖2 仿真環(huán)境示意圖
狀態(tài)空間:本文在仿真環(huán)境里進行訓(xùn)練,利用深度相機作為感知器,因此狀態(tài)空間可以定義為一系列的深度圖片。在將深度圖片d作為狀態(tài)信息,輸入到神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練之前,一般需要對圖像進行預(yù)處理,從復(fù)雜信息中提取主要有效信息,以降低數(shù)據(jù)的復(fù)雜度,提高算法的效率。本文將從仿真環(huán)境中得到的640×480的深度圖片轉(zhuǎn)換為84×84的灰度圖像,并將連續(xù)4幀深度圖片疊加作為此時狀態(tài)st。此時深度圖片的儲存格式如公式(6)所示。在本實驗中,使用灰度圖像不會影響學(xué)習(xí)性能,并且僅使用深度圖片進行訓(xùn)練可以減少RGB圖片中紋理色彩對訓(xùn)練結(jié)果的影響,增強算法的泛化能力并有效提高計算速度。
st=[dt-3,dt-2,dt-1,dt]
(6)
動作空間:為了減少神經(jīng)網(wǎng)絡(luò)計算量,降低網(wǎng)絡(luò)訓(xùn)練難度,去除無人機偏航通道控制,將無人機看作三自由度的質(zhì)點運動。在此基礎(chǔ)上,固定高度和速度,則無人機的動作空間分為向前、向后、向左、向右4個方向,具體內(nèi)容見表2。
表2 動作空間表
本文研究的目的是保證無人機在陌生的未知環(huán)境中“存活時間”足夠久,同時也要在飛行過程中盡量避開障礙物到達指定目標點,而不是原地不動或者陷入局部最優(yōu)的狀態(tài)。這就意味著獎勵函數(shù)的設(shè)計既要激勵無人機從原點到達目標點,也要懲罰無人機產(chǎn)生碰撞。獎勵函數(shù)的設(shè)計如公式(7)所示
(7)
式中,Ddis為無人機與目標地點之間距離,當Ddis≤0.3時表示無人機已經(jīng)到達目標地點,則給予無人機+500的獎勵;當碰撞標志位F為1時,表示此時無人機已經(jīng)產(chǎn)生碰撞,則獎勵回報為-50對無人機進行懲罰;Ddiff為上一時刻Ddis與該時刻Ddis之差,當上一時刻無人機與目標點之間距離大于該時刻距離時,表示上一時刻無人機執(zhí)行的動作是有效的因此需要給予獎勵;當上一時刻無人機與目標點之間距離小于該時刻距離時,則表明上一時刻的動作是無效的,無人機并沒有靠近目標地點,因此給予懲罰。
在本文中將設(shè)置無人機產(chǎn)生碰撞時的懲罰項數(shù)值比無人機給出無效動作(上一時刻無人機與目標點之間距離小于該時刻距離時)時的懲罰值大得多,原因在于強化學(xué)習(xí)是回合制(episode)的學(xué)習(xí)過程。一個回合指的是從無人機起飛的時刻開始計算,直到無人機發(fā)生碰撞,或者到達指定目標點,或者到了提前設(shè)定好的最大時間長度結(jié)束,在此期間經(jīng)歷的所有有限個時間片稱之為一個回合。同時,在該決策訓(xùn)練的途中,將當前的回報值分解為當前立即回報和未來的潛在回報,如公式(1)所示,其中γ折扣函數(shù)統(tǒng)一設(shè)置為0.99,表明此時智能體更加關(guān)注未來的獎勵值。因此,若是一個回合的時間片個數(shù)超過10,且在這10個時間片中無人機不發(fā)生任何碰撞,則在第11個時間片的時候動作值函數(shù)的估計值將在+40左右。此時,若無人機采取了某個決策動作a而導(dǎo)致其發(fā)生碰撞,回報函數(shù)僅僅給予了無人機一個-10的懲罰,因此在第11個時間片之后無人機對決策動作a的動作值函數(shù)估計值在+30 左右??梢园l(fā)現(xiàn),+30的動作值函數(shù)估計值使得無人機依然認為第11個時間片所采取的動作a是一個“優(yōu)秀的動作”。然而實際情況是決策動作a導(dǎo)致了無人機的碰撞,因此在公式(7)中將懲罰設(shè)置為-50,很大的懲罰將對無人機的“犯錯”具有足夠的“威懾力”,在無人機避障策略學(xué)習(xí)的過程中才會足夠“重視”碰撞所帶來的懲罰。同理,當無人機能夠安全到達指定目標點時,給予無人機一個很大的獎勵值,表明該回合的策略是有效的,能夠激勵訓(xùn)練朝著好的方向發(fā)展。在無人機的訓(xùn)練過程中如果僅僅使用主線獎勵會導(dǎo)致稀疏獎勵問題,為了避免無人機陷入局部最優(yōu)解狀態(tài)(表現(xiàn)為無人機在仿真環(huán)境中為了“逃避”懲罰幾乎呈現(xiàn)出靜止不動的狀態(tài),偶爾會輕微地左右同時晃動)而使訓(xùn)練無法收斂,需要對比上下2個時刻相對目標點距離,對無人機進行Ddiff大小的懲罰或獎勵引導(dǎo)訓(xùn)練朝著設(shè)定目標方向進行。
在本次實驗設(shè)計中,訓(xùn)練批次設(shè)計為64,學(xué)習(xí)率為1×10-4,探索率的初始值設(shè)為0.98并隨著無人機訓(xùn)練次數(shù)的增加而逐漸遞減最終為0.05保證無人機在一開始有更大的概率獲取隨機動作從而避免直接采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練進入局部最優(yōu)狀態(tài)。當探索率最終衰減至0.05之后,也能保證無人機學(xué)習(xí)得到一些罕見的動作策略。無人機開始訓(xùn)練,初始獎勵值為0,當無人機碰到障礙物時會得到相應(yīng)懲罰,尋找到正確路線從而到達設(shè)定目的地時會得到+500獎勵,無人機訓(xùn)練的總分值為訓(xùn)練時每一步獎勵之和。因此訓(xùn)練結(jié)束后,當總分值大于500時表明在當前訓(xùn)練回合中,無人機能夠成功躲避所有障礙物并到達指定目標點,總分值越高,表明無人機所選擇的避障路線越好。為了驗證本文所提出算法的有效性,本文分別將DQN、DDQN 、DDQN-GRU在該仿真環(huán)境中進行訓(xùn)練測試,在此基礎(chǔ)上引入優(yōu)先經(jīng)驗回放機制提高數(shù)據(jù)利用率從而加快訓(xùn)練收斂,驗證算法的有效性。
3.4.1 訓(xùn)練結(jié)果對比
圖3~6分別表示4種不同算法在同一訓(xùn)練場景下,其總得分、平均獎勵以及無人機所走路程隨訓(xùn)練次數(shù)增加的變化情況。
圖3 總得分變化曲線
圖4 平均獎勵變化曲線 圖5 無人機所走路程變化曲線 圖6 Q值變化曲線
如圖3所示,DQN算法整個訓(xùn)練過程中均無較大波動,只在6 200左右出現(xiàn)得分大于0的情況,表明此時無人機只能進行簡單避障而并沒有到達指定目標位置。與其他算法相比較,經(jīng)過8 000多次訓(xùn)練DQN算法所訓(xùn)練無人機避障能力最差。DDQN算法在訓(xùn)練5 700次后得分開始達到500左右,表明此時無人機已經(jīng)具備躲避障礙物并到達地點的能力,但是其訓(xùn)練很容易出現(xiàn)過擬合現(xiàn)象,表現(xiàn)為訓(xùn)練曲線不能完全收斂,無人機陷入局部最優(yōu)狀態(tài)。相比之下,DDQN-GRU算法在整個訓(xùn)練過程中得分總體優(yōu)于DDQN,在5 500次訓(xùn)練過后算法整體收斂穩(wěn)定,在引入優(yōu)先經(jīng)驗回放機制之后算法訓(xùn)練速度加快,在4 000次訓(xùn)練之后便可以達到收斂狀態(tài)。平均獎勵為每一訓(xùn)練回合中無人機的總得分除以其訓(xùn)練步數(shù),意在評價算法每一步中給出策略的好壞,從圖4可以看出每一次訓(xùn)練中,由于引入了GRU網(wǎng)絡(luò)和優(yōu)先經(jīng)驗回放機制,DDQN-GRU-PER的平均獎勵均大于DDQN算法以及DQN算法。圖5為無人機所走路程的變化曲線,當無人機在飛行過程中遇到障礙物時會受到懲罰并結(jié)束本次訓(xùn)練過程,因此可以看出隨著訓(xùn)練次數(shù)的增加無人機的避障能力在增強。通過對比可以看出DDQN算法的有效性明顯高于DQN算法。圖6所示為一個訓(xùn)練回合即一個episode中神經(jīng)網(wǎng)絡(luò)所給出策略的Q值(動作價值)平均值。值得注意的是,Q值越高并不完全代表算法所給出的策略越好,神經(jīng)網(wǎng)絡(luò)所給出的動作價值應(yīng)該盡可能地接近人為設(shè)置的獎勵值。通過對比可以看出DQN由于反復(fù)取用最大理論價值,導(dǎo)致正向誤差累積,在開始訓(xùn)練的2 000次給出動作價值過高從而影響正確的策略判斷。DDQN算法由于使用2個單獨的網(wǎng)絡(luò)進行價值估計和動作選擇,可以有效避免對動作價值的過高估計。
3.4.2 測試結(jié)果對比
為了驗證算法的有效性,本文分別將DQN、DDQN網(wǎng)絡(luò)模型與DDQN-GRU網(wǎng)絡(luò)模型在測試環(huán)境中進行對比,通過比較累積得分、單步平均獎勵以及無人機所走路程來評估算法模型的有效性。平均累積得分、平均獎勵得分值越大表明無人機在該測試回合中所采取的避障策略越有效,即所訓(xùn)練模型表現(xiàn)越好。根據(jù)本文獎勵函數(shù)的設(shè)計可知,當累積得分高于500時,表明無人機能夠成功躲避所有障礙物并安全到達指定目標點。測試環(huán)境中無人機出生點在地圖上的相對位置坐標為[0,0,-7],要求到達指定目標點位置為[3,-76,-7]。當無人機在測試回合中所走路程并未超過76.059(出生點與終點之間最短距離)時,表明無人機可能在該回合中出現(xiàn)碰撞而沒有成功到達指定目標點。
表3為1 500次測試實驗取平均值結(jié)果,從表中數(shù)據(jù)可以看出DQN、DDQN模型在測試過程中平均累積得分、平均獎勵出現(xiàn)負值,平均路程不到出生點至目標點最短距離的一半,表明在測試回合中無人機出現(xiàn)碰撞,導(dǎo)致該測試回合失敗。引入了循環(huán)神經(jīng)網(wǎng)絡(luò)的DDQN-GRU模型平均累積得分均在500以上,且均高于DQN模型和DDQN模型,此時無人機具有更好的避障性能。通過對比1 500次結(jié)果可以表明,雖然DDQN和DDQN-GRU均來自于訓(xùn)練過程中已經(jīng)收斂的模型,但在測試過程中當無人機出現(xiàn)小的擾動時,對DDQN模型所給出避障策略的正確性會產(chǎn)生較大影響,此時DDQN-GRU模型表現(xiàn)出更強的魯棒性,而DQN所訓(xùn)練得到模型幾乎沒有避障能力。
表3 對比實驗結(jié)果
圖7為DDQN-GRU訓(xùn)練所得結(jié)果在仿真環(huán)境中進行測試時無人機視角下整體的避障過程。從上到下依次為,無人機開始起飛,靠近第一層障礙物(圖7a)),模型根據(jù)輸入的深度圖片做出決策響應(yīng)控制無人機躲避障礙物并到達第二層障礙物附近(圖7b)),躲避障礙物并達到指定位置(圖7c))。
圖7 無人機視角避障過程
為了直觀展示DDQN、DDQN-GRU 2種算法所給出避障策略的好壞,實驗設(shè)置了高空無人機視角拍攝完整的飛行過程,2種算法的避障過程如圖8所示。其中,紅色軌跡為DDQN-GRU所給出的避障路線,黑色的軌跡為DDQN算法的避障路線。通過對比可以看出DDQN-GRU算法所給出的避障策略使得無人機所走里程數(shù)更短、更具有優(yōu)勢。
圖8 無人機避障路線俯視圖
綜上所述,環(huán)境的部分可觀察性會阻礙DDQN算法在避障問題中的性能,GRU循環(huán)網(wǎng)絡(luò)可以保留隨時間收集的相關(guān)信息為神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)提供了額外的補充信息,因此大幅度增強了強化網(wǎng)絡(luò)的記憶力。與傳統(tǒng)的深度強化學(xué)習(xí)算法相比較,引入GRU網(wǎng)絡(luò)的算法具有更好的性能。
3.4.3 未知場景下測試
為了驗證本文所提出算法在未知環(huán)境中的避障能力,搭建了新的測試環(huán)境如圖9所示。該測試環(huán)境分別在原有環(huán)境的基礎(chǔ)上改變障礙物數(shù)量、顏色、大小以及分布情況,從而測試無人機是否真正學(xué)習(xí)到了躲避障礙物的能力。從圖中可以看出,在改變障礙物大小以及分布時候,無人機仍具有躲避障礙物的能力。當測試環(huán)境無人機起始位置、目標位置與之前訓(xùn)練環(huán)境中一致時,由于障礙物分布不同,無人機可能需更多的步數(shù)才能到達目標位置,但仍舊可以成功躲避障礙并到達指定位置點。這表明使用DDQN-GRU算法所訓(xùn)練得到模型在未知環(huán)境中仍舊具有避障能力。
圖9 未知場景下避障能力測試
本文以無人機在未知三維環(huán)境中的實時避障為研究背景。針對傳統(tǒng)強化學(xué)習(xí)避障算法無法有效處理時間序列信息以及存在部分可觀測性的問題,介紹了一種新型基于深度強化學(xué)習(xí)的無人機避障算法,用于不同環(huán)境中的無人機避障以及路徑規(guī)劃。本文設(shè)計了一種將循環(huán)神經(jīng)網(wǎng)絡(luò)與DDQN相結(jié)合的算法框架,通過將循環(huán)神經(jīng)網(wǎng)絡(luò)引入到深度強化學(xué)習(xí)算法框架之中,增強真實神經(jīng)網(wǎng)絡(luò)的可分析性使其更好處理時間維度的信息。為了提高避障算法的可行性,根據(jù)避障環(huán)境重新設(shè)計無人機的狀態(tài)、動作空間以及獎勵函數(shù)使其更好適應(yīng)避障任務(wù)要求。然后,將改進的深度強化學(xué)習(xí)框架應(yīng)用于仿真環(huán)境中進行訓(xùn)練仿真測試。仿真及實驗結(jié)果表明本文所提出的深度循環(huán)雙Q網(wǎng)絡(luò)能夠很好地處理無人機避障中部分可觀測問題,與現(xiàn)有的方法相比較,具有更好的收斂效果以及穩(wěn)定性。