李 永,成夢雅
(北京工業大學 信息學部,北京 100124)
互聯網時代的飛速發展,海洋中的船舶越來越多,但是在某些港口或者海域,部分航道面臨著堵塞困難。船舶在海上航行,精準的定位不僅決定了船舶航行的工作效率,還關乎船舶行駛的安全。為了解決此問題,對船舶航跡進行預測是十分必要的。航跡預測,簡單來說,就是推算將來時刻的船舶所在的位置。船舶行駛的距離與所花費的實際時間在船舶速度一定的情況下是成正比的,因此位置預測可分為長距離預測與短距離預測,或者稱為長時預測與短時預測[1]。船舶在遠洋時,它需要很長的時間才能達到目的地并保持穩定的運動,所以比較適合于長時預測。短時船舶預測更容易達到實際應用所需的精度,因為預測時間短,并且可以始終根據目標位置報文和雷達監視數據校正預測結果[2]。
航跡預測是人們給出的一種預測概念,用于判斷未來的交通流量。軌跡預測可根據基本功能分為時間預測和位置預測。時間預測顧名思義就是在能確保船舶穩定運動并且知道軌跡點的情況下,可以根據行駛時間長度預測出到達的位置數據。該算法的基本原理可以利用動能定理解決,例如飛機、火車和輪船的預計到達時間等。位置預測是指經過一定距離或一定時間后,求出抵達點的位置數據。不需要通過實物參與就能通過純理論推算達到預測的目的,因此實驗成本大大節約了。
同時預測還是一種防范行為,當預測結果不在意料中時,放棄該結果,防止預測結果的發生。例如車輛擁堵的預測等[3]。但是在預測的過程中也會出現許多問題,船舶數據量越來越大,對數據管理和應用提出了新的挑戰[4-6]。同時具有時空性的數據,為了實現更為準確的分析在數據查詢和正確處理方面增加了難度。數據的稀疏性,航跡數據具有一定的規模,數據的稀疏性仍不可避免,一些船舶在其他海域的數據較少,在某個海域比較多,對于船舶軌跡來說,如果采樣率較低,相距較遠的兩個軌跡點也會增加軌跡數據的不確定性[7]。船舶的航行勢必會受風向、氣流、海浪等外界不可控因素的影響。除了船舶本身,外力在船舶的作用力的大小以及怎么作用,第三方很難知曉[8]。總之,航跡預測是難點也是熱點。
根據對船舶領域當前軌跡的預測,文獻[9]使用卡爾曼濾波算法,通過最小二乘方法估計自動檢測網絡系統的觀測數據。獲得船舶的平滑運動路徑。文獻[10]將改進的卡爾曼濾波算法應用于船舶的運動軌跡中。2015年,徐婷婷等人提出了一個基于三層BP神經網絡的航跡預測模型,實現了船舶航跡預測[11]。除了BP神經網絡和卡爾曼濾波之類的算法外,還有使用機器學習的軌跡預測方法,例如聚類方法、函數回歸方法和徑向基的神經網絡等[12-14]。研究者高陽在其碩士論文中給出利用聚類的方法做飛機的航跡預測[15]。
文獻[16]運用支持向量機模型對橋區河流失控的船的航跡展開預測。通過建立運動目標的數學模型[17],考慮運動目標的方向和速度,然后調整運動目標的運動方程來實現對船舶位置的預測。文獻[18]針對歷史軌跡數量有限時導致傳統軌跡預測方法精度較低的問題,提出了一種改進的貝葉斯推理(MBI)方法。MBI為了獲得更準確的馬爾可夫模型結合對歷史軌跡進行分解而構造了一個馬爾可夫模型來量化相鄰位置。然后提出了TPMO軌跡算法。由于該算法的訓練過程為了對軌跡進行聚類,不僅需要使用熱點區域挖掘算法,而且需要建立具有連續軌跡時間的貝葉斯網絡,這是非常消耗時間成本的[19]。
近些年來,在很多領域深度學習被廣泛應用,神經網絡的特征是使用一組已知的訓練樣本集來構建從輸入到輸出的映射。它主要是根據時間序列數據將歷史行駛軌跡坐標數據進行轉換,映射出歷史軌跡點與預測軌跡點之間的關系,然后通過神經網絡學習船舶運動規律。
深度學習中的BP神經網絡也被稱為誤差逆向傳播算法,是至今神經網絡學習算法中較為成功的。它幾乎可以逼近任意非線性模型[11-12]。但是BP神經網絡的問題就是信息內容傳遞是單向的即從輸入到輸出這個方向。這樣的網絡模型具有便于訓練和簡單的優點,但是它的缺點是不能考慮時間前后的輸入或輸出對結果造成的影響。所以考慮到BP神經網絡不能記憶的問題,于是科學家提出了循環神經網絡,此時的輸入和上一時刻的輸出信息都要考慮作為輸入,從而形成一個環路神經網絡。循環神經網絡對于傳統的神經網絡來說,它們的每一個隱藏層的神經元中不但包括上一個時刻殘留的信息,同時也包括當前的輸入信息的內容,對于時間序列數據的預測具備較大的優勢,然而循環神經網絡對間隔太遠的歷史信息很不容易記憶,一般在訓練過程中超過幾步就有可能產生梯度消失的現象。
為解決此問題,LSTM被提出,它的記憶方式很特殊,不會只是將以前梯度較大的記憶抹除,因而解決了梯度消失的問題。LSTM的隱藏層除記憶單元也多了三個控制門:輸入門、遺忘門、輸出門。分別完成對時間序列數據的載入、讀取以及重置操作。遺忘門負責從細胞單元狀態中忘記信息,這可以優化長短期神經網絡的性能。輸入門負責添加信息到單元狀態,它可以控制重要而不冗余的輸入信息。負責單元狀態的輸出則由輸出門控制。通過這些“門”的結構,LSTM可以解決長期記憶的問題,有效地增加記憶的長度,并適合于處理長序列問題[20-21]。文中研究將船舶特有的軌跡特征與時間序列相結合,使用基于深度學習的LSTM模型,觀察LSTM模型學習時間序列數據帶來的隱含船舶運動規律。
隨著深度學習的發展,循環神經網絡在處理時間序列問題方面已顯示出良好的性能。而軌跡是具有時空信息的序列,并且可以通過使用循環神經網絡學習軌跡的特性來預測下一軌跡位置。長短期記憶(long short term memory,LSTM)是一種經過改進的循環神經網絡,它解決了由于神經網絡層數增加而導致的梯度消失或爆炸的問題。
詳細說明如下。
文中使用LSTM模型作為主體,通過學習輸入軌跡訓練的特征與下一個位置的關系,從而預測將來可能到達的位置。LSTM模型具有獨特的記憶模塊,該模塊的作用是減緩信息丟失速度,比較適合深度神經網絡計算。LSTM是一種適合時間序列數據的循環神經網絡,它的下一個時間周期的輸入是上一個時間周期的輸出,LSTM單元除了包括輸入門和輸出門還有遺忘門、輸入節點等。根據時間展開的循環神經網絡模型如圖1所示。LSTM的神經網絡結構如圖2所示。

