楊 紅,韓 鵬,劉 暢,宮珊珊
(大連海事大學 信息科學技術學院,遼寧 大連 116026)
船舶自動識別系統(tǒng)(automatic identification system, AIS)提供了豐富的船舶運動信息,如船舶位置經緯度、對地航速(SOG)、對地航向(COG)等[1]。通過AIS對船舶行為進行識別和軌跡預測,能更好地實現(xiàn)避碰預警,輔助相關部門進行日常監(jiān)管。
在船舶行為識別分析中,學者們常用基于深度學習的方法進行研究。H.LJUNGGREN[2]和JIANG Xiang等[3]分別采用卷積神經網絡(convolutional neural network, CNN)和門控循環(huán)單元(gated recurrent unit, GRU)對船舶捕撈行為進行識別,避免了復雜參數設定,且識別效果均好于傳統(tǒng)方法。
在船舶軌跡預測任務中,傳統(tǒng)的k階馬爾可夫鏈[4]、單點近鄰搜素(SPNS)、卡爾曼濾波[5]等方法并不能完整地概括各種影響因素。隨著機器學習和深度學習不斷發(fā)展,基于支持向量回歸和神經網絡方法的航跡預測模型被提出來[6-7]。該模型從AIS數據中獲取運動特征,從而隱式地整合所有可能的影響因素,可取得更高的預測精度。
目前對以上兩種任務的研究都是獨立的,考慮到船舶行為識別與軌跡預測是具有相關性的任務,因此筆者提出了基于多任務學習的模型,以多任務學習為框架的模型已在很多領域被應用。如在NLP領域中,進行詞性標注和命名體識別等[8];在進化計算領域中,研究如何利用多任務學習解決多個優(yōu)化問題(任務)以提高獨立解決每項任務效率[9];在自動駕駛領域,提出利用多個相關任務來實現(xiàn)精確的多傳感器三維目標檢測[10]。
筆者在分析了兩個任務現(xiàn)有研究成果的基礎上,以船舶行為中的捕撈、系泊、拋錨、正常航行這4種行為作為識別任務,將這4種識別任務與船舶軌跡預測任務組成多任務學習模式,提出了基于卷積神經網絡(CNN)和雙向長短時記憶網絡(BiLSTM)的CNN-BiLSTM神經網絡的多任務學習模型,并引入注意力機制對網絡進行優(yōu)化,使網絡對特征提取更具針對性,可靠性更高;通過多任務學習機制,可均化原始數據中噪聲,降低單獨完成任務可能過擬合的風險,增強模型的泛化能力;并通過實驗將文中方法分別與識別任務中的CNN、BiLSTM模型、預測任務中的BP、BiLSTM模型進行比較,證明筆者所提出的方法準確性更高,泛化能力更強。
受地貌、地形、氣象等環(huán)境因素及設備本身問題影響,AIS數據可靠性降低,存在數據的異常與缺失。為使數據集更具有效性,需對AIS數據進行必要的清洗與修復。
AIS數據中包含的信息見表1,篩選其中與任務相關的變量,最終選擇AIS數據中的經緯度(Lat, Lon),對地航速(SOG)、對地航向(COG)作為變量。
表1 解析后的AIS數據實例Table 1 Analyzed AIS data instance
1.2.1 速度異常
根據船舶所在海域規(guī)定,結合該海域內其他船舶速度,根據速度分布確定閾值,識別速度異常數據進行剔除。
1.2.2 加速度異常
可通過式(1)、式(2)計算出理論最大加速度am。
10×L=0.5×tm×Vm
(1)
(2)
式中:L為船身長度;Vm為預設的最大速度;tm為船從靜止到預設最大速度所用時間。
1.2.3 軌跡明顯漂移
筆者依據谷歌地圖中方法,通過經緯度計算出連續(xù)兩點間的實際距離dis,如式(3)。通過速度與時間可計算出理論距離,并設定一個閾值,若偏差過大,則判定為軌跡漂移點并刪除。
(3)
式中:R為地球半徑;(x1,y1), (x2,y2)分別為連續(xù)兩點的經緯度。
1.2.4 冗余數據
將重復數據進行刪除,以時間一致為標準。
統(tǒng)計所在海域AIS相鄰數據點的時間間隔,以此確定閾值范圍,并確定間隔上限作為缺失數據點識別標志。根據海上移動通信業(yè)務標識碼(MMSI)將數據集分離為每艘船的子數據集,再根據確定的時間間隔分離出待修復的軌跡。
為更好地對航速航向進行修復與預測,將航速按經緯度作分解得到VLat和VLon,如式(4)、式(5)。
VLon=V× cosθ
(4)
VLat=V× sinθ
(5)
式中:θ為航向;V為航速。
筆者選取船舶行為進行識別任務,同時對船舶未來時刻的位置(經緯度)、航速、航向進行預測。以多任務學習機制同時完成上述兩個具有相關性的任務,使其相互共享特征、協(xié)同學習,同時也可降低數據中的噪聲,減少過擬合的可能。
筆者通過融合CNN和BiLSTM構建了并聯(lián)的CNN-BiLSTM神經網絡模型。AIS數據具有時序性,因此通過BiLSTM能很好地提取時序特征,更好地捕捉歷史數據點之間的關系。同時考慮各單元的輸出對最后任務結果影響程度不同,故加入注意力機制進行網絡優(yōu)化,為每個單元的輸出設定權值,使這一分支的特征提取更加可靠。通過CNN可很好地提取局部特征,探索AIS數據語義中更深層次的特征關系。
AIS信息中,船舶行為狀態(tài)可分為10類。其中:2類代表修正狀態(tài);其余8類分別為正常航行、拋錨、未在命令下操縱受限制、系泊、吃水限制、擱淺、捕撈、操帆在航[11],每種行為狀態(tài)對應不同的航速航向與軌跡。筆者選取其中4種(捕撈、系泊、拋錨、正常航行)行為,研究其在某段時間內經緯度、對地航速、對地航向變化與其行為之間關系。船舶軌跡(航跡)代表其在某一時間內位置的變化,表現(xiàn)為經緯度變化,并伴隨著航速和航向的變化。
AIS樣本數據是包含語義信息的時間序列,選取一維卷積對固定長度的AIS樣本數據進行特征提取非常有效。將每個樣本數據表示為S={Lati, Loni,VLati,VLoni},i為樣本中第i個點,4個維度分別為緯度、經度、緯度方向的速度、經度方向的速度。每個樣本數據長度為T,特征維度為N。將輸入樣本轉換成一個N×T維的矩陣,通過卷積層,從樣本數據中提取到簡單模式到更高層次的特征,通過最大池化層對提取的特征進行篩選,利用Dropout層防止過擬合,最后得到CNN分支特征,CNN提取高層次特征原理如圖1。
圖1 AIS數據卷積操作Fig. 1 AIS data convolution operation
長短時記憶(long short-term memory, LSTM)循環(huán)網絡是在循環(huán)神經網絡(recurrent neural network, RNN)基礎上,通過內部的門結構,有效解決RNN模型訓練中出現(xiàn)的梯度消失問題的一種模型。LSTM單元結構如圖2。
圖2 LSTM單元結構Fig. 2 LSTM cell structure diagram
每個LSTM單元輸入包括xt、ht-1、Ct-1,分別代表當前時刻輸入、上一時刻輸出、上一個時刻單元狀態(tài);輸出包括ht和Ct-1,分別代表當前時刻的輸出和當前單元的狀態(tài)。包含3個門結構:遺忘門主要負責對輸入信息進行選擇性遺忘,輸入門對遺忘門的輸出進行補充,輸出門對所有信息進行整合作為輸出并傳給下一個單元。正因如此每個單元都可獲取到當前與之前的信息,因此對時間序列的時序特征提取有顯著效果。
BiLSTM是在LSTM基礎上增加了一層LSTM結構作為反向的特征提取,最終將前向與反向的單元輸出結果融合,如此每個時刻的輸出結果既考慮之前信息也考慮了之后信息,能使時序特征更為全面。BiLSTM結構如圖3。
圖3 雙向LSTM結構Fig. 3 Bi-LSTM structure diagram
圖3中:xi(i=1,2,…,i,…n)為船舶每個時刻的數據,Hi(i=1,2,…,i,…n)為每個時刻的最終輸出,是將每個單元的前向輸出與反向輸出通過加權求和方式進行融合。
注意力機制最早是用于圖像識別領域,之后廣泛用于自然語言處理領域。其原理是利用歸一化指數函數使簡化后的輸入向量映射到[0, 1]區(qū)間,即為所賦予的“權重”,其結構如圖4。船舶不同時刻的狀態(tài)對最終結果影響力各不相同,因此筆者利用注意力機制為每個時刻的輸出賦予權重,然后通過加權求和,再通過全連接層以得到更為有效的特征。
圖4 Attention單元結構Fig. 4 Attention cell structure diagram
xi為BiLSTM每個單元輸出;f(x)用以將多維矩陣轉化為一維;W為相應矩陣;softmax用作將結果映射到[0, 1]區(qū)間;wi為得到的權值,如式(5)。
(5)
基于神經網絡的多任務學習在實際應用中較為廣泛。通過同一個網絡結構提取特征,設計不同的損失函數進而聯(lián)合訓練以達到降低噪聲,提高性能效果。
筆者設計了網絡結構來進行船舶行為識別與軌跡預測兩個任務,如圖5。
圖5 網絡結構Fig. 5 Network structure diagram
圖5中:網絡結構分為兩個分支,左側依次為一維卷積層,最大池化層,Dropout層,右側依次為BiLSTM層,注意力機制層,全連接層。將船舶時間序列數據通過維度轉換分別輸入兩分支后融合,再經過全連接層得到特征。
由于文中是分類與回歸的混合任務,因此將模型輸出分為兩個部分,一部分是通過softmax層得到船舶行為分類;另一部分是通過全連接層得到的下一時刻的預測軌跡數據。通過不同損失函數之后得到的損失進行組合形成一個損失后反向傳播訓練。識別任務與預測任務的損失函數分別選用交叉熵函數(cross entropy loss)與均方誤差MSE(mean squared error),其具體如式(6)、 式(7)。
(6)
(7)
對于識別任務需將輸出結果先經過softmax層得到概率,再計算損失。對預測任務因需預測的結果為4個維度信息,故損失為每個維度的損失平均值,之后將兩個損失通過式(8)進行融合得到最終的損失函數。多任務學習訓練算法1如圖6。
Lfull=λrLr+λpLp
(8)
式中:λr和λp分別是兩個損失權重。
圖6 算法1Fig. 6 Algorithm 1
筆者旨在通過AIS設備得到某船的數據,進而對其進行分析。數據來自2017年1月從marineca-dastre.gov下載的3個海域的船舶AIS數據。分別在3個區(qū)域中選取4種行為的AIS數據10 000、8 000條作為訓練集,2 000條作為測試集。每組數據的船舶行為類別統(tǒng)計如表2。筆者選取數據預處理后的每個樣本中前25個數據作為輸入,其余用以單點預測標簽。
表2 各組數據船舶行為類別數量Table 2 Number of ship behavior categories in each group
選用均方根誤差(RMSE),平均絕對誤差(MAE)作為軌跡預測方法評價指標。選用精確率(Precision),召回率(Recall)和F-score作為識別方法的評價指標。筆者計算的是4個分類的平均評價指標。對于經緯度預測評價,將預測結果與真實數據的差值定義為兩點之間的距離,通過式(3)進行計算。具體計算如式(9)~式(13)。
(9)
(10)
(11)
(12)
(13)
式中:n為樣本數量;y′i為模型預測結果;yi為真實數據;TPi代表真正例;FPi代表假正例;FNi代表假負例;F-score用以平衡準確率和召回率影響。
多任務學習中,兩個任務的損失函數不同,如2.4節(jié)可知,對于λr和λp的設定,采用多次實驗方法驗證選擇為1和0.1。
文中實驗環(huán)境選用Spyder,Python 3.7.3,框架選用Pytorch,歸一化函數選用Pytorch中的Min Max Scaler。迭代次數500次,Batch Size設為5,學習率設為0.001,為防止過擬合加入Dropout層,參數設為0.6,優(yōu)化器選用SGD。CNN中kernel_size設為1,池化層參數設為25,LSTM隱層維度設為8。
將預處理好的3組數據用于文中提出的CNN-BiLSTM多任務學習模型,進行船舶行為識別與軌跡預測任務聯(lián)合學習實驗,并分別與識別任務中的CNN,BiLSTM模型,預測任務中的BP[12],BiLSTM[13]模型進行比較,得到如表3、表4。
表3 船舶行為識別對比實驗結果Table 3 Comparative experimental results of vessel behavior recognition
表4 船舶軌跡預測對比實驗結果Table 4 Comparative experimental results of vessel trajectory prediction
由表3可看出:3組數據中所提出的模型在精確率、召回率、F-score這3個指標上都明顯優(yōu)于單一的CNN模型和BiLSTM模型,精確率最高達到了0.909 8,召回率最高達到了0.865 7,F(xiàn)-score值達到了0.887 2,相較于同組數據用CNN模型與用BiLSTM模型分別提高了近15.2%、10.4%、12.7%和7.8%、4.3%、6.1%。雖然組2、3實驗數據由于類別分布中系泊與拋錨行為相對較多,且這兩種特征在行為特征角度相近,故實驗指標相較組1較低,但都明顯高于同組數據中另兩種方法,精確率與召回率指標分別達到0.898 4、0.876 0和0.889 2、0.844 2。由此可以看出因AIS數據的時序性與船舶的行為相關性很高,故在CNN的基礎上加入了優(yōu)化后的BiLSTM分支的多任務學習模型在船舶行為識別任務中可以取得優(yōu)越的識別效果。
由表4可看出:文中的模型相對于傳統(tǒng)BP神經網絡在對位置預測、航速預測、航向預測這3個方面的實驗指標都有顯著提高,且引入CNN分支對局部特征的提取,同時聯(lián)合學習得到船舶行為特征,也使得文中模型優(yōu)越于傳統(tǒng)的BiLSTM模型,可以使位置誤差縮小到15 m量級,同時對航速航向的預測精度也有顯著提高。其中:組3中的實驗結果指標最優(yōu),文中方法對位置預測的RMSE和MAE分別達到了14.554、14.523 m,航速預測達到了0.291 6、 0.252 3 kn,航向預測達到了2.594 9、 2.590 1;較同組數據用BP神經網絡與BiLSTM模型RMSE誤差分別降低了近5、1.2; 0.7、 0.1 kn; 3、 0.7。由于組1數據類別數量中拋錨的類別較低組3,且拋錨行為下船舶位置、航速,航向相對穩(wěn)定,故實驗結果略遜于組3,但均方根誤差也較BiLSTM模型分別降低了1.258 m,0.131 kn,0.877 5。組2中捕撈行為數據較多,且該行為狀態(tài)下位置、航速、航向復雜多變,影響了整體數據實驗結果。但均方根誤差也較BiLSTM模型分別降低了0.61 m,0.231 5 kn, 0.898 9,這體現(xiàn)了文中模型的優(yōu)越性。
綜上可看出:將兩個任務聯(lián)合學習,利用CNN-BiLSTM神經網絡為模型解決該問題取得良好的實驗效果,取其中一組數據作單點多次預測,得到真實軌跡與各軌跡預測方法的對比如圖7、圖8。由此可知:BiLSTM已表現(xiàn)出很好的軌跡擬合效果,而文中模型在精度上有了相應提高,使軌跡擬合更準確。在對航向和航速的預測中,筆者所提出的模型也優(yōu)于其他兩種方法。
圖7 軌跡預測結果對比Fig. 7 Comparison of trajectory prediction results
圖8 航速和航向預測結果對比Fig. 8 Speed and comparison of course prediction results
筆者為解決在當前復雜海洋環(huán)境中船舶行為識別準確率低,過擬合現(xiàn)象明顯,軌跡預測影響因素多等問題,提出一種優(yōu)化的CNN-BiLSTM神經網絡多任務學習模型進行聯(lián)合學習,將這兩任務認為是相關性任務。
通過對3組不同實驗數據結果分析:這兩個任務準確性都有提高,且降低了過擬合風險,體現(xiàn)出文中方法的有效性與普適性。該方法可為船舶避碰,海上交通監(jiān)管起到有效輔助作用。同時為此類問題提供了新的研究思路,即多任務學習方法。但因數據原因,對時間間隔取樣相對較大,可根據具體情況取更小的時間間隔;且對軌跡預測也可考慮進行多步預測,預測更長時間軌跡進而用于航線的規(guī)劃。