王文標(biāo), 董貴平, 汪思源, 田志遠(yuǎn), 杜佳璐
(大連海事大學(xué)船舶電氣工程學(xué)院, 大連 116026)
隨著云監(jiān)控技術(shù)以及傳感器技術(shù)的不斷進(jìn)步,船舶的物理信息、運(yùn)動(dòng)信息及航跡行為信息等大量信息被存儲(chǔ),這些信息被廣泛應(yīng)用在船舶異常行為檢測、提高船舶監(jiān)控效率及預(yù)防航行事故。對(duì)船舶航跡進(jìn)行預(yù)測研究,預(yù)測船舶在未來時(shí)刻的航速與航跡等行為信息,對(duì)加強(qiáng)海上交通監(jiān)管和預(yù)防海上航行事故發(fā)生具有重要意義。
目前,傳統(tǒng)的船舶航行行為預(yù)測方法有:卡爾曼濾波算法[1-3]、灰色模型[4]、支持向量機(jī)[5]、馬爾科夫模型[6]等,其中支持向量機(jī)在有限樣本情況下能得出較高的預(yù)測精度但在大數(shù)據(jù)量問題中的表現(xiàn)欠佳;其他方法都需要建立船舶運(yùn)動(dòng)學(xué)方程,而多變的海況條件一定程度上加大了模型的復(fù)雜度,影響模型的預(yù)測精度。隨著神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,更多的學(xué)者傾向于使用神經(jīng)網(wǎng)絡(luò)預(yù)測船舶航行行為[7-10]。但是,上述算法均采用單一全互連神經(jīng)網(wǎng)絡(luò)預(yù)測模型,隨著船舶預(yù)測問題難度的增加,高維輸入和大數(shù)據(jù)量等復(fù)雜問題影響著神經(jīng)網(wǎng)絡(luò)的最終結(jié)構(gòu),過大或較小的網(wǎng)絡(luò)結(jié)構(gòu)都會(huì)影響網(wǎng)絡(luò)的預(yù)測精度。
為使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)更加簡潔并進(jìn)一步提升船舶航跡預(yù)測精度,現(xiàn)引入腦功能分區(qū)模塊化設(shè)計(jì)理念(分而治之)搭建神經(jīng)網(wǎng)絡(luò)船舶航跡航速預(yù)測模型,首先,使用歸一化互信息與專家知識(shí)將船舶航行行為預(yù)測任務(wù)分解為航速與航跡兩個(gè)獨(dú)立的子任務(wù);其次,將子任務(wù)傳輸?shù)紼lman子網(wǎng)絡(luò)與PSO-RBF子網(wǎng)絡(luò)中學(xué)習(xí);最后,將學(xué)習(xí)結(jié)果集成,從而完成船舶航跡航速的預(yù)測。
如圖1所示,模塊化神經(jīng)網(wǎng)絡(luò)旨在模擬人腦功能分區(qū)的模塊化架構(gòu),由多個(gè)子網(wǎng)絡(luò)組成,各子網(wǎng)絡(luò)分別學(xué)習(xí)總?cè)蝿?wù)中的相應(yīng)獨(dú)立子任務(wù),旨在模擬大腦“分而治之”的方法來提高神經(jīng)網(wǎng)絡(luò)處理復(fù)雜任務(wù)的綜合性能[11-14]。
圖1 模塊化神經(jīng)網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure diagram of modular neural network system
1.1.1 任務(wù)分解
將一個(gè)難以學(xué)習(xí)的任務(wù)分解成多個(gè)容易學(xué)習(xí)的子任務(wù)是實(shí)現(xiàn) “分而治之” 的前提,文中運(yùn)用歸一化互信息分析所獲取的船舶數(shù)據(jù)中待選輸入變量與預(yù)測變量間的非線性關(guān)系,計(jì)算出與預(yù)測變量相關(guān)性較大的輸入變量;然后, 基于專家知識(shí)刪除掉與預(yù)測變量無關(guān)或相關(guān)性較低的輸入變量, 最終確定輸入變量的選取,完成任務(wù)的分解。
1.1.2 子網(wǎng)絡(luò)
子網(wǎng)絡(luò)的學(xué)習(xí)能力詮釋了整個(gè)神經(jīng)網(wǎng)絡(luò)的性能,子網(wǎng)絡(luò)對(duì)子任務(wù)的學(xué)習(xí)就相當(dāng)于整個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)任務(wù)進(jìn)行訓(xùn)練的過程。在實(shí)際應(yīng)用中,子網(wǎng)絡(luò)的建模精度和建模速度是受到重點(diǎn)關(guān)注的兩大優(yōu)化目標(biāo)。
1.1.3 輸出整合
MNN采用組合學(xué)習(xí)模式,分為子網(wǎng)絡(luò)學(xué)習(xí)與集成模塊學(xué)習(xí)。其輸出模塊對(duì)各子網(wǎng)絡(luò)的集成公式為
(1)
(2)
互信息能夠驗(yàn)證變量間是否存在關(guān)系以及關(guān)系的強(qiáng)弱的一種信息度量方式。設(shè)X={x1,x2,…,xk},則X的熵為
(3)
式(3)中:p(xk)為xk的概率密度。對(duì)于兩個(gè)變量(X,Y),聯(lián)合熵公式為
(4)
式(4)中:p(xk,yl)為xk和yl的聯(lián)合概率密度函數(shù)。互信息用熵與聯(lián)合熵的關(guān)系可表示為
I(X,Y)=H(X)+H(Y)-H(X,Y)
(5)
原始樣本數(shù)據(jù)間數(shù)量級(jí)差別較大易引起預(yù)測誤差,對(duì)數(shù)據(jù)的原始樣本進(jìn)行歸一化處理是模型預(yù)測的前提。歸一化互信息(normalized mutual information,NMI)是將互信息縮放到[0,1],不但抵消了不同量綱和取值范圍的影響,還保留了原始樣本間存在的關(guān)系。其公式為
NMI(X,Y)=2I(X,Y)/[H(X)+H(Y)]
(6)
子網(wǎng)絡(luò)選用對(duì)歷史狀態(tài)數(shù)據(jù)敏感的Elman神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測船舶航跡。同時(shí),因?yàn)镽BF神經(jīng)網(wǎng)絡(luò)較強(qiáng)的非線性映射能力,可用于訓(xùn)練和預(yù)測船舶航速[15]。
RBF神經(jīng)網(wǎng)絡(luò)共為3層,如圖2所示。設(shè)其網(wǎng)絡(luò)結(jié)構(gòu)為s-m-n(s為輸入層節(jié)點(diǎn)數(shù)、m為隱含層節(jié)點(diǎn)數(shù)、n為輸出層節(jié)點(diǎn)數(shù)),則第v個(gè)輸出節(jié)點(diǎn)的輸出為
(7)
(8)
式(8)中:δi為激活函數(shù)的擴(kuò)展寬度[13]。文中使用減法聚類算法與誤差反饋相結(jié)合的方法確定隱含層神經(jīng)元個(gè)數(shù),所構(gòu)建的 RBF神經(jīng)網(wǎng)絡(luò)能以緊湊的結(jié)構(gòu)獲取較好的非線性映射能力。
圖2 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Neural network structure of RBF
2.1.1 粒子群優(yōu)化算法
粒子群優(yōu)化算法是近年來發(fā)展起來的一種算法,該算法具有結(jié)構(gòu)簡單、精度高、收斂速度快、全局搜索能力強(qiáng)等優(yōu)點(diǎn)[16]。
在粒子群優(yōu)化算法中,每個(gè)粒子都代表問題的一個(gè)可能的解決方案。粒子的共同特征表現(xiàn)為位置、速度和適應(yīng)度值。每個(gè)粒子通過尋找適應(yīng)度極值來更新自身的位置和速度。適應(yīng)度極值主要包括個(gè)體極值Pbest和全局極值Gbest。通過適應(yīng)度函數(shù)可以計(jì)算出粒子的適應(yīng)度值,從而判斷粒子的優(yōu)劣。在發(fā)現(xiàn)Pbest和Gbest后,PSO確定了每個(gè)粒子的速度和距離。
(9)
式(9)中:ω稱為慣性因子;C1和C2為加速常數(shù);R1和R2一般取[0,1]上的隨機(jī)數(shù)。文中主要通過PSO算法優(yōu)化RBF網(wǎng)絡(luò)隱含層的學(xué)習(xí)參數(shù),這樣能夠提高RBF網(wǎng)絡(luò)的預(yù)測性能。
2.1.2 減法聚類算法與誤差反饋確定隱含層神經(jīng)元
首先通過減法聚類算法確定隱含層初始神經(jīng)元個(gè)數(shù)。通過減法聚類思想計(jì)算每個(gè)樣本數(shù)據(jù)的密度值De,計(jì)算公式為
(10)
式(10)中:ra為聚類半徑;Xi與Xj為q維空間中的p個(gè)數(shù)據(jù)點(diǎn)。為避免在已有聚類中心相鄰點(diǎn)出現(xiàn)新的聚類中心,通過式(11)對(duì)數(shù)據(jù)點(diǎn)密度進(jìn)行修正:
(11)
式(11)中:Dem為第m個(gè)數(shù)據(jù)點(diǎn)的密度指標(biāo);rb為一個(gè)密度指數(shù)函數(shù)顯著降低的鄰域。為防止相似距離的聚類中心出現(xiàn),一般選擇rb=1.5ra。
初始神經(jīng)元確定后通過訓(xùn)練集樣本中的最大誤差來判斷隱含層增加神經(jīng)元的依據(jù)。設(shè)ep為第p個(gè)樣本的當(dāng)前網(wǎng)絡(luò)輸出誤差,其中yp為網(wǎng)絡(luò)預(yù)測值,op為網(wǎng)絡(luò)實(shí)際值,p=1,2,…,P,P為訓(xùn)練樣本個(gè)數(shù),計(jì)算公式為
ep=yp-op
(12)
由此得到誤差向量e=[e1,e2,e3,…,ep]T,確定最大誤差所在位置為
emax=max(e)
(13)
pmax=Index(emax)
(14)
式中:emax為誤差向量中最大值,當(dāng)?shù)趐個(gè)樣本所對(duì)應(yīng)的實(shí)際輸出與預(yù)測輸出誤差最大且最大誤差大于平均誤差, 則認(rèn)為網(wǎng)絡(luò)對(duì)第p個(gè)樣本的學(xué)習(xí)不充分。因此新增一個(gè) RBF 神經(jīng)元對(duì)當(dāng)前樣本重新學(xué)習(xí),平均誤差公式為
(15)
當(dāng)emax≤emean或達(dá)到期望訓(xùn)練精度時(shí),則認(rèn)為網(wǎng)絡(luò)構(gòu)建完成。新神經(jīng)元增加后其擴(kuò)展寬度進(jìn)行如下改變:
δm=0.2min[dist(cm,cp≠m)]
(16)
當(dāng)最大誤差小于平均誤差或達(dá)到期望訓(xùn)練精度時(shí),則認(rèn)為網(wǎng)絡(luò)構(gòu)建完成。
Elman神經(jīng)網(wǎng)絡(luò)擁有一層傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(back propagation,BP)不具備的承接層,如圖3所示,通過承接層將上一時(shí)刻輸出返回到隱含層使其具有記憶功能[18]。這種構(gòu)造使得Elman神經(jīng)網(wǎng)絡(luò)在處理動(dòng)態(tài)信息、預(yù)測時(shí)間序列等問題時(shí),相較于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)更為容易。因此,選取其對(duì)船舶航跡進(jìn)行建模。其數(shù)學(xué)表達(dá)式為
y(t)=g(ω3x(t))
(17)
x(t)=f[ω1u(t)+ω2x(t-1)]
(18)
u(t)=x(t-1)
(19)
式中:y、x、u分別為輸出層、輸入層、承接層向量;ω1、ω2、ω3分別為各層間的權(quán)值;f()為隱含層傳遞函數(shù);g()為輸出層傳遞函數(shù)。
圖3 Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Neural network structure of Elman
2.2.1 動(dòng)態(tài)增長型Elman神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)
Elman神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元個(gè)數(shù)的選取影響著網(wǎng)絡(luò)的性能,神經(jīng)元太多或太少都會(huì)影響網(wǎng)絡(luò)的性能,如何選取隱含層神經(jīng)元個(gè)數(shù)仍然是一個(gè)尚待解決的問題。使用減法聚類算法確定隱含層初始神經(jīng)元個(gè)數(shù),在此基礎(chǔ)上通過判斷訓(xùn)練精度是否滿足性能函數(shù)來動(dòng)態(tài)增加隱含層神經(jīng)元個(gè)數(shù)。
設(shè)t時(shí)刻網(wǎng)絡(luò)的誤差為e(t),其公式為
ep(t)=yp(t)-op(t)
(20)
式(20)中:yp(t)為t時(shí)刻網(wǎng)絡(luò)預(yù)測值;op(t)為t時(shí)刻網(wǎng)絡(luò)實(shí)際值;p為輸出神經(jīng)元個(gè)數(shù),p=1。
網(wǎng)絡(luò)性能函數(shù)選取均方誤差,公式為
(21)
神經(jīng)元δ動(dòng)態(tài)增長公式為
(22)
式(22)中:γ為一個(gè)極小的正數(shù);Fix()為取整函數(shù)。如式(22)所示,隨著MSE的動(dòng)態(tài)變化,神經(jīng)元δ的個(gè)數(shù)也在動(dòng)態(tài)增加。
將平均絕對(duì)誤差(mean absolute error,MAE)與均方根誤差(root mean squared error,RMSE)作為網(wǎng)絡(luò)精度的評(píng)價(jià)標(biāo)準(zhǔn),其公式為
(23)
(24)
式中:Y(i)為預(yù)測值;y(i)為實(shí)際值。
使用大連海事大學(xué)“育鯤輪”訓(xùn)練船真實(shí)數(shù)據(jù)集,“育鯤輪”船長116 m,船寬18 m,MMSI號(hào)為412701000,呼號(hào)為BQHZ;選取航速10~15 kn(1 kn=1.852 km/h)的數(shù)據(jù),并要求數(shù)據(jù)發(fā)送間隔為10 s,以此保證船舶航行動(dòng)態(tài)時(shí)間序列數(shù)據(jù)的等時(shí)間間隔要求。
通過歸一化互信息與專家知識(shí)選取航速、航向、船舶位置(經(jīng)度、緯度)與船舶吃水作為輸入變量;選取230組數(shù)作為建模數(shù)據(jù)并做歸一化,前200組用于網(wǎng)絡(luò)訓(xùn)練,30組用于網(wǎng)絡(luò)預(yù)測。圖4為航速預(yù)測結(jié)果,圖5為航速預(yù)測誤差。航速訓(xùn)練過程中神經(jīng)元數(shù)增長情況如圖6所示,初始的6個(gè)神經(jīng)元為減法聚類算法計(jì)算的結(jié)果,在此基礎(chǔ)上,基于誤差反饋的自增長方法將網(wǎng)絡(luò)神經(jīng)元數(shù)目最終確定為8個(gè)。
圖4 航速預(yù)測結(jié)果Fig.4 Speed prediction results
如表1所示,模塊化神經(jīng)網(wǎng)絡(luò)的航速最小預(yù)測誤差為0.007 1 kn,最大誤差為0.085 5 kn,RMSE值為0.001 7,MAE值為0.030 1;BP神經(jīng)網(wǎng)絡(luò)的航速最小預(yù)測誤差為0.052 9 kn,最大誤差為0.122 3 kn,RMSE值為0.005 7,MAE值為0.072 4;RBF神經(jīng)網(wǎng)絡(luò)的航速最小預(yù)測誤差為0.005 0 kn,最大誤差為0.119 6 kn,RMSE值為0.004 8,MAE值為0.064 9。
圖7為航跡預(yù)測結(jié)果,圖8為經(jīng)度與緯度的預(yù)測誤差,圖9為經(jīng)度與緯度訓(xùn)練過程中神經(jīng)元的增長情況,與航速預(yù)測神經(jīng)元增長情況有所不同的是,航速預(yù)測神經(jīng)元為+1增長,航跡預(yù)測神經(jīng)元?jiǎng)t根據(jù)式(22)動(dòng)態(tài)增長。
圖5 航速預(yù)測誤差Fig.5 Error of speed prediction
圖6 航速訓(xùn)練過程神經(jīng)元增長曲線Fig.6 Neuron growth curve during speed training
表1 航速預(yù)測結(jié)果對(duì)比
圖7 航跡預(yù)測結(jié)果Fig.7 Track prediction results
如表2所示,模塊化神經(jīng)網(wǎng)絡(luò)的航跡預(yù)測隱含層神經(jīng)元個(gè)數(shù)較少且網(wǎng)絡(luò)性能最好,全互連BP神經(jīng)網(wǎng)絡(luò)與全互連RBF神經(jīng)網(wǎng)絡(luò)性能達(dá)到與MNN神經(jīng)網(wǎng)絡(luò)相似精度所需的神經(jīng)元個(gè)數(shù)較多,網(wǎng)絡(luò)結(jié)構(gòu)較為冗余。
圖8 航跡預(yù)測誤差Fig.8 Track prediction error
圖9 航跡訓(xùn)練過程神經(jīng)元增長曲線Fig.9 Neuron growth curve during track training
表2 航跡預(yù)測結(jié)果對(duì)比
綜合對(duì)比MNN、BP與RBF三種神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果與隱含層神經(jīng)元個(gè)數(shù),MNN網(wǎng)絡(luò)結(jié)構(gòu)更加緊湊,綜合性能優(yōu)于BP與RBF神經(jīng)網(wǎng)絡(luò),驗(yàn)證了本文方法的預(yù)測精確性。
為獲得更高精度的船舶航行行為預(yù)測結(jié)果,借鑒模塊化神經(jīng)網(wǎng)絡(luò)“分而治之”這一設(shè)計(jì)理念完成了對(duì)航跡與航速的同步、準(zhǔn)確預(yù)測并得出以下結(jié)論。
(1)使用船舶真實(shí)數(shù)據(jù)進(jìn)行預(yù)測模型對(duì)比實(shí)驗(yàn),在預(yù)測精度上,MNN比全互連RBF神經(jīng)網(wǎng)絡(luò)與全互連BP神經(jīng)網(wǎng)絡(luò)準(zhǔn)確性更高。
(2)在神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu)上,MNN的網(wǎng)絡(luò)結(jié)構(gòu)更加簡潔。