圖1 LSTM網絡縮略圖

圖2 LSTM神經網絡結構
本模型中記憶模塊的工作原理大致如下:
圖2中,在RNN中隨時間傳遞的只有單元狀態C,LSTM有狀態鏈h(隱藏層狀態)和C(單元狀態)是隨時間傳遞的,ht-1是傳入到當前時刻的上一時刻隱藏層的值,xt是當前時刻的輸入值,ct-1是上一時刻LSTM記憶單元的狀態值,ct是當前時刻的LSTM記憶單元的狀態值。ht-1和xt在經過遺忘門時,通過計算得出需要丟棄的信息。由計算得到輸出到單元狀態的值在0和1之間。0表示全部忘記,1表示全部保留。見公式(1):
ft=σ(wf·[ht-1,xt]+bf)
(1)
其中,ft是遺忘門的輸出,遺忘門里的權重矩陣和偏置向量分別是wf和bf,激活函數Sigmoid是一種將變量映射到[0,1]之間的S型生長的函數,由σ表示。具體公式為:
(2)
更新到單元的新信息中,先是經過有Sigmoid函數的輸入門計算出需要更新的信息(見公式(3)),再由tanh層創建一個新的值kt加入到單元狀態中(見公式(4)):
it=σ(wi·[ht-1,xt]+bi)
(3)
kt=tanh(wk·[ht-1,xt]+bk)
(4)
公式(3)中,it是輸入門的輸出,wi是輸入門的權重矩陣,bi是偏置,[ht-1,xt]表示將兩個向量拼成一個向量。式(3)和式(4)得出的結果相乘再與上一時刻單元狀態值經遺忘門得出的結果累加得到了當前時刻單元狀態值,如下:
ct=ft*ct-1+it*kt
(5)
當前時刻的單元狀態ct由公式(5)表示,它是由兩個乘積累加產生的,包括遺忘門層的輸出按照位乘以上一時刻的單元狀態和輸入門輸出按位乘以輸入的單元狀態。單元狀態決定最終輸出結果。由Sigmoid對輸出結果進行分類選擇需要輸出的數據,再用tanh函數處理單元狀態,得到經隱藏層傳遞給下一時刻的狀態值ht,ht經過Sigmoid處理后可得到當前時刻預輸出值y,見式(6)~式(8),最終的輸出是由輸出門和細胞狀態共同決定的。
ot=σ(wo·[ht-1,xt]+bo)
(6)
ht=ot*tanh(ct)
(7)
y=σ(wtht)
(8)
如今,各種海上交通管理系統獲取的船舶導航數據的重要來源是AIS數據,其中包括如MMSI(maritime mobile service identity)、經度、緯度、速度和航向等基本信息。為了深入探索船舶的歷史航跡數據,建立實時軌跡預測模型,船舶位置最相關的航行信息也要充分使用,將船舶的經度、緯度、航速和航向作為輸入,具體模型的結構如圖3所示。

