趙煜, 尤再進, 吳麗淑, 李婉瑩
(大連海事大學交通運輸工程學院, 遼寧 大連 116026)
隨著海上交通運輸的持續穩定發展,船舶的數量、尺度、性能得到不斷提升,但與此同時,海上交通安全風險也在加劇,因此在海上交通密集、復雜水域進行精確、高效的交通事故預警尤為重要。另外,在海事搜救、海關緝私活動中,為保證搜救和緝私的順利進行,需要基于已知的目標船歷史位置信息對其航跡進行預測,以此推斷其未來一段時間的位置信息[1]。因此,船舶航跡預測在減少海上交通密集水域船舶碰撞風險以及輔助進行海事搜救、海關緝私等方面均有重要的經濟及科學意義。
近年來,國內外學者在船舶航跡預測方面做了大量的研究工作。胡玉可等[2]設計了一種基于對稱分段路徑距離的數據預處理方法,構建基于門控循環單元的循環神經網絡(recurrent neural network, RNN)模型對船舶航跡進行預測,側重于預測環節,數據處理部分的研究工作較少。NGUYEN等[3]將航行海域劃分為空間網格,將船舶自動識別系統(automatic identification system, AIS)信息轉化為序列到序列的形式,提出一種序列到序列的長短期記憶網絡(long short-term memory network, LSTM)預測模型,實現了船舶航跡的實時預測以及目標港和到達時間的預測,但預測精度有待進一步提升。甄榮等[4]根據AIS信息和反向傳播神經網絡(back propagation neural network, BPNN)對船舶的位置、航向和航速進行預測,取得了較好的效果,但直接使用原始AIS數據進行預測,導致預測結果受原始數據影響較大,算法的通用性和魯棒性都有待提高。MURRAY等[5]提出一種新的雙線性自編碼器方法來預測船舶軌跡,先通過高斯混合模型(Gaussian mixture model, GMM)對數據進行聚類,然后利用雙線性自編碼器方法對分類后的數據進行軌跡預測,取得了較好的預測結果,但耗時較長。劉姍姍等[6]和王研婷[7]提出卷積神經網絡(convolutional neural networks, CNN)與LSTM相結合的船舶航跡預測方法,取得了較好效果,然而這兩篇文獻的實證部分都僅采用一艘船進行研究,結果存在偶然性,同時模型都缺少對航跡提取部分的研究。謝新連等[8]提出一種基于極限學習機(extreme learning machine, ELM)的船舶航行行為預測模型,其預測精度比傳統的BPNN有了較大提升,但該文獻實證部分僅選取瓊州海峽水域進行研究,所提的預測模型在其他水域的適用性還有待驗證。劉嬌等[9]利用小波閾值去噪法處理訓練數據,并提出一種差分進化與支持向量機(support vector machine, SVM)相結合的預測模型對船舶航跡進行預測,但難以實現實時預測。
國內外對船舶航跡預測的研究普遍存在航跡提取部分研究不足的情況,若使用同一艘船的歷史航跡數據對該船的未來航跡進行預測,則這種預測對有固定航線的班輪較為有效,而對航線相對不固定的船舶就難以精準,還需要借助航線上其他船舶的歷史航跡數據。船舶航跡預測的難點之一就是如何在海量的航跡數據中提取出符合要求的數據。本文針對這一關鍵問題,構建一種基于GMM與LSTM耦合模型的船舶航跡預測算法,這種算法需提前構建航跡數據庫,再利用高斯混合聚類等數據處理方法從數據庫中提取用于輔助預測的歷史航跡數據,最后將提取出的數據輸入LSTM預測模型完成航跡預測。
本文研究基于大量歷史航跡數據,通過數據挖掘的方法對目標船航跡進行預測。研究內容主要由數據庫構建、航跡提取、航跡預測等3個部分構成。數據庫構建包括數據預處理、航跡分割和航跡插值:數據預處理可以清除異常數據、噪聲數據;航跡分割和航跡插值可以將航跡數據轉化為等時間間隔的數據,實現航跡數據庫的有效構建。航跡提取是從數據庫中提取出用于神經網絡訓練的訓練集數據,具體分為航跡初步提取和航跡聚類兩部分。航跡聚類對初步提取出的航跡進行分類,并篩選出與預測航跡相似度最高的一類航跡;有效的航跡聚類是獲取高質量訓練集的核心。在航跡預測階段,構建LSTM預測模型,將訓練集和測試集數據輸入模型進行運算,完成船舶未來航跡預測。通過實驗驗證這種方法的精確性和實用性。
定義船舶航跡數據庫為
Di={H1,H2,…,Hn},i=1,2,3,4,5,6
(1)
式中:Di為船型為i的船舶航跡數據庫,i=1,2,3,4,5,6分別對應貨船、漁船、客船、游船、油船、拖船;Hj(j=1,2,…,n)為第j條航跡。
Hj={h1,h2,…,hm}
(2)
式中,hk(k=1,2,…,m)為第k個航跡點的相關數據,包括船型、船舶水上移動通信業務標識碼(MMSI)、船舶在tk時刻的位置pk、航速vk和航向ck。
若航跡Hj與Hl具有相同的航跡點數m, 則這2條航跡之間對應點距離的集合為
Tjl={d1,d2,…,dm}
(3)
式中:dk為航跡Hj中第k個航跡點與航跡Hl中第k個航跡點之間的歐氏距離。
航跡長度采用歐氏距離度量,航跡Hj的長度為
(4)
從網址www.marinecadastre.gov/ais選取2019—2020年美國沿岸AIS數據作為實驗數據,該數據包含大量信息,本文僅使用其中的7類數據:船型、MMSI、數據記錄時間、經度、緯度、航速、航向。數據預處理如下:從總數據中選取特定經緯度范圍內的數據,清除其中異常和不需要的數據,如MMSI不是9位、無效航向(不在區間[0,360°)內的航向數據)、船型缺失、航速為0的數據;將數據記錄時間重置,以2019年1月1日0時0分0秒為0 s,其后的時間轉化為相應秒數,便于后續處理。
按照船型不同,將預處理后的數據分為6類,分別對應前文提到的6類船型。為進行航跡插值,同時保證所提取的航跡點數據都來自同一條航跡,需要根據式(5)對船舶航跡進行分割點標注:
Ik≠Ik+1或|tk+1-tk|>1 200 s
(5)
式中:Ik和tk分別為第k個航跡點的MMSI和數據記錄時間。滿足式(5)的航跡點即為分割點,最終得到分割點集合G。
若原始數據不是基于等時間步長記錄的,則航速相同的船在兩個記錄點間的航行距離一般是不同的,如不進行插值將其處理成等時間步長數據,就會極大地增加航跡提取和預測的難度,降低預測精度。對于部分原始數據缺失的情況,需要通過航跡插值進行修復。因此,經過航跡分割后的數據需要以航跡段為單位進行航跡插值,從而提高數據的質量和連續性。本文選擇常用的分段三次Hermite插值法,以60 s的時間步長對原航跡數據進行插值[10],經過插值后的數據需要再通過式(5)進行航跡分割,更新集合G。
航跡初步提取是航跡提取算法的第一階段,通過限定距離,提取出測試航跡段一定范圍內的航跡數據。測試集可以分為已知航跡和待測航跡,已知航跡是航跡初步提取的依據。確定合理的距離閾值是航跡初步提取的重點:閾值過大,會導致大量無關數據被提取,增加聚類難度和程序運行時間,降低預測精度;閾值過小,會剔除大量可以用于預測的航跡數據,致使數據量較少甚至找不到可用的航跡數據。
合理的距離閾值需綜合考慮航速、預測步長等因素,本文將已知航跡的長度Lq及其包含的航跡點數m納入計算。在大量實驗的基礎上,得到距離閾值ε的估算公式:
ε=6Lq/m
(6)
再利用已知航跡上最后一個航跡點的數據ce、ve和pe,在數據庫中尋找同時滿足以下要求的航跡點:
|ck-ce|<30°,|vk-ve|<5 kn
(7)
d(pk,pe)<ε
(8)
假定預測未來t時間內的船舶航跡,記錄滿足式(7)和(8)的所有航跡點,選取每個航跡點前t時間內所有的航跡點數據,構成航跡集合Df。Df中每條航跡上的航跡點都需要根據式(8)進行檢驗,刪除不滿足式(8)的航跡點所屬的航跡,最終得到經初步提取后的航跡集合Df。
航跡初步提取只是通過限定距離提取出一定范圍內的航跡數據,這部分數據中的航速、航向等特征仍存在較大差異。為提高預測精度,需將航跡集合通過航跡聚類進一步提取后再用于航跡預測。
本文使用GMM進行航跡聚類,GMM用高斯概率密度函數來量化事物,任意形狀的概率分布都可以用多個高斯分布函數來近似,其分布函數如下:
(9)

