徐富元,蔣明,王志印,秦晉,鄭子揚
(1.中國航天科工集團8511研究所,江蘇 南京 210007; 2.國網(wǎng)衡陽市供電公司,湖南 衡陽 421001)
隨著航空技術的巨大進步,航空業(yè)獲得空前迅速的發(fā)展,同時空中管理部門也面臨空域資源緊張的挑戰(zhàn)。為實現(xiàn)空中交通的安全高效管理,有必要發(fā)展飛機航跡預測技術。利用飛機運行過程中由廣播式自動相關監(jiān)視(ADS-B)記錄的歷史狀態(tài)信息構成的時間序列,對未來狀態(tài)進行回歸預測實現(xiàn)飛行航跡預測。
當前的航跡預測技術大致分為3種類型,分別是基于空氣動力學、基于狀態(tài)估計理論以及機器學習的方法,其中前兩種理論對在預測飛行航跡時,前提條件太過理想且計算復雜度高,相比于機器學習方法靈活性不足,而機器學習的方法使用歷史航跡數(shù)據(jù)挖掘航跡的規(guī)律,訓練航跡預測模型,對復雜非線性問題有較好的建模效果,近年來得到了越來越多的關注。主要方法包括聚類算法[1-3]、遺傳算法[4]、蟻群算法[5]、神經(jīng)網(wǎng)絡[6-11]等。
在機器學習方法的神經(jīng)網(wǎng)絡模型中,門控循環(huán)單元(GRU)是挖掘時間序列數(shù)據(jù)的經(jīng)典模型之一,可以將其應用在航跡這類時間序列數(shù)據(jù)上。然而,GRU趨向于關注時序數(shù)據(jù)的時間信息,而忽略了時序數(shù)據(jù)的空間信息,同時輸入GRU的序列長度不斷增長,會導致早期輸入的信息變得模糊,無法適應長時間序列的預測場景。與GRU不同,卷積神經(jīng)網(wǎng)絡(CNN)在圖像與提取空間信息中有著廣泛應用,該模型可以挖掘時間序列數(shù)據(jù)中在某個時刻之前的數(shù)據(jù)的空間關系,提取其中隱藏的空間特征。
同時,注意力機制在近些年受到了廣泛關注,其最早出現(xiàn)在計算機視覺領域,在航跡預測領域的應用尚處在初始階段,它通過對輸入的數(shù)據(jù)或者提取的特征進行自適應的關注,提高模型提取特征的能力,可以進一步提高預測的效果。通過強調(diào)與長時間序列預測相關的關鍵特征,同時抑制與結果無關的信息,可以將計算注意力分配給更重要的特征,會提高模型對場景的適應能力。
根據(jù)上述描述,本文提出一種基于注意力機制與CNN-GRU的飛機航跡預測模型。該模型使用CNN提取航跡具有時序的空間特征,再使用GRU挖掘飛機航跡的時序特征,最后利用注意力機制,學習各個空間與時間特征的重要程度,提升重要特征的影響力,降低非重要特征的影響力,有效提升模型的預測精度。
由于神經(jīng)網(wǎng)絡在擬合復雜非線性關系的優(yōu)勢,神經(jīng)網(wǎng)絡在航跡預測領域應用廣泛,常用模型包括反向傳播網(wǎng)絡(BP)、深層神經(jīng)網(wǎng)絡(DNN)、循環(huán)神經(jīng)網(wǎng)絡(RNN)、長短期神經(jīng)網(wǎng)絡(LSTM)以及GRU等。BP神經(jīng)網(wǎng)絡是應用最多的神經(jīng)網(wǎng)絡之一,其核心是誤差反向傳播算法。DNN相比于BP增加了多個隱藏層,可以擬合更復雜的非線性函數(shù)。但DNN沒有充分利用時序數(shù)據(jù)的時序信息,而RNN通過在隱藏層的神經(jīng)元節(jié)點之間增加聯(lián)系,提高了處理時間序列數(shù)據(jù)的能力。LSTM是RNN的變種,通過增加輸入門、遺忘門、輸出門的結構,解決了RNN在長期記憶情況下的權重爆炸或梯度消失問題,GRU則進一步改進了LSTM,在保留前者優(yōu)點的情況下簡化了模型的結構,使用更新門和重置門替代了原先的3個門結構,在大訓練數(shù)據(jù)的情況下提高了模型的訓練速度。
以GRU為基礎,還出現(xiàn)了許多改進的時序預測模型。文獻[12]利用CNN提取電壓時間序列的高層特征,然后將其輸入GRU中實現(xiàn)電壓軌跡預測,有效提取了數(shù)據(jù)的高層特征,并解決長期記憶情況下的梯度消失問題。文獻[13]使用以GRU為核心的seq2seq模型,利用編碼器將歷史軌跡序列編碼為上下文向量,然后利用解碼器實現(xiàn)船舶軌跡預測,對短期軌跡預測具有較好的效果。文獻[14]利用雙向GRU模型,同時考慮了時間序列的正向和逆向信息,實現(xiàn)了無人機的精確預測。由于航跡數(shù)據(jù)是具有位置、時間信息的連續(xù)采樣序列,GRU在該類數(shù)據(jù)上適用性較好,因此本文采用GRU為基礎組件。
CNN的本質(zhì)在于構建多個能夠提取數(shù)據(jù)特征的濾波器,通過對輸入數(shù)據(jù)進行逐層卷積和池化操作來提取數(shù)據(jù)之間隱藏的拓撲結構特征。文獻[15]考慮到CNN在挖掘非線性時序的精度優(yōu)勢,利用CNN進行數(shù)據(jù)特征的提取實現(xiàn)電力負荷的預測。文獻[16]使用了一種結合CNN與LSTM的模型用于短期的風電功率預測,其中CNN用于提取輸入的電力數(shù)據(jù)的高維特征,然后將結果輸入LSTM網(wǎng)絡中,相比于使用單一的LSTM模型,實現(xiàn)了更高的預測精度。CNN適合進行空間擴展,提取數(shù)據(jù)的局部特征,并組合抽象成高層特征,因此本文采用CNN作為空間特征提取組件。
注意力機制最早出現(xiàn)在計算機視覺領域,它的基本原理是通過對數(shù)據(jù)特征分配不同的權重,根據(jù)權重大小判斷哪些信息對目標更加重要。Fernando等[17]就利用注意力機制結合LSTM構成的預測模型,通過行人的歷史軌跡對未來進行預測。
CNN擅長在空間上做抽象與泛化,而GRU擅長提取時間特征。在對航跡數(shù)據(jù)構建預測模型時,既要考慮到其空間上的信息,又要考慮時間維度上的特征聯(lián)系。因此,本文結合2種算法,綜合利用各自的優(yōu)勢,提出了CNN-GRU算法。此外,考慮到注意力機制擅長從特征中抓住關鍵特征,提升關鍵特征的權重,因而將注意力機制也引入模型,以提升CNN-GRU算法的預測精度。模型整體流程如圖1所示。
圖1 模型流程圖
本文構建的模型包括CNN模塊、GRU模塊和注意力模塊3部分。當數(shù)據(jù)輸入模型后,首先,利用CNN模塊的一維卷積核對飛機航跡數(shù)據(jù)進行處理,提取飛機航跡數(shù)據(jù)在空間上的特征分量。然后,將提取結果輸入GRU模塊,由于經(jīng)過CNN模塊處理后的飛機航跡數(shù)據(jù)依然保有時序特性,GRU模塊會進一步提取飛機航跡數(shù)據(jù)的時序特征。最后,注意力模塊將進行權重的自動化分配,以提升重要特征在最終特征表達中的影響力。模型整體結構如圖2所示。
圖2 模型架構圖
CNN網(wǎng)絡主要由卷積層、池化層和全連接層組成,其中卷積層用于提取特征,其主要通過卷積核來從輸入數(shù)據(jù)中提取數(shù)據(jù)特征,由于卷積核中存在的權值共享、空間安排和局部連接等特性,在參數(shù)較少的情況下也可以提取較為豐富的特征,池化層通過降采樣等操作減少過擬合,通過多層卷積核可以提取更加抽象的特征。卷積的公式如式(1)所示:
式中,i用于代表第i個卷積核,g(i)用于代表第i個特征圖,a用來代表輸入數(shù)據(jù),b代表偏置,x、y、z則表示輸入的3個維度。
在經(jīng)過卷積操作后,通常使用激活函數(shù)實現(xiàn)非線性變換,本文使用的是RELU作為激活函數(shù)。
考慮到航跡數(shù)據(jù)的一維特性,本文采用的為一維卷積神經(jīng)網(wǎng)絡,用來處理一維數(shù)據(jù)。卷積公式如式(3)所示:
利用以步長為t的滑動窗口形式對航跡序列進行特征提取,所有窗口的特征將通過池化層進行融合,保留時間序列上的主要特征,隨后將輸出放入下一個卷積層進行進一步高維特征的提取。最后,使用全連接層獲得CNN模塊的最終結果。CNN模塊使用反向傳播算法進行權值更新,學習到使誤差最小的網(wǎng)絡參數(shù)。
GRU是一種RNN的變體,通過改進RNN模塊中的記憶單元,改變了在數(shù)據(jù)持續(xù)輸入情況下出現(xiàn)的權重爆炸與梯度消失問題,增加了更新門與重置門的設計,使得GRU可以有效更新和傳遞時序數(shù)據(jù)中的關鍵信息。
GRU是由記憶模塊組成的,主要包含記憶單元以及用于操控記憶單元狀態(tài)的更新門與重置門結構,其中更新門用于控制前一狀態(tài)信息對當前狀態(tài)的影響,重置門用于選擇性地對前一狀態(tài)信息進行忽略。GRU的記憶模塊結構如圖3所示。其中zt代表t時刻的輸入,ht-1代表t-1時刻的輸出,rt和zt分別代表更新門和重置門。
圖3 GRU的記憶模塊結構
1) 編碼器
GRU采用seq2seq結構,其中編碼器部門由單層GRU單元組成,用來挖掘航跡數(shù)據(jù)的空間特征信息,并將獲得的特征抽象為隱藏向量c,如式(4)所示:
式中,h1,…,hn表示中間的隱藏狀態(tài),c為最終隱藏向量。
2) 解碼器
解碼器部分也使用GRU單元作為基本組件,模型使用xn作為初始值輸入解碼器,利用初始值xn和隱藏向量c來生成后續(xù)隱藏狀態(tài)序列,第一步的隱藏狀態(tài)計算式如(5)所示:
單元的輸出作為下一個單元的輸入。本單元的隱藏層和輸出通過組合輸入到注意力機制部分。
注意力機制對GRU輸出的隱層向量進行分配權重求和計算。假設輸入的隱層特征向量為hi,基于隱層特征向量可以得到環(huán)境向量ci,如式(6)所示:
式中,ai是注意力權重,為了獲得注意力權重,模型使用一個全連接網(wǎng)絡,將從GRU模塊獲得的隱層向量作為輸入,計算各個隱層向量的得分,作為其對輸出的影響力,如式(7)所示:
式 中,wT和bi表示模型參數(shù),si表 示hi與ci的 相 關 程度,之后利用softmax對si進行歸一化,獲得權重系數(shù)ai,如式(8)所示:
本文實驗所用系統(tǒng)為Ubuntu18.04,所用GPU為GeForce RTX 3090,CPU為Intel Xeon CPU E5-2620 v4 @ 2.10 GHz,所用Python版本為3.7,采用深度學習框架為PyTorch 1.7.0,所用CUDA版本為11。
本文使用的實驗數(shù)據(jù)集來自OpenSky網(wǎng)站的自動廣播式相關監(jiān)視系統(tǒng)數(shù)據(jù)集,該數(shù)據(jù)包含執(zhí)行飛行任務的飛機被動向外廣播的飛行狀態(tài)數(shù)據(jù),主要包括時間、經(jīng)度、緯度、高度、身份等信息。實驗數(shù)據(jù)按照8∶1∶1劃分為訓練集、測試集和驗證集。首先對實驗數(shù)據(jù)進行缺失值填充、重采樣等預處理操作,最終有效數(shù)據(jù)為20 000條。預處理之后的實驗數(shù)據(jù)如表1所示,其中,Time用UNIX時間戳表示,Icao為飛機的唯一標識。
表1 實驗數(shù)據(jù)示例
航跡數(shù)據(jù)中的Lat、Lon、Alt分別表示飛機所在的緯度、經(jīng)度和高度,可以看出由于量綱的不同,3者存在巨大的數(shù)值差距,為減少量綱不同對預測結果的影響,在輸入模型之前先使用歸一化同一量綱。本文使用的歸一化方法為離差標準化[18],如式(9)所示:
式中,X代表原始數(shù)據(jù),X*代表歸一化之后的數(shù)據(jù)。
基于注意力機制的CNN-GRU模型由輸入層、CNN模塊、融合注意力機制的GRU模塊和輸出層組成。其中模型的輸入時間窗口大小被指定為10,CNN模塊的卷積層卷積核個數(shù)設定為12,GRU模塊中隱藏層單元個數(shù)設定為24個,并將隱藏層的輸出取出,使用注意力機制將多個輸出張量進行融合,獲得融合的數(shù)據(jù)特征表達式,最后進入全連接層進行激活輸出。模型優(yōu)化器使用的是隨機目標函數(shù)優(yōu)化算法Adam[19],在訓練過程中進行模型參數(shù)的更新,初始學習率設置為0.002,考慮到訓練集的數(shù)據(jù)量較大,實驗將數(shù)據(jù)集劃分為批量進行訓練,設定32組數(shù)據(jù)為一批,將batch-size設定為100,迭代次數(shù)為10 000,每條輸入的航跡數(shù)據(jù)長度為10,預測長度為10。
網(wǎng)絡利用訓練集進行模型訓練,利用優(yōu)化函數(shù)來調(diào)整網(wǎng)絡中的參數(shù)權重,直到達到設定的迭代次數(shù),以使得損失函數(shù)降到最小。最后利用測試集對生成的模型進行評估,所用評估指標包括RMSE、MAE、MSE,分別表示預測值與真實值之間的均方根誤差、平均絕對誤差和均方誤差,如式(10)—(12)所示,其中yi表示真實值,yip表示預測值。
為充分驗證本文所提基于注意力機制的CNNGRU模型的有效性,選擇GRU、CNN、CNN-GRU模型進行對比實驗。實驗結果如表2所示。
表2 全階段數(shù)據(jù)集的實驗結果
從中可以看出,基于注意力機制的CNN-GRU模型在各項評價指標上均表現(xiàn)最好,相較于CNN、GRU、CNN-GRU,本文方法在RMSE上分別下降了24%、35%和14%,這表明本文所提模型進行航跡預測是有效的。相比于本文模型,單一的CNN模型雖然可以從數(shù)據(jù)中提取特征,但要有多卷積層才能捕獲航跡數(shù)據(jù)中的長期依賴關系,隨著輸入序列長度的增加,長期依賴關系的捕獲能力會變差,不利于航跡的精確預測。類似的,使用單一GRU模型時,雖然模型擅長捕獲航跡數(shù)據(jù)的時序關系,但對于航跡數(shù)據(jù)中的局部空間特征挖掘能力不足,相比于混合模型,航跡預測精度會有所下降。最后,可以看出本文模型表現(xiàn)效果要好于CNN-GRU組合網(wǎng)絡,表明注意力機制有助于提高模型性能,這可能是由于注意力機制能關注特征中的關鍵信息,降低不重要信息的權重,優(yōu)化了網(wǎng)絡對關鍵特征的利用能力,降低了無效信息對航跡預測的計算影響。
隨機抽取部分軌跡,將本文方法的預測效果進行可視化,其真實軌跡和預測軌跡對比如圖4所示。其中input表示輸入的歷史軌跡,使用黑線顯示;prediction表示本文模型預測的飛機軌跡,使用綠線顯示;groundtruth表示預測軌跡對應的真實的飛行軌跡,使用紅線顯示。
從圖4中可以看出,本文模型的預測效果整體較好,可以準確預測出航跡的未來趨勢和位置。在(a)中的真實飛行軌跡比較曲折,對其進行預測存在難度,然而本文模型實際預測效果較好,實際軌跡與預測出來的軌跡之間差距較小,較為精準地刻畫了軌跡的變化細節(jié)。在(b)中可以發(fā)現(xiàn)飛機航向大角度變化的時刻,雖然模型預測精度略微下降,但飛行趨勢基本一致,并很快糾正了預測誤差。
圖4 軌跡預測效果圖
考慮到飛機在飛行的不同階段,飛行狀態(tài)特征會有不同的分布,本文選擇處于爬升階段與下降階段的飛機數(shù)據(jù)各4 000條,在其他條件與全階段數(shù)據(jù)集相同的情況下,與不同的模型進行對比。實驗結果如表3、表4所示。
表3 爬升數(shù)據(jù)集的實驗結果
通過對比可以看出,本文模型在不同數(shù)據(jù)集上均表現(xiàn)最好,這是由于本文模型綜合考慮了航跡數(shù)據(jù)在空間和時間上的特征,充分模擬了航跡特征的分布規(guī)律,相較于其他單一模型,本文模型具有更好的數(shù)據(jù)表征能力。相比于全階段的數(shù)據(jù)集實驗結果,在分階段的數(shù)據(jù)集上模型的預測效果普遍下降,這可能是由于飛機在爬升、下降階段所面對的飛行場景更加復雜,模型在模擬飛行航跡數(shù)據(jù)的分布更加困難,需要根據(jù)場景進行進一步優(yōu)化,以提高預測精度。
考慮到模型預測時間對實時航跡預測的重要影響,本文記錄了模型在全階段數(shù)據(jù)集上進行訓練和測試的時間效率。其中預測時間為預測一組數(shù)據(jù)所使用的平均時間,不同模型的時間效率結果對比如表5所示。
表5 模型在全階段數(shù)據(jù)集所用時間
從中可以發(fā)現(xiàn),本文模型在訓練時間花費稍大于單一模型,這是由于模型在特征提取階段需要耗費時間提取更加細致的特征。在預測時間上,本文模型雖然擁有更長的網(wǎng)絡深度,但與其他對比模型差別不大,均滿足實時航跡預測的要求。
綜上,本文模型相比于單獨的CNN或GRU模型表現(xiàn)更好,是因為結合了兩者的模型優(yōu)勢,CNN抽取出了航跡在空間上的高維特征,而GRU充分挖掘了航跡數(shù)據(jù)在時間上的特征,從空間和時間兩個角度實現(xiàn)了對航跡數(shù)據(jù)的特征提取。與CNN-GRU模型相比,本文引入注意力機制的模型表現(xiàn)出了更高的精度,這表明了注意力機制可以利用權重分配強化時間與空間特征中的關鍵信息,自動調(diào)節(jié)網(wǎng)絡權重,解決了CNN-GRU模型可能出現(xiàn)的關鍵特征丟失問題。
本文提出了一種基于注意力機制的CNN-GRU模型用于飛機航跡的預測。其中CNN模塊用于從航跡數(shù)據(jù)中進行空間特征提取,GRU模塊用于進行時間特征的提取,既考慮了特征在空間中的聯(lián)系,又考慮了特征在時間維度上的變化,最后通過引入注意力機制,強化了關鍵特征對預測結果的影響,進一步提高了模型的預測精度。通過與CNN、GRU、CNN-GRU模型的對比,可以看出基于注意力機制的CNN-GRU模型對于航跡的刻畫能力更強,能夠更精確地進行航跡預測,驗證了該模型的有效性。