邱 月,鄭柏通,蔡 超
(華中科技大學人工智能與自動化學院多譜信息處理技術國家級重點實驗室,武漢 430074)
戰場環境中的無人飛行器(Unmanned Aerial Vehicle,UAV)航跡規劃任務需要考慮多方面的因素,如無人飛行器的性能、地形、威脅、導航與制導方法等,其目的是在低風險情況下以更低的能耗得到最優航跡。
目前,典型的無人飛行器航跡規劃算法包括A*算法[1]、遺傳算法[2]、蟻群算法[3]和粒子群算法[4]等,雖然它們具有很強的路徑搜索能力,但是在面臨新的飛行環境時,多數算法無法從歷史經驗中獲得先驗知識,導致難以適應多變的環境。強化學習通過智能體來不斷地試探環境,迭代學習從“狀態-動作”對中獲得的累積經驗,得到使收益最大化的策略,即狀態到動作的映射。與傳統方法不同,將強化學習理論應用于無人飛行器航跡規劃領域,能夠使無人飛行器獲得類似人類的學習能力,在未知環境中將學到的策略作為先驗知識可以提高航跡規劃的效率,從而更快地適應新環境。但是強化學習存在維度災難問題,導致難以解決復雜的實際問題。人工智能技術的發展使得深度學習可以很好地處理高維信息。深度強化學習[5-7]結合了具有強大感知能力及表征能力的深度學習與具有決策能力的強化學習,能夠提高航跡規劃策略在復雜多變環境中的泛化能力。
在實際的航跡規劃中,需要綜合考慮如何利用航跡規劃的任務、約束條件和優化目標等信息來設計強化學習系統的四要素,即狀態、動作、獎懲函數和策略。目前,研究人員從不同角度提出了較多航跡規劃方法。文獻[8]基于Q 學習來解決未知動態環境中的移動機器人路徑規劃問題,提出一種狀態空間的定義方法,即根據離智能體最近的障礙物的相關信息指導設計狀態,該方法能夠加快收斂速度并提高系統學習效率。文獻[9]為了提高深度強化學習方法對新目標的泛化能力,引入目標驅動模型,在狀態設計中考慮目標信息。文獻[10]將深度強化學習應用于探索室內環境中的移動機器人,將原始的深度圖像作為狀態輸入DQN 中,從而得到移動指令。文獻[11]將一定角度內等分布的稀疏10 維LIDAR 數據、移動機器人相對于目標的位置及其前一時刻的速度設計為狀態,采用深度確定性策略梯度下降算法來輸出連續的轉向指令。
為了使航跡規劃策略在復雜多變的環境中具有更高的泛化能力,本文提出一種基于深度強化學習的策略自學習方法。在狀態、動作空間方面,結合任務信息、全局和局部環境信息圖像化設計無人飛行器狀態,利用2 個匹配導航點間的復雜約束條件得到下一匹配導航點的可行域,然后將可行域引入動作空間的設計中,使得規劃所得的航跡滿足約束條件,同時降低搜索空間并加快規劃速度。在獎勵函數方面,針對實際航跡規劃應用場景中的優化指標設計相應的獎勵函數。在策略學習算法方面,利用神經網絡引導的蒙特卡洛樹搜索(Monte Carlo Tree Search,MCTS)算法提高策略迭代學習效率,其中,神經網絡用于提供先驗策略與價值估計,MCTS 算法在先驗策略和價值估計的引導下進行大量預演,以得到一個性能更優的策略用于迭代學習。
本文針對景象匹配和慣性導航相結合的復合制導模式下的無人飛行器航跡規劃問題進行研究。航跡規劃本質上就是要獲取在飛行前或飛行過程中無人飛行器為完成任務所需的最優飛行航路,所規劃的航跡必須滿足飛行器、飛行環境以及所執行任務的各種約束。傳統航跡規劃方法都采用逐步搜索的方式尋找最優航跡,從而將航跡規劃問題轉化為一個圖搜索問題。但是,由于飛行器是在連續的三維空間內飛行,飛行空域往往十分廣闊,因此規劃算法所依賴的圖的節點和邊通常是在規劃過程中依據飛行約束而現場構造。
在實際應用中,由當前節點(導航點)依據當前飛行方向、飛行器的機動能力和導航精度要求等約束,構造下一個導航點的可能搜索區域,對該搜索區域進行離散化后獲得的節點就是當前節點的所有鄰節點。規劃策略是依據當前節點處飛行器的狀態(包括飛行器的位置、飛行方向、飛行速度、目標位置、環境信息等)選取下一個節點的決策方法。性能較優的規劃策略能夠引導規劃算法快速地獲得執行任務的最優航跡。規劃策略學習則是通過對規劃樣本的學習獲得多種狀態下的節點選取策略,學習得到的策略能夠引導無人飛行器在滿足約束的前提下,安全無碰撞地從起始位置出發到達目標位置,實現航跡長度、飛行安全性能和能耗等指標的優化[12]。規劃策略是解決航跡規劃問題的核心,也是實現武器智能的關鍵。
與無人飛行器航跡規劃相關的環境要素包括威脅區、禁飛區和匹配區。禁飛區為根據國家政策以及戰略要求禁止飛行器飛經的區域。威脅區為敵方防御系統中的雷達威脅區、攔截導彈威脅區等區域。匹配區為適合飛行器做景象匹配的區域,其與地表的特征相關,常通過對相關系數、相關長度等參數進行統計計算得到。本文所采用的上述環境要素數據由航跡規劃系統的預處理模塊計算得到,后文不再詳述。
無人飛行器航跡規劃約束條件從來源和作用角度分為兩大部分,即飛行器特性約束和制導控制約束。飛行器特性約束體現飛行器本身的機動能力,包括飛行器最大拐彎角Ψmax、最小拐彎角Ψmin(規劃時出現小于最小拐彎角的拐彎機動則忽略拐彎動作)和最小轉彎半徑Rmin(最小轉彎半徑越大,飛行器機動性能越差)。制導控制約束來源于飛行器在組合導航過程中對導航精度、控制規律的要求。本文采用圖像匹配和慣性導航組成的復合制導系統,2 個匹配區之間依賴慣性導航制導,這就要求2 個匹配區之間的距離不能太遠,記2 個匹配區之間的最大距離為Lmax。為了保證飛行器進行圖像匹配后能夠完成必要的機動動作并降低彈載計算機的計算負擔,2 個相鄰匹配區之間的距離又不能太近,記2 個匹配區之間的最小距離為Lmin。通常情況下要求飛行器在進行圖像匹配的過程中保持直飛的狀態,記匹配區的長度為Lmatch。飛行器在完成圖像匹配后,應當留有一段糾偏距離,記糾偏距離為Lcorrect,在這段距離中理想的航跡應該是平直的。
強化學習方法使智能體自主探索未知環境,學習在不同的環境下做出最優動作并完成指定任務。航跡規劃策略的強化學習過程如圖1 所示,智能體從當前狀態依據策略采取動作轉換到新的狀態,利用預先定義的獎懲函數測量該動作的獎懲值并反饋給智能體。智能體通過不斷地探索飛行環境,依據策略執行動作,生成大量樣本數據,強化學習算法利用這些樣本數據調整智能體的策略,再根據新策略探索環境以生成新樣本從而修正策略。經過上述迭代學習過程,智能體最終能夠學習到完成指定任務的最優策略。