在進行航跡聚類時,每組航跡數據集都可以通過GMM被劃分為r個子集,故r值在很大程度上影響著聚類效果,本文采用貝葉斯信息準則(Bayesian information criterion,BIC)來確定最佳r值。BIC通過衡量模型擬合的優良性來確定模型最佳參數,是一種較好的模型參數數量確定準則,BIC值的計算式如下:
NlnO-2lnR
(10)
式中:N為模型參數的數量;O為樣本數量;R為似然函數。從一組可供選擇的模型中選擇最佳模型時,通常選擇似然程度高、模型復雜度較低的模型,即BIC值最小的模型[14]。
在進行航跡聚類時,選用弗雷歇距離度量不同航跡之間的相似度。弗雷歇距離用來描述路徑空間相似度,可以應用于平面曲線之間的相似度估量。同方向不能回溯的離散點組間,其對應點之間最短距離的最大值就是離散點組間的弗雷歇距離。選用弗雷歇距離計算相似度時,相似度越高,弗雷歇距離越小。對于Hj、Hl兩條航跡,弗雷歇距離可以根據式(3)表示成以下形式:
F(j,l)=maxTjl
(11)
聚類算法分兩步進行,其具體步驟如下:
第一步,航行趨勢的聚類。在航跡初步提取階段,無法去除與對應點間距離的平均值較小、航行趨勢差異較大的航跡。經實驗檢驗,應用航行趨勢差異大的航跡進行訓練會導致預測航跡出現較大誤差。為提高預測精度,聚類算法的第一步要提取出與測試集中航行趨勢相似度最高的一類航跡數據,具體步驟如下:
①將經航跡初步提取得出的每條航跡都通過最小二乘法進行航跡的二階擬合。②將擬合的結果矩陣作為聚類對象,設置最大聚類簇數為10,應用GMM進行聚類,根據式(10)計算每次聚類的BIC值。③選擇BIC值最小的簇數b1作為最佳簇數,記錄最佳簇數下聚類時各航跡所屬的類,得到類別標定矩陣。④根據類別標定矩陣中的對應關系將Df分成b1個航跡集合。⑤將每個航跡集合中所有航跡通過對應點加權平均合并為一條航跡,得到b1條航跡。⑥通過式(11)計算每條航跡與測試集中已知航跡的相似度。⑦選擇相似度最高的航跡對應的航跡集合構建新的航跡數據集Dz。
第二步,航跡距離的聚類。在航跡趨勢聚類后,得到與測試航跡航行趨勢最相近的一類航跡集合,但這類航跡在單位時間步長內的航行距離差異較大,致使預測航跡與真實航跡相比過長或過短。為降低這類誤差,提高預測精度,需要對航跡距離進行聚類,具體步驟如下:
①根據式(4)計算Dz中每條航跡的長度。②以航跡長度為聚類對象,設置最大聚類簇數為10,應用GMM進行聚類,根據式(10)計算每次聚類的BIC值。③選擇BIC值最小的簇數b2作為最佳簇數,記錄最佳簇數下聚類時各航跡所屬的類,得到類別標定矩陣。④根據類別標定矩陣中的對應關系將Dz分成b2個航跡集合。⑤計算每個航跡集合中所有航跡長度的平均值,得到b2個航跡長度平均值。⑥計算每個航跡長度平均值與已知航跡的長度的差。⑦選擇差值絕對值最小的航跡長度平均值對應的航跡集合構建新的數據集De,De即為通過航跡聚類得到的航跡數據集。
選用LSTM用于航跡預測,LSTM是一種時間遞歸神經網絡,在時間序列預測上有著較好的表現[15]。與其他神經網絡預測模型相比,LSTM增加了3個“門”結構:遺忘門、輸入門和輸出門。通過“門”結構,LSTM可以保存、丟棄記憶單元中的原信息以及保存新信息,使得LSTM在處理和預測延遲較長的時序數據上更具優勢,且克服了梯度消失和梯度爆炸的問題。LSTM訓練采用基于時間的反向傳播(back propagation through time, BPTT)算法,其基本原理與經典的BP算法相似,包含正向和反向傳播的過程[16]。
在預測時,先將訓練集De輸入預測模型,完成預測模型的訓練,再將已知航跡輸入訓練好的模型中,得到預測航跡。預測模型輸入數據為二維數據,即歷史航跡的經度和緯度數據;輸出數據也為二維數據,即預測航跡的經度和緯度數據。
對輸入數據進行歸一化處理:
(12)
式中:x為原始訓練數據;maxX和minX分別為原始訓練數據中的最大值和最小值。通過歸一化處理,能消除數據量綱和取值范圍的影響,同時保留原始數據中存在的關系[4]。將處理后的數據輸入以LSTM層為主的神經網絡預測模型,其具體結構見圖1。

