魏瑤, 劉志成, 蔡彬, 陳家新, 楊堯, 張凱
(1.西北工業大學 航天學院, 陜西 西安 710072;2.空軍裝備部駐北京地區軍事代表局駐天津地區第三軍事代表室, 天津 300000;3.上海航天控制技術研究所, 上海 201109;4.中國航天科技集團有限公司紅外探測技術研發中心, 上海 201109;5.西北工業大學 無人系統技術研究院, 陜西 西安 710072)
人工智能的高速發展使與其關聯緊密的機器人行業獲得了強大的生命力,無人飛行器(unmanned aerial vehicle,UAV)技術作為其中一個重要的組成部分,也借助著這蓬勃的發展趨勢得到了顯著提升。隨著無人機在各個行業的使用越來越普遍,其安全問題也日益受到關注,而無人機是否能夠在充滿障礙物環境中成功避開障礙物安全到達指定地點完成任務成為衡量其安全性能的關鍵標準。因此,有效的避障功能對于無人機是十分重要的。
基于視覺和傳感器的自主避障方案[1-4],通過實時采集周圍環境信息,模擬人類對外界事物的感知能力,一直以來是無人機等移動機器人領域的研究熱題。然而這種首先通過對環境建模,再對已知環境進行避障的方法其有效性過多依賴于無人機自身動力學和所構建的環境模型的準確性。隨著環境復雜度的增高,需要實時計算和處理的數據量大幅上漲,難以彌補傳統模型在建模過程中出現的錯誤。當無人機初次到達一個新的環境時,其必須再次經歷一系列的模型構建任務,這在很大程度上限制了算法的使用范圍。
強化學習作為機器學習領域的一個重要分支,與深度學習相比較,深度學習側重于識別和表達,強化學習則側重于通過與環境進行反復交互從而尋找解決問題的策略。其思想源于行為心理學,在特定的環境中讓智能體感覺“舒適”的行為會加強該動作與環境的聯系,反之則削弱聯系[5-6]。訓練時,智能體發出動作與環境進行交互,每次交互后根據環境反饋的回報值判定當前的行為是否利于實現目標,通過記錄智能體經歷的狀態轉換及經驗,不斷迭代更新自身策略,直到策略收斂到最優。
在強化學習中,智能體下一時刻狀態僅與當前狀態有關而與之前狀態無關。由于強化學習過程也服從馬爾可夫性,無需對環境進行精確建模和引入先驗知識,就可以通過感知環境狀態完成從環境狀態到動作映射的學習。基于此,研究人員將強化學習引入無人機避障[7],避免了上述傳統算法需要構建復雜環境模型的工作。
2015年Deepmind團隊首次提出了一種結合深度學習和增強學習的深度增強學習框架——Deep Q-Learning[8],該方法可以用于解決狀態量為圖片信息的增強學習問題。隨后Kulkarni等[9]對深度增強學習框架做了進一步改進,使其更加適用于自主控制領域。2016年,由Sliver等[10]提出的以深度強化學習算法為基礎的圍棋算法程序AlphaGo,是第一個戰勝世界圍棋冠軍的人工智能機器人,開創了人工智能又一個新的里程碑。同年,CAD2RL[11]提出了一種用于室內飛行避障的深度強化學習(deep reinforcement learning,DRL) 方法。這項工作使用模擬的3D走廊環境訓練無人機進行導航。需要生成大量具有不同照明、墻壁紋理、家具放置的3D走廊環境圖像,由深度Q網絡在這些圖像上學習無人機避障策略。然而這項工作需要大量關于走廊環境圖像的數據并且效率不高。此外,由于幫助人腦進行導航的是由雙眼輸入的深度信息,如果僅將RGB圖片輸入到神經網絡之中,無人機無法像人類一樣具有避障主觀性。由于人腦具有記憶性可以總結和存儲解決問題的關鍵信息,當人類對環境的接觸有限或者只能得到部分有關環境的信息時仍舊可以解決日常生活中的各種問題。這種記憶性可以有效存儲和回憶起隨時間收集的相關信息,以便人腦在不同的場景下做出合適的選擇。而無人機的避障和導航也存在著類似的對環境部分可觀察性問題[12],需要引入記憶的概念。
綜上所述,本文的主要貢獻為:①傳統強化學習使用單網絡結構的無人機避障算法在估計動作價值時反復取用最大理論價值,導致正向誤差的累積,本文將單網絡結構變換為雙網絡結構,在訓練學習過程中,解耦了最優動作選擇和動作價值估計,降低了單網絡結構無人機避障算法的過度估計問題,提高了避障算法的性能。②針對無人機部分可觀察性問題,提出一種基于循環神經網絡架構的避障算法。通過循環神經網絡的記憶力增強真實網絡的可分析性使其更好處理時間維度的信息并提高算法在部分可觀察環境中的中的性能,從而增強無人機的避障能力。使得UAV控制器能夠隨時間收集和存儲對環境的觀察結果,提升無人機避障效率。
馬爾可夫決策過程(Markov decision process,MDP)是Howard[13]于1960年提出的,MDP常應用于采用動態規劃和強化學習解決的優化問題中[14]。無人機在避障過程中,下一時刻無人機所處的狀態僅僅依賴于當前場景以及其采用動作后的狀態轉移方程,而與之前所處的一系類歷史狀態無關。因此,可以將無人機的避障問題看作是一個馬爾可夫決策過程,從而納入到強化學習框架中進行求解。