圖1 航跡規劃策略的強化學習過程Fig.1 Reinforcement learning process of track planning strategy
航跡規劃的任務是優化設計無人飛行器的航跡,尤其是包括起點和終點在內的N個導航點的規劃。每個導航點的信息包括位置信息(X,Y)和飛行方向信息Angle。在本文中,導航點規劃的重點在于匹配點的規劃,利用2 個匹配導航點間的復雜約束條件得到下一個匹配導航點的可行域,然后將可行域引入狀態和動作空間的設計中。圖2 所示為2 個匹配導航點之間的航跡段,飛行器從當前匹配導航點經過直飛段-轉彎弧線段-直飛段到達下一個匹配導航點,其中,轉彎點的位置和轉彎半徑不同會得到不同的航跡段。

圖2 2 個匹配導航點之間的航跡段信息Fig.2 Track segment information between two matching navigation points
為了簡化下一個匹配導航點可行域的計算過程,本文將轉彎點作為輔助導航點,根據當前匹配導航點的位置信息(X,Y)和飛行方向信息,結合2 個匹配導航點間的約束條件得到轉彎點和下一個匹配導航點的可行域。上述計算過程如圖3 所示,其中,本文將2 個匹配導航點與轉彎點的直線距離之和作為2 個匹配導航點之間的航跡段長度,從而簡化計算。