圖1 神經網絡預測模型結構
該神經網絡包括1個輸入層、1個輸出層和4個隱藏層,隱藏層由LSTM層、Dropout層和Dense層(全連接層)構成。根據實驗將LSTM層和第一個Dense層的節點數分別設置為10和8;利用第二個Dense層進行維度轉換,導出最終的二維數據,其節點數為2;為防止過擬合出現,在第一個Dense層后設置一個Dropout層。神經網絡的訓練批量為n/30,n為De包含的數據數量;模型使用Adam優化器,學習率為0.03,Dropout層參數為0.1,最大迭代次數為200。

為驗證提出的船舶航跡預測算法在航跡數據提取和預測上的有效性,采用大量隨機對比實驗進行驗證。從網址www.marinecadastre.gov/ais獲取AIS數據,限定經度(西經)范圍為[-76.5°, -71.5°],緯度(北緯)范圍為[36.0°, 41.5°]。采集2019年全年數據構建數據庫,采集2020年6月的數據構建測試集。表1記錄了數據處理前后的航跡點數量。實驗設備使用Intel(R) Core(TM) i5-1035G1的處理器,內存16.0 GB,顯卡mx350。

表1 數據處理前后的航跡點數量
為了更直觀地展示模型的預測效果,以穩定航速直道航跡、穩定航速小角度轉向航跡、變化航速小角度轉向航跡、穩定航速大角度轉向航跡、穩定航速復雜航跡、變化航速復雜航跡這6種典型航跡為例,對預測效果進行展示和評價。圖2是這6種典型航跡真實值和預測值點狀圖。
從圖2可以看出,對直道航跡的預測效果最好,對小角度轉向航跡的預測效果次之,對大角度轉向航跡的預測效果稍差,對復雜航跡的預測結果相對較差,同時對穩定航速航跡的預測結果要比對變化航速航跡的預測結果好。由于這6種典型航跡各具特點,所以圖2中各子圖坐標尺度不一,這可能對圖片的直觀性有一定的影響。從穩定航速直道航跡到變化航速復雜航跡這6種典型航跡預測結果的MSE如下:經度預測結果的MSE分別為1.72×10-6、5.82×10-6、1.03×10-5、5.94×10-6、4.89×10-5、4.49×10-5;緯度預測結果的MSE分別為5.25×10-6、2.67×10-5、2.82×10-5、4.95×10-5、1.55×10-5、4.36×10-5;經度和緯度預測結果的MSE均值分別為3.49×10-6、1.63×10-5、1.93×10-5、2.77×10-5、3.22×10-5、4.42×10-5。MSE結果與點狀圖的觀測相一致:隨著航速變化和航跡復雜度增大,預測結果逐漸變差。接下來的實證部分由于預測航跡較多,不再用圖展示預測結果,僅給出預測結果的MSE。
為驗證聚類算法的有效性,隨機從測試集中提取各類型船舶航跡數據共計100組作為測試集,然后從數據庫中得到100組對應的初步提取的航跡集合Df,再將Df中的航跡進行航跡聚類后得到相應航跡集合De。分別將Df和De作為訓練集,通過LSTM預測模型進行預測,分別得到未經過航跡聚類和經過航跡聚類情況下的預測結果。對這2種情況下的預測結果的MSE平均值進行分析,結果見圖3。

