徐國慶,馬建文,吳晨輝,張安西
(山東交通學院 航海學院,山東 威海 264200)
為確保無人艇的運行安全,需結合已有實踐經驗進行深入優化和升級,本文圍繞船舶航行預測技術展開深入研究。
文獻[1]基于修正卡爾曼濾波算法和AIS 數據,結合最小二乘法實現了船舶運動軌跡的平滑預測;文獻[2]優化了卡爾曼濾波算法的實時性,將其應用到船舶的軌跡處理中;文獻[3]運用支持向量機(SVM)結合橋區水域失控船舶運動數學模型進行了航跡回歸預測;文獻[4]利用GPS 定位系統的時序特征構建了船舶運動軌跡預測模型;文獻[5]結合優化馬爾科夫模型和灰度模型,提出一種短程船舶軌跡預測方法。以上研究需要以船舶運動學方程為基礎,因而無法有效適應海上復雜環境。近年來隨著人工神經網絡研究的進步,深度學習被廣泛用于此類問題。文獻[6]提出一種基于3 層BP 神經網絡的航跡預測算法,利用Sigmoid 函數實現船舶位置預測,具有用時短、通用性強的特點。文獻[7]利用AIS 數據信息量豐富的特點,結合BP 神經網絡,實現了船舶航行行為預測;文獻[8-9]提出了循環神經網絡-長短期記憶模型,驗證了LSTM 神經網絡回歸模型的有效性。
針對研究現狀,本文以AIS 數據為基礎,在LSTM模型的基礎上引入注意力機制,提出一種基于Attention-LSTM 神經網絡的船舶航行預測模型,通過對隱藏層單元差異賦權突出對預測結果有關鍵影響的序列,從而提高預測精度。最后以成山角海域真實數據進行仿真實驗,并與BP 神經網絡模型進行對比,驗證了本文方法的優越性。
Hochreiter 等[10]在時間循環神經網絡(Recurrent Neural Network,RNN)基礎上進行優化,提出了長短期記憶神經網絡。通過引入記憶單元和門機制,有效克服了RNN 在深度學習中的梯度異常問題,同時也更易于訓練。
LSTM 單元結構如圖1 所示。每個LSTM 單元內部包括輸入門(input gate)、遺忘門(forget gate)、輸出門(output gate)和一個記憶單元結構Cell。其中,輸入門用于控制記憶單元更新的信息量;遺忘門用于控制前一時刻記憶單元信息被利用的量;輸出門用于控制輸出到下一隱藏狀態的信息量[11]。設給定輸入序列xt,則輸入門、遺忘門、輸出門分別為it,ft,ot,記憶單元Ct則通過不同門控制數據的記憶和遺忘,具體表述如下:

更新后的記憶單元Ct:

更新后的隱藏狀態ht:

式中:σ 為sigmod 函數;Ct-1為現有記憶門;ht-1為當下的隱藏狀態;W 和b 分別為對應地系數矩陣和偏差項;* 為點乘。
LSTM 神經網絡通過門函數控制歷史數據的記憶和遺忘,適合于處理具有時間序列特性的問題。但該模型在數據輸入時會將其編碼為等長向量,而解碼則受限于該向量,致使模型難以學到合理的向量表示。因此,引入注意力機制,更有效地提取輸入序列特征。
注意力機制(Attention-based Model)發源于圖像識別領域,而后也被廣泛應用在回歸問題中[12]。它的工作機理類似人腦,借鑒人腦中對事物各部分的注意力偏差機制,通過對輸入序列內各因子賦予不同的權重,突出更關鍵的影響因素,幫助模型做出更準確的判斷。點積注意力機制結構如圖2 所示。
圖中,Xi為輸入序列,Xi1為Xi簡化計算得到的相似標量,通過歸一化指數函數將其映射在[0,1]區間,即為“權重”。點積注意力則是Xi對權重的加權合。表述如下:

多維船舶航行預測是指船舶的經度、緯度、航向和航速隨時間的變化預測,是對傳統船舶軌跡預測的補充。其實質是對船舶航行大數據的深度挖掘,以船舶過去時刻的航行數據作為輸入,未來時刻的航行數據作為輸出,通過對比建立基于時間序列的航行特征映射關系,最終實現船舶航行預測。
Attention-LSTM 模型通常包括輸入序列、LSTM層、Attention 層、全連接層以及輸出序列。其中輸入序列與輸出序列是模型的出入通道;LSTM 層的作用是實現高層次特征學習;Attention 層的作用是突出關鍵信息;全連接層的作用是進行局部特征整合,實現最終的預測。基于此,參考多層自適應模塊化神經網絡結構[13],本文將Attention 層作為LSTM 層和全連接層的接口,構造“LSTM 層—Attention 層—全連接層”結構,如圖3 所示。