圖3 轉彎點和下一個匹配導航點的可行域示意圖Fig.3 Schematic diagram of the feasible region of the turning point and the next matching navigation point
2.2.1 轉彎點可行區間判定
轉彎點在當前導航匹配點飛行方向所在的直線上,為滿足2 個匹配導航點間的約束條件,轉彎點可行域的A、B兩端需要滿足式(2)、式(3):


2.2.2 匹配導航點的可行域
在確定轉彎點后可以得到其對應的下一個匹配導航點的可行域。如圖3 所示,以轉彎點A為例,其對應的下一個匹配區可行域為由C、D、G、F點圍繞的環形區域,為了滿足最大轉彎約束,環形區域對應的扇形頂角大小為2×Ψmax。為滿足其余2 個匹配導航點間的約束條件,本文設定環形可行域的最近半徑LAC、最遠半徑LAD分別滿足式(4)、式(5):

其中,環形的最遠半徑LAD是為了保證2 個匹配點間的距離小于最大距離Lmax,環形的最近半徑LAC不僅要保證2 個匹配點間的距離大于最小距離Lmin,而且要滿足匹配區的直飛約束與最小轉彎半徑約束。
從起始點開始,根據當前匹配導航點的信息得到下一個轉彎點的可行域,確定轉彎點并得到該轉彎點對應的下一個匹配點可行域,選擇新的匹配導航點,重復上述過程直至找到終點。
將飛行器的狀態s用一組大小為N×N的二值特征圖層表示,其表達了規劃任務、飛行器所處環境、飛行方向以及位置等信息。特征圖層分為全局特征圖層和局部特征圖層兩部分,其中,全局特征圖層是全局區域信息的粗略表示,局部特征圖層是以匹配導航點A點為中心的局部區域信息詳細表示。如圖3 所示,A點對應的下一個匹配導航點的位置范圍覆蓋了其他可行轉彎點對應的匹配點可行域,且A點與當前匹配導航點的位置關系表達了飛行方向。在規劃匹配點或轉彎點時,飛行器將在局部區域中選擇一個位置(x,y)作為動作執行區域。
在規劃轉彎點時,飛行器的狀態特征圖層如圖4(a)所示,每個特征圖層代表當前匹配導航點的特定信息,其中,6 個全局區域圖層為禁飛區、威脅區、匹配區、起始點、終點以及當前匹配導航點在全局區域中的位置。局部特征圖層除了前面的6 個特征項在局部區域中的位置信息外,還有一個特征圖層描述轉彎點在局部區域中的可行域。如圖4(b)所示,在選擇轉彎點位置為(N/2,N/2)后,規劃匹配導航點時,飛行器的狀態特征圖層為轉彎點局部特征圖、轉彎點全局特征圖和下一個匹配區合法位置,該合法位置是下一個匹配導航點的可行域與匹配區的交集。

圖4 飛行器的狀態特征圖層示意圖Fig.4 Schematic diagram of aircraft state feature layer
無人飛行器航跡規劃的優化目標需要考慮三方面因素,即航跡總長度、總威脅值和飛行器拐彎機動耗能。在確定下一個匹配導航點的位置動作后,該動作的獎賞值如式(6)所示:

其中,Rlen為航跡長度懲罰值,Rsafe為安全性能懲罰值,Rangle為飛行器拐彎機動耗能懲罰值,Rarrive為規劃成功獎賞值。
當前匹配導航點與下一個匹配導航點的航跡段長為L,本文傾向于選擇航跡點個數少并且航跡段短的航跡,則航跡長度懲罰值如下:

