高天航,徐力,靳廉潔,2,葛彪
(1.交通運輸部規(guī)劃研究院,水運所,北京100028;2.大連海事大學(xué),交通運輸工程學(xué)院,遼寧大連116000)
隨著我國水路運輸貨物需求不斷提升,我國多個港口水域或長江等內(nèi)河水域已出現(xiàn)船舶流量巨大的情況。船舶流量巨大,船舶密度較高的水域,更容易出現(xiàn)船舶碰撞等事故問題。為此,如何根據(jù)船舶AIS數(shù)據(jù)對船舶實時軌跡進(jìn)行準(zhǔn)確跟蹤預(yù)測,在船舶交通事故發(fā)生前給出有效預(yù)警,就顯得十分重要。
國內(nèi)外關(guān)于船舶軌跡預(yù)測研究采用過:k 階馬爾科夫鏈[1],TREAD 方法[2],Ornstein-Uhlenbeck 隨機過程法[3],粒子濾波器的貝葉斯網(wǎng)絡(luò)方法[4],改進(jìn)的高斯模型[5]等多種不同的方法。而神經(jīng)網(wǎng)絡(luò)算法,作為一種非線性、自適應(yīng)信息處理算法,在與AIS 數(shù)據(jù)相結(jié)合的船舶軌跡預(yù)測中更是有所嘗試。甄榮[6]、徐婷婷[7]分別利用BP 神經(jīng)網(wǎng)絡(luò)算法對航行行為和軌跡進(jìn)行預(yù)測;雷進(jìn)宇[8]改進(jìn)傳統(tǒng)的二維軌跡預(yù)測方式,創(chuàng)新使用三維可視化模型進(jìn)行更加直觀的船舶軌跡預(yù)測;徐國慶[9]構(gòu)建Attenton-LSTM神經(jīng)網(wǎng)絡(luò)模型,采用注意力機制突出對船舶航行起關(guān)鍵作用的輸入特征,實現(xiàn)對船舶行為的預(yù)測;胡玉可[10]構(gòu)建循環(huán)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行船舶軌跡預(yù)測,設(shè)計基于對稱分段路徑距離的數(shù)據(jù)預(yù)處理方法,構(gòu)建基于門控循環(huán)單元的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,實現(xiàn)船舶位置信息精準(zhǔn)且高效的預(yù)測。綜上,已有研究鮮有考慮航艏向數(shù)據(jù)變化對預(yù)測帶來誤差影響的研究,且鮮有進(jìn)行針對性的處理。因此,在模型中進(jìn)行對應(yīng)改進(jìn)來解決航艏向數(shù)據(jù)變化所帶來的預(yù)測誤差問題顯得十分必要。
船舶AIS 數(shù)據(jù)包含靜態(tài)信息和動態(tài)信息。靜態(tài)信息主要涉及船舶的船名、IMO 號、船籍國和船舶載重噸等基本不隨時間推移而變化的數(shù)據(jù),動態(tài)信息包括某一時刻的時間(TIME)、航艏向(COG)、速度(SOG)、經(jīng)度(LONGITUDE)和緯度(LATITUDE)數(shù)據(jù)。
對于某一船舶而言,船舶AIS數(shù)據(jù)動態(tài)信息表示其一段時間內(nèi)的航行行為特征,TIME 表示其時間特性,COG表示其方向特性,SOG表示其速度特性,LONGITUDE和LATITUDE共同表示其空間屬性。將一段時間內(nèi)空間屬性所對應(yīng)的方位點按照TIME 順序連接起來,就得到該船舶在該時間內(nèi)的船舶軌跡,即該軌跡由其動態(tài)信息中的5種數(shù)據(jù)共同影響決定。一般假設(shè),船舶下一時刻的船舶AIS數(shù)據(jù)動態(tài)信息與前一時段的船舶AIS數(shù)據(jù)動態(tài)信息存在較強的關(guān)系。因此,若要對船舶航行軌跡進(jìn)行預(yù)測就需要將上述5種數(shù)據(jù)同時納入考慮。
BP 神經(jīng)網(wǎng)絡(luò)模型是一種改進(jìn)的神經(jīng)網(wǎng)絡(luò)算法,根據(jù)誤差反向傳播算法進(jìn)行訓(xùn)練,內(nèi)部架構(gòu)如圖1所示。
BP神經(jīng)網(wǎng)絡(luò)包含輸入層、隱含層和輸出層3部分。輸入層內(nèi)含n個神經(jīng)元節(jié)點,其編號為i(i=1,2,…,n),輸入向量為u=(x1,x2,…,xn)T,其中,xn代表第n個神經(jīng)元節(jié)點的輸入信息;隱含層內(nèi)含l個神經(jīng)元節(jié)點,其編號為j(j=1,2,…,l);輸出層內(nèi)含m個神經(jīng)元節(jié)點,其編號為k(k=1,2,…,m),輸出向量為v=(y1,y2,…,ym)T。ωij為輸入層神經(jīng)元與隱含層神經(jīng)元之間相連接的權(quán)重值;ωjk為隱含層神經(jīng)元與輸出層神經(jīng)元之間的連接權(quán)重;θj為隱含層神經(jīng)元閾值;θk為輸出層神經(jīng)元閾值。
圖1 BP神經(jīng)網(wǎng)絡(luò)內(nèi)部架構(gòu)圖Fig.1 Internal structure of BP neural network
BP 神經(jīng)網(wǎng)絡(luò)屬于有監(jiān)督學(xué)習(xí)算法的一種,具體訓(xùn)練步驟如下:
Step 1 初始化參數(shù)。根據(jù)系統(tǒng)要求準(zhǔn)備輸入向量u和輸出向量v,確定網(wǎng)絡(luò)輸入層和輸出層的神經(jīng)元節(jié)點個數(shù),對權(quán)重值ωij和ωjk及閾值θj和θk進(jìn)行初始化設(shè)置,選取合適的網(wǎng)絡(luò)學(xué)習(xí)速率和傳遞函數(shù)。
Step 2 輸入層至隱含層計算。代入ωij和θj,計算隱含層值Hj為
式中:f為從輸入層到隱含層的傳遞函數(shù),常用的傳遞函數(shù)包括雙曲正切、Sigmoid函數(shù)和Softmax函數(shù)等。
Step 3 隱含層至輸出層計算。運用已計算得到的Hj,ωjk和θk,通過傳遞函數(shù)計算Ok為
Step 4 誤差計算。通過單樣本訓(xùn)練方法計算誤差,每一個樣本,都要根據(jù)網(wǎng)絡(luò)計算結(jié)果回傳誤差進(jìn)行調(diào)整,誤差計算方式為
Step 5 權(quán)重值更新。根據(jù)誤差結(jié)果ek,采用梯度下降法,計算誤差與對應(yīng)參數(shù)的偏導(dǎo)數(shù),得到權(quán)重值和閾值的更新值,更新權(quán)重值ωij和ωjk,為使誤差逐漸得到改善,更新后值為ω′ij和ω′jk。其中,η為學(xué)習(xí)率,通常在0-1范圍內(nèi)取值。
Step 6 閾值更新。根據(jù)誤差值ek更新閾值θj和θk,更新后的值為θ′j和θ′k,即
式中:j=1,2,…,l,k=1,2,…,m。
Step 7 計算對比更新后的權(quán)重值和閾值的誤差,若小于預(yù)先設(shè)定的誤差,則迭代結(jié)束;否則,重復(fù)Step 2~Step 6,直到滿足誤差要求為止。
2.2.1 航艏向變動與數(shù)據(jù)變化差異處理
在AIS 數(shù)據(jù)動態(tài)信息中,航艏向(COG)代表船舶此刻航行方向,運用0~360間不同數(shù)字表示不同方向,以正北為基準(zhǔn)按順時針度量。如圖2所示,一般情況下,當(dāng)船舶航艏向從30變?yōu)?0,航艏向數(shù)據(jù)變化為60°。但存在一類特殊情況,當(dāng)船舶轉(zhuǎn)向恰巧跨越正北向,如從330 變?yōu)?0,實際船舶轉(zhuǎn)向60°,但在航艏向數(shù)據(jù)中變化幅度為300°。此種情況,使基于AIS數(shù)據(jù)動態(tài)信息預(yù)測該時刻后的船舶軌跡存在比較大的誤差。
圖2 航艏向變化示意圖Fig.2 Schematic diagram of heading change
為解決該問題,引入雙三角函數(shù),處理航艏向數(shù)據(jù),分別計算其正弦和余弦函數(shù)值,將其替代航艏向數(shù)據(jù)引入船舶軌跡預(yù)測模型。采用該處理方法的原因是,三角函數(shù)可以較準(zhǔn)確地體現(xiàn)航艏向度數(shù)的周期性變化。考慮正弦和余弦在360°周期內(nèi)均存在同一函數(shù)值對應(yīng)兩種可能度數(shù)的問題,同時引入正余弦計算,將航艏向轉(zhuǎn)換值對應(yīng)角度唯一化。設(shè)t時刻的航艏向為Ct,其對應(yīng)三角函數(shù)轉(zhuǎn)換后值為sinCt和cosCt,設(shè)為δt和?t。
2.2.2 船舶軌跡預(yù)測模型構(gòu)建
基于BP 神經(jīng)網(wǎng)絡(luò)的船舶軌跡預(yù)測模型是將AIS 歷史數(shù)據(jù)和當(dāng)前數(shù)據(jù)作為輸入變量,將未來AIS數(shù)據(jù)動態(tài)信息作為輸出變量,通過歷史數(shù)據(jù)和當(dāng)前數(shù)據(jù)與真實值相對比進(jìn)行網(wǎng)絡(luò)訓(xùn)練,建立一種歷史和當(dāng)前船舶AIS 動態(tài)信息與未來船舶AIS 動態(tài)信息的函數(shù)映射關(guān)系,預(yù)測船舶軌跡。設(shè)某一時刻t的經(jīng)度、緯度、速度和航艏向分別為αt,βt,Vt和Ct,則該時刻船舶的AIS動態(tài)信息可以表示為
考慮航艏向變動與數(shù)據(jù)變化差異,將要納入BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型的AIS動態(tài)信息轉(zhuǎn)換為
選取3個連續(xù)時刻t-2,t-1,t的AIS數(shù)據(jù)轉(zhuǎn)換信息Z(t-2),Z(t-1)和Z(t)作為輸入變量,將t+1 時刻的動態(tài)轉(zhuǎn)換信息Z(t+1)作為輸出變量,訓(xùn)練模型參數(shù),函數(shù)關(guān)系為φ,Z(t)i表示包含的第i種信息。得到船舶軌跡預(yù)測模型函數(shù)為
雖然完成了對船舶軌跡的預(yù)測,但仍需將Z(t+1)重新轉(zhuǎn)換為Y(t+1),進(jìn)行反三角函數(shù)轉(zhuǎn)換,反正弦與反余弦在360°內(nèi)均對應(yīng)兩個數(shù)值,將兩者相對照便可得到唯一航艏向。
4個反三角函數(shù)變化后的數(shù)值為
經(jīng)過BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練或預(yù)測后的δt和?t與原始數(shù)據(jù)有可能存在微小偏差,故選取反正弦值C′(t+1),C″(t+1)與反余弦值中數(shù)值相近的兩個值進(jìn)行平均處理,降低誤差的基礎(chǔ)上實現(xiàn)逆轉(zhuǎn)換,得到訓(xùn)練或預(yù)測中的航艏向C(t+1)。
需特別注意,該模型是基于分析歷史AIS數(shù)據(jù)動態(tài)信息進(jìn)行預(yù)測,為保障預(yù)測精度,需保證所獲取歷史數(shù)據(jù)時間間隔較短,相鄰AIS數(shù)據(jù)動態(tài)信息間存在著較強的關(guān)聯(lián)性和相似性。
AIS數(shù)據(jù)動態(tài)信息中的經(jīng)緯度、速度和航艏向在實際中的數(shù)值范圍不相同,經(jīng)度范圍為-180°~180°,緯度為-90°~90°,速度一般在0~20 kn,航艏向處于0~360之間。將不同數(shù)量級差距代入函數(shù)會存在預(yù)測誤差較大的情況,為解決該情況,采用離差標(biāo)準(zhǔn)化方法,將所有數(shù)據(jù)均轉(zhuǎn)化為[0,1]數(shù)據(jù),即
式中:x為AIS 數(shù)據(jù)動態(tài)信息的原始數(shù)據(jù);X為原始數(shù)據(jù)所構(gòu)成的集合;minX為原始數(shù)據(jù)中的最小值;maxX為原始數(shù)據(jù)中的最大值。由此,既消除了因數(shù)據(jù)量綱差異所帶來的誤差影響,同時保留了數(shù)據(jù)的相對關(guān)系,得到轉(zhuǎn)換后的訓(xùn)練數(shù)據(jù)x′。
通過寶船網(wǎng)(https://www.myships.com)選取某一實際船舶作為研究對象,截取其2020年6月23日某時間段的260 組船舶AIS 數(shù)據(jù)動態(tài)信息,時間間隔3 min,篩除問題數(shù)據(jù)后作為樣本數(shù)據(jù)。其中,80%作為訓(xùn)練數(shù)據(jù),20%作為驗證數(shù)據(jù),共擁有15個輸入神經(jīng)元節(jié)點,5個輸出神經(jīng)元節(jié)點。
使用Matlab R2017a 計算,得到AIS 數(shù)據(jù)動態(tài)信息的擬合結(jié)果。為驗證本文方法在模型擬合與船舶軌跡預(yù)測方面的精確度提升,同時進(jìn)行不考慮航艏向變動與數(shù)據(jù)變化差異的神經(jīng)網(wǎng)絡(luò)模型船舶軌跡預(yù)測,結(jié)果如圖3所示。
圖3 運算誤差對比圖Fig.3 Comparisons of operation error
由圖3可知:改進(jìn)方法在經(jīng)度、緯度、航速和航艏向4 個方面的均方差分別為0.00086,0.21194,0.05102 和4.65336,原始方法的均方差為0.20908,0.62978,0.55823 和779.24740;考慮航艏向變動與數(shù)據(jù)變化差異的改進(jìn)模型比不考慮該情況的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型誤差幅度大幅降低,即改進(jìn)方法誤差更小且更加穩(wěn)定。具體分析發(fā)現(xiàn),當(dāng)船舶航速出現(xiàn)波動變化時,即時高時低,對原始方法影響較大,其出現(xiàn)經(jīng)緯度、航速和航艏向誤差較大情況。
本文提出模式是一種采用歷史數(shù)據(jù)對未來軌跡預(yù)測的模型,船舶后續(xù)軌跡與預(yù)測軌跡的誤差作為評判模型預(yù)測是否準(zhǔn)確的依據(jù)。為此,在該擬合結(jié)果基礎(chǔ)上,對選取260 組船舶AIS 數(shù)據(jù)動態(tài)信息之后的3組數(shù)據(jù)進(jìn)行預(yù)測,誤差結(jié)果如表1所示。
表1 預(yù)測誤差對比Table 1 Prediction error comparison
由表1可知,本文改進(jìn)模型誤差更小,經(jīng)度、緯度、航速和航艏向的最大誤差分別-0.03°、0.04°、0.24 kn 和0.51°,傳統(tǒng)方法的最大誤差為-0.16°、-0.69°、0.97 kn 和-10.7°。
本文基于BP 神經(jīng)網(wǎng)絡(luò)模型,創(chuàng)新性的引入雙三角函數(shù)變換,將其正弦與余弦兩個值作為基礎(chǔ)數(shù)據(jù)納入BP 神經(jīng)網(wǎng)絡(luò)模型,降低航艏向和數(shù)據(jù)表示在零度方向附近變化帶來的差異。經(jīng)過實例驗證,由于改進(jìn)方法平滑處理了航艏向數(shù)據(jù)變化在零度方向附近的跨越性,誤差均方差大幅低于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型。因此,本文所提出的引入雙三角函數(shù)的方法,是一種BP 神經(jīng)網(wǎng)絡(luò)模型針對具體問題的深化,具有一定的理論意義。同時,由于其實例驗證有效降低了預(yù)測誤差,提高預(yù)測精確性,證明其在實際應(yīng)用中更具有實用意義。