蘇俊杰,蘭培真
(1.集美大學(xué)海上交通安全研究所,福建 廈門 361021;2.交通安全應(yīng)急信息技術(shù)國(guó)家工程實(shí)驗(yàn)室,福建 廈門 361021)
目前,AIS是海事分析的主要數(shù)據(jù)源,但AIS設(shè)備由于性能缺陷、信號(hào)干擾和設(shè)備故障等因素的影響,導(dǎo)致岸基設(shè)施接收到的AIS報(bào)文在解碼后通常會(huì)存在部分異常數(shù)據(jù),而在數(shù)據(jù)挖掘分析的過程中,低質(zhì)量的數(shù)據(jù)往往會(huì)帶來巨大的安全隱患[1],因此,亟需開展數(shù)據(jù)清洗和數(shù)據(jù)修復(fù)工作來提高AIS數(shù)據(jù)的可用性。
傳統(tǒng)的船舶AIS數(shù)據(jù)修復(fù)主要通過插值法實(shí)現(xiàn),文獻(xiàn)[2]基于線性插值對(duì)船舶軌跡數(shù)據(jù)進(jìn)行修復(fù),但僅對(duì)近似直線運(yùn)動(dòng)的軌跡有較好的修復(fù)表現(xiàn),對(duì)曲線運(yùn)動(dòng)軌跡的修復(fù)則存在較大誤差。文獻(xiàn)[3-7]基于多項(xiàng)式插值、三次樣條插值或Hermite插值對(duì)船舶軌跡數(shù)據(jù)進(jìn)行修復(fù),能獲得較高的修復(fù)精度,但修復(fù)誤差與AIS數(shù)據(jù)缺失程度呈正相關(guān)。采用插值法修復(fù)AIS數(shù)據(jù),不同特征變量數(shù)據(jù)的修復(fù)過程是相互獨(dú)立的,沒有考慮船位、船速、航向數(shù)據(jù)之間存在的變化約束,丟失了船舶航行狀態(tài)特征數(shù)據(jù)間的關(guān)聯(lián)性。文獻(xiàn)[8-9]基于船舶運(yùn)動(dòng)學(xué)對(duì)船舶軌跡數(shù)據(jù)進(jìn)行修復(fù),理論上可根據(jù)模擬特征變量間的關(guān)聯(lián)性對(duì)船舶軌跡數(shù)據(jù)進(jìn)行高精度的修復(fù),但AIS數(shù)據(jù)不能提供足夠的參數(shù)輸入。文獻(xiàn)[10-13]基于最小二乘向量機(jī)、隨機(jī)森林、K近鄰等機(jī)器學(xué)習(xí)模型對(duì)AIS數(shù)據(jù)進(jìn)行修復(fù),這些模型雖然能自主學(xué)習(xí)相似軌跡數(shù)據(jù)的關(guān)聯(lián)性,在大量準(zhǔn)確完整的船舶歷史航跡數(shù)據(jù)支撐下,對(duì)AIS數(shù)據(jù)有比較高的修復(fù)精度,但實(shí)際上很難獲取到準(zhǔn)確完整的模型訓(xùn)練樣本數(shù)據(jù)。文獻(xiàn)[14-15]基于卡爾曼濾波算法對(duì)實(shí)時(shí)連續(xù)變化的系統(tǒng)的動(dòng)態(tài)觀測(cè)值進(jìn)行修復(fù),可穩(wěn)定有效消除傳感器獲取數(shù)據(jù)的誤差,但相關(guān)算法的實(shí)現(xiàn)依賴于完整的動(dòng)態(tài)觀測(cè)數(shù)據(jù)和狀態(tài)相關(guān)性模型。
本文提出一種樣條卡爾曼算法(spline Kalman,SK),擬更準(zhǔn)確地修復(fù)AIS數(shù)據(jù),并利用廈門港及附近水域的歷史AIS數(shù)據(jù)驗(yàn)證算法的有效性。
卡爾曼濾波算法的基本框架如圖1所示。
給定ti-1時(shí)刻系統(tǒng)的真實(shí)值和ti時(shí)刻的系統(tǒng)狀態(tài)觀測(cè)值,即可得到ti時(shí)刻系統(tǒng)狀態(tài)的真實(shí)值,具體步驟描述如下。
步驟1 根據(jù)運(yùn)動(dòng)學(xué)模型,構(gòu)建系統(tǒng)狀態(tài)轉(zhuǎn)移模型,該模型用于描述系統(tǒng)狀態(tài)ti-1時(shí)刻至ti時(shí)刻的變化趨勢(shì)。
可見,卡爾曼濾波算法的基本思路是通過融合當(dāng)前時(shí)刻系統(tǒng)狀態(tài)的觀測(cè)值和預(yù)測(cè)值逼近系統(tǒng)的真實(shí)狀態(tài)值,僅需要系統(tǒng)前一時(shí)刻的真實(shí)狀態(tài)值,不需要其他的歷史數(shù)據(jù),占用內(nèi)存小,運(yùn)行速度快,適合用于實(shí)時(shí)連續(xù)變化系統(tǒng)的建模,因此,本文基于卡爾曼濾波算法對(duì)AIS數(shù)據(jù)進(jìn)行修復(fù)。
ti時(shí)刻的船舶航行狀態(tài)Yi可由經(jīng)度loni、緯度lati、航速vi、航向θi構(gòu)成的4維特征向量表示,即Yi=(loni,lati,vi,θi),i=1,2,…,n。大多數(shù)據(jù)修復(fù)研究將問題數(shù)據(jù)集轉(zhuǎn)化為缺失數(shù)據(jù)集,再通過插值算法對(duì)缺失數(shù)據(jù)集進(jìn)行填補(bǔ),這類方法會(huì)導(dǎo)致船舶航行狀態(tài)的觀測(cè)值存在部分缺失。為方便卡爾曼濾波算法的應(yīng)用,本文采用局部光滑性較好的分段三次樣條插值法[12]對(duì)狀態(tài)觀測(cè)值進(jìn)行初步修復(fù),以獲得較為準(zhǔn)確的狀態(tài)觀測(cè)值。
(1)
S3(t)=-Mi[(t-ti+1)3/(6Δti)]+Mi+1[(t-ti)3/(6Δti)]+[xi-
(2)
為求未知數(shù)Mi,對(duì)S3(t)求導(dǎo):
(xi+1-xi)/Δti-[(Mi+1-Mi)/6]Δti。
(3)
由此可得:
(4)
同理,在區(qū)間[ti-1,ti]可得:
S′(ti-0)=-(Δti-1/6)Mi-1+[(Δti-1)/3]Mi+(xi-xi-1)/Δti-1。
(5)
由式(4)和式(5)可得:μMi-1+2Mi+λiMi+1=di。
其中:μi=-Δti-1/(Δti-1+Δti);λi=Δti/(Δti-1+Δti);di=[6/(Δti-1+Δt)][(xi+1-xi)/Δti)-(xi-xi-1)/Δti-1]=6f[ti-1,ti,ti+1];f[ti-1,ti,ti+1]=[1/(Δti-1+Δti){[(xi+1-xi)/Δti]-[(xi-xi-1)]/Δti-1}。
令式(1)中i=1,式(2)中i=n,則端點(diǎn)方程為:
求得Mi后即可獲得該狀態(tài)特征變量x關(guān)于時(shí)間t的三次樣條擬合函數(shù)S3(t),從而可對(duì)AIS數(shù)據(jù)中缺失的狀態(tài)值進(jìn)行初步修復(fù),得到卡爾曼濾波算法的完整狀態(tài)觀測(cè)數(shù)據(jù)Zi。由于AIS數(shù)據(jù)的初步修復(fù)只考慮了單個(gè)狀態(tài)特征的變化趨勢(shì),不足以反映船舶運(yùn)動(dòng)特性,因此,本文通過構(gòu)建船舶航行的狀態(tài)轉(zhuǎn)移模型來模擬狀態(tài)特征變化的關(guān)聯(lián)性,對(duì)AIS數(shù)據(jù)進(jìn)行二次修復(fù),從而還原船舶的運(yùn)動(dòng)特性。為便于計(jì)算,將航速分解為經(jīng)度方向航速vlon=vi×cosθi和緯度方向航速vlati=vi×sinθi,則Yi=(loni,lati,vloni,vlati,θi)。由于AIS播發(fā)的時(shí)間間隔較短,因此,可認(rèn)為船舶在經(jīng)緯度方向近似做勻加速運(yùn)動(dòng),則用ti時(shí)刻的船舶航行狀態(tài)來預(yù)測(cè)ti+1時(shí)刻的狀態(tài),更新方程為:
其中:F、B、C、D表示相應(yīng)的矩陣;hlon,hlat分別為單位經(jīng)度和緯度的實(shí)際距離;aloni=(vloni+1-vloni)/Δt;alati=(vlati+1-vlat)/Δt;ωi=(θi+1-θi)/Δt。
預(yù)測(cè)協(xié)方差矩陣為:Pi+1=FPiFT+Q。其中:Pi為ti時(shí)刻對(duì)應(yīng)的協(xié)方差矩陣,衡量狀態(tài)特征間的關(guān)聯(lián)性,初始協(xié)方差矩陣P0設(shè)為對(duì)角陣,值取6;Q是用來衡量外界干擾的不確定性的過程噪聲,也設(shè)為對(duì)角陣,取值10-5。
卡爾曼增益矩陣為:Ki+1=Pi+1(Pi+1+R)-1。其中:R是觀測(cè)噪聲,用來衡量觀測(cè)值的不確定性。
為檢驗(yàn)本文提出的AIS異常數(shù)據(jù)修復(fù)算法的有效性,對(duì)廈門港及其周邊水域船舶歷史AIS數(shù)據(jù)進(jìn)行修復(fù),修復(fù)步驟如圖2所示。選取航行軌跡較為準(zhǔn)確完整的385條船舶的AIS數(shù)據(jù)作為驗(yàn)證數(shù)據(jù),取AIS原始數(shù)據(jù)中的MMSI(maritime mobile service identify)、時(shí)間、經(jīng)度、緯度、航速、航向作為觀測(cè)數(shù)據(jù),以船舶的唯一標(biāo)識(shí)MMSI為一級(jí)索引,用以區(qū)分不同的船舶軌跡數(shù)據(jù),并以時(shí)間為二級(jí)索引排序觀測(cè)數(shù)據(jù),對(duì)重復(fù)的AIS數(shù)據(jù),僅保留唯一記錄;根據(jù)經(jīng)驗(yàn)剔除明顯錯(cuò)誤數(shù)據(jù),保留缺失數(shù)據(jù),清洗后的AIS數(shù)據(jù)如圖3所示。
不同缺失率下5種數(shù)據(jù)修復(fù)算法的誤差如表1所示。數(shù)據(jù)修復(fù)用時(shí)如表2所示。
表1 數(shù)據(jù)缺失的修復(fù)誤差
表2 不同缺失率AIS數(shù)據(jù)修復(fù)用時(shí)
由表1~表2可知,在10%和20%的數(shù)據(jù)缺失率下,AIS數(shù)據(jù)修復(fù)以分段三次樣條插值的效果最優(yōu),綜合誤差分別為0.092%和0.229%,其次是樣條卡爾曼算法,綜合誤差分別為0.118%和0.243%,表明在低缺失率情況下,樣條卡爾曼算法對(duì)AIS數(shù)據(jù)的修復(fù)效果近似于三次樣條插值,優(yōu)于K近鄰法、隨機(jī)森林算法和支持向量機(jī)。而在30%、40%和50%的數(shù)據(jù)缺失率下,AIS數(shù)據(jù)修復(fù)以樣條卡爾曼算法的效果最優(yōu),綜合誤差分別為0.579%,1.086%和2.022%,而對(duì)比算法的最優(yōu)綜合誤差分別為0.687%,2.291%和3.425%。從整體上看,樣條卡爾曼算法在不同缺失率情況下對(duì)AIS數(shù)據(jù)的修復(fù)效果最好,表明系統(tǒng)狀態(tài)轉(zhuǎn)移方程對(duì)狀態(tài)變量起到了一定的約束作用。由表2可知,K近鄰法、隨機(jī)森林法、支持向量機(jī)、三次樣條插值和樣條卡爾曼算法修復(fù)不同缺失率情況下的AIS數(shù)據(jù)的平均用時(shí)分別為0.28、1.71、24.13、1.78、1.95 s,除支持向量機(jī)算法數(shù)據(jù)修復(fù)效率較低外,其他修復(fù)算法修復(fù)AIS數(shù)據(jù)耗時(shí)均較小,表明樣條卡爾曼算法能滿足AIS數(shù)據(jù)修復(fù)時(shí)效性和和準(zhǔn)確性的要求。
不同缺失率下船舶特征數(shù)據(jù)修復(fù)誤差變化曲線如圖4所示。
在低數(shù)據(jù)缺失率的情況下,5種修復(fù)算法對(duì)AIS數(shù)據(jù)均具有較好的修復(fù)效果,隨著AIS數(shù)據(jù)缺失率的不斷增加,5種修復(fù)算法的不同狀態(tài)變量的修復(fù)誤差都呈現(xiàn)上升趨勢(shì),其中,樣條卡爾曼算法的修復(fù)穩(wěn)定性最優(yōu),三次樣條插值算法次之,表明樣條卡爾曼算法適用于不同缺失率的AIS數(shù)據(jù)修復(fù),而K近鄰、隨機(jī)森林、支持向量機(jī)等機(jī)器學(xué)習(xí)算法對(duì)不同狀態(tài)變量的修復(fù)誤差增長(zhǎng)尤其明顯,可見機(jī)器學(xué)習(xí)算法對(duì)數(shù)據(jù)具有很大依賴性,在數(shù)據(jù)缺失較多的情況下對(duì)AIS數(shù)據(jù)的修復(fù)效果不佳。
針對(duì)AIS數(shù)據(jù)的修復(fù)提出樣條卡爾曼算法,該算法用分段三次樣條插值法得到的初步修復(fù)數(shù)據(jù),并將該數(shù)據(jù)作為卡爾曼濾波算法的觀測(cè)數(shù)據(jù),并考慮動(dòng)力學(xué)原理和誤差干擾因素,建立系統(tǒng)離散狀態(tài)方程,約束船舶狀態(tài)變化。檢驗(yàn)結(jié)果表明,算法能穩(wěn)定地對(duì)不同缺失率的AIS數(shù)據(jù)集進(jìn)行修復(fù),修復(fù)效率較高,能為基于AIS數(shù)據(jù)的相關(guān)研究提供相對(duì)可靠的數(shù)據(jù)基礎(chǔ)。由于卡爾曼算法會(huì)受到系統(tǒng)離散狀態(tài)方程和初次修復(fù)算法的影響,因此,在以后的研究中,需要進(jìn)一步提高狀態(tài)觀測(cè)數(shù)據(jù)的修復(fù)精度,并建立更為準(zhǔn)確的系統(tǒng)離散狀態(tài)轉(zhuǎn)移模型,使得AIS數(shù)據(jù)的修復(fù)更加完整準(zhǔn)確。