徐瑞龍 祁云嵩 石 琳
(江蘇科技大學(xué)計算機(jī)學(xué)院 江蘇 鎮(zhèn)江 212003)
海洋不僅是國際貿(mào)易和大宗貨物運(yùn)輸?shù)闹饕ǖ?,也是未來維護(hù)國家權(quán)益和安全的主要領(lǐng)域,海洋已經(jīng)成為人類生存的第二大空間。有效地對船舶航跡及時預(yù)測、跟蹤是解決海上交通的核心問題,所以對其深入研究非常有必要,而且目前對航跡狀態(tài)估計預(yù)測的研究已經(jīng)有很多。姜佰辰等[1]提出了一種基于多項式Kalman濾波的船舶軌跡預(yù)測算法,補(bǔ)償航跡定位數(shù)據(jù)信息缺失、更新較慢等問題,并基于經(jīng)緯度信息預(yù)測船舶運(yùn)動軌跡。文獻(xiàn)[2]利用以時間序列為基礎(chǔ)的軌跡數(shù)據(jù),預(yù)測船舶航行軌跡的線性運(yùn)動,在丟失部分航跡數(shù)據(jù)的情況下仍可以取得良好的預(yù)測效果。但是實(shí)際情況下,船舶航跡一般都是動態(tài)變化、非線性的,很難滿足線性需求。文獻(xiàn)[3-4]分別是通過支持向量機(jī)的方法和利用灰色模型結(jié)合馬爾可夫鏈對航行軌跡數(shù)據(jù)進(jìn)行時間序列上的預(yù)測,然而二者都需要預(yù)先通過專家知識構(gòu)建運(yùn)動學(xué)方程,面對復(fù)雜的實(shí)際航跡相對難以實(shí)現(xiàn)。喬少杰等[5]利用系統(tǒng)狀態(tài)空間模型、觀測模型,以最小均方誤差為準(zhǔn)則結(jié)合Kalman濾波,針對移動對象的行為,利用前一時刻的估計值和當(dāng)前時刻的觀測值更新對狀態(tài)變量的估計,預(yù)測出下一時刻軌跡位置。文獻(xiàn)[6]提出了一種處理函數(shù)型數(shù)據(jù)的現(xiàn)代統(tǒng)計方法,即高斯過程回歸。該方法在充分利用所給數(shù)據(jù)的前提下進(jìn)一步總結(jié)數(shù)據(jù)本身的時間、周期和增減趨勢,以此建立模型預(yù)測船舶軌跡。文獻(xiàn)[7]提出了基于高斯混合模型的軌跡預(yù)測方法,針對復(fù)雜的運(yùn)動模式利用高斯混合模型建模,并通過模型計算不同運(yùn)動模式的概率分布,將軌跡數(shù)據(jù)劃分為不同分量,實(shí)現(xiàn)準(zhǔn)確和高效的位置預(yù)測。文獻(xiàn)[8]利用AIS數(shù)據(jù)的航行軌跡特征,提出了循環(huán)神經(jīng)網(wǎng)絡(luò)——長短期記憶模型(Recurrent Neural Networks-Long Short Term Memory,RNN-LSTM),通過訓(xùn)練模型,預(yù)測未來船舶航行軌跡。
綜上所述,海域環(huán)境極其復(fù)雜,干擾的隨機(jī)性、多樣性導(dǎo)致船舶運(yùn)動狀態(tài)往往頻繁變化,狀態(tài)信息無規(guī)律可尋,難以準(zhǔn)確提取特征數(shù)據(jù)變化趨勢。另外,部分算法無法滿足時間序列要求、實(shí)時性要求,而且實(shí)時準(zhǔn)確地建立航跡數(shù)學(xué)模型極其困難,難以用簡單的模型進(jìn)行推算。本文提出基于Transformer深度學(xué)習(xí)模型結(jié)合Kalman濾波器的方法進(jìn)行航跡預(yù)測。該方法充分發(fā)揮Transformer模型突出的特征提取能力和高效的并行運(yùn)算效率[9-10],將船舶歷史航跡特征數(shù)據(jù)作為模型輸入進(jìn)行訓(xùn)練預(yù)測,同時利用Kalman濾波器對預(yù)測值進(jìn)行實(shí)時調(diào)整,實(shí)現(xiàn)最優(yōu)估計值。
傳統(tǒng)深度學(xué)習(xí)算法如RNN、LSTM,它們都是順序計算,即相關(guān)算法只能從左向右依次計算或者從右向左依次計算,這樣會導(dǎo)致兩個問題:①t時刻的計算依賴于前一時刻的值,限制了模型并行能力[11];② 計算過程的信息丟失問題,雖然LSTM算法一定程度上緩沖了這個情況,但對于超長期的依賴,LSTM還是會存在問題[12]。Transformer模型擺脫了傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[13],整個網(wǎng)絡(luò)架構(gòu)是由注意力機(jī)制組成,完全利用自注意力機(jī)制(self-Attention)和前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,FNN)對樣本進(jìn)行“自我學(xué)習(xí)”和“自我調(diào)整”,省去利用先驗(yàn)知識處理的步驟,而且其并行能力突出,高于傳統(tǒng)的RNN算法,對于航跡預(yù)測問題有一個很好的解決效果。但是Transformer的靜態(tài)預(yù)測可能無法兼顧航跡當(dāng)前值的變化,為降低其對預(yù)測結(jié)果的影響,利用Kalman增益,使用當(dāng)前值對預(yù)測值進(jìn)行實(shí)時動態(tài)修正,實(shí)現(xiàn)進(jìn)一步提高預(yù)測精度。
Transformer模型注意力機(jī)制的思想核心是計算輸入向量列表中每個樣本與該向量中所有樣本的關(guān)聯(lián)情況,并利用這種相互關(guān)系在一定程度上體現(xiàn)不同樣本的重要程度,通過這種關(guān)聯(lián)程度調(diào)整每個樣本的權(quán)重,從而獲得一個更加全局的表達(dá),不僅考慮到樣本自身,同時還將其與其他樣本的關(guān)系融入在內(nèi)。Transformer模型本質(zhì)是一個編解碼器的結(jié)構(gòu),解碼器的輸入為編碼器的輸出。編碼器由N個編碼層組成,并且每層是完全相同的,同樣對應(yīng)的解碼器也是由N個相同的解碼層構(gòu)成。圖1給出了單個編碼器和自注意力機(jī)制的結(jié)構(gòu)。
圖1 編碼器和自注意力機(jī)制
假設(shè)輸入集為X={x1,x2,…,xt,xt+1,…},其中t為時間序列{t|t=1,2,…,T},編碼器將輸入集作為一個向量列表輸入,經(jīng)過存在依賴關(guān)系的各自路徑進(jìn)入注意力層,同時通過將向量中每個樣本點(diǎn)積訓(xùn)練過程中創(chuàng)建的3個訓(xùn)練矩陣(WQ,WK,WV),為每個樣本生成三個詮釋向量,即查詢向量(Q)、鍵向量(K)、值向量(V)。注意力機(jī)制實(shí)現(xiàn)具體步驟如下。
步驟1獲取三個詮釋向量,計算式分別表示為:
(1)
步驟2為每個樣本打分,計算式表示為:
(2)
viuj=cos(vi,uj)‖vi‖2‖uj‖2
(3)
式中:v、u分別為Q、K的投影。
步驟3優(yōu)化訓(xùn)練梯度,計算式表示為:
(4)
式中:D(K)表示K向量的維度;dk為梯度因子,其值由經(jīng)驗(yàn)所得并非唯一值。
步驟4利用Softmax函數(shù)進(jìn)行標(biāo)準(zhǔn)化,并將標(biāo)準(zhǔn)化后的值與向量V進(jìn)行點(diǎn)積運(yùn)算,保證在保持對當(dāng)前樣本關(guān)注度不變的情況下,降低對不重要樣本的關(guān)注度[14],獲取自注意力機(jī)制輸出,計算式表示為:
Attention(Q,K,V)=Softmax(Opt)·V
(5)
步驟5通過殘差連接進(jìn)行歸一化處理,得出注意力層的輸出,并作為前饋神經(jīng)網(wǎng)絡(luò)的輸入。層歸一化在穩(wěn)定循環(huán)網(wǎng)絡(luò)中的隱藏狀態(tài)動態(tài)方面非常有效,可以大量減少訓(xùn)練時間而且每個樣本對應(yīng)的前饋神經(jīng)網(wǎng)絡(luò)是完全一樣的,在此層可以用并行化提高效率,使得Transformer模型效率高于傳統(tǒng)深度學(xué)習(xí)模型。
Kalman濾波是一種線性最優(yōu)濾波算法,適合于線性高斯系統(tǒng),其不要求保存過去的量測數(shù)據(jù),根據(jù)當(dāng)前數(shù)據(jù)和前一時刻數(shù)據(jù)的估值,根據(jù)系統(tǒng)狀態(tài)方程,使用Kalman增益進(jìn)行修正,預(yù)測出新的狀態(tài)估計值[15-16]。假設(shè)船舶航行軌跡在t時刻的狀態(tài)為:
X(t)=[x,y,v,α]
(6)
式中:x、y分別表示由經(jīng)緯度轉(zhuǎn)換后的直角坐標(biāo)系坐標(biāo)值;v表示航速;α表示當(dāng)前時刻對地航向。
模型狀態(tài)方程與量測方程分別為:
X(k+1)=FX(k)+Bμ(k+1)+ω(k+1)
(7)
Z(k+1)=HX(k+1)+V(k+1)
(8)
式中:X(k+1)表示航跡在k+1時刻的狀態(tài)向量;Z(k+1)表示在k+1時刻的量測向量;F為狀態(tài)轉(zhuǎn)移矩陣;B為過程噪聲或控制矩陣;H為量測矩陣或量測值系數(shù)矩陣;μ(k+1)為k+1時刻對系統(tǒng)的控制量,若當(dāng)前狀態(tài)沒有,可以為0;ω(k+1)和V(k+1)分別為過程噪聲和量測噪聲,且都為相互獨(dú)立、均值為0的高斯白噪聲。
Kalman濾波器修正步驟如下:
(9)
(10)
(11)
(12)
(13)
(14)
式中:m代表MMSI,為方便計算,將經(jīng)緯度轉(zhuǎn)換為直角坐標(biāo)系值,即x、y;則x、y、v、α、dt分別代表t時刻m號船舶的坐標(biāo)、航速、航向、時間間隔。
圖2 具體模型結(jié)構(gòu)
步驟1位置編碼,采用偶數(shù)位置進(jìn)行正弦編碼,奇數(shù)位置進(jìn)行余弦編碼;通過位置編碼解釋樣本中元素序列的順序問題[17-18],計算式如下:
(15)
(16)
式中:pos表示樣本中元素位置;i表示樣本中元素的維度;dmodel表示位置向量的維度,與整個模型的隱藏狀態(tài)維度值相同。
步驟2應(yīng)用Attention機(jī)制,計算輸入向量列表的詮釋向量Q、K相似度,并利用激活函數(shù)Softmax進(jìn)行歸一化,最后利用V進(jìn)行加權(quán)求和,從而實(shí)現(xiàn)對各個樣本合理的關(guān)注度,然后經(jīng)過線性變換和Softmax層輸出預(yù)測結(jié)果,如式(1)-式(5)所示。但是Attention機(jī)制無法避免數(shù)據(jù)本身存在的問題,航跡的歷史數(shù)據(jù)中也會存在一些偏離航道的軌跡數(shù)據(jù),這會對模型預(yù)測造成一定的誤差,故提出將數(shù)據(jù)中未偏離航道點(diǎn)跡數(shù)和總點(diǎn)跡數(shù)的占比,點(diǎn)積模型輸出,再進(jìn)行歸一化,加權(quán)求和以降低預(yù)測的偏差,計算式表示如下:
(17)
(18)
式中:nleg表示樣本向量中未偏離航道的航跡點(diǎn)數(shù);Ntr表示樣本向量的總航跡點(diǎn)數(shù);f(Q,K)表示Q、K的相似度。
步驟3多頭注意力機(jī)制,利用h個不同的線性變換對Q、K、V進(jìn)行投影,將不同的注意力機(jī)制結(jié)果拼接起來,獲取多頭注意力機(jī)制的輸出,計算式表示如下:
(19)
MulHead=Concat(head1,head2,…,headh)Wo
(20)
式中:Concat表示將多個Attention結(jié)果進(jìn)行拼接。
步驟4前饋神經(jīng)網(wǎng)絡(luò)層計算,經(jīng)過多頭注意力機(jī)制、歸一化處理后的樣本會進(jìn)入一個全連接的前饋神經(jīng)網(wǎng)絡(luò),輸出表示為:
FFN(Z)=max(0,ZW1+b1)W2+b2
(21)
式中:b表示偏置。
步驟5子層輸出,每個編碼器由兩個子層(sub)組成:多頭自注意力和前饋神經(jīng)網(wǎng)絡(luò)。每兩個子層中都會使用一個殘差連接進(jìn)行歸一化操作[19-20]。每個子層的輸出可以用式(22)表示:
sOut=LN(x+sOut(x))
(22)
(23)
B(k+1)=Z(k+1)-Z(k+1,k)
(24)
(25)
圖3 自調(diào)整Kalman濾波器
根據(jù)上述描述步驟,結(jié)合Transformer模型和Kalman濾波器的航跡預(yù)測過程,算法描述如下:
算法1基于Transformer模型和Kalman濾波預(yù)測算法
輸出:預(yù)測航跡均方誤差MSE。
1.X′=Dev_Norm(Xtrain);
2.X*=NData_to_supervised(X′);
5. fori=1 tot
6.p_t=TF_Predic(TF);
7.pVal=Kalman(p_t);
8.err[i]=getError(m,pVal);
9.init_Kalman(pVal,err[i]);
10. end
算法1中:NData_to_supervised為構(gòu)建監(jiān)督學(xué)習(xí)數(shù)據(jù)集函數(shù);Dev_Norm為離差歸一化函數(shù);TF_Predic為加入未偏離航跡權(quán)重的Tranformer模型;變量err為航跡點(diǎn)誤差值;變量p_t為Transformer模型預(yù)測值;pVal為最終預(yù)測值。
本文采用寧波市水域內(nèi)3 000組船舶AIS信息數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),并抽取其中200組作為測試數(shù)據(jù),驗(yàn)證基于Transformer模型和Kalman濾波器的航跡預(yù)測模型(下文簡稱為TK模型)的有效性。實(shí)驗(yàn)使用Python 3.5版本,基于TensorFlow 1.12實(shí)現(xiàn)本文算法。
Transformer模型參數(shù)設(shè)置:編解碼為8層;隱藏層神經(jīng)元數(shù)量hidden_size為512;batch_size為500;dk為64;dmodel為512;dropout為0.1。
Kalman模型參數(shù)設(shè)置:R=[20,0;0,20];Q=[20,0,0,0;0,20,0,0;0,0,20,0;0,0,0,20]。
實(shí)驗(yàn)的硬件條件:CPU為Intel(R) Core(TM) i7-8550U,主頻為4.0 GHz,內(nèi)存為8 GB。
算法實(shí)驗(yàn)以寧波市MMSI號為412999999的漁船為例,對其坐標(biāo)位置進(jìn)行預(yù)測,通過對比量測和預(yù)測的航跡圖,可以更直觀看出預(yù)測效果,如圖4所示。圖4(a)展示了量測航跡與預(yù)測航跡整體情況,可以明顯地看出二者航跡線幾乎重疊。圖4(b)為此航跡預(yù)測部分細(xì)節(jié)圖,圖中的量測與預(yù)測的坐標(biāo)位置點(diǎn)誤差偏移很小,證明了算法預(yù)測精度較高。
圖4 航跡圖
實(shí)驗(yàn)采用均方誤差(Mean Squared Error,MSE)和平均絕對誤差(Mean Absolute Deviation,MAD)比較LSTM模型和TK模型的預(yù)測精度。
均方誤差反映預(yù)測精度情況,計算式表示為:
(26)
平均絕對誤差反映預(yù)測值誤差實(shí)際情況,計算式表示為:
(27)
式中:n為樣本數(shù)量;m為量測值;p為預(yù)測值。
LSTM模型和TK模型的MSE和MAD預(yù)測誤差統(tǒng)計情況,如表1所示。對比兩種評估指標(biāo)情況,雖然二者的誤差處于同一量級,但TK模型的誤差相對較小,預(yù)測精度更高一些,從而也能看出Transformer模型的特征提取能力和Kalman濾波的修正能力得到很好的表現(xiàn)。
表1 LSTM模型和TK模型的均方誤差和平均絕對誤差
為了更好地比較模型預(yù)測精度,運(yùn)用定量分析法測試各算法的預(yù)測誤差、預(yù)測準(zhǔn)確率。利用訓(xùn)練好的模型,針對樣本單一特征數(shù)據(jù)(如橫坐標(biāo)位置x),對LSTM模型、Kalman模型、多項式Kalman濾波模型、Transformer模型和TK模型預(yù)測情況進(jìn)行比較,結(jié)果如圖5、圖6所示。
圖5 均方誤差對比
圖6 準(zhǔn)確率對比
圖5連續(xù)遞歸測試8幀(8個時刻),觀察其均方誤差變化趨勢。從曲線趨勢同樣可以看出TK模型的均方誤差小于其他幾個模型,而且隨著時序的積累TK模型誤差曲線趨于平穩(wěn),另外四個模型的曲線趨勢陡峭,表明TK模型的均方誤差更加穩(wěn)定。圖6分別對不同數(shù)量的航跡進(jìn)行訓(xùn)練預(yù)測比較各模型的準(zhǔn)確率,TK模型準(zhǔn)確率在92%左右浮動,明顯高于其他幾個模型。
利用預(yù)測效率比較LSTM模型和TK模型二者訓(xùn)練模型、預(yù)測目標(biāo)的時間性能,如圖7所示。LSTM模型無論是訓(xùn)練模型還是在線預(yù)測,其運(yùn)行時間相對于TK模型的時間占比大概在3~5倍之間。對于相同長度的樣本,LSTM模型因?yàn)樾蛄幸蕾?,并行運(yùn)算時無法消除樣本長度,而Transformer模型卻利用自注意力機(jī)制和前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),很好實(shí)現(xiàn)并行計算能力。
預(yù)測效率定義為:
(28)
式中:tTK、tLSTM分別表示TK模型和LSTM模型的運(yùn)行時間。
圖7 運(yùn)行時間
本文提出基于Transformer模型和Kalman濾波器的航跡預(yù)測方法。采取自注意力機(jī)制和前饋神經(jīng)網(wǎng)絡(luò)框架結(jié)構(gòu)的Transformer模型,拋棄了傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)思想,利用自注意力機(jī)制提取航跡數(shù)據(jù)特征,學(xué)習(xí)航跡規(guī)律,解決了長期依賴問題;同時利用Kalman濾波器結(jié)合量測數(shù)據(jù)對預(yù)測值進(jìn)行實(shí)時修正,從而獲取最佳估計值。實(shí)驗(yàn)比較了LSTM模型、TK模型和Kalman模型的誤差、準(zhǔn)確率、時間性能。結(jié)果表明,基于Transformer模型和Kalman濾波器對航跡預(yù)測的算法具有良好的并行特性,并且特征提取能力相對LSTM模型也有較高的提升,使得預(yù)測的準(zhǔn)確性、實(shí)時性都有良好的表現(xiàn)。