在確定下一個匹配導航點后,得到拐彎角度Ψ,如果Ψ>Ψmin,則設置飛行器拐彎機動耗能懲罰值Rangle=-0.01。
飛行器的安全性能保障重點考慮威脅區和禁飛區。航跡段二值圖像與局部區域禁飛區二值圖像之間若無交集,則表示安全;若有交集,則設置禁飛區懲罰值Rforbid=-1(若匹配導航點越出規劃區域,視為進入禁飛區)。將航跡段二值圖像與局部區域威脅區二值圖像相交,得到交集,統計交集中的元素個數N,設置威脅區懲罰值Rthreat=-0.01×N。飛行器安全性能懲罰值為Rsafe=Rforbid+Rthreat。若飛行器安全抵達終點區域,則Rarrive=1;否則,Rarrive=0。
在本文規劃策略學習方法中,利用深度學習網絡來學習由探索飛行環境而得到的樣本數據。其中,神經網絡架構參照AlphaZero[13-14],將策略網絡和價值網絡合并為一個網絡,即將智能體所處的狀態作為神經網絡的輸入,輸出概率分布p和數值v,(p,v)=fθ(s)。概率分布p代表當前狀態下選擇每個動作的概率,pa=Pr(a|s)。數值v用于估計當前狀態的價值。神經網絡主要由帶有多個卷積層、批標準化[15]以及ReLU[16]的DenseBlock[17]組成。如圖5 所示,智能體所處的狀態圖層分為局部信息圖層、全局信息圖層以及位置信息圖層3 個部分,3 個圖層經由DenseNet 提取特征后,使用一個1×1 的卷積核進行降維處理,最后再整合所有信息,經過全連接層分別輸出概率分布p和預估價值v。為了保留原始輸入圖像的信息,網絡中沒有使用任何池化層。由于本文規劃方法需要規劃轉彎點和匹配導航點,因此設計2 個如圖5 所示的決策網絡。

圖5 決策神經網絡架構Fig.5 Decision neural network architecture
在智能體探索飛行環境時,對于每個狀態s都會在決策網絡fθ的引導下利用MCTS 算法進行飛行仿真,為了便于表達,將這種結合神經網絡的MCTS 算法稱為NN-MCTS。智能體根據NN-MCTS 輸出的動作選擇概率π選擇動作。在通常情況下,相比神經網絡fθ,NN-MCTS 選擇更優動作的可能性更大。因此,MTCS 算法被視為功能強大的策略改進方法[18-19]。
NN-MCTS 算法的仿真過程如圖6 所示,其由選擇、擴展、評估以及回溯4 個部分組成。搜索樹的每條邊(s,a)都存儲著先驗概率P(s,a)、訪問次數N(s,a)以及動作價值Q(s,a)。每次仿真都從根節點狀態開始,不斷地選擇置信上限值Q(s,a)+U(s,a)最大的動作,其中,U(s,a)∝P(s,a)/(1+N(s,a))[13],直至達到葉節點s′為止。隨后,在葉節點所在位置擴展新的分支,使用神經網絡估計葉節點的狀態價值并初始化分支的先驗概率(P(s′,·),V(s′))=fθ(s′)。在NN-MCTS 算法的仿真過程中,被遍歷過的每條邊都會回溯更新其訪問次數N(s,a)和動作價值Q(s,a)=W(s,a)/N(s,a),W(s,a)為評估值v的累計和。在仿真過程結束后,得到每個可執行動作的選擇概率,該概率正比于NN-MCTS 仿真時的動作訪問次數,即πt∝N(s,a)。

圖6 NN-MCTS 算法的仿真過程Fig.6 Simulation process of NN-MCTS algorithm
本文使用深度強化學習算法進行策略學習迭代的流程如圖7 所示,根據智能體探索環境得到的樣本數據與卷積神經網絡學習到的樣本數據進行迭代。

圖7 策略學習的迭代過程Fig.7 Iterative process of strategy learning
智能體在狀態st時依據NN-MCTS 輸出的動作選擇概率πt采取動作at,然后轉換到狀態st+1,獎懲函數測量該動作的獎懲值Rt并反饋給智能體,重復以上過程,直至T時刻達到終止狀態,即規劃成功或失敗。統計狀態st的價值,將每個狀態st的樣本數據按照(st,πt,zt)的形式存入記憶庫中。神經網絡從記憶庫中隨機批量采樣樣本(st,πt,zt)進行學習,其中,s作為神經網絡的輸入,神經網絡的損失函數定義如下:

