梁天宇, 高 永, 劉軍民, 惠永昌
(1. 西安交通大學數(shù)學與統(tǒng)計學院,西安 710049; 2. 海軍航空大學航空基礎學院,煙臺 264001)
無人機全稱“無人駕駛飛行器”,英文縮寫為“UAV”(Unmanned Aerial Vehicle),是利用無線電遙控設備和自備的程序控制裝置操縱的不載人飛機[1]。它被廣泛應用于軍用和民用等領域。隨著無人機產(chǎn)業(yè)的蓬勃發(fā)展,無人機航跡預測也成為當前世界研究的熱點。例如,對無人機進行快速準確的航跡預測可以提高作戰(zhàn)效率,進行任務規(guī)劃和及時提供沖突解決方案;通過航跡預測可以建立有效的無人機監(jiān)管系統(tǒng),保障民航航班的運行安全等。
目前,國內(nèi)外對于飛行器航跡預測的方法主要包括兩類:空氣動力學方法和無參數(shù)估計方法。空氣動力學模型在航跡預測的應用中普遍存在參數(shù)過多、預測精度較低等問題[2]。無參數(shù)估計方法因不考慮飛行器動力學參數(shù)從而簡化模型,被廣泛研究并應用于航跡預測。
無參數(shù)估計方法可分為傳統(tǒng)的統(tǒng)計學算法和當前發(fā)展迅猛的神經(jīng)網(wǎng)絡算法。統(tǒng)計學方法主要是利用數(shù)理統(tǒng)計的方法處理歷史數(shù)據(jù),對歷史數(shù)據(jù)進行曲線擬合以及參數(shù)估計,不斷提高預測精度,包括回歸預測法、蒙特卡羅法、卡爾曼濾波算法等。例如,Wu 和Pan[3]提出一種基于數(shù)據(jù)挖掘的飛行軌跡預測模型,采用二元線性回歸法預測下一次的飛行時間,從大量歷史位置數(shù)據(jù)分析飛機每個時間點的位置;Lymperopoulos 和Lygeros[4]證明了序列蒙特卡羅法在多飛行器航跡預測中的有效性;Prevost 等[5]采用改進的卡爾曼濾波(Improved Kalman Filter, IKF)算法估計無人機追蹤的運動目標的狀態(tài),并通過計算預測誤差來評價預測軌跡的質(zhì)量;羅兆文等[6]建立了基于滑窗多項式最小二乘擬合的航跡預測法,對于短期預測有較好的效果。
在基于神經(jīng)網(wǎng)絡的航跡預測方面,徐婷婷等[7]設計了三層反向傳播(Back Propagation, BP)神經(jīng)網(wǎng)絡模型用于船舶的航跡實時預測,其結果體現(xiàn)了神經(jīng)網(wǎng)絡較強的非線性逼近能力與魯棒性。楊彬和賀正洪[8]利用廣義回歸神經(jīng)網(wǎng)絡(Generalized Regression Neural Network, GRNN)對高超聲速飛行器進行軌跡預測。吳一凡和冉曉旻[9]將卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)引入到航跡預測中,并且證明了其在小樣本航跡預測中具有較高的準確性。
以上應用于航跡預測的算法各有優(yōu)點,但是僅把航跡數(shù)據(jù)看出空間中的獨立數(shù)據(jù)點,沒有充分利用其軌跡時序上的相關性。循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,RNN)是一種具有代表性的神經(jīng)網(wǎng)絡模型,其結構非常適用于處理時間、空間上有強關聯(lián)的動態(tài)序列數(shù)據(jù)。然而,傳統(tǒng)的RNN 由于其結構過于簡單,對序列數(shù)據(jù)的記憶能力會逐漸下降,不能存儲長期記憶,即無法解決長期依賴問題。為克服這一問題,Hochreiter 和Schmidhuber[10]提出了長短期記憶神經(jīng)網(wǎng)絡(Long Short-Term Memory, LSTM)。它改進了原RNN 中的記憶單元,以不同的方式計算隱層神經(jīng)元的狀態(tài),從而使得神經(jīng)網(wǎng)絡具有更長時間的記憶能力。目前,LSTM 已被廣泛應用于各個領域的預測研究中。
鑒于此,本文首次提出利用RNN 以及其變體LSTM 對無人機飛行軌跡進行預測,傳統(tǒng)的LSTM 用于預測時仍存在精度不夠高等問題。針對傳統(tǒng)LSTM 模型的不足,本文提出一種帶誤差修正的嵌套長短期記憶網(wǎng)絡(Error-corrected Nested LSTMs, ENLSTM)航跡預測模型。該模型能夠通過對歷史數(shù)據(jù)的訓練實現(xiàn)對無人機的航跡預測,并且利用誤差模型對網(wǎng)絡進行修正,得到更準確的預測航跡。在無人機的模擬飛行數(shù)據(jù)和真實行訓練數(shù)據(jù)上的仿真對比實驗表明所提出的ENLSTM 模型能更加有效地預測無人機的飛行軌跡,證實模型的可行性。
循環(huán)神經(jīng)網(wǎng)絡(RNN)是一類專門用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡,比如時間序列、文本語句、語音等。RNN 不僅考慮前一個時刻輸入的影響,并且考慮以前時刻輸入的影響,所以賦予了網(wǎng)絡“記憶”的功能。RNN 的向前傳播中折疊了一個循環(huán)計算的重復結構,即對于一個序列,其當前狀態(tài)ht包含了過去所有狀態(tài)ht?1對其的影響,以及當前時刻外部輸入xt的影響,即
一個最簡單的RNN 架構如圖1 所示,左邊是循環(huán)未展開的部分,右邊是展開的結構。RNN 主要由輸入層、隱藏層和輸出層組成,隱藏層的箭頭表示數(shù)據(jù)的循環(huán)更新,即實現(xiàn)網(wǎng)絡的記憶功能。其中x表示輸入的樣本,o表示輸出的預測,W表示隱藏層從前一時刻轉移到后一時刻的權重矩陣,U表示輸入層到隱藏層的權重矩陣,V表示隱藏層到輸出層的權重矩陣,網(wǎng)絡中每個單元共享一組(W,U,V),實現(xiàn)參數(shù)共享可極大地降低計算量。
圖1 RNN 網(wǎng)絡結構圖
根據(jù)圖1 的網(wǎng)絡結構,RNN 的前向傳播過程如下:
1) 時刻t的隱狀態(tài)
2) 時刻t預測輸出
其中f、g均為激活函數(shù),用于篩選重要信息。f可以采用tanh、relu 和sigmoid 函數(shù)等,g通常取為softmax 函數(shù);
3) 對于離散分類任務,該網(wǎng)絡的損失函數(shù)一般為交叉熵,而對于連續(xù)預測任務,損失函數(shù)通常是均方誤差,即
通過將每個時刻的輸出值的誤差反向傳播和梯度下降法,可以對RNN 的權重參數(shù)進行更新,在不斷調(diào)整參數(shù)的過程中提高模型性能。
隨著時間序列變長,RNN 的反向傳播過程中可能會出現(xiàn)梯度消失和梯度爆炸的問題,這導致其難以傳遞相隔較遠的信息。因此,RNN 的一系列變種算法被提出,其中最具有代表性的是LSTM。如果說RNN 能夠使得網(wǎng)絡擁有短暫的“記憶”,那么LSTM 則是擴展了網(wǎng)絡的“記憶”,能夠解決長期依賴問題。LSTM 在RNN 的基礎上加了三個門來控制,網(wǎng)絡結構為圖2。
如圖2 所示,LSTM 神經(jīng)網(wǎng)絡也如同RNN 分為輸入層、隱藏層和輸出層,隱藏層中增加了三個門結構,分別是遺忘門、輸入門和輸出門。
圖2 LSTM 網(wǎng)絡結構圖
1) 遺忘門決定保留多少上一層的細胞ct?1中的舊記憶信息,流入當前時刻的xt與上一時刻傳遞過來的狀態(tài)ht?1,通過對應的所有事件步共享的權重Wxf、Whf,偏移bf進行線性組合,并通過sigmoid 函數(shù)進行處理后得到對舊記憶信息的保留比例ft,即
2) 輸入門控制了有多少新記憶信息可以流入,即生成新記憶信息和新記憶信息的使用比例it,接著融合舊信息與新信息生成新的記憶細胞ct,對應下式
其中⊙表示矩陣的元素相乘,tanh 為激活函數(shù)。
3) 基于新的記憶細胞ct以及輸出門計算的比例值ot,得到最終的輸出ht
關于LSTM 模型的變體有很多,為了提高模型的精度,增加LSTM 網(wǎng)絡的深度是一種較為常用的方法。嵌套長短期記憶網(wǎng)絡(Nested LSTMs, NLSTM)[11],則是通過加入一個狀態(tài)函數(shù),從而有選擇性地訪問內(nèi)部記憶信息,使得網(wǎng)絡能夠處理更長時間規(guī)模的序列,網(wǎng)絡結構如圖3 所示。其中狀態(tài)函數(shù)mt用于替換LSTM 網(wǎng)絡中ct計算式(7)中的加和,即在NLSTM 中
圖3 Nested LSTMs 網(wǎng)絡結構圖
如果將mt作為一個LSTM 記憶單元,則NLSTM 中記憶函數(shù)的輸入和隱藏狀態(tài)為
那么NLSTM 的內(nèi)部計算過程如下
NLSTM 的外部記憶信息為
通過嵌套長短期記憶網(wǎng)絡的架構可以看出,它創(chuàng)造了一種記憶的時間層級,通過門控的方式去訪問內(nèi)部記憶,以便于選擇性地去訪問長期記憶信息。同時增加了網(wǎng)絡的深度,有效提高模型的性能。
影響無人機飛行軌跡預測產(chǎn)生誤差的因素有很多,首先良好的預測模型需要高精度的數(shù)據(jù)作為支撐,而由于數(shù)據(jù)采集與監(jiān)控系統(tǒng)采集的數(shù)據(jù)可能存在誤差以及采樣頻率不穩(wěn)定等原因造成產(chǎn)生異常數(shù)據(jù)是影響預測精度的重要原因[12]。其次,模型自身存在局限性。進行軌跡預測需要建立數(shù)學模型,即將實際問題進行抽象、化簡,模型只能在理論上以一定的精度逼近實際問題而無法真實地刻畫[13]。例如由于網(wǎng)絡訓練精度限制以及參數(shù)設置,誤差不可避免地存在。最后,預測時長和樣本容量大小的選取也會對預測精度產(chǎn)生影響。例如,隨著預測序列長度的增加以及新的預測數(shù)據(jù)的影響,誤差會逐步累積。
為了進一步縮小預測誤差以提高預測結果的可信度,需要進行誤差修正。早期的誤差修正技術出現(xiàn)在對測量儀器的校正上,隨著計算機的飛速發(fā)展,誤差修正在技術實現(xiàn)上有了飛躍的進步,程序化、自動化和環(huán)境自適應修正得以實現(xiàn)。信號處理技術的發(fā)展更是充實和完善了誤差修正的建模技術。在誤差建模方面,其基本算法包括解算方法、仿真方法和一些輔助方法等,近年來還出現(xiàn)了一些計算機集成算法工具,如Matlab 工具箱,為誤差建模的實施提供很大的幫助[14]。
本文為了提高預測精度,提出誤差修正策略。在建立NLSTM 預測模型后,利用誤差建模技術對預測軌跡進行校正,建立誤差模型
本文基于深度學習框架Tensorflow 建立NLSTM 網(wǎng)絡,各部分結構與參數(shù)設置如下:
1) 隱藏層結構與參數(shù):考慮到輸入樣本的數(shù)量較少,本文將隱藏層層數(shù)設為1,即建立一個單層的NLSTM 網(wǎng)絡,神經(jīng)元個數(shù)為20,添加無激活函數(shù)的全連接層,嵌套深度設置為2;
2) 模型訓練參數(shù):模型在訓練前需要指定損失函數(shù)和優(yōu)化器。本文選擇均方誤差作為損失函數(shù)和Adagrad 優(yōu)化器不斷更新參數(shù),進行預測模型的優(yōu)化。設置訓練批尺寸為50,訓練輪數(shù)為1 000;
3) 預測評價指標:為了便于預測值與真實值比較,分析模型的預測效果,選擇均方根誤差作為評價指標
結合2.1 的誤差修正,本文提出的ENLSTM 預測模型整體框架為圖4。
圖4 ENLSTM 預測模型框架
為了驗證本文提出的ENLSTM 網(wǎng)絡模型對無人機航跡預測的可行性和普適性,實驗部分對模擬飛行數(shù)據(jù)和無人機實際飛行數(shù)據(jù)分別進行預測,根據(jù)軌跡預測圖及預測誤差進行分析。
1) 模擬飛行數(shù)據(jù)采用四種含有隨機噪聲的三維曲線,使用70%的數(shù)據(jù)點作為網(wǎng)絡的訓練集,剩下30%作為測試集。參數(shù)方程式及取值范圍如表1 所示。
表1 模擬數(shù)據(jù)的參數(shù)方程式及取值范圍
2) 實驗使用的無人機訓練飛行的真實數(shù)據(jù)是通過Mission Planner 加載航線日志,導出mat 格式的飛行數(shù)據(jù)再利用Matlab 軟件加載數(shù)據(jù)。接著從GPS 標簽中選擇經(jīng)度、緯度和高度三個航跡指標作為網(wǎng)絡的輸入進行無人機的航跡預測。由于該無人機的四邊航線飛行訓練過程中,分為上升、平飛和下滑三個階段,其中平飛階段為27 圈,采樣點數(shù)量為9 477,本實驗使用平飛階段前26 圈的經(jīng)度、緯度和高度三個航跡指標數(shù)據(jù)作為模型的訓練集,剩下的數(shù)據(jù)用于測試。
數(shù)據(jù)的預處理包括數(shù)據(jù)歸一化和構造時間序列樣本集兩部分。
1) 數(shù)據(jù)歸一化
由于輸入變量的量綱不同,為了消除其影響,本文選擇對輸入的樣本數(shù)據(jù),即經(jīng)緯度和高度進行z-score 標準化處理,以提高預測的準確性,公式如下
2) 構造時間序列樣本集
設定時間步長為T,用前T個樣本點的歷史數(shù)據(jù)預測下一時刻的數(shù)值,即采用時刻t ?T到時刻t ?1 的數(shù)據(jù)作為預測的輸入序列,時刻t的數(shù)據(jù)作為預測的輸出,以此生成連貫的時間序列類型樣本集。
為了得到誤差相對較小的最優(yōu)模型,首先進行ENLSTM 預測模型部分超參數(shù)的分析與優(yōu)化。根據(jù)經(jīng)驗以及樣本長度,分別選擇20、30、40、50 作為預測的時間步長和0.12、0.1、0.08 作為Adagrad 優(yōu)化器的學習率訓練模型,并且計算測試數(shù)據(jù)的預測值與真實值的均方根誤差RMSE。表2 為使用ENLSTM 模型對無人機真實飛行軌跡進行預測的誤差。
表2 不同時間步長和學習率下預測模型的RMSE
根據(jù)表2,選出均方根誤差最小的模型參數(shù),即預測時間步長設為50,優(yōu)化器的學習率為0.1,此時RMSE 為0.109 2。
為了驗證ENLSTM 模型預測效果的優(yōu)越性,本文使用BP 神經(jīng)網(wǎng)絡、單層RNN 和單層LSTM 分別對模擬數(shù)據(jù)和對實際飛行數(shù)據(jù)進行預測,對比效果。對于BP 神經(jīng)網(wǎng)絡,本文設計一個三層的BP 神經(jīng)網(wǎng)絡,輸入長度為50 個時刻的位置坐標,隱藏層的節(jié)點數(shù)為20 個,輸出為下一時刻的位置坐標。設置隱藏層的傳遞函數(shù)為對數(shù)S 型函數(shù),輸出層的傳遞函數(shù)則為線性函數(shù);訓練方法采用Levenberg-Marquardt 算法;學習率設為0.1;訓練次數(shù)設為1 000。單層RNN 和單層LSTM 模型的參數(shù)設置和ENLSTM 類似。
四個模型對于模擬飛行數(shù)據(jù)的預測曲線為圖5 至圖8,對于真實飛行數(shù)據(jù)的預測曲線為圖9,其中黑色實線為真實航跡,藍色星號線為ENLSTM 的預測軌跡,虛線為LSTM、RNN 和BP 三種模型的預測結果??梢暂^為直觀地看出,ENLSTM 模型的預測軌跡更接近于真實軌跡。
圖5 模擬數(shù)據(jù)1 的預測曲線與真實曲線
圖6 模擬數(shù)據(jù)2 的預測曲線與真實曲線
圖7 模擬數(shù)據(jù)3 的預測曲線與真實曲線
圖8 模擬數(shù)據(jù)4 的預測曲線與真實曲線
圖9 真實數(shù)據(jù)的預測軌跡與真實軌跡
通過計算,四種模型預測結果的RMSE 為表3。針對模擬數(shù)據(jù),ENLSTM 模型的預測序列與真實序列的誤差RMSE 分別為0.086 1、0.021 1、0.025 5 和0.087 1,實際飛行數(shù)據(jù)的預測誤差RMSE 為0.109 2,比起LSTM、RNN 和BP 模型的預測結果,誤差都有了顯著減小,說明本文提出的模型在預測性能方面有了明顯的改進。并且從四種模型的預測誤差依次遞減,可以說明循環(huán)神經(jīng)網(wǎng)絡相對BP 神經(jīng)網(wǎng)絡在時間序列數(shù)據(jù)的預測上更具有優(yōu)勢,以及基于基礎循環(huán)神經(jīng)網(wǎng)絡的逐步改進提升了模型的預測能力。
表3 四種模型預測結果的RMSE
本文將NLSTM 神經(jīng)網(wǎng)絡應用到無人機的航跡預測中,并且通過誤差建模對預測值進行修正。將提出的ENLSTM 預測模型分別應用到無人機的模擬飛行軌跡和真實飛行軌跡,通過不斷優(yōu)化參數(shù),可以使模型達到較好的預測效果。同時與BP、RNN、LSTM 神經(jīng)網(wǎng)絡對比,實驗表明在參數(shù)基本相同的情況下,ENLSTM 模型預測精度更高。針對無人機的航跡預測問題,ENLSTM 模型有著較好的應用效果。同時ENLSTM 仍存在權重參數(shù)較多使得訓練時間較長的問題,下一步將對ENLSTM 模型的網(wǎng)絡結構進行優(yōu)化,使得預測結果準確且高效。