(1)
式中:st為當前狀態;at為當前狀態下的動作。在傳統RL(reinforcement learning)中,(1)式可通過貝爾曼方程進行迭代更新直至最終收斂,即當i→∞時,Q→Q*

(2)
式中,s′和a′分別表示當處于(s,a)狀態時,智能體下一步的狀態和動作。
深度Q網絡(deep Q network,DQN)是目前被廣泛使用的深度強化學習算法之一,實現了無環境模型的、基于值函數的端到端學習。DQN在Q-learning算法的基礎上,引入了深度神經網絡和特殊的訓練機制,解決傳統Q-learning在內存空間和處理能力上的局限性,并將強化學習問題轉化為可以使用監督學習方式進行訓練。


(3)
傳統的DQN算法使用單網絡結構,在用于無人機避障算法之中時,由于反復使用最大估計來近似下一個狀態的動作值函數,導致Q值過高估計。因此需要解耦動作選擇與價值網絡,選用雙Q網絡避免過高估計問題。則(3)式可以表達為
(4)


(5)
無人機避障和導航也存在可觀察性問題,需要引入記憶的概念。例如,在避障導航時,無人機可能會飛向角落。當它接近角落時,與側面相比,深度圖可能表明前方有更多的空間。時間信息的缺乏加上單目相機視野有限使得無人機向前移動到角落并撞到墻上。這種場景在無人機導航中非常常見,因此需要一個可以利用相關過去信息的控制器。循環神經網絡的主要特點是在一定的時間節點內,神經元的輸出可以再次用作神經元的輸入。這種序列的網絡結構可以很大程度保持數據中的依賴關系非常適合于處理時間序列數據。GRU[16]作為RNN網絡的一種衍生網絡,與傳統的長短期記憶網絡[17](long short-term memory,LSTM)相比,其將忘記門和輸入門合成了一個單一更新門,混合了細胞狀態和隱藏狀態為一個新的狀態,減少了神經網絡的計算量,加快網絡訓練時間。
因此,將循環神經網絡(GRU)與深度強化學習網絡相結合可以更好處理無人機避障之中的部分可觀測問題,提升算法性能。
本文中,無人機的任務是通過與環境進行隨機交互,在沒有任何碰撞的情況下使無人機能夠到達指定目標點。在這一過程中,將生成一系列的狀態、動作和獎勵。傳統的強化學習將無人機的避障過程看作是一個全觀測的馬爾可夫過程,假設無人機可以從環境中完全觀察到所處狀態,因此下一個時間步的任何序列對于無人機所有可能的動作都是已知的,并且可以通過該序列來學習策略。實際上,由于輸入至神經網絡的深度圖片僅僅來自于無人機上所搭載的雙目相機,智能體并不知道自身所處位置以及當前速度,因此需將無人機的避障過程看作一個部分可觀測的馬爾可夫過程。
本文設計了一種全新的DRL模型——深度循環雙Q網絡模型,來解決四旋翼無人機在未知三維環境中的避障問題。在DDQN深度強化學習網絡結構的基礎上,引入循環神經網絡GRU,通過GRU單元的記憶力增強真實神經網絡的可分析性,使其更好處理時間維度的信息。同時,由于GRU層可以記憶歷史信息,可以提高算法在部分可觀察環境中的性能,從而增強無人機的避障能力。

