吳春鵬,馮姣
(南京信息工程大學 電子與信息工程學院,南京 210044)
隨著船舶運輸行業的發展,船舶碰撞事件也急劇增加,如何通過技術手段提前預知船舶將行進位置,避開事故高發地或者隱藏障礙地,成為國內外學者的研究熱點。
在船舶軌跡預測方面,有學者采用BP(back propagation)神經網絡預測船舶航跡,得到的預測較為準確[1-2],但BP網絡是將一個時間步內所有數據一并輸入網絡,缺乏對船舶軌跡時序性的體現。有學者運用循環神經網絡(LSTM,GRU)對船舶軌跡進行預測,最終預測結果相對于BP網絡有明顯提升[3-6],但依然存在單一模型預測精度低的問題。有學者分別將LSTM或Bi-LSTM與注意力機制、CNN結合[7-8],增加網絡復雜度,從而提高預測精度。為進一步提升預測精度,提出將LSTM和BP結合的復合LSTM(Composite LSTM,C-LSTM)船舶軌跡預測模型,利用BP神經網絡對LSTM網絡的輸出進行誤差修正,并針對經緯度高精度的預測要求,提出運用最新的自適應優化算法AMS代替主流自適應優化算法ADAM來優化整個系統模型。
在神經網絡設置合適權值和合理結構后,可以使用誤差梯度下降優化算法來最小化輸出值和真實值之間誤差,以達到逼近各種非線性連續函數效果,具有一層隱藏層的BP神經網絡見圖1。

圖1 BP神經網絡
神經網絡輸入與輸出之間關系為
(1)
式中:l為隱藏層節點數;k為輸入層節點數;σ為激活函數,此處為sigmoid函數。
LSTM(long short-term memory)是一種時間循環神經網絡,是為解決一般RNN(循環神經網絡)存在的長期依賴問題而專門設計出來的。
LSTM單元結構見圖2,LSTM核心是細胞狀態c,由穿過細胞的水平線來表示。細胞的狀態和傳送帶一樣,貫穿整個小區但只有幾個分支,可以保證信息不變地流經單元。LSTM由3個門控制,分別叫做遺忘門、輸入門和輸出門。

圖2 LSTM單元結構
LSTM遺忘門決定細胞狀態需要丟棄哪些信息,由一個叫做遺忘門的sigmoid單元處理,通過檢查ht-1和xt信息輸出一個介于0和1之間的向量。向量中的值0-1表示單元狀態ct-1中信息被保留或丟棄程度。0表示全部丟棄,1表示全部保留。公式如下。
ft=σ(Wf·[ht-1,xt]+bf)
(2)
下一步是向單元狀態添加新信息。首先,ht-1和xt用于通過輸入門的操作來決定新候選細胞信息更新程度,然后ht-1和xt通過tanh層用于獲得新候選細胞信息,其可以被更新為細胞信息。
it=σ(Wi·[ht-1,xt]+bi)
(3)
(4)
接下來,將過去細胞信息ct-1更新為新細胞信息ct。更新規則是通過遺忘門選擇來遺忘部分過去細胞信息,通過門選擇輸入部分候選細胞信息來獲取新細胞信息。公式如下:
(5)
在單元狀態更新后,需要ht-1和xt來確定輸出單元的哪個狀態特征,這里需要把輸入通過一個叫做輸出門的sigmoid層來得到判斷條件。然后,單元的狀態通過tanh層得到一個介于-1和1之間的向量,最終LSTM單元的輸出通過將該向量與輸出門的判斷條件相乘得到。
ot=σ(Wo·[ht-1,xt]+bo)
(6)
ht=ot·tanh(ct)
(7)
為縮減訓練時間加快模型收斂速度,引入優化算法。基于隨機梯度下降(SGD)優化算法在科研和工程的很多領域里都是極其核心的。盡管傳統mini-batch SGD優化算法在深度學習中表現優良,但也存在一些缺點,比如選擇合適的學習率很困難。


表1 ADAM及AMS算法偽代碼
事實上,AIS數據質量會受到較多因素影響,從而導致數據會出現缺失、錯誤以及時間間隔不同等現象。針對該問題,采用四分位間距(IQR)誤差檢測法對數據進行檢測,剔除異常數據,空缺數據采用線性插值法來填補。同時,LSTM網絡對數據有時序性要求,故每組數據之間時間間隔要相等,過小間隔(秒級別)數據對于船舶的軌跡預測的研究意義較小,因此綜合已有數據質量,將時間間隔定為1 min。
由于不同的特征向量可能在數量級上差別很大,可能導致絕對值小的數據被大數據“吃掉”的情況。因此,數據被歸一化以確保每個特征被神經網絡同等對待,故將采用最小最大歸一化方法變換數據,轉換如下。
(8)
式中:Xf為原始值,Xmin和Xmax分別為最小值和最大值,Xn為歸一化后的數據。處理后,原始數據值范圍轉換為[0,1]。
基于結合AMS的C-LSTM船舶軌跡預測流程見圖3,具體步驟如下。