圖 3 Attention-LSTM 網絡結構Fig.3 Attention-LSTM structure
圖中,X(t)為輸入序列數據,L(t)為X(t)的隱藏特征,A(t)為各特征的注意力權重,Y(t)為輸出序列數據。
2.2.1 輸入、輸出序列參數
輸入、輸出序列主要是對船舶航行信息的表征,所對應的AIS 信息主要有水上移動通信業務標識碼(MMSI)、時間(TIME)、經度(LNG)、緯度(LAT)、航向(COG)、航速(SOG)等。輸入、輸出序列具體表示為:
Input :(MMSI,TIME)={LNG,LAT,COG,SOG},
Output :(MMSI,TIME)={LNG,LAT,COG,SOG}。
為減小各項數據數量級差異的影響,輸入、輸出序列還需要進行歸一化處理,將數據集向量各元素取值轉換在[0,1]內,表達式為:

式中:x 為原始數據;x*為歸一化數據。
2.2.2 神經元節點數
神經網絡模型中,神經元節點數是導致“過擬合”現象的重要因素。其中,輸入層和輸出層節點數由訓練數據的特征決定;LSTM 層和全連接層神經元節點數通常取2 的次方數,本文設置LSTM 層和全連接層神經元節點數為α,α∈{4,8,16,32,64,128,256},初步設定α=64。
2.2.3 輸入層步數
船舶航行問題具有時間序列特性,因此其輸入序列存在step 的概念。本文設置輸入層步數為β+1,β∈{2,3,4,5,6},即把Y[t-β],Y[t-(β-1)], …,Y[t]等β+1 個連續時刻的船舶行為表征數據作為網絡輸入,t+1 時刻的預測數據Y[t+1]作為網絡輸出,初步設定β=5。
2.2.4 模型訓練方法
迭代次數是影響神經網絡模型精度的重要因素。本文設置迭代次數為θ,θ∈{1,500,1 000,1 500,2 000,2 500,3 000},初步設定θ=1 500。
代價函數是一種衡量系統整體誤差程度的函數[14]。交叉熵損失函數可以用來評估當前訓練結果與真實分布的差異狀況,且不會影響模型的收斂速度,因此將其作為本網絡的代價函數,如下式:

傳統梯度下降過程根據經驗公式確定其學習率,并在訓練過程中保持不變。本文針對船舶航行中的非穩態、高噪聲問題,采用適應性矩估計算法代替隨機梯度下降,基于訓練數據和交叉熵損失函數計算梯度估計矩陣,從而為參數設定自適應學習率。
實驗編程語言為Python3.0,開發工具為Spyder。實驗數據來源于成山角水域內船舶的AIS 信息,經解析后,按照MMSI,TIME,LNG,LAT,COG,SOG 等字段信息進行儲存。
3.2.1 實驗數據
選取200 組AIS 作為實驗數據,經清洗后其中前180 組作為訓練集,后20 組作為測試集。為避免因數據分布差異導致的模型誤差,選定數據進行標準歐式距離計算,結果如表1 所示,可知訓練集與測試集數據具有相似分布。
3.2.2 誤差指標
采用均方誤差(MSE)和平均絕對誤差(MAE)來評估船舶航行預測的各項指標。MSE 是指預測值與真實值間差值的平方期望,該值越小則模型的效果越好;MAE 能夠更好反映出模型誤差的真實狀況。表述如下:

表 1 歐式距離Tab.1 Euclidean distance

3.3.1 拓撲結構對Attention-LSTM 模型的影響
1)神經元節點數
分別取α 為{4,8,16,32,64,128,256},依次代入模型中,重復10 次實驗對誤差匯總取平均,結果如圖4 所示。當隱藏層神經元節點數取128 時,誤差指標MSE 和MAE 取得最小值。

圖 4 神經元誤差分布Fig.4 Error of cell unit
2)輸入層步數
分別取β 為{2,3,4,5,6,},依次代入模型中,重復10 次。實驗過程中不同步數對應的神經網絡誤差如圖5 所示。當β+1=6,即輸入層步數為6 時,模型擬合度最好。

圖 5 輸入層步數誤差分布Fig.5 Error of step
3)迭代次數
分別取θ 為{1,500,1 000,1 500,2 000,2 500,3 000},代入模型并重復運行10 次,可以得到不同迭代次數時的誤差統計,如圖6 所示。當迭代次數為1 000 時,模型效果最佳。

圖 6 迭代次數誤差分布Fig.6 Error of epoch
3.3.2 不同神經網絡模型的對比
使用BP 神經網絡進行船舶軌跡預測,效果良好。本文選用結構為4-14-4 的BP 神經網絡與Attention-LSTM 模型,對其預測效果進行對比,結果如圖7所示。

圖 7 預測結果Fig.7 Prediction results
在20 次測試中,兩類模型的誤差曲線呈現出無規則震蕩,但基于Attention-LSTM 神經網絡模型的預測誤差均小于BP 神經網絡模型,即本文所提出的模型對船舶航行預測精度更高。
本文依托船舶AIS 數據,提出一種基于Attention-LSTM 神經網絡的多維船舶航行預測算法,實現了對船舶未來時刻經度、緯度、航向、航速的精準預測。通過仿真實驗,表明本文方法的預測效果優于BP 神經網絡,且具有較好的魯棒性,能夠為水面無人艇自動避碰技術提供參考。