吳鵬程, 羅 亮
(武漢理工大學(xué) 交通學(xué)院,湖北 武漢 430063)
軌跡預(yù)測(cè)是指根據(jù)移動(dòng)對(duì)象當(dāng)前的軌跡預(yù)測(cè)出該對(duì)象未來的移動(dòng)軌跡,船舶軌跡預(yù)測(cè)是基于目標(biāo)船舶已知的歷史位置信息,對(duì)船舶在未來一段時(shí)間內(nèi)可能出現(xiàn)的位置信息進(jìn)行預(yù)測(cè),在水上交通安全監(jiān)管、船舶避碰、海事搜救等方面都具有巨大的應(yīng)用價(jià)值。
船舶在航行中會(huì)受到推進(jìn)、操舵等控制系統(tǒng)及風(fēng)、浪、海流等外部擾動(dòng)的影響,呈現(xiàn)出無規(guī)律不確定性的變化,較難利用專業(yè)知識(shí)構(gòu)建出一個(gè)合適的非線性映射關(guān)系的數(shù)學(xué)模型。船舶的運(yùn)動(dòng)具有時(shí)變、不確定、非線性及隨機(jī)的環(huán)境干擾特點(diǎn)。在船舶航行過程中,船上安裝的傳感器會(huì)采集到大量與船舶有關(guān)的航行數(shù)據(jù),這些數(shù)據(jù)是典型的時(shí)間序列。根據(jù)這些時(shí)間序列數(shù)據(jù)可直接從數(shù)值層面上進(jìn)行建模來實(shí)時(shí)預(yù)測(cè)船舶未來位置,能夠有效避免建立復(fù)雜的運(yùn)動(dòng)數(shù)學(xué)模型。目前,已有不少針對(duì)船舶軌跡預(yù)測(cè)的研究。主要的預(yù)測(cè)算法包括高斯混合模型、最小二乘法、灰色預(yù)測(cè)、神經(jīng)網(wǎng)絡(luò)、卡爾曼濾波、聚類等。羅永豪[1]采用軌跡分段和區(qū)域劃分的聚類算法將珠江三角洲的船舶自動(dòng)識(shí)別系統(tǒng)(Automatic Identification System,AIS)航線數(shù)據(jù)劃分成不同類型,將軌跡預(yù)測(cè)定義為分類問題,最后對(duì)預(yù)測(cè)算法進(jìn)行驗(yàn)證。靳曉雨[2]認(rèn)為船舶軌跡預(yù)測(cè)屬于多分類問題,根據(jù)船舶的屬性、航運(yùn)市場(chǎng)狀態(tài)和軌跡數(shù)據(jù)的聚類算法,對(duì)船舶未來的航行軌跡進(jìn)行分類預(yù)測(cè)。TONG等[3]以馬爾可夫鏈和灰度模型理論為基礎(chǔ),提出基于AIS數(shù)據(jù)的改進(jìn)型馬爾可夫模型,預(yù)測(cè)船舶在彎曲航道上的軌跡。茅晨昊等[4]依據(jù)已有的船舶航行軌跡,采用高斯過程回歸法構(gòu)建船舶軌跡預(yù)測(cè)模型,對(duì)船舶軌跡進(jìn)行仿真預(yù)測(cè)。徐婷婷等[5]依據(jù)預(yù)測(cè)船位差實(shí)現(xiàn)航跡預(yù)測(cè)的思想,構(gòu)建基于反向傳播 (Back Propagation, BP)神經(jīng)網(wǎng)絡(luò)的船舶軌跡預(yù)測(cè)模型。徐鐵等[6]針對(duì)AIS數(shù)據(jù)堵塞等原因造成的船舶軌跡誤差較大問題,改進(jìn)卡爾曼濾波算法,并基于AIS數(shù)據(jù)對(duì)系統(tǒng)狀態(tài)做最小二乘法預(yù)測(cè)船舶軌跡。PERERA等[7]針對(duì)船舶狀態(tài)和航行軌跡預(yù)測(cè)問題,提出運(yùn)用BP神經(jīng)網(wǎng)絡(luò)對(duì)船舶航行軌跡進(jìn)行預(yù)測(cè),運(yùn)用擴(kuò)展卡爾曼濾波器(Extended Kalman Filter,EKF)方法用于船舶狀態(tài)預(yù)估。當(dāng)前國內(nèi)外眾多學(xué)者大多基于AIS數(shù)據(jù)進(jìn)行航跡預(yù)測(cè)問題的研究。AIS是現(xiàn)在廣泛應(yīng)用的新型助航系統(tǒng),在船舶之間、船舶與岸端的通信與海事安全方面發(fā)揮著重要的作用。該系統(tǒng)會(huì)動(dòng)態(tài)獲取船舶相關(guān)航行數(shù)據(jù),主要包括航向、航速、經(jīng)緯度、相對(duì)距離、時(shí)刻等類型數(shù)據(jù)[8]。如果僅依靠AIS數(shù)據(jù)進(jìn)行軌跡預(yù)測(cè),不僅數(shù)據(jù)類型較為單一,無法綜合考慮更多數(shù)據(jù)與船舶軌跡的相關(guān)性影響,而且AIS數(shù)據(jù)中還存在著大量與船舶軌跡相關(guān)性較低的冗余數(shù)據(jù),直接利用其進(jìn)行預(yù)測(cè)可能會(huì)降低模型的預(yù)測(cè)精度與效率。
在對(duì)航行軌跡進(jìn)行預(yù)測(cè)時(shí)需充分考慮船舶運(yùn)動(dòng)系統(tǒng)中各狀態(tài)變量對(duì)船舶軌跡的影響,通過船上安裝的傳感器采集到比AIS數(shù)據(jù)豐富的船舶時(shí)間序列數(shù)據(jù),結(jié)合循環(huán)神經(jīng)網(wǎng)絡(luò)-長(zhǎng)短期記憶(Recurrent Neural Networks - Long Short Term Memory, RNN-LSTM),對(duì)船舶軌跡預(yù)測(cè)展開研究。
提出的船舶軌跡預(yù)測(cè)流程主要由數(shù)據(jù)預(yù)處理與神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)這兩部分組成,如圖1所示。
圖1 船舶軌跡預(yù)測(cè)流程
(1)數(shù)據(jù)預(yù)處理。首先,對(duì)船舶傳感器采集的數(shù)據(jù)進(jìn)行數(shù)據(jù)清理,清除其中的異常值與缺失值。然后,為降低數(shù)據(jù)中的大量冗余數(shù)據(jù)與噪聲的影響,簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)并提升網(wǎng)絡(luò)效率,對(duì)數(shù)據(jù)進(jìn)行相關(guān)性分析,篩選與軌跡特征相關(guān)性較高的變量,獲取與航行軌跡相關(guān)性較大的數(shù)據(jù)特征子集。
(2)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)。神經(jīng)網(wǎng)絡(luò)作為一種能夠近似逼近和自適應(yīng)的無模型方法,具有強(qiáng)大的學(xué)習(xí)能力,能夠?qū)W習(xí)和構(gòu)建非線性復(fù)雜關(guān)系的模型,比較適合規(guī)律未知或不確定的情況。在獲得數(shù)據(jù)特征子集后,采用神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)法,通過構(gòu)建的以RNN-LSTM為核心的網(wǎng)絡(luò)模型來進(jìn)行訓(xùn)練與預(yù)測(cè)。通過大量的樣本真實(shí)數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,讓模型學(xué)習(xí)其歷史船舶軌跡與未來船舶軌跡數(shù)據(jù)之間可能存在的映射關(guān)系,從而達(dá)到預(yù)測(cè)出船舶下一時(shí)刻坐標(biāo)信息的目的。下面分別對(duì)數(shù)據(jù)預(yù)處理和神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)所設(shè)計(jì)的方法和模型進(jìn)行詳細(xì)的分析和介紹。
通過各類傳感器在船舶操縱性試驗(yàn)與實(shí)際航道隨船測(cè)試中采集大量的船舶航行數(shù)據(jù),采集的數(shù)據(jù)類型主要有船舶航行狀態(tài)數(shù)據(jù)、船舶操縱數(shù)據(jù)和船舶位置,具體數(shù)據(jù)如表1所示。
表1 船舶試驗(yàn)采集數(shù)據(jù)類型
相關(guān)數(shù)據(jù)類型較多,數(shù)據(jù)類型與AIS數(shù)據(jù)相比多出橫滾、俯仰等航行狀態(tài)數(shù)據(jù)及船舶相關(guān)操縱數(shù)據(jù),因而神經(jīng)網(wǎng)絡(luò)能夠考慮到更多變量與船舶航行軌跡之間的聯(lián)系。但是較多的數(shù)據(jù)類型,可能會(huì)存在有的數(shù)據(jù)變量之間具有較高的相關(guān)性,而有的變量對(duì)軌跡變化并無影響的問題。變量之間的相關(guān)性會(huì)影響神經(jīng)網(wǎng)絡(luò)模型的性能,導(dǎo)致預(yù)測(cè)效果變差。針對(duì)這一問題,在數(shù)據(jù)預(yù)處理時(shí)增加對(duì)數(shù)據(jù)的相關(guān)性分析,通過計(jì)算數(shù)據(jù)變量間的相關(guān)系數(shù),將相關(guān)系數(shù)高的2個(gè)變量提出1個(gè),并且排除無關(guān)變量的干擾,挑選出主要特征,簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu),以此提高模型的預(yù)測(cè)效果。
數(shù)據(jù)相關(guān)性是指不同變量(度量維度)之間聯(lián)系的程度。相關(guān)性分析的原則是輸入特征變量之間的相關(guān)性越低越好,不相關(guān)更佳;而特征變量與輸出變量之間則相反,兩者之間相關(guān)性越高越好。數(shù)據(jù)相關(guān)性通常采用研究變量之間線性相關(guān)程度的量-相關(guān)系數(shù)來進(jìn)行衡量,表示為
(1)
采用相關(guān)性分析可以定量確定參數(shù)對(duì)輸出的變化有多大的影響。找出測(cè)量參數(shù)與預(yù)測(cè)輸出之間影響較大的變量。如果2個(gè)變量之間耦合越強(qiáng),相關(guān)性越高,對(duì)應(yīng)的相關(guān)系數(shù)絕對(duì)值就會(huì)越大,即:兩者間的相關(guān)系數(shù)越接近于1或-1,相關(guān)度越強(qiáng);相關(guān)系數(shù)越接近于0,相關(guān)度就越弱。采集的各數(shù)據(jù)與船舶位置之間的相關(guān)系數(shù)如圖2 所示。通過相關(guān)性分析得出:船舶航速、航向角和橫搖值是與船舶位置相關(guān)的較重要的參數(shù),對(duì)船舶位置影響較大;海拔、船舶縱傾值與船舶位置之間相關(guān)性極弱,屬于無關(guān)變量。為了壓縮網(wǎng)絡(luò)結(jié)構(gòu)并提高網(wǎng)絡(luò)的泛化能力,將輸入特征中數(shù)值小于0.1的相關(guān)性數(shù)據(jù)刪除,最終選擇航速、航向角、橫搖、舵角、轉(zhuǎn)速等與船舶位置坐標(biāo)相關(guān)性較高的特征變量。
圖2 船舶位置相關(guān)性分析
傳感器采集的大量時(shí)間序列的數(shù)據(jù)在經(jīng)過前期的數(shù)據(jù)預(yù)處理相關(guān)性分析之后,獲取到幾個(gè)與船舶位置坐標(biāo)相關(guān)性較高的特征變量。選擇將前t時(shí)刻的航速、航向角、橫搖、舵角、轉(zhuǎn)速和位置坐標(biāo)x、y的時(shí)間序列數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入,將未來時(shí)刻的船舶位置作為神經(jīng)網(wǎng)絡(luò)的輸出。神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖3所示。
圖3 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)示例
在明確神經(jīng)網(wǎng)絡(luò)的相關(guān)輸入輸出后,需要構(gòu)建合適的網(wǎng)絡(luò)模型。RNN是為更好地處理時(shí)間序列信息而設(shè)計(jì)的,是目前時(shí)間序列數(shù)據(jù)預(yù)測(cè)的常用方法。RNN的實(shí)際輸出是由存儲(chǔ)過去信息的狀態(tài)變量與當(dāng)前網(wǎng)絡(luò)的輸入所共同決定的。由于根據(jù)時(shí)間序列數(shù)據(jù)進(jìn)行預(yù)測(cè),因此,考慮將RNN應(yīng)用于船舶軌跡時(shí)間序列上的短期預(yù)測(cè)。普通的RNN在梯度計(jì)算時(shí)常會(huì)發(fā)生梯度消失現(xiàn)象及無法解決長(zhǎng)時(shí)依賴的問題。為了改進(jìn)該問題,采用LSTM網(wǎng)絡(luò)模型。LSTM是一種特殊的RNN,通過引入記憶單元和門機(jī)制,能夠有效克服普通RNN在深度學(xué)習(xí)中的梯度消失等缺陷。
最終,采用RNN-LSTM模型應(yīng)用于船舶軌跡時(shí)間序列上的預(yù)測(cè)。LSTM 單元結(jié)構(gòu)如圖4所示。每個(gè)LSTM 單元內(nèi)部包括輸入門、遺忘門、輸出門和1個(gè)記憶單元結(jié)構(gòu)Cell[9-10]。
圖4 LSTM單元結(jié)構(gòu)
設(shè)給定輸入序列xt,則輸入門、遺忘門、輸出門分別為it、ft、ot,記憶單元Ct則通過不同門控制數(shù)據(jù)的記憶和遺忘,具體表述為
(2)
式中:σ為Sigmod函數(shù);ht-1為當(dāng)下的隱藏狀態(tài);W和b分別為對(duì)應(yīng)的系數(shù)矩陣和偏差項(xiàng)。
更新后的記憶單元Ct為
(3)
式中:qt為備選的記憶單元;ct-1為現(xiàn)有記憶門。
更新后的隱藏狀態(tài)ht就是LSTM的最終輸出:
ht=ottanh(ct)
(4)
LSTM結(jié)構(gòu)在RNN-LSTM 神經(jīng)網(wǎng)絡(luò)中作為網(wǎng)絡(luò)的核心單元,整個(gè)網(wǎng)絡(luò)的預(yù)測(cè)流程就是在LSTM單元結(jié)構(gòu)的基礎(chǔ)上進(jìn)行擴(kuò)展。具體來說,輸入的時(shí)間序列為向量X,且X中含有多個(gè)特征元素,即輸入的數(shù)據(jù)流為{(X1,t1),(X2,t2),…,(Xk,tk)},對(duì)其進(jìn)行預(yù)測(cè)可描述為
[Xk+1,Xk+2,…,Xk+n]=f(Xk,Xk-1,…,Xk-m)
(5)
式中:k為開始預(yù)測(cè)時(shí)刻;n為預(yù)測(cè)的輸出步數(shù);Xk+1,Xk+2,…,Xk+n為對(duì)應(yīng)神經(jīng)網(wǎng)絡(luò)的輸出向量;m為輸入步數(shù);Xk,Xk-1,…,Xk-m為網(wǎng)絡(luò)的輸入向量。整個(gè)時(shí)間序列的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)可以看作通過RNN-LSTM網(wǎng)絡(luò)學(xué)習(xí)來近似逼近函數(shù)關(guān)系f,神經(jīng)網(wǎng)絡(luò)成為輸入輸出的非線性函數(shù)。上述時(shí)間序列預(yù)測(cè)的n步輸出可以通過一個(gè)不斷迭代的過程來進(jìn)行實(shí)現(xiàn),如圖5所示。
其過程即為
Xk+1=f(X1,X2,…,Xk)
Xk+2=f(X2,X3,…,Xk,Xk+1)
Xk+3=f(X3,X4,…,Xk,Xk+1,Xk+2)
?
Xk+n=f(Xn,Xn+1,…,Xk+n-2,Xk+n-1)
圖5 時(shí)間序列預(yù)測(cè)過程
時(shí)間序列的預(yù)測(cè)可描述為根據(jù)過去連續(xù)的k個(gè)序列向量值Xn,Xn+1,…,Xk+n-2,Xk+n-1,預(yù)測(cè)未來的第1個(gè)序列值Xk+n。船舶未來的位置正是通過時(shí)間序列上的不斷迭代向前預(yù)測(cè)得到的。
除上述方法外,還可選擇雙曲正切作為激活函數(shù),并將學(xué)習(xí)率設(shè)置為0.1。利用訓(xùn)練集上的BP算法,得到神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣。通過將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值矩陣應(yīng)用于測(cè)試集,對(duì)實(shí)際軌跡與預(yù)測(cè)軌跡進(jìn)行比較,可驗(yàn)證軌跡預(yù)測(cè)模型的準(zhǔn)確性。提出的網(wǎng)絡(luò)模型還選擇均方誤差(Mean Squared Error,MSE)作為模型預(yù)測(cè)精度的度量標(biāo)準(zhǔn)[11]。
為驗(yàn)證所提方法的實(shí)用性和有效性,選擇船舶Z形試驗(yàn)數(shù)據(jù)及船舶在實(shí)際航道航行數(shù)據(jù)對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練及驗(yàn)證。將采集的數(shù)據(jù)進(jìn)行預(yù)處理,分為訓(xùn)練數(shù)據(jù)及測(cè)試數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行歸一化處理,將船舶航行數(shù)據(jù)的前70%作為網(wǎng)絡(luò)的訓(xùn)練集,航行數(shù)據(jù)的后30%作為測(cè)試集進(jìn)行預(yù)測(cè),檢驗(yàn)?zāi)P偷臏?zhǔn)確性及泛化能力[12]。最終的訓(xùn)練及預(yù)測(cè)結(jié)果如圖6和圖7所示。
圖6 船舶Z形實(shí)際軌跡訓(xùn)練值及預(yù)測(cè)值
圖7 船舶航行軌跡訓(xùn)練值及預(yù)測(cè)值
試驗(yàn)結(jié)果表明:經(jīng)過訓(xùn)練后的船舶軌跡預(yù)測(cè)精度誤差如表2所示。由于Z形試驗(yàn)軌跡較為平滑,而實(shí)際航行軌跡彎道較多,航道環(huán)境較為復(fù)雜,因此Z形試驗(yàn)預(yù)測(cè)效果優(yōu)于實(shí)際航行軌跡。但兩者預(yù)測(cè)軌跡的結(jié)果整體上都與真實(shí)軌跡重合度較高、誤差較小。預(yù)測(cè)效果表明,所構(gòu)建的RNN-LSTM神經(jīng)網(wǎng)絡(luò)軌跡預(yù)測(cè)模型能夠?qū)崿F(xiàn)對(duì)船舶航行位置的迭代預(yù)測(cè),并且精確度較好,有著較好的實(shí)用性。
表2 數(shù)據(jù)類型及預(yù)測(cè)精度
重點(diǎn)研究船舶運(yùn)動(dòng)軌跡預(yù)測(cè)。通過對(duì)采集數(shù)據(jù)進(jìn)行預(yù)處理和相關(guān)性分析,選擇與軌跡相關(guān)性較大的特征變量,并將RNN-LSTM的時(shí)間序列神經(jīng)網(wǎng)絡(luò)作為船舶軌跡預(yù)測(cè)框架的核心。在數(shù)據(jù)與處理部分,為建立一個(gè)緊湊的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型,使用相關(guān)性分析量化輸入到輸出的重要性,提取預(yù)測(cè)所需的相關(guān)輸入特征,將篩選出的與船舶軌跡相關(guān)度較高的歷史變量及當(dāng)前的軌跡數(shù)據(jù)變量的時(shí)間序列數(shù)據(jù)作為輸入項(xiàng)。在神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)部分,為提高預(yù)測(cè)精度,選擇對(duì)非線性時(shí)間序列適應(yīng)性更佳的RNN-LSTM神經(jīng)網(wǎng)絡(luò)模型構(gòu)建軌跡預(yù)測(cè)模型,通過船舶Z形試驗(yàn)相關(guān)數(shù)據(jù)與實(shí)船實(shí)際航行數(shù)據(jù)對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并將未來的船舶軌跡數(shù)據(jù)作為輸出項(xiàng),迭代預(yù)測(cè)船舶未來時(shí)刻的位置。最終,通過預(yù)測(cè)值與實(shí)際值的對(duì)比證明所提方法的實(shí)用性和有效性,滿足船舶軌跡預(yù)測(cè)精確性與實(shí)時(shí)性的需求。
今后的工作將著重于在對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行建模時(shí),應(yīng)包含更多關(guān)于風(fēng)速和浪高等環(huán)境變化的數(shù)據(jù),考慮環(huán)境干擾力對(duì)船舶航行軌跡的影響。并且,由于神經(jīng)網(wǎng)絡(luò)屬于較典型的黑箱模型,在預(yù)測(cè)機(jī)理方面還需進(jìn)行更多的探索。