(西安交通大學 現(xiàn)代設(shè)計及轉(zhuǎn)子軸承系統(tǒng)教育部重點實驗室,西安 710049)
關(guān)于船舶航跡預測,現(xiàn)有的方法有卡爾曼濾波算法、航跡插值方法、灰色模型、支持向量機、人工神經(jīng)網(wǎng)絡等。相關(guān)的研究涉及建立船舶航行軌跡擬合曲線[1];根據(jù)船舶的航速、航向等信息采用卡爾曼濾波算法預測船舶的運動軌跡[2-3];將灰色模型運用到航跡預測當中,使用小波變換對軌跡數(shù)據(jù)降噪處理[4],該方法能夠及時修正帶有噪聲的航跡數(shù)據(jù);提出組合預測模型,進行粗預測之后,用隱馬爾可夫模型對預測結(jié)果進行微調(diào),取得了較高的預測精度[5];提出支持向量機回歸(SVR)航跡預測模型,并用AIS數(shù)據(jù)進行驗證,不足的是無法對船舶運動進行實時在線預測[6];使用BP神經(jīng)網(wǎng)絡對船舶行為進行預測,取得了一定的預測效果[7-8]。但是傳統(tǒng)的BP神經(jīng)網(wǎng)絡在使用歷史航跡數(shù)據(jù)訓練時并未體現(xiàn)先后時序,每次神經(jīng)元權(quán)重的修正只是基于單個訓練樣本的局部調(diào)整,而船舶航行數(shù)據(jù)是典型的隨時間變化的量,每個樣本在時間軸上都有前后聯(lián)系,因此基于BP網(wǎng)絡的預測模型面對船舶復雜的軌跡態(tài)勢預測顯得捉襟見肘。長短期記憶網(wǎng)絡(long short-term memory,LSTM)在軌跡預測方面的研究已有成功安全[9-10],但該方法未考慮異常數(shù)據(jù)對預測精度的影響,預測準確率仍有提升空間。基于此,本文提出一種基于長短期記憶網(wǎng)絡的船舶航跡預測方法,運用插值的方法對航跡數(shù)據(jù)進行等時間間隔插補,綜合考慮船舶航速、航向、經(jīng)緯度特征,實現(xiàn)船舶航跡的準確可靠的預測。
一個簡單的RNN網(wǎng)絡包含了輸入層x、隱含層h、輸出層o3個部分。見式(1),RNN在任一時刻t,其隱含層輸出ht由該時刻的輸入xt和上一時刻隱含層的輸出ht-1共同決定,體現(xiàn)出RNN將時序信息考慮在網(wǎng)絡結(jié)構(gòu)當中,以達到對時間序列建模的目的。
ht=f(U·xt+W·ht-1)
(1)
式中:f為隱含層激活函數(shù),U、V和W分別代表輸入層到隱含層、隱含層到輸出層和隱含層之間的連接權(quán)值矩陣。
LSTM網(wǎng)絡是將RNN的隱含層單元替換為LSTM細胞,使其能夠避免梯度消失和梯度爆炸的問題,且具有長期記憶的能力。LSTM模型的隱含層結(jié)構(gòu)見圖1。
LSTM網(wǎng)絡包含一組記憶模塊,取代了常規(guī)RNN中的隱含層單元。每個模塊包含一個或多個具有內(nèi)部狀態(tài)的記憶細胞,如圖1最上方的水平線,表示細胞狀態(tài),可以看做是記憶鏈條,細胞狀態(tài)會沿著整個鏈條傳送,只在少數(shù)地方有一些線性交互,因此使得LSTM可以記憶長期的信息。記憶模塊還包含3個用于控制信息流入、流出的門。LSTM計算過程如下。
1)記憶模塊中忘記門決定哪些信息需要從細胞中拋棄,表達式為
ft=σ(Wf·ht-1+Uf·xt+bf)
(2)
式中:xt為該時刻的輸入;ht-1為上一時刻隱含層的輸出;ft為忘記門的輸出;Wf、Uf、bf分別為忘記門的權(quán)值項和偏置項;σ為sigmoid激活函數(shù)。
2)輸入門(input gate)決定什么樣的信息應該被存儲,這個過程主要分為兩步,第一步sigmoid層決定哪些值需要被更新。
it=σ(Wi·ht-1+Ui·xt+bi)
(3)
(4)
式中:Wc、Uc、bc分別為權(quán)值項和偏置項,為雙曲正切激活函數(shù)。
3)將忘記門和輸入門輸出的兩個值結(jié)合起來并更新細胞狀態(tài)Ct。
(5)
4)最后輸出門基于新的細胞狀態(tài)確定輸出的內(nèi)容。
Ot=σ(Wo·ht-1+Uo·xt+bo)
(6)
ht=Ot×tanh(Ct)
(7)
式中:ht表示該時刻隱含層輸出。
LSTM網(wǎng)絡訓練采用基于時間的反向傳播算法 (back propagation trough time,BPTT),其基本原理與經(jīng)典的誤差反傳算法(back propagation,BP)相似,均包含正向傳播和反向傳播的過程。
為了深入挖掘船舶歷史航行數(shù)據(jù),以船舶航向、航速和經(jīng)度、緯度作為LSTM網(wǎng)絡的輸入,充分利用與船舶位置聯(lián)系最緊密的航行信息,構(gòu)造實時航跡預測模型,模型結(jié)構(gòu)見圖2。
圖2 航跡預測模型結(jié)構(gòu)示意
對于目標船舶,其在t時刻的航行狀態(tài)特征可以表示為
S(t)={λt,φt,vt,αt}
(8)
式中:λt、φt、vt、αt分別代表船舶在t時刻的經(jīng)度、緯度、速度和航向??紤]到模型實時性要求,保證網(wǎng)絡的預測輸出能夠確定船舶位置即可,不需要預測的船舶速度和航向信息,以減少模型計算量。綜上,采用船舶的t時刻及其前n-1個時刻的經(jīng)度、緯度、航速、航向作為LSTM網(wǎng)絡的輸入,t+1時刻船舶的經(jīng)緯度坐標作為輸出,建立LSTM航跡預測模型,則t+1時刻船舶位置可以表示為
L(t+1)=g(S(t),S(t-1),…,S(t-n+1))
(9)
式中:L(t+1)=(λt+1,φt+1),g表示所訓練的模型。
2.2.1 數(shù)據(jù)來源
船舶自動識別系統(tǒng)(automatic identification system,AIS)數(shù)據(jù)中蘊含著豐富的船舶信息,裝有AIS的船舶能夠?qū)⑵渥陨淼慕?jīng)緯度坐標、航速、航向等動態(tài)信息以及MMSI、船長、船名等靜態(tài)信息周期地向附近水域船舶及岸基廣播[11]。因此,將船舶AIS信息作為數(shù)據(jù)來源。
2.2.2 AIS數(shù)據(jù)修復
實際的AIS數(shù)據(jù)中包含大量的錯誤數(shù)據(jù)[12],此外,航跡數(shù)據(jù)采樣間隔一般不相等,限制了模型的應用。本文所用到的AIS數(shù)據(jù)主要為動態(tài)信息,因此要對船舶經(jīng)緯度、航速、航向等數(shù)據(jù)進行修復。
1)異常值剔除。使用分箱的方式,將數(shù)據(jù)分到一系列等寬的“箱”中,若一個數(shù)據(jù)點在某一屬性上的值,位于“箱”中所有數(shù)據(jù)點在這一屬性上統(tǒng)計平均值的3倍標準差之外,就認為這個點是異常值點,需要被剔除。
2)時間對齊。針對1)中剔除的異常值需要用合理的值來替代以及AIS數(shù)據(jù)本身就存在的缺失值,使用三次樣條插值的方法對其修復,以獲得時間間隔相等的航跡數(shù)據(jù)。選取缺失數(shù)據(jù)點t前后相鄰兩點,提取他們的時間ti、ti+1,船舶位置為(λi,φi)、(λi+1,φi+1)。對于在ti、ti+1之間的t時刻的船舶經(jīng)度數(shù)據(jù)可以用式(10)計算。
(10)
式中:hi=xi-xi-1;Mi為插值函數(shù)λ(t)在節(jié)點ti處的二階導數(shù)值。同理可以計算出插值點t時的船舶緯度、速度、航向等數(shù)據(jù)。在真實航跡上人為添加一些異常值,并用所述方法修復,仿真航跡修復結(jié)果見圖3,可以看出,插值得到的數(shù)據(jù)點能夠準確反映船舶航跡的真實情況。
選取渤海水域煙臺到大連段某船真實航行的AIS數(shù)據(jù)作為原始樣本,按照時間順序?qū)⑵淝?/5劃分為訓練集,后1/5用于測試訓練好的LSTM模型,原始數(shù)據(jù)經(jīng)修復之后用于網(wǎng)絡訓練和測試。
航跡預測流程見圖4。
圖4 模型預測流程
1)AIS數(shù)據(jù)預處理。由于AIS數(shù)據(jù)在不同船速下傳輸時間間隔不等,使用前述方法對原始AIS數(shù)據(jù)進行修復之后,使用三次樣條插值對船舶航行數(shù)據(jù)進行插值,獲得時間間隔為10 s的等間隔數(shù)據(jù)。使用min-max標準化方法對數(shù)據(jù)進行歸一化處理。
(11)
式中:1≤i≤n,1≤j≤n,max{xj}為樣本數(shù)據(jù)的最大值,min{xj}為樣本數(shù)據(jù)的最小值,轉(zhuǎn)換后的數(shù)據(jù)均在[0,1]內(nèi),避免因輸入數(shù)據(jù)間量級差別較大對LSTM網(wǎng)絡模型影響。
2)模型參數(shù)初始化。使用Xavier方法對網(wǎng)絡權(quán)值初始化,使用網(wǎng)格搜索的方法對LSTM網(wǎng)絡時間步、隱含層節(jié)點、學習率、批大小等參數(shù)進行尋優(yōu)。網(wǎng)絡參數(shù)選擇如下:輸入層節(jié)點為4,隱含層節(jié)點為100,輸出層節(jié)點為2,設(shè)置初始學習率為0.001,批大小為20。
3)模型訓練。LSTM網(wǎng)絡的輸入考慮了時間順序,在考慮連續(xù)多個時刻的船舶信息時不再是將多個時刻的向量拼接成一個向量,而是增加了一階時間步,輸入數(shù)據(jù)的格式為矩陣形式。訓練樣本表示為
{xt:[S(t),S(t-1),…,S(t-n+1)],
Yt:L(t+1)}
(12)
式中:n為時間步長,使用adam優(yōu)化算法對網(wǎng)絡權(quán)值進行更新,根據(jù)設(shè)置的誤差率確定網(wǎng)絡最終的權(quán)值。
4)模型預測。訓練完成后,將測試樣本輸入到模型中進行預測,同時還要對預測的結(jié)果反歸一化,使得預測得到的航跡數(shù)據(jù)具有真實的物理意義。
為了驗證方法的可行性與可靠性,選取船舶直行和轉(zhuǎn)向兩種情況下各200組連續(xù)數(shù)據(jù)進行實驗,數(shù)據(jù)時間間隔為10 s,前4/5數(shù)據(jù)用于網(wǎng)絡訓練,后1/5數(shù)據(jù)用于預測。
3.3.1 不同時間步長對實驗結(jié)果的影響
時間步長即連續(xù)n個時刻的船舶航跡數(shù)據(jù)輸入,直接影響航跡預測的準確性,為了選擇合適的時間步長,保證網(wǎng)絡其他參數(shù)不變,改變時間步長,對比不同時間步長下的預測結(jié)果,見圖5。
圖5 不同時間步預測誤差結(jié)果
使用均方根誤差ΔRMSE作為誤差評價指標,越低則表明誤差越小,其數(shù)學表達式為
(13)
式中:m表示樣本數(shù)量。隨著時間步長增大,網(wǎng)絡預測誤差逐漸呈下降趨勢,當時間步過長時,輸入的前后關(guān)聯(lián)性減小造成網(wǎng)絡的預測誤差增加,并經(jīng)實驗驗證在時間步等于5時的ΔRMSE最小。
3.3.2 船舶實時航跡預測結(jié)果對比
航行預測結(jié)果及誤差分析見圖6、7。
圖6 直行預測結(jié)果
圖7 轉(zhuǎn)向預測結(jié)果
圖6a)和7a)中空心坐標點為真實航跡,實心點為預測數(shù)據(jù),可以看出預測的航跡可以較好地反映出訓練集船舶的航行趨勢,且預測航跡與真實航跡吻合較好。
由圖6b)、c)和7b)、c)可以看出,兩種情況下的經(jīng)緯度預測最大誤差不超過5×10-4°,表明該模型具有一定的預測精度,可以滿足監(jiān)控中心對船舶進行監(jiān)控和管理的需求。
3.3.3 輸入對模型預測精度的影響
為了分析航速v、航向α作為輸入對預測精度的影響,將網(wǎng)絡的輸入改為僅包含船舶的經(jīng)緯度坐標,使用轉(zhuǎn)向情況下的航跡數(shù)據(jù)進行驗證,實驗結(jié)果見表1。
表1 輸入對預測精度的影響對比
可以看出,含航速、航向的預測模型相對于僅有經(jīng)緯度輸入的情況,對船舶的航跡的預測誤差大大減小,預測精度也相對提高。
3.3.4 不同模型預測精度對比
選擇灰色預測GM(1,1)模型和BP神經(jīng)網(wǎng)絡與所提方法進行對比實驗。其中GM(1,1)模型灰發(fā)展系數(shù)取0.5,單一使用經(jīng)度和緯度進行訓練和預測;BP網(wǎng)絡的層數(shù)設(shè)置為四層,輸入層、隱含層1、隱含層2、輸出層維數(shù)分別為4、50、10、2,同樣使用經(jīng)度、緯度、航速和航向作為網(wǎng)絡輸入,經(jīng)緯度作為輸出,實驗結(jié)果見圖8??梢钥闯霰疚姆椒ㄏ噍^于灰色預測模型和BP網(wǎng)絡有著更高的預測精度。
圖8 不同模型預測結(jié)果對比
相較于傳統(tǒng)方法,基于LSTM網(wǎng)絡的航跡預測模型具有更高的精度;利用三次樣條插值可以將不等間隔的航跡數(shù)據(jù)處理成整周期采樣,可有效避免不等間隔數(shù)據(jù)對模型的限制,能夠快速準確地預測船舶航跡。未來的研究應考慮模型的在線更新和實時預測,以進一步提高模型的航跡預測能力。