表1 DDQN-GRU網絡詳細結構

圖1 DDQN-GRU網絡模型架構
具體的網絡模型架構如圖1所示,各層網絡參數如表1所示。該網絡為雙網絡結構,包含主網絡以及目標網絡。在本文中將來自環境的連續4幀深度圖片d作為當前狀態序列輸入到主網絡之中,將下一個時間狀態序列輸入到目標網絡之中。最后將不同網絡計算得到的Q值作為損失函數的輸入,從而得到誤差值,并根據誤差梯度對主網絡進行參數更新。主網絡與目標網絡共享一組參數,但不同步,每隔一固定時間,主網絡對目標網絡進行參數更新。下一狀態的動作來源于主網絡所給出的最大Q值時所對應的動作,無人機執行該動作與環境進行交互,交互完成后環境給出反饋。此時,相應的狀態獎勵以及動作等參數都存儲在經驗池Memory之中。經驗池中存儲的是每次與環境交互之后即一個episode后的數據信息,分別為當前狀態、動作、下一個狀態,以及環境獎勵,表示為(s,a,s′,r)。在進行經驗抽取時,本文采用優先經驗回放代替原有的隨機抽取,給予訓練數據優先級使得含有有效信息的數據更有可能被抽取訓練,從而提高數據的利用率。
AirSim是由美國Microsoft公司推出的開源無人機仿真軟件[18]。該軟件依托著名的游戲開發平臺:虛幻引擎(unreal engine)。虛幻引擎提供了高品質的渲染能力和PhysX物理引擎,能夠便捷地完成無人機、場景和障礙物的模型制作,實現逼真的視覺場景和物理效果。AirSim支持多種傳感器的仿真與自定義,包括攝像機、氣壓計、慣性測量單元、GPS、磁力計、深度攝像機、激光雷達等。它提供基于C++和Python的多種API,例如飛控接口、通信接口、圖像接口等,拓展性較高,便于進行半實物仿真。因此,本文選擇AirSim作為仿真系統的基礎,開展無人機避障算法的研究。仿真場景試驗在仿真計算機中完成,計算機軟件配置為:Window 10 操作系統,CUDA 10.0,tensorflow1.12.0,Python3.6。
在本文的仿真實驗中,無人機使用深度傳感器在其前向180°的范圍內采集來自環境的深度圖片作為狀態觀測值,圖2為本文所使用的仿真環境。

圖2 仿真環境示意圖
狀態空間:本文在仿真環境里進行訓練,利用深度相機作為感知器,因此狀態空間可以定義為一系列的深度圖片。在將深度圖片d作為狀態信息,輸入到神經網絡中進行訓練之前,一般需要對圖像進行預處理,從復雜信息中提取主要有效信息,以降低數據的復雜度,提高算法的效率。本文將從仿真環境中得到的640×480的深度圖片轉換為84×84的灰度圖像,并將連續4幀深度圖片疊加作為此時狀態st。此時深度圖片的儲存格式如公式(6)所示。在本實驗中,使用灰度圖像不會影響學習性能,并且僅使用深度圖片進行訓練可以減少RGB圖片中紋理色彩對訓練結果的影響,增強算法的泛化能力并有效提高計算速度。
st=[dt-3,dt-2,dt-1,dt]
(6)
動作空間:為了減少神經網絡計算量,降低網絡訓練難度,去除無人機偏航通道控制,將無人機看作三自由度的質點運動。在此基礎上,固定高度和速度,則無人機的動作空間分為向前、向后、向左、向右4個方向,具體內容見表2。