其中,參數c用于調整正則化權重,其可以防止神經網絡過擬合。本文采用Adam 算法[20]訓練網絡。此外,為了確保策略更新過程平穩進行,參考PPO、TRPO[21-22]方法,結合策略網絡更新前的概率分布p1與更新后的概率分布p2,通過KL計算KL 散度從而控制學習率,具體如下:


其中,KLmax為最大KL 散度值,KLmin為最小KL 散度值,lr 為網絡學習率。
為了驗證本文所提方法的有效性,使用10 個不同的飛行環境進行策略迭代學習,評估在未知的測試飛行環境中智能體學習所得的規劃策略性能。在左上角高斯坐標為(3 438 300.25,778 413.00)、范圍為82 km×72 km 的任務區域內進行仿真,實驗環境設置如下:操作系統為Windows 系統,GPU 為GeForce GTX 2080 Ti,內存大小為32 GB,代碼基于Python3.7 及Tensorflow 框架實現。實驗中起始點的高斯坐標為(3 381 200.25,809 113.00),目標點的高斯坐標為(3 427 400.25,836 013.00),目標點進入方向為20°(以正北方向為基準,北偏東為正方向)。訓練與測試的飛行環境如圖8 所示,其中多邊形區域為禁飛區,圓形區域為威脅區。無人飛行器航跡規劃任務的約束條件指標設置如表1 所示。

圖8 訓練與測試的飛行環境Fig.8 Flight environment for training and testing

表1 飛行器航跡規劃任務的約束條件指標設置Table 1 Constraint condition indexes setting of aircraft track planning task
策略學習的迭代以完全隨機的行為開始,持續約3 天沒有人為干預的自訓練。在每次迭代過程中,隨機選擇一個訓練飛行環境,并用更新后的最新網絡fθ探索環境,得到一條從起始狀態到達終止狀態的航跡樣本數據并存入記憶庫中。對于每個狀態s,NN-MCTS 算法進行500 次仿真。神經網絡fθ使用隨機初始化參數,從記憶庫中最近的1 000 個樣本數據中隨機批量采樣,樣本批量大小設置為64,利用式(8)計算損失,其中,L2正則化參數c設置為0.000 5,然后采用Adam 算法[22]訓練網絡。由式(9)和式(10)控制網絡學習率,其中,學習率初始值設置為0.000 01,KL 散度最大值KLmax=0.002,KL 散度最小值KLmin=0.000 2。局部信息圖層、全局信息圖層與位置信息圖層的降維模塊都使用結構相同、參數不共享的DenseNet,其中,降維模塊包含6個DenseBlock,每個DenseBlock 包含8 對卷積和BN 層,DenseBlock 的growth rate 設置為32,DenseBlock 之間都用1×1×32 的卷積層進行通道數降維。
3.2.1 規劃策略評估方法
為了驗證本文方法學習得到的航跡規劃策略具有泛化能力,需要對強化學習算法不同階段迭代訓練所得的決策網絡fθ進行評估,具體評估過程為:智能體在測試飛行環境中首先從起始狀態s0出發,根據每個狀態st得到NN-MCTS 輸出的動作選擇概率πt,然后選擇πt最大的動作,即最大訪問次數N對應的動作來執行,使網絡發揮盡可能大的作用,直至T時刻到達終止狀態(規劃成功或失敗),最后通過所得的航跡總獎懲值來評估該決策神經網絡fθ的性能。
3.2.2 實驗驗證
性能評估時NN-MCTS 算法的仿真次數會影響同一決策網絡fθ規劃所得的航跡總獎懲值。在測試飛行環境中,不同NN-MCTS 仿真次數下隨機初始參數網絡fθ的性能評估結果如圖9 所示。從圖9 可以看出,只有在經過115 次仿真后才能規劃成功到達終點的航跡,并且隨著仿真次數的增加,規劃得到的航跡總獎懲值呈穩定上升的趨勢,這說明在仿真次數足夠的情況下(達到115 次),即使無任何先驗知識,基于NN-MCTS 算法的規劃策略自學習方法在面對未知飛行環境時,也可以通過MCTS 改進策略引導無人飛行器到達目的地。