圖3 結合AMS的C-LSTM船舶軌跡預測流程
步驟1。獲取原始AIS數據。
步驟2。對原始數據進行異常值剔除。
步驟3。制作訓練數據集和測試數據集。
步驟4。進入LSTM網絡進行訓練,利用AMS優化算法對其進行優化。
步驟5。將訓練集輸入訓練好的LSTM網絡得出預測值p,將之與真實值pr進行作差,計算出誤差m:
m=pr-p
步驟6。重建數據集,將訓練集軌跡信息作為輸入,誤差m作為輸出。
步驟7。將新數據集送入BP網絡進行誤差訓練,利用AMS優化算法對其進行優化。
步驟8。最終的預測值pf=p+mp,其中mp為BP對誤差的預測。
將一組t時刻的軌跡數據表示為
D(t)={lat,lon,sog,cog}
(9)
式中:lat、lon、sog、cog分別為緯度、經度、航速、航向數據。
LSTM模型的輸入為前2個時刻數據D(t-2)、D(t-1)和當前時刻數據D(t),輸出為當前時刻的下一時刻的軌跡信息D(t+1)。BP誤差糾正模型的輸入為3個時刻的軌跡信息,輸出為下一時刻特征的誤差值mp。
實驗的硬件條件:CPU為銳龍r7處理器,內存16GB。軟件條件:PyCharm 2020.3×64,編程語言為Python3.6,軟件采用Tensorflow2.0(無AMS優化器,需據理論編寫)。
模型參數:LSTM隱藏層數為3,節點數為110,學習率為0.000 3,激活函數為Relu函數,數據整批進行訓練;BP誤差糾正網絡隱藏層數為5,隱藏層節點數為100,學習率0.000 1。參數選取需與所選數據集相適應。
實驗選取mmsi(maritime mobile service identify,水上移動通信業務標識碼)為412 761 070,船名為“匯航9-HUIHANG”的船舶數據,通過寶船網api,調取2020年1月8日的歷史軌跡數據,部分實驗數據見表2。選出實驗數據共400組,分為直行和轉向兩組,每組將前177組作為訓練集,后23組作為測試集,按照前述方法分別制作成訓練集和測試集合,將訓練集輸入網絡進行訓練。

表2 部分船舶AIS數據
采用MSE(Mean Square Error)作為系統模型的評價函數。
(10)

3.4.1 loss圖對比
訓練集和測試集在2種優化算法下的loss見圖4、5。可以看出:AMS優化算法的收斂速度相對于ADAM優化算法收斂有明顯的提升,ADAM最終降到的最低loss值為1.68×10-6,AMS最終降到的最低loss值為1.62×10-6,這與AMS算法理論相吻合。綜上所述,該自適應優化算法能夠提升該船舶預測模型性能。

圖4 ADAM算法損失值

圖5 AMS算法損失值
3.4.2 直行航跡對比
直行軌跡測試集在傳統LSTM和C-LSTM上的誤差對比見表3,該表就傳統LSTM和C-LSTM2種模型在緯度、經度、航速、航向的最大最小誤差以及評價函數值,對比上述各值,可見訓練集在后者上表現比前者相對出色。

表3 直行測試集數據對比表
為驗證模型實際應用能力,采用遞歸方式向后預測15個船舶位置,每個點之間時間間隔1 min,傳統LSTM和C-LSTM模型遞歸軌跡效果見圖6、7。

圖6 直行LSTM遞歸

圖7 直行經度誤差
兩種模型在直行軌跡不同遞歸預測時長下的經度、經度、航速、航向與真實軌跡的誤差見圖8~11。

圖8 直行航速誤差

圖9 直行C-LSTM遞歸

圖10 直行緯度誤差

圖11 直行航向誤差
隨著預測時長增加,傳統LSTM模型的4種誤差均在遞增,C-LSTM的經緯度誤差較為穩定,體現出該模型具有一定穩定性。且從圖8~11可見C-LSTM模型的誤差基本都在LSTM模型之下。LSTM和C-LSTM最大經緯度誤差分別為1.70×10-3、9.79×10-5。綜上所述,所提模型在直行航跡表現較為良好,且優于LSTM,可供參考。
3.4.2 轉向航跡對比
轉向軌跡測試集在傳統LSTM和C-LSTM上的誤差對比見表4,對比表4各項值,可見訓練集在后者上表現相對前者依然出色。但兩種預測模型在轉向軌跡上的各項最大誤差上和評價函數值均表現遜色于直行軌跡。同樣采用遞歸的方式來驗證模型在轉向軌跡的表現,預測15 min船舶軌跡位置見圖12、13。

表4 轉向測試集數據對比表

圖12 轉向LSTM遞歸軌跡

圖13 轉向C-LSTM遞歸軌跡
兩種模型在轉向航跡的表現均不如直行軌跡,在轉向部位開始出現較大偏差,其中LSTM模型偏差較大,但大致軌跡方向正確。而C-LSTM在轉向表現上優于前者,還可以看出和真實軌跡較為吻合。
不同預測時長下轉向航跡遞歸誤差見圖14~17。

圖14 轉向經度誤差

圖15 轉向緯度誤差

圖16 轉向航速對比

圖17 轉向航向對比
相對于直行軌跡,誤差相對擴大,且隨著時間增長,誤差越來越大,LSTM模型和C-LSTM最大經緯度誤差分別達到4.39×10-3、6.10×10-4。綜上所述,C-LSTM模型在轉向航跡表現優于傳統LSTM,所預測軌跡具有一定的參考價值。
依托AIS數據,通過建立復合模型C-LSTM,并將最新優化算法AMS應用到該模型,能夠精準預測出下一段時間內的船舶軌跡,克服了單一性模型帶來的弊端,相較于傳統LSTM模型,精度存在明顯提升,有著較高的魯棒性、穩定性,對避免船舶的碰撞擱淺事故的發生有著較高實際應用價值。實驗所選取實驗軌跡數據較為穩定,在實驗過程中發現軌跡的復雜度以及數據的預處理對模型的預測影響較大。下階段研究重點將放在對轉向軌跡預測性能上進行提升,考慮到轉向軌跡的多變性與不確定性,單依據特征航向和航速不足以準確預測出航跡走向,因此模型需要得到充分學習,故將會嘗試用大量高質量的數據來支撐模型性能。