表2 動作空間表
本文研究的目的是保證無人機在陌生的未知環境中“存活時間”足夠久,同時也要在飛行過程中盡量避開障礙物到達指定目標點,而不是原地不動或者陷入局部最優的狀態。這就意味著獎勵函數的設計既要激勵無人機從原點到達目標點,也要懲罰無人機產生碰撞。獎勵函數的設計如公式(7)所示
(7)
式中,Ddis為無人機與目標地點之間距離,當Ddis≤0.3時表示無人機已經到達目標地點,則給予無人機+500的獎勵;當碰撞標志位F為1時,表示此時無人機已經產生碰撞,則獎勵回報為-50對無人機進行懲罰;Ddiff為上一時刻Ddis與該時刻Ddis之差,當上一時刻無人機與目標點之間距離大于該時刻距離時,表示上一時刻無人機執行的動作是有效的因此需要給予獎勵;當上一時刻無人機與目標點之間距離小于該時刻距離時,則表明上一時刻的動作是無效的,無人機并沒有靠近目標地點,因此給予懲罰。
在本文中將設置無人機產生碰撞時的懲罰項數值比無人機給出無效動作(上一時刻無人機與目標點之間距離小于該時刻距離時)時的懲罰值大得多,原因在于強化學習是回合制(episode)的學習過程。一個回合指的是從無人機起飛的時刻開始計算,直到無人機發生碰撞,或者到達指定目標點,或者到了提前設定好的最大時間長度結束,在此期間經歷的所有有限個時間片稱之為一個回合。同時,在該決策訓練的途中,將當前的回報值分解為當前立即回報和未來的潛在回報,如公式(1)所示,其中γ折扣函數統一設置為0.99,表明此時智能體更加關注未來的獎勵值。因此,若是一個回合的時間片個數超過10,且在這10個時間片中無人機不發生任何碰撞,則在第11個時間片的時候動作值函數的估計值將在+40左右。此時,若無人機采取了某個決策動作a而導致其發生碰撞,回報函數僅僅給予了無人機一個-10的懲罰,因此在第11個時間片之后無人機對決策動作a的動作值函數估計值在+30 左右。可以發現,+30的動作值函數估計值使得無人機依然認為第11個時間片所采取的動作a是一個“優秀的動作”。然而實際情況是決策動作a導致了無人機的碰撞,因此在公式(7)中將懲罰設置為-50,很大的懲罰將對無人機的“犯錯”具有足夠的“威懾力”,在無人機避障策略學習的過程中才會足夠“重視”碰撞所帶來的懲罰。同理,當無人機能夠安全到達指定目標點時,給予無人機一個很大的獎勵值,表明該回合的策略是有效的,能夠激勵訓練朝著好的方向發展。在無人機的訓練過程中如果僅僅使用主線獎勵會導致稀疏獎勵問題,為了避免無人機陷入局部最優解狀態(表現為無人機在仿真環境中為了“逃避”懲罰幾乎呈現出靜止不動的狀態,偶爾會輕微地左右同時晃動)而使訓練無法收斂,需要對比上下2個時刻相對目標點距離,對無人機進行Ddiff大小的懲罰或獎勵引導訓練朝著設定目標方向進行。
在本次實驗設計中,訓練批次設計為64,學習率為1×10-4,探索率的初始值設為0.98并隨著無人機訓練次數的增加而逐漸遞減最終為0.05保證無人機在一開始有更大的概率獲取隨機動作從而避免直接采用神經網絡訓練進入局部最優狀態。當探索率最終衰減至0.05之后,也能保證無人機學習得到一些罕見的動作策略。無人機開始訓練,初始獎勵值為0,當無人機碰到障礙物時會得到相應懲罰,尋找到正確路線從而到達設定目的地時會得到+500獎勵,無人機訓練的總分值為訓練時每一步獎勵之和。因此訓練結束后,當總分值大于500時表明在當前訓練回合中,無人機能夠成功躲避所有障礙物并到達指定目標點,總分值越高,表明無人機所選擇的避障路線越好。為了驗證本文所提出算法的有效性,本文分別將DQN、DDQN 、DDQN-GRU在該仿真環境中進行訓練測試,在此基礎上引入優先經驗回放機制提高數據利用率從而加快訓練收斂,驗證算法的有效性。
3.4.1 訓練結果對比
圖3~6分別表示4種不同算法在同一訓練場景下,其總得分、平均獎勵以及無人機所走路程隨訓練次數增加的變化情況。