圖3 航跡預測模型結構示意圖
船舶軌跡預測實質上是運用LSTM循環神經網絡的回歸問題將船舶的歷史軌跡特征以及當前的軌跡特征作為模型輸入,將未來某個時間的船舶軌跡特征數據作為輸出,然后與實際值進行比較,以建立船舶歷史軌跡與船舶未來軌跡特征數據之間的映射關系。進行船舶未來航向特性的計算和預測。對于一艘船舶來說,其在t時刻的軌跡特征Y(t)表示為:
Y(t)={lat,lon,v,c}
(9)
其中,lat,lon,v,c分別為船舶在t時刻的4項特性:緯度、經度、速度、航向。
為了建立船舶軌跡的預測模型,將連續n個時刻的船舶航行軌跡特征數據Y(t-n+1),…,Y(t-1)和Y(t)作為模型的輸入,將t+1時刻的航行軌跡數據Y(t+1)作為輸出,其中n對應著輸入層的step大小。那么,船舶航跡預測模型的表達式為:
Y(t+1)=f({Y(t-n+1),…,Y(t-1),Y(t)})
(10)
深度學習訓練目的就是找到神經網絡的最小損失函數點,往往引入優化算法幫助更新與計算影響模型訓練和模型輸出的網絡參數,逼近或達到最優值,尋找最小損失函數點,提高模型精確度。文中采用了Adam算法優化了LSTM網絡,Adam既可以對學習率進行自適應調節,又可以利用歷史動量加快收斂速度。Adam算法在計算時,需要的內存更少,收斂速度快。Adam方法的更新規則[22]如下:
Et(g)=βtEt-1(g)+(1-β1)g(ωt)
(11)
Et(g2)=β2Et-1(g2)+(1-β2)g(ωt)⊙g(ωt)
(12)
(13)
更新后的權值:
ωt+1=ωt+△ωt=
(14)
其中,β1,β2是[0,1]之間的可變參數,梯度向量g的一階矩為Et(g),二階矩為Et(g2)。
本次仿真實驗使用的是公開AIS數據下載,The Marinecadastre website(https://marinecadastre.gov/ais/)。該數據集包含了從2009年到2019年10年時間里的歷史軌跡信息。這些數據含有軌跡量大,時間跨度大,適合作為文中軌跡預測的數據集。每條軌跡由一系列軌跡點組成,每個軌跡點數據包含經度(LON)、緯度(LAT)、時間(BaseDateTime)、SOG對地航速(speed over ground)、COG對地航向(course over ground)、Heading航艏向等信息,同時將船舶的海上移動業務識別碼(maritime mobile service identity,MMSI)也放入船舶基本數據中,作為唯一標識,去區分不同船舶的航行行為。軌跡部分數據示例如表1所示。

表1 數據集基本信息
在實驗中將數據集劃分為訓練集、測試集和驗證集,所占比重分別為80%、10%、10%。其中,驗證集主要是用來調整超參數,在測試集上對模型進行均方誤差的檢驗。
首先創建模型,通過擬合訓練集去找模型的初始參數值。之后再利用驗證集對模型的超參數進行調整,查看模型的性能。再通過測試集數據評估最終模型的泛化能力。將最后的預測結果記錄下來。由LSTM該模型的訓練效果(參見圖4)顯示,隨著訓練次數的增加,誤差曲線逐漸趨于穩定,訓練效果較好。

圖4 航跡預測模型訓練驗證誤差圖
在此次實驗中,均方誤差MSE作為評估船舶軌跡預測模型的方法。均方誤差是用來衡量預測結果的誤差情況,MSE的數學表達如式(15)所示,該值越小則表示模型的性能越好。
(15)

為了驗證模型的有效性,分析LSTM方法和BP神經網絡的預測效果。網絡輸入同樣使用經度、緯度、船舶速度和船舶方向,輸出使用經緯度,圖5為LSTM和BP神經網絡預測的均方誤差。

圖5 在相同數據集下不同模型的結果對比(MSE)
從圖5可以看出LSTM預測模型有著更高的預測精度,原因是LSTM具有較好的預測能力,并且能推斷航跡變化趨勢,它擁有較強的記憶能力來記憶歷史時刻航跡位置。長短期記憶神經網絡對于存在依賴關系的歷史信息采用一個特定的記憶細胞存儲信息。LSTM通過引入輸入門,輸出門和遺忘門,使得長期依賴性的時間序列數據的學習和分析能力顯著提高。適合處理長序列問題。
為了驗證模型預測值與真實值之間的誤差,在模型訓練、預測過程中輸入相應的參數,發現不同的參數對模型的訓練和預測結果產生了不同的影響。文中通過仿真實驗對模型的性能進行了評估,利用測試集數據進行驗證,來檢驗所選模型的最終的預測能力。圖6、圖7為LSTM模型的預測結果,從圖中可以看到,預測的緯度和經度非常接近緯度和經度的實際變化。這非常接近預期結果。這也表明基于長短期記憶神經網絡的船舶預測模型達到了實驗目的。為了更直觀地看到預測值和真實值的差別,在地圖上進行可視化展示,如圖8所示。由圖可以看出,預測值與真實值相對吻合,具有一定的研究意義。

圖6 緯度預測結果

圖7 經度預測結果

圖8 預測值與真實值可視化展示
文中提出了基于神經網絡的船舶航跡預測方法,充分探索船舶時間序列數據背后的運動規律,進而實現航跡預測。結合AIS信息和LSTM模型對船舶航跡進行了預測。通過訓練好的LSTM模型對預測目標海域中的船舶進行實驗。通過比較和分析預測值與實際數據之間的偏差,發現隨時間的變化,LSTM可以有效地學習和識別船舶軌跡的特征值,例如經度、緯度、速度和航行方向,然后準確地預測船舶未來時刻的位置。文中基于預測船舶軌跡的目標,作為初步探索,仍然存在許多不足之處,例如,在理想的仿真環境中的大多數算法的噪聲是人為確定并保持不變的,而系統狀態下的噪聲是不確定和未知的,不管是適用性方面還是在通用性方面都不是很強。在今后的工作中將考慮船舶在航行時,受到風、流、浪等外界環境的影響,以及船舶航行時遇到障礙物等等,進而對預測準確性進行提升。