秦可 卜仁祥 李鐵山 劉勇 鄭力銘
摘要:為提高船舶風壓差的預測精度,使船舶能夠更快穩(wěn)定在計劃航線上以保障航行安全,提出一種基于主成分分析(principal component analysis, PCA)法和自適應粒子群優(yōu)化(self-adaptive particle swarm optimization, SAPSO)算法的船舶風壓差神經(jīng)網(wǎng)絡預測模型。該方法采用PCA法對航行數(shù)據(jù)進行預處理,然后將數(shù)據(jù)輸入由SAPSO算法優(yōu)化的BP神經(jīng)網(wǎng)絡中,改變以往通過復雜的數(shù)學建模計算風壓差的方法,提高預測的時效性和準確性。利用實船數(shù)據(jù)對模型進行船舶風壓差的實時預測仿真,結果驗證了該預測模型具有較高的可靠性。
關鍵詞: 船舶;風壓差預測;主成分分析(PCA);自適應;粒子群優(yōu)化
中圖分類號: U675.79 ? ?文獻標志碼: A
Neural network prediction model of ship leeway angle
based on PCA and SAPSO
QIN Ke, BU Renxiang, LI Tieshan, LIU Yong, ZHENG Liming
(Navigation College, Dalian Maritime University, Dalian 116026, Liaoning, China)
Abstract: In order to improve the prediction accuracy of ship leeway angle so that the ship can be stabilized on the planned route more quickly to ensure navigation safety, a neural network prediction model of ship leeway angle is proposed based on the principal component analysis (PCA) method and the self-adaptive particle swarm optimization (SAPSO) algorithm. In the method, the navigation data are preprocessed by the PCA method, and the processed data are input into the BP neural network optimized by the SAPSO algorithm. It changes the previous method of calculating the leeway angle through complex mathematical modeling, and improves the timeliness and accuracy of prediction. The real-time prediction simulation of ship leeway angle by the model is carried out with the real ship data, and the results show that the prediction model has high reliability.
Key words: ship; leeway angle prediction; principal component analysis (PCA); self-adaption; particle swarm optimization
0 引 言
隨著航運業(yè)的快速發(fā)展,船舶的航行安全和效率問題日益得到重視。船舶風壓差預測可以使船舶快速穩(wěn)定在計劃航線上,減小航跡帶寬度,對于船舶航行安全和效率都有重要的理論與現(xiàn)實意義。然而,船舶在海上的運動不但具有非線性、時滯性,而且受風、浪、流等因素影響較大,這些都增加了船舶風壓差預測的難度[1]。
在利用船舶運動模型預測風壓差的方法中,由于船舶裝載量、航速和外界環(huán)境等的變化對船舶風壓差的影響很大,難以建立船舶實時運動數(shù)學模型,且這種方法對數(shù)據(jù)源的要求較高,所以研究的船舶大多處于理想狀態(tài)[2]。張潤濤[3]通過建立風、流干擾下的船舶運動數(shù)學模型對船舶的風流壓差進行了研究,但運算過程復雜且受多種不確定干擾因素影響;余力等[4]提出運用風流壓差表,通過別爾舍茨方法求取船舶風壓差系數(shù);SUN等[5]基于經(jīng)驗公式,利用轉向前后風舷角的變化預測轉向后的風流壓差。以上方法都需要建立數(shù)學模型。20世紀80年代以來,隨著人工智能技術的快速發(fā)展,船舶風壓差預測的研究有了新方向。神經(jīng)網(wǎng)絡因其具有較強的非線性映射能力,在船海工程以及其他工程領域得到了廣泛的應用[6-8]。然而,傳統(tǒng)的BP神經(jīng)網(wǎng)絡本身存在一些缺陷:網(wǎng)絡的訓練參數(shù)的選擇具有隨機性;預測模型容易陷入局部最小值;模型的收斂速度變化不定。[9-10]專家學者[11-12]在傳統(tǒng)BP神經(jīng)網(wǎng)絡模型的基礎上引入各種人工智能優(yōu)化算法以克服其缺點,進而改善傳統(tǒng)BP模型的非線性映射能力,但這些優(yōu)化模型仍容易出現(xiàn)早熟所導致的過早收斂現(xiàn)象,搜索效率難以大幅度提高,影響了其在實際工程中的應用。主成分分析(principal component analysis,PCA)法是多元統(tǒng)計方法中的一種研究多變量間相關性的方法[13],通過線性變換去除多個相關變量的冗余信息,保留方差大的項,通過選取特征值大于1或貢獻率大的主分量作為輸入變量減少神經(jīng)網(wǎng)絡的輸入變量維數(shù)[14]。
為能夠?qū)崟r預測船舶風壓差、提高預測精度,本文提出一種基于PCA法和自適應粒子群優(yōu)化(self-adaptive particle swarm optimization,SAPSO)算法的BP神經(jīng)網(wǎng)絡模型(PCA-SAPSO-BP神經(jīng)網(wǎng)絡模型)。使用PCA法對數(shù)據(jù)特征進行提取,保留主要特征并剔除冗余信息,然后將數(shù)據(jù)導入建立的預測模型中,根據(jù)訓練集得出的映射規(guī)則輸出相應的結果。采用PCA-SAPSO-BP神經(jīng)網(wǎng)絡模型對實船的風壓差進行預測仿真,驗證了該模型預測船舶風壓差的有效性,提高了準確性和實時性。
1 船舶風壓差
船舶在風的影響下航行時會向下風方向漂移,風中航跡線與船首線的夾角稱為風壓差角[15]。風壓差角用α表示,當船舶左舷受風時α為正值,當船舶右舷受風時α為負值。
運用統(tǒng)計學求取風壓差角的經(jīng)驗公式[15]為α=K(vw/vs)1.4(sin Qw+0.15sin(2Qw))
(1)式中:K為風壓差系數(shù),(°);vw和vs分別為風速和船速,m/s;Qw為風舷角。
由式(1)可以看出,想要得出風壓差系數(shù),需要改變風速、船速、航向。船舶風壓差系數(shù)的獲取需要應用大量的實驗數(shù)據(jù)回歸得到,對數(shù)據(jù)有很高的要求且需要反復驗證。由風壓差系數(shù)引起的誤差為系統(tǒng)誤差,其大小為±(0.5°~1.0°)。
在實際的航海過程中,船舶風壓差需要駕駛人員根據(jù)公式不斷計算獲得,過程復雜且煩瑣,而且裝載量的變化也會大大增加風壓差的計算誤差,通常誤差絕對值大于3.0°。
2 算法的實現(xiàn)
2.1 PCA法
通過PCA法剔除冗余信息,減少神經(jīng)網(wǎng)絡的輸入變量維數(shù)[13]。對于數(shù)據(jù)中存在的大量重復信息,使用相似函數(shù)進行剔除。計算相鄰兩組數(shù)據(jù)的相似度,其函數(shù)為Rij=exp-1δxi-xj2
(2)
δ=ni=1(max xi-min xj)
(3)式中:xi和xj為相鄰的兩組數(shù)據(jù);Rij為相鄰兩組數(shù)據(jù)的相似度;δ為歸一化參數(shù)。如果Rij<λ(λ<1),則保留兩組數(shù)據(jù),否則刪除一組數(shù)據(jù),以此減少神經(jīng)網(wǎng)絡的數(shù)據(jù)輸入量,避免數(shù)據(jù)災難[13]。
2.2 PSO-BP算法
BP網(wǎng)絡是多層前饋神經(jīng)網(wǎng)絡,其訓練過程分為輸入信息的正向傳播和輸出誤差的反向傳播兩部分[16]。預測模型采用梯度下降法調(diào)節(jié)權值和閾值,使得誤差函數(shù)值最小。為防止模型在學習過程中出現(xiàn)過擬合現(xiàn)象導致的數(shù)值振蕩,加入動量項。同時為解決BP神經(jīng)網(wǎng)絡模型因網(wǎng)絡參數(shù)選擇不當而陷入局部最小值問題,提高收斂速度,專家學者引入了粒子群優(yōu)化(particle swarm optimization,PSO)算法。在粒子尋優(yōu)過程中首先對每個微粒子按照對應的法則進行速度和位置的初始化,在循環(huán)求解時每個微粒子通過一定的速度對個體極值和群體極值進行尋優(yōu)跟蹤,并更新自身的位置。微粒子獲得的最優(yōu)值表示個體極值,群體極值則為全部微粒子得到的最優(yōu)值。
設整個搜尋范圍內(nèi)有N個微粒子,微粒子為一個d維向量,其第i個微粒子的位置為Xi=(Xi1,Xi2,…,Xid),速度為vi=(vi1,vi2,…,vid)。第i個微粒子尋找到的最優(yōu)位置為Pi=(Pi1,Pi2,…,Pid),整個粒子群搜索到的最優(yōu)位置為Pg=(Pg1,Pg2,…,Pgd)。微粒子狀態(tài)更新如下:
vid=wvid+c1r1(Pid-Xid)+c2r2(Pid-Xid)
(4)Xid=Xid+vid
(5)式中:i=1,2,…,N;c1和c2為非負加速度常數(shù),本文c1=c2=2;w為慣性因子;r1和r2是在[0,1]上的隨機數(shù)。為改善微粒子的優(yōu)化效率,算法將每個微粒子的位置和速度進行適當限制:Xid∈(-Xmax,Xmax),vid∈(-vmax,vmax),其中Xmax和vmax均為常數(shù)。
2.3 SAPSO算法
PSO算法雖然能較快地提高模型的收斂速度,但同時也存在搜索精度低、迭代效率在末期逐漸下降等缺點。引入一種變異算子來改善PSO算法。該算子將一部分隨機變量再次隨機初始化,更新神經(jīng)網(wǎng)絡的權值和閾值,使得最優(yōu)微粒子得以跳出之前求解得出的最優(yōu)位置,算法的搜索范圍擴大。該算子增加了尋找到更優(yōu)解的概率,其實質(zhì)為在每次微粒子迭代更新后,將其再以一定的概率初始化。自適應變異算子程序如下:
if rand>c
pop(j,pos)=λ*rands(1,1)
其中:j為微粒子群規(guī)模數(shù)量;λ為微粒子群位置最大值;pos為離散的均勻隨機正整數(shù);c為正的常數(shù),通常小于1。
模型適應度函數(shù)曲線比較 ?圖1為SAPSO-BP模型和PSO-BP模型適應度函數(shù)曲線比較。基于MATLAB仿真環(huán)境,選取120組數(shù)據(jù)對傳統(tǒng)PSO-BP和SAPSO-BP模型進行訓練。模型初始參數(shù)設置為c1=c2=1.6,微粒子群規(guī)模為20,迭代訓練學習步數(shù)為100,微粒子的初始速度在[-2,2]范圍內(nèi),初始位置在[-3,3]范圍內(nèi)。對傳統(tǒng)PSO-BP和SAPSO-BP模型進行訓練。圖1中:傳統(tǒng)PSO-BP模型迭代至約35次時,其適應度值基本穩(wěn)定在1.0左右,也就是近似陷入了局部最優(yōu);SAPSO-BP模型的適應度值則持續(xù)減小,最終達到0.6。可以得出結論:PSO-BP模型的適應度值明顯比SAPSO-BP模型的大,表明了SAPSO-BP模型相對于PSO-BP模型可以更快地跳出局部最優(yōu),進而尋找到最優(yōu)解。適應度函數(shù)表達式如下:E=Yk-Ok
(6)式中:Ok為實際輸出值;Yk為預測輸出值。
2.4 SAPSO算法訓練BP神經(jīng)網(wǎng)絡
本文仿真實驗的數(shù)據(jù)為船舶的真實數(shù)據(jù),選取一段時間內(nèi)經(jīng)PCA法篩選出的船舶航向穩(wěn)定時的數(shù)據(jù),避免船舶轉向時轉船力矩對風壓差的影響,提高模型的準確性。每一時刻的數(shù)據(jù)由船舶航向、航速、風壓差角組成,其中:船舶航向和航速為輸入,風壓差角為輸出,采用雙隱含層結構,輸入層2個節(jié)點、每個隱含層7個節(jié)點、輸出層1個節(jié)點,其網(wǎng)絡模型結構設置為2-7-7-1。共選取120組數(shù)據(jù),前70組用于SAPSO-BP模型的仿真學習,后50組則用于仿真預測。該算法的實現(xiàn)步驟如下:
第一步:加載船舶航向、航速和風壓差數(shù)據(jù),并將數(shù)據(jù)歸一化,建立SAPSO-BP神經(jīng)網(wǎng)絡模型。SAPSO-BP模型的初始參數(shù)c1=c2=1.6,微粒子群規(guī)模為20,迭代訓練學習步數(shù)為100。經(jīng)過多次仿真測試,本文將每個微粒子的初始速度規(guī)定在[-2,2]范圍內(nèi),初始位置規(guī)定在[-3,3]范圍內(nèi)。
第二步:將算法中的微粒子位置設置為BP網(wǎng)絡模型的參數(shù),再由適應度函數(shù)表達式得出微粒子初始適應度值。
第三步:在網(wǎng)絡模型訓練學習過程中,每個微粒子通過更新公式進行速度和位置的更新,并根據(jù)誤差函數(shù)獲得新的適應度值。將自適應變異算子添加到PSO算法中,由變異公式進行微粒子群體極值和個體極值的更新。
第四步:誤差準則判斷。若最優(yōu)解的個體適應度值達到設置的誤差要求,或迭代次數(shù)滿足設置要求,則算法執(zhí)行下一步;若不滿足相應的準則要求,則返回第三步繼續(xù)循環(huán)求解尋優(yōu)。
第五步:SAPSO算法的計算循環(huán)結束,把求解得到的模型參數(shù)賦給BP神經(jīng)網(wǎng)絡模型。
第六步:設定BP神經(jīng)網(wǎng)絡的網(wǎng)絡參數(shù)(迭代次數(shù)為1 000,學習目標為0.000 1,學習率為0.1)。最后使用被賦予最優(yōu)參數(shù)的BP神經(jīng)網(wǎng)絡模型進行風壓差預測。
PCA-SAPSO-BP模型算法流程見圖2。
3 仿真結果與討論
將實測數(shù)據(jù)分別導入BP和SAPSO-BP預測模型中,得到各自的結果,通過對預測誤差的比較來判定預測精度。為準確衡量出不同預測模型的預測精度,將均方根誤差(EMS)和相關系數(shù)(CC)作為預測模型的性能評價指標,公式如下:EMS=nk=1(yk-y ^k)2N
(7)
CC=nk=1(yk-y -k)(y ^k-y ^ -k)nk=1(yk-y -k)2nk=1(y ^k-y ^ -k)2
(8)式中:N為預測數(shù)據(jù)的數(shù)量;yk和y -k分別為船舶風壓差的觀測值和觀測值的平均值;y ^k和y ^ -k分別為船舶風壓差的預測值和預測值的平均值。
3.1 PCA-BP模型的船舶風壓差預測
預測結果 ?如圖3所示(橫坐標預測點數(shù)表示船舶風壓差的預測樣本點數(shù)量),PCA-BP船舶風壓差預測模型雖然在一些預測點上的預測值與實測值之間的差值(預測誤差)較大,但預測值與實測值變化曲線基本吻合。網(wǎng)絡模型通過連續(xù)的數(shù)據(jù)學習,能夠?qū)W習到船舶風壓差的變化規(guī)律(說明PCA-BP神經(jīng)網(wǎng)絡對非線性擬合有較強的映射能力),但在預測末期出現(xiàn)了誤差變大的現(xiàn)象。圖4中,PCA-BP模型預測誤差絕大多數(shù)在[-0.6°,+0.6°]范圍內(nèi),但在兩個預測點上出現(xiàn)了較大的誤差,最大誤差為1.0°。由圖5可知,BP預測模型的相關系數(shù)CC=0.991 5。
3.2 PCA-SAPSO-BP模型的風壓差預測
如圖6所示,PCA-SAPSO-BP模型預測值與實際值之間的擬合情況明顯優(yōu)于PCA-BP模型,特別明顯地消除了PCA-BP模型在預測末期出現(xiàn)的系統(tǒng)誤差。由圖7可知, PCA-SAPSO-BP預測模型的預測誤差在[-0.4°,+0.4°]范圍內(nèi),誤差明顯減小。由圖8可知, PCA-SAPSO-BP預測模型的相關系數(shù)CC=0.999 3。
3.3 仿真結果分析
本仿真使用相同的實測船舶數(shù)據(jù)對模型進行訓練,得到相應的預測結果。由預測結果可知: PCA-SAPSO-BP模型的預測誤差與PCA-BP模型相比由1.0°下降到0.4°,誤差明顯減小,且誤差值相對穩(wěn)定;PCA-BP模型和PCA-SAPSO-BP模型的均方根誤差分別為0.379 6°和0.135 0°,經(jīng)計算PCA-SAPSO-BP模型的預測精度比PCA-BP模型的提高了64.4%。
為進一步驗證優(yōu)化模型的有效性,在相同條件下對幾種不同的神經(jīng)網(wǎng)絡模型進行仿真,得到各自的結果。由表1可知,PCA-SAPSO-BP模型比其他模型的預測精度高。
4 結論與展望
本文建立一種基于主成分分析(PCA)的改進BP網(wǎng)絡來預測船舶風壓差。該算法將自適應粒子群用于BP模型參數(shù)的優(yōu)化,然后輸入經(jīng)PCA法篩選出的數(shù)據(jù)。此方法克服了傳統(tǒng)BP神經(jīng)網(wǎng)絡模型易于陷入局部最優(yōu)以及對模型的初始權值和閾值選擇敏感等缺點,提高了模型的全局搜索能力。通過對比仿真結果與PCA-BP、PCA-PSO-BP模型的預測結果,驗證了本文提出的PCA-SAPSO-BP船舶風壓差預測模型具有較高的預測精度,為風壓差的實時預測提供了一種新的有效途徑。
參考文獻:
[1] 章文俊, 劉正江. 基于小波神經(jīng)網(wǎng)絡的船舶運動預報[J]. 大連海事大學學報, 2013, 39(2): 25-28. DOI: 10.16411/j.cnki.issn1006-7736.2013.02.010.
[2] 甄榮, 金永興, 胡勤友, 等. 基于AIS信息和BP神經(jīng)網(wǎng)絡的船舶航行行為預測[J]. 中國航海, 2017, 40(2): 6-10.
[3] 張潤濤. 船舶風流壓差的仿真研究[D]. 大連: 大連海事大學, 2008.
[4] 余力, 朱建達. 用艦船實測風壓差表求解艦船風力系數(shù)[J]. 船舶, 2007(2): 20-24.
[5] 王飛. 空中交通流時間序列的復雜度分析[J]. 科學技術與工程, 2018, 18(33): 117-121.
[6] SUN Wuchen, BU Renxiang, LIU Yong, et al. Prediction of leeway and drift angle based on empirical formula[C]// 2018 7th International Conference on Transportation and Traffic Engineering. Beijing, 2018: 196-199.
[7] 張澤國, 尹建川, 胡江強, 等. 基于減聚類ANFIS模型的船舶橫搖運動實時預測[J]. 上海海事大學學報, 2017, 38(1): 7-11, 67. DOI: 10.13340/j.jsmu.2017.01.002.
[8] YIN Jianchuan, ZOU Zaojian, XU Feng. Sequential learning radial basis function network for real-time tidal level predictions[J]. Ocean Engineering, 2013, 57(2): 49-55.
[9] LIN Yu-Jen. Prevention of transient instability employing rules based on back propagation based ANN for series compensation[J]. International Journal of Electrical Power & Energy Systems, 2011, 33(10): 1776-1783.
[10] BASERI H, BAKHSHI-JOOYBARI M, RAHMANI B. Modeling of spring-back in V-die bending process by using fuzzy learning back-propagation algorithm[J]. Expert Systems with Applications, 2011, 38(7): 8894-8900.
[11] 范慶波, 江福才, 馬全黨, 等. 基于PSO的BP神經(jīng)網(wǎng)絡-Markov船舶交通流量預測模型[J]. 上海海事大學學報, 2018, 39(2): 22-27, 54. DOI: 10.13340/j.smu.2018.02.005.
[12] 張開生, 黃謙. 基于粒子群優(yōu)化BP神經(jīng)網(wǎng)絡的脈象識別方法[J]. 現(xiàn)代電子技術, 2018, 41(3): 96-100, 106. DOI: 10.16652/j.issn.1004-373x.2018.03.023.
[13] 陳勇, 李鵬, 張忠軍, 等. 基于PCA-GA-LSSVM的輸電線路覆冰負荷在線預測模型[J]. 電力系統(tǒng)保護與控制, 2019, 47(10): 110-119. DOI: 10.19783/j.cnki.pspc.180668.
[14] 劉珊珊, 謝曉堯, 景鳳宣, 等. 基于PCA的PSO-BP入侵檢測研究[J]. 計算機應用研究, 2016, 33(9): 2795-2798.
[15] 郭禹, 張吉平, 戴冉. 航海學[M]. 大連: 大連海事大學出版社, 2015.
[16] 潘俊虹, 王宜懷, 吳薇. 基于優(yōu)化BP神經(jīng)網(wǎng)絡的物理量回歸方法[J]. 計算機科學, 2018, 45(12): 170-176. DOI: 10.11896/j.issn.1002-137X.2018.12.027.
(編輯 賈裙平)
收稿日期: 2019- 05- 24 修回日期: 2019- 12- 13
基金項目: 國家自然科學基金(61751202,61803064); 遼寧省自然科學基金(20180550082,20170540093)
作者簡介: 秦可(1991—),男,山東聊城人,碩士研究生,研究方向為船舶避碰及船舶運動控制,(E-mail)761708730@qq.com;
卜仁祥(1973—),男,遼寧岫巖人,副教授,博士,研究方向為船舶運動控制,(E-mail)burenxiang@dlmu.edu.cn