圖3 總得分變化曲線

圖4 平均獎勵變化曲線 圖5 無人機所走路程變化曲線 圖6 Q值變化曲線
如圖3所示,DQN算法整個訓練過程中均無較大波動,只在6 200左右出現得分大于0的情況,表明此時無人機只能進行簡單避障而并沒有到達指定目標位置。與其他算法相比較,經過8 000多次訓練DQN算法所訓練無人機避障能力最差。DDQN算法在訓練5 700次后得分開始達到500左右,表明此時無人機已經具備躲避障礙物并到達地點的能力,但是其訓練很容易出現過擬合現象,表現為訓練曲線不能完全收斂,無人機陷入局部最優狀態。相比之下,DDQN-GRU算法在整個訓練過程中得分總體優于DDQN,在5 500次訓練過后算法整體收斂穩定,在引入優先經驗回放機制之后算法訓練速度加快,在4 000次訓練之后便可以達到收斂狀態。平均獎勵為每一訓練回合中無人機的總得分除以其訓練步數,意在評價算法每一步中給出策略的好壞,從圖4可以看出每一次訓練中,由于引入了GRU網絡和優先經驗回放機制,DDQN-GRU-PER的平均獎勵均大于DDQN算法以及DQN算法。圖5為無人機所走路程的變化曲線,當無人機在飛行過程中遇到障礙物時會受到懲罰并結束本次訓練過程,因此可以看出隨著訓練次數的增加無人機的避障能力在增強。通過對比可以看出DDQN算法的有效性明顯高于DQN算法。圖6所示為一個訓練回合即一個episode中神經網絡所給出策略的Q值(動作價值)平均值。值得注意的是,Q值越高并不完全代表算法所給出的策略越好,神經網絡所給出的動作價值應該盡可能地接近人為設置的獎勵值。通過對比可以看出DQN由于反復取用最大理論價值,導致正向誤差累積,在開始訓練的2 000次給出動作價值過高從而影響正確的策略判斷。DDQN算法由于使用2個單獨的網絡進行價值估計和動作選擇,可以有效避免對動作價值的過高估計。
3.4.2 測試結果對比
為了驗證算法的有效性,本文分別將DQN、DDQN網絡模型與DDQN-GRU網絡模型在測試環境中進行對比,通過比較累積得分、單步平均獎勵以及無人機所走路程來評估算法模型的有效性。平均累積得分、平均獎勵得分值越大表明無人機在該測試回合中所采取的避障策略越有效,即所訓練模型表現越好。根據本文獎勵函數的設計可知,當累積得分高于500時,表明無人機能夠成功躲避所有障礙物并安全到達指定目標點。測試環境中無人機出生點在地圖上的相對位置坐標為[0,0,-7],要求到達指定目標點位置為[3,-76,-7]。當無人機在測試回合中所走路程并未超過76.059(出生點與終點之間最短距離)時,表明無人機可能在該回合中出現碰撞而沒有成功到達指定目標點。
表3為1 500次測試實驗取平均值結果,從表中數據可以看出DQN、DDQN模型在測試過程中平均累積得分、平均獎勵出現負值,平均路程不到出生點至目標點最短距離的一半,表明在測試回合中無人機出現碰撞,導致該測試回合失敗。引入了循環神經網絡的DDQN-GRU模型平均累積得分均在500以上,且均高于DQN模型和DDQN模型,此時無人機具有更好的避障性能。通過對比1 500次結果可以表明,雖然DDQN和DDQN-GRU均來自于訓練過程中已經收斂的模型,但在測試過程中當無人機出現小的擾動時,對DDQN模型所給出避障策略的正確性會產生較大影響,此時DDQN-GRU模型表現出更強的魯棒性,而DQN所訓練得到模型幾乎沒有避障能力。

