李 樾,袁 智,,劉 奕
(1.湖北工程學院新技術學院,湖北 孝感 432000; 2.武漢理工大學航運學院,湖北 武漢 430063)
日益繁忙的水上交通給船舶交通監(jiān)管和事故預防帶來了巨大壓力[1]。船舶軌跡數(shù)據(jù)因為記錄了船舶航行過程中的實時位置和航線信息,從而為水上船舶軌跡分析、交通流分析、船舶交通監(jiān)管和水上事故預防提供了重要的信息[2]。區(qū)域內(nèi)船舶基于GPS(global positioning system)、AIS(automatic identification system)設備不斷地與他船和岸基以報文的形式發(fā)送和接收船舶數(shù)據(jù),這些數(shù)據(jù)包括船舶的靜態(tài)特征、實時位置、速度、航線以及其他信息。但是,由于受采集設備、信號傳輸以及環(huán)境等因素的影響,原始采樣的軌跡數(shù)據(jù)存在異常和錯誤等質(zhì)量問題[3],從而造成船舶軌跡數(shù)據(jù)異常和部分缺失。因此,有必要構建船舶軌跡修復模型來提升船舶軌跡數(shù)據(jù)的質(zhì)量,從而提高軌跡數(shù)據(jù)的利用效率和研究價值。針對船舶軌跡修復的研究,國內(nèi)外學者已經(jīng)取得了一些成果。劉立群等[4]通過三次樣條插值法分別對船舶經(jīng)度、緯度信息進行修復。秦紅星等[5]以線性插值為基礎,提出了一種船舶軌跡修復算法。李佳等[6]利用粒子群優(yōu)化算法和相似軌跡優(yōu)化最小二乘支持向量機模型修復殘缺軌跡數(shù)據(jù)。Liu等[7]基于支持向量機方法構建了船舶軌跡預測模型。Lv[8]借助大數(shù)據(jù)和云計算技術對船舶軌跡進行了分析。現(xiàn)有這些方法多基于線性插值方法,不能很好地把握整體軌跡的特征,尤其不能很好地處理彎曲航段的軌跡。將船舶軌跡數(shù)據(jù)看作有序的時間序列,通過分析異?;蛉笔к壽E的上下文信息,構建軌跡修復模型,可以實現(xiàn)船舶軌跡的修復。與傳統(tǒng)的線性插值方法相比,神經(jīng)網(wǎng)絡在軌跡預測建模方面有明顯的優(yōu)勢,可以根據(jù)原始軌跡數(shù)據(jù)的上下文信息雙向?qū)W習整個船舶軌跡的變化規(guī)律,從而保證軌跡修復的精度。BP(back propagation)神經(jīng)網(wǎng)絡是一種按照誤差逆向傳播算法訓練的多層前饋神經(jīng)網(wǎng)絡,有很強的非線性逼近功能,在數(shù)據(jù)分析和預測方面有著廣泛的應用[9]。
本文對船舶原始軌跡數(shù)據(jù)進行分析,引入BP神經(jīng)網(wǎng)絡方法,構建Bi-BPNNs預測模型,從前后兩個方向?qū)Ξ惓;蛉笔У拇败壽E進行循環(huán)修復,從而解決船舶軌跡數(shù)據(jù)丟失問題。在此基礎上,基于采集的真實船舶軌跡數(shù)據(jù)進行實例研究,并與基礎BP網(wǎng)絡模型和常用線性插值方法進行對比分析,從而驗證本文提出模型的有效性和實用性。
船舶軌跡可看作是船舶航行時間和當前位置構成的序列,相鄰的軌跡點之間有一定的聯(lián)系?;贐P神經(jīng)網(wǎng)絡構建軌跡修復模型,可以學習歷史軌跡序列之間的變化特征來預測未來時間的軌跡,從而實現(xiàn)缺失軌跡的修復[10]。
BP神經(jīng)網(wǎng)絡有三個要素:網(wǎng)絡拓撲結(jié)構、傳遞函數(shù)和學習算法。一個簡單BP神經(jīng)網(wǎng)絡的拓撲結(jié)構包括輸入層、隱含層和輸出層。其中,隱含層又有單隱含層和多隱含層結(jié)構,隱含層越多,網(wǎng)絡越復雜,學習的能力也越強,但是訓練的時間過長,會導致模型過擬合。BP網(wǎng)絡的傳遞函數(shù)是非線性變換函數(shù)Sigmoid函數(shù),其特點是函數(shù)本身及其導數(shù)都是連續(xù)的。BP神經(jīng)網(wǎng)絡的學習算法為δ算法,輸入層、隱含層和輸出層的權值調(diào)整公式均由學習率、誤差信號和輸入信號三個因素決定,輸入層誤差信號直接反應了網(wǎng)絡的輸出誤差,隱含層的誤差信號從輸出層開始逐層反傳過來得到。
船舶軌跡數(shù)據(jù)中的軌跡點不僅與上文軌跡有關系,還與下文軌跡有關系。如果只用上文軌跡進行學習,那么修復的軌跡點越多,誤差越大。如果增加對下文軌跡信息的學習,兩邊同時修復缺失軌跡,將有效減少誤差,保證軌跡修復結(jié)果的可靠性和準確性。然而,BP神經(jīng)網(wǎng)絡是一種單向?qū)W習的網(wǎng)絡,想要實現(xiàn)上下文軌跡的雙向?qū)W習,需要改進其網(wǎng)絡結(jié)構。因此,本文基于BP神經(jīng)網(wǎng)絡設計了雙向預測模型Bi-BPNNs,其結(jié)構如圖1所示。輸入層除了包含缺失軌跡的上文的特征向量,還增加了下文的特征向量,按時間順序翻轉(zhuǎn)之后再傳輸給網(wǎng)絡的隱含層,在輸出層的時候跟上文預測的正向軌跡結(jié)合,最終輸出完整的軌跡修復結(jié)果。
從采集的船舶AIS數(shù)據(jù)選取時間、經(jīng)度、緯度、航向、航速為船舶軌跡特征向量,作為模型的輸入變量。輸入變量除了包含缺失軌跡的上文信息,即前一時間段的軌跡,還包括后一時間段的下文軌跡。因為船舶軌跡特征向量是有序的時間序列,所以下文的軌跡信息在輸入隱含層之前還需要進行翻轉(zhuǎn),以便網(wǎng)絡學習到下一時間段中有更多的軌跡特征,從而提高缺失部分軌跡的預測精度。
軌跡修復模型的重要參數(shù):1)時間步長過短會影響整體的學習效果,太長則泛化能力不好;2)隱含層神經(jīng)元數(shù)目對網(wǎng)絡的性能影響較大,也決定了網(wǎng)絡的復雜度,是網(wǎng)絡模型重要的參數(shù);3)訓練函數(shù)可通過調(diào)整權值和閾值來減小整體誤差的算法;4)傳遞函數(shù)是網(wǎng)絡的重要組成部分,而且必須是連續(xù)可微的。這些參數(shù)將通過實際軌跡數(shù)據(jù)的訓練和測試實驗進行選擇和優(yōu)化。
通過訓練值、預測值、真實值的RMSE (root mean square error,均方根誤差)和MAE(mean absolute error,平均絕對誤差)對構建的雙向修復模型的軌跡修復結(jié)果進行評估和優(yōu)化。同時,為驗證構建模型的性能,還將其與常見的插值方法[11]和基礎的BP網(wǎng)絡[12]進行對比,并通過計算RMSE和MAE進行對比分析,計算方法:
本實驗使用的船舶軌跡數(shù)據(jù)來源于航行在長江干線的一艘散貨船,航行軌跡是長江干線江蘇航段瀏海沙水道,區(qū)域范圍為31°55′53″N,120°29′49″E至32°8′38″N,120°46′1″E,航行時間為2018年10月13日。原始的采樣數(shù)據(jù)包含日期、時間、船舶呼號、航速、航向、經(jīng)度、緯度,部分數(shù)據(jù)如表1所示。
表1 部分原始采樣數(shù)據(jù)
除了設備誤差和網(wǎng)絡傳輸造成的軌跡數(shù)據(jù)缺失外,采集到的原始數(shù)據(jù)還存在一些異常和噪聲。例如,船舶的經(jīng)度或緯度數(shù)據(jù)范圍不在采樣的航行區(qū)域范圍,部分航速明顯偏小或偏大。為此,設計了軌跡數(shù)據(jù)預處理方法:先將收集的原始數(shù)據(jù)按采樣時間進行排序,刪除重復的數(shù)據(jù);接著對排完序的數(shù)據(jù)進行航段劃分,以便在更小的范圍內(nèi)進行判斷,避免下一步錯誤處理或清洗過度;然后在航段內(nèi)進行遍歷,分別判斷經(jīng)度、緯度、航速是否在正常范圍之內(nèi),如果超出范圍就被認為是異常數(shù)據(jù)被清洗掉,最終得到干凈的軌跡數(shù)據(jù)集,預處理之后得到的船舶軌跡如圖2所示。
為驗證所構建的Bi-BNNs軌跡預測模型的性能,選取修復難度大的彎曲段軌跡進行實驗,設置{航速,航向,經(jīng)度,緯度}為修復模型的輸入特征向量,并隨機選取樣本數(shù)據(jù)的80%作為訓練集,剩下的20%為測試集。實驗開始,將模型的參數(shù)神經(jīng)元數(shù)量、時間步長、訓練函數(shù)、傳遞函數(shù)分成4組進行測試,通過計算,比較模型的訓練誤差和測試誤差,對各參數(shù)進行逐步優(yōu)化,如表2所示。
從表2中的第1組和第2組實驗中可以看到,當訓練函數(shù)為“trainlm”、傳遞函數(shù)為“purelin”時,經(jīng)度和緯度的訓練誤差最?。辉诘?組實驗中,時間步長為4的誤差比時間步長為2和5時的要小;同理,在第4組試驗中,神經(jīng)元數(shù)量為12時,模型的預測效果最佳。因此,最終設定軌跡修復模型的參數(shù)如下:神經(jīng)元數(shù)量為12;時間步長為4;訓練函數(shù)為“trainlm”;傳遞函數(shù)為“purelin”。這里,模型參數(shù)時間步長設置為4,也就說用4個歷史軌跡數(shù)據(jù)點預測未來一個軌跡數(shù)據(jù)點,然后依次循環(huán)直至得到完整的軌跡預測。
表2 Bi-BPNNs模型的不同參數(shù)設置實驗
根據(jù)確定的雙向預測模型,分別利用上下文的船舶軌跡點雙向循環(huán)預測9個軌跡點,得到共含有18個預測軌跡點的軌跡,如圖3所示。圖3中,藍色點表示真實測得的軌跡,紅色點表示預測的軌跡,其中圖3a)是包含預測信息的軌跡,圖3b)是彎曲航段真實軌跡與預測軌跡的對比。圖4展示了Bi-BNNs模型的船舶軌跡修復性能。
此外,為了進一步驗證Bi-BPNNs模型的軌跡修復優(yōu)越性,基于相同的實驗數(shù)據(jù),將其分別與常見的線性插值(linear interpolation,LI)[13]、逐段三次樣條插值(spline interpolation,SI)[14]、立方插值(pchip interpolation,PI)[15]、和基礎BP神經(jīng)網(wǎng)絡(BPNNs)模型進行對比,并計算各方法修復軌跡數(shù)據(jù)的RMSE和MAE,得到10次實驗結(jié)果的平均值和標準差,如表3 所示。從表3中可以看出Bi-BPNNs優(yōu)于其他的方法和模型。
表3 不同模型的船舶軌跡修復模型性能
本文針對船舶軌跡數(shù)據(jù)的缺失和異常問題,提出了Bi-BPNNs模型,利用對上下文的歷史軌跡信息特征的學習,實現(xiàn)對缺失軌跡的雙向循環(huán)預測,從而提升軌跡修復的精度和效率。彎曲航段的實例驗證結(jié)果表明:經(jīng)度修復的誤差RMSE和MAE分別只有0.000 6和0.000 5;緯度修復的誤差RMSE和MAE分別只有0.001 5和0.001 0。與其他多種插值方法和基礎BP神經(jīng)網(wǎng)絡相比,本文提出的Bi-BPNNs在船舶軌跡修復上具有明顯的性能優(yōu)勢。