a)穩定航速直道航跡

b)穩定航速小角度轉向航跡

c)變化航速小角度轉向航跡

d)穩定航速大角度轉向航跡

e)穩定航速復雜航跡

f)變化航速復雜航跡

a)經度預測誤差

b)緯度預測誤差
從圖3可以看出:各個預測時間下,經度和緯度預測結果的MSE在經過航跡聚類后都有明顯下降,證明所使用的聚類算法可以根據航跡特征有效提取航跡數據集,提高預測精度;MSE平均值隨預測時間的增加而不斷上升,經航跡聚類后算法在預測到30 min時的經度和緯度MSE平均值分別為3.65×10-5和4.85×10-5。
為驗證提出的LSTM預測模型的有效性,選取BPNN、SVM、ELM這3種常用的預測模型進行對比實驗。BPNN的輸入和輸出節點數都為2,隱藏層節點數為3,學習率為0.02,最大迭代次數為1 000;SVM的核函數為“linear”,核尺度參數為“auto”,其他參數都采用MATLAB深度學習工具箱默認值;ELM的隱藏層神經元數量為9,激活函數為“sig”,其他參數都采用工具箱默認值。
對比實驗按不同船型進行,從每種船型航跡數據庫中隨機選取100組航跡數據進行預測,預測時間統一為30 min,取預測結果MSE的平均值進行對比,結果見圖4。從圖4可以看出,無論是在哪種船型數據集中進行的實驗,LSTM預測的經度和緯度MSE遠低于其他預測模型,充分驗證了本文方法比傳統的BPNN、SVM、ELM有著更高的預測精度。