圖9 不同仿真次數下的規劃所得航跡總獎懲值Fig.9 The total reward and punishment values of the track planned under different simulation times
為進一步探究仿真次數對性能評估結果的影響,隨機選取規劃成功的航跡及其仿真過程中訪問過的節點進行比較分析。如圖10 所示,NN-MCTS算法的仿真次數依次為160、220、300、600 和1 000,在訪問過程中,每個動作節點的訪問次數由3 種深淺不同的實心圓點表示(彩色效果見《計算機工程》官網HTML 版)。從圖10 可以看出,規劃成功的航跡都避開了禁飛區,表明該策略規劃的航跡在滿足約束條件的同時也滿足安全要求。根據各圖中不同實心圓點的分布可知,在仿真次數較少的情況下,該策略主要考慮避開禁飛區,距離禁飛區較近的點多為動作訪問次數較少的實心點,距離較遠的點多為動作訪問次數較多的實心點。隨著仿真次數的增多,由于終點在禁飛區方向,逼近禁飛區的區域內出現更多代表訪問次數多的實心點。通過對比分析可知,在禁飛區離起點較近的區域,當仿真次數較少時策略會優先繞開禁飛區,當仿真次數足夠多時策略才會規劃航跡短、拐彎次數少且安全的航跡。

圖10 不同仿真次數下規劃所得航跡及其搜索樹的節點訪問情況Fig.10 The planned track and its search tree node access situation under different simulation times
圖11(a)所示為不同迭代次數訓練得到的決策網絡fθ的性能隨NN-MCTS 仿真次數的變化曲線。從圖11(a)可以看出,在相同的NN-MCTS 仿真次數條件下,迭代次數越高,越容易得到更大的航跡總獎懲值。當迭代0 次時,曲線的波動幅度較大,隨著迭代次數的增加,曲線的波動幅度逐漸減小。迭代140 次與160 次的網絡性能曲線差異較小,在迭代180 次時,曲線波動趨于平穩,迭代200 次時,波動幅度稍微變大。圖11(b)所示為不同迭代次數訓練得到的決策網絡能夠成功規劃航跡所需的最少NN-MCTS 仿真次數,其對應圖11(a)中曲線的平穩臨界點。從圖11(b)可以看出,未進行迭代訓練的網絡需要在115 次仿真后才能規劃成功,隨著迭代次數的增加,網絡進行不斷學習,在迭代140 次時網絡能以85 次仿真成功規劃航跡,提高近1/3 的規劃效率,而在迭代180 次時,僅需17%的仿真次數就能規劃成功。但是,在迭代200 次時,可能由于網絡過擬合而導致仿真次數回退到35次。結合圖11(a)和圖11(b)可以得出:經過迭代訓練學習的網絡能夠在更少的仿真次數下成功規劃航跡,即提高了規劃效率。

圖11 不同迭代次數訓練所得的決策網絡fθ的性能評估結果Fig.11 Performance evaluation results of decision network fθ trained by different iterations
本文針對多約束復雜環境下的無人飛行器航跡規劃問題,提出一種基于深度強化學習的規劃策略自學習方法。利用飛行約束條件計算得到下一個導航點的可行域,結合飛行器所處的環境信息設計圖像表達的飛行器狀態及動作,以在規劃所得航跡滿足約束條件的同時,降低搜索空間,減輕神經網絡的學習負擔并提高NN-MCTS 算法的仿真效率。基于航跡規劃的優化目標設計獎懲函數,使得規劃得到的航跡能夠避開禁飛區并實現航跡長度、飛行安全性能及能耗等指標的優化。在此基礎上,基于卷積神經網絡引導的MCTS 算法自學習得到航跡規劃策略。仿真結果表明,該方法自學習得到的航跡規劃策略具有泛化能力,隨著迭代次數的增加,該策略能以較少的NN-MCTS 仿真次數,引導無人飛行器在未知飛行環境中滿足約束條件并安全無碰撞地到達目的地。下一步將研究實現并行化的仿真過程以縮短搜索樹的構建時間,從而在保證規劃效果的前提下提高規劃效率。