表3 對比實驗結果
圖7為DDQN-GRU訓練所得結果在仿真環境中進行測試時無人機視角下整體的避障過程。從上到下依次為,無人機開始起飛,靠近第一層障礙物(圖7a)),模型根據輸入的深度圖片做出決策響應控制無人機躲避障礙物并到達第二層障礙物附近(圖7b)),躲避障礙物并達到指定位置(圖7c))。

圖7 無人機視角避障過程
為了直觀展示DDQN、DDQN-GRU 2種算法所給出避障策略的好壞,實驗設置了高空無人機視角拍攝完整的飛行過程,2種算法的避障過程如圖8所示。其中,紅色軌跡為DDQN-GRU所給出的避障路線,黑色的軌跡為DDQN算法的避障路線。通過對比可以看出DDQN-GRU算法所給出的避障策略使得無人機所走里程數更短、更具有優勢。

圖8 無人機避障路線俯視圖
綜上所述,環境的部分可觀察性會阻礙DDQN算法在避障問題中的性能,GRU循環網絡可以保留隨時間收集的相關信息為神經網絡學習提供了額外的補充信息,因此大幅度增強了強化網絡的記憶力。與傳統的深度強化學習算法相比較,引入GRU網絡的算法具有更好的性能。
3.4.3 未知場景下測試
為了驗證本文所提出算法在未知環境中的避障能力,搭建了新的測試環境如圖9所示。該測試環境分別在原有環境的基礎上改變障礙物數量、顏色、大小以及分布情況,從而測試無人機是否真正學習到了躲避障礙物的能力。從圖中可以看出,在改變障礙物大小以及分布時候,無人機仍具有躲避障礙物的能力。當測試環境無人機起始位置、目標位置與之前訓練環境中一致時,由于障礙物分布不同,無人機可能需更多的步數才能到達目標位置,但仍舊可以成功躲避障礙并到達指定位置點。這表明使用DDQN-GRU算法所訓練得到模型在未知環境中仍舊具有避障能力。

圖9 未知場景下避障能力測試
本文以無人機在未知三維環境中的實時避障為研究背景。針對傳統強化學習避障算法無法有效處理時間序列信息以及存在部分可觀測性的問題,介紹了一種新型基于深度強化學習的無人機避障算法,用于不同環境中的無人機避障以及路徑規劃。本文設計了一種將循環神經網絡與DDQN相結合的算法框架,通過將循環神經網絡引入到深度強化學習算法框架之中,增強真實神經網絡的可分析性使其更好處理時間維度的信息。為了提高避障算法的可行性,根據避障環境重新設計無人機的狀態、動作空間以及獎勵函數使其更好適應避障任務要求。然后,將改進的深度強化學習框架應用于仿真環境中進行訓練仿真測試。仿真及實驗結果表明本文所提出的深度循環雙Q網絡能夠很好地處理無人機避障中部分可觀測問題,與現有的方法相比較,具有更好的收斂效果以及穩定性。