a)經度預測誤差

b)緯度預測誤差
從圖4 LSTM預測誤差可以看出,6類船舶經度和緯度預測結果的MSE均處于10-5數量級,只有油船經度預測結果的MSE和客船緯度預測結果的MSE值略大,超過了4×10-5。航跡預測過程中可能由于聚類錯誤等情況,出現MSE過大的異常點。考慮到平均值在異常點影響下可能無法反映真實情況,對不同類型船舶航跡預測結果的MSE進行進一步分析,其箱線圖見圖5。

a)經度預測誤差

b)緯度預測誤差
從圖5可以看出:除客船外的其他5類船舶大部分(75%以上)預測結果的MSE都在5×10-5以下;客船經度預測結果MSE的非異常最大值為1.05×10-4,最小值為3.70×10-7,箱體數據表明75%的預測結果MSE都不大于5.09×10-5;客船緯度預測結果MSE的非異常最大值為1.25×10-4,最小值為1.70×10-7,箱體數據表明75%的預測結果MSE都不大于5.82×10-5。去除掉異常點后,客船大部分預測結果MSE也都在5×10-5以下,因此所提出的模型可以對包括客船在內的6類船舶在未來30 min內的航跡進行有效預測,箱線圖的結果進一步驗證了所提出算法的有效性。
在航跡預測領域,預測算法處理時間的快慢是衡量其性能的重要指標,如果耗時過長,其實用價值就會大大降低。為驗證所提出算法的實用性,按船型分別對6類船舶進行100組隨機實驗,記錄每次實驗的各部分運行時間并計算平均值,結果見表2。

表2 LSTM預測算法耗時 s
從表2可以看出,不同類型船舶航跡的平均預測時間都在20 s以內,其中:油船的航跡預測總時間最短,只有9.87 s;客船和拖船的航跡預測總時間較長,分別達到了19.69 s和18.60 s。由于客船大多有固定的航線,每條航線上航次量大,所以客船的航跡預測運算量大;拖船的航跡數據量是所有船舶中最多的:因此對這兩類船舶的航跡預測耗時較長。雖然各類船舶的航跡預測總耗時不同,但總時間平均值都小于20 s,同時根據記錄的數據顯示,600組數據中只有關于拖船的3組數據航跡預測總時間超過了60 s,最大為75.62 s,考慮到模型可預測船舶在未來30 min內的航跡,模型總運行時間在1 min內是可以接受的。
本文綜合考慮航跡提取和模型預測,提出一種基于高斯混合模型(GMM)與長短期記憶網絡(LSTM)耦合模型的船舶航跡預測算法。將歷史數據按不同船型構建航跡數據庫,通過限定距離實現航跡初步提取,采用基于GMM的聚類算法將初步提取出的數據進一步提取,最后通過LSTM預測模型完成航跡預測。大量的隨機對比實驗證明,本文所提出的基于GMM的航跡提取算法可以準確高效地提取航跡數據,LSTM預測模型在航跡預測上的預測精度遠高于一般的BPNN、SVM和ELM預測模型。本文所提出的航跡預測算法可以有效地對各類船舶在未來30 min內的航跡進行預測,整個預測過程一般用時短于1 min,該方法在實現任意船舶中短期航跡實時預測上具有重要的實際價值。
本文基于船型建立數據庫進行預測主要是為了在保證預測精度的前提下提高預測速度,但未對不同類型船舶的航跡特征進行深入分析。未來將在此方面展開深入研究,根據不同類型船舶的航跡內在特征為各類船舶設計專門的航跡預測算法,進一步提高預測精度。