摘 要:為了提高船舶縱搖預(yù)報的精度,本文提出一種基于粒子群優(yōu)化算法和灰色模型改進(jìn)的支持向量機預(yù)報模型,首先通過灰色模型對原始縱搖數(shù)據(jù)進(jìn)行處理,再通過粒子群算法對支持向量機的參數(shù)進(jìn)行優(yōu)化,使其獲得最優(yōu)的訓(xùn)練效果以提高預(yù)測精度,最后使用大連海事大學(xué)教學(xué)試驗船”玉鯤”的實船縱搖數(shù)據(jù)對模型進(jìn)行仿真測試,實驗結(jié)果表明該模型具有較高的預(yù)測精度。
關(guān)鍵詞:支持向量機;粒子群優(yōu)化算法;縱搖預(yù)報;灰色模型
中圖分類號:U652.3 文獻(xiàn)標(biāo)識碼:A 文章編號:1006—7973(2016)10-0042-03
在船舶航行的過程中,由于船舶受到海浪、海風(fēng)等環(huán)境因素的干擾,會產(chǎn)生橫搖、縱搖、艏搖、橫蕩、縱蕩、垂蕩這6個自由度的運動,對于橫搖運動目前可以通過減搖等裝置以及其它控制方法達(dá)到緩解橫搖角的目的,但對于縱搖運動,目前還沒有有效的抑制方法,通常通過預(yù)報技術(shù)對危險時段進(jìn)行預(yù)報減少事故的發(fā)生。因此對縱搖模型的精確建模與提高縱搖預(yù)測的精度一直是船舶運動領(lǐng)域的重要研究課題。
目前國內(nèi)外有很多學(xué)者對船舶縱搖預(yù)測的方法展開了研究,Wiener等人利用統(tǒng)計預(yù)報的方法實現(xiàn)了船舶縱搖的預(yù)測、Triantafyllou等人使用卡爾曼濾波法對船舶縱搖進(jìn)行了預(yù)測、馬潔等人利用多層遞階預(yù)報模型對大型船舶進(jìn)行了縱搖的預(yù)測。
相比于上述算法,人工智能算法在船舶縱搖預(yù)測中使用較少,因此在本文中我們提出了一種基于灰色模型和粒子群優(yōu)化算法改進(jìn)的支持向量機船舶縱搖預(yù)測模型,支持向量機相比于其它神經(jīng)網(wǎng)絡(luò)具有更好的自適應(yīng)能力且在預(yù)測過程中由于遵循結(jié)構(gòu)風(fēng)險最小化原則不易陷入局部最優(yōu),此外通過優(yōu)化算法進(jìn)一步對支持向量機的預(yù)測精度進(jìn)行了提升。在整個預(yù)測模型中支持向量機用于縱搖數(shù)據(jù)的非線性回歸,灰色模型用于縱搖數(shù)據(jù)的預(yù)處理,該數(shù)據(jù)預(yù)處理方法能夠提取數(shù)據(jù)中的有效信息,緩解由于船舶自身載態(tài)以及環(huán)境的不確定性對預(yù)報精度造成的影響。此外粒子群優(yōu)化算法用于支持向量機的參數(shù)優(yōu)化使支持向量機能夠獲取最佳的訓(xùn)練效果,以提高預(yù)測精度。仿真結(jié)果證明該方法能夠有效實現(xiàn)船舶縱搖的預(yù)測,具有較高的預(yù)測精度。
1 支持向量機、灰色模型以及粒子群優(yōu)化算法的理論基礎(chǔ)
支持向量機是在1995年第一次被Vapnik提出的,與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同的是,支持向量機并非采用經(jīng)驗風(fēng)險最小化準(zhǔn)則,而是結(jié)構(gòu)風(fēng)險最小化的近似實現(xiàn)。這使得支持向量機在訓(xùn)練過程中不易陷入局部最優(yōu),因此不存在局部最小問題。此外,支持向量機基于統(tǒng)計學(xué)理論,它具有嚴(yán)格的理論基礎(chǔ)和數(shù)學(xué)基礎(chǔ),它在處理非線性回歸以及高維模式識別等問題中具有許多特有的優(yōu)勢。
灰色系統(tǒng)理論是由我國學(xué)者鄧聚龍教授于1982年提出來的,該系統(tǒng)時用于研究數(shù)量少、信息貧瘠等不確定性問題的理論方法。通過對部分已知信息的生成、開發(fā),提取有價值的信息,實現(xiàn)對系統(tǒng)運行行為、演化規(guī)律的正確描述和有效監(jiān)控。
灰色模型在處理數(shù)據(jù)時需通過以下三個步驟的處理,第一步為累加操作,第二步將累加后的數(shù)據(jù)在相應(yīng)的預(yù)測模型中進(jìn)行計算,最后通過反向累加操作實現(xiàn)數(shù)據(jù)的還原。
粒子群優(yōu)化算法(Particle Swarm Optimization, PSO)是計算智能領(lǐng)域,除了蟻群算法、魚群算法之外的一種群體智能的優(yōu)化算法,該算法最早是由Kennedy和Eberhart在1995年提出來的。在使用支持向量機對潮汐進(jìn)行預(yù)報時,我們通過粒子群優(yōu)化算法對支持向量機的參數(shù)c和g進(jìn)行優(yōu)化來獲得最佳的訓(xùn)練效果,以提高潮汐預(yù)報的精度,其中c為SVM懲罰系數(shù),g為核函數(shù)半徑。
2 支持向量機參數(shù)的選擇以及模型的確立
2.1 自回歸預(yù)測模型
本文在描述縱搖變化的過程中選用自回歸模型(Auto Regressive, AR),AR模型基于統(tǒng)計學(xué)理論,它能夠有效的處理時間序列并能夠較為清晰地描述序列的變化情況,適合于船舶縱搖預(yù)報。AR模型的表達(dá)式如下所示:
式(1)為n階AR模型的單步預(yù)測模型,記為AR(n)。n代表模型的階數(shù),
階數(shù)n在本次實驗中通過對不同階數(shù)的AR模型進(jìn)行測試確定,選取產(chǎn)生絕對誤差最小的階數(shù)確定AR模型,絕對誤差計算公式如下所示:
其中n為樣本數(shù)目,
通過對1~8階AR模型的絕對誤差進(jìn)行計算,當(dāng)AR模型的階數(shù)為2時,絕對誤差MAE=0.53,相比于其它階數(shù),該階數(shù)的AR模型在訓(xùn)練過程中的絕對誤差最小,擁有更好的預(yù)測能力,所以在本次仿真中AR模型的階數(shù)設(shè)置為2。
2.2 支持向量機參數(shù)選擇
支持向量機的參數(shù)設(shè)置對預(yù)測結(jié)果具有很大影響,一個合適的參數(shù)設(shè)置會使支持向量機具有較好的預(yù)測效果,而相反不恰當(dāng)?shù)膮?shù)設(shè)置則很可能影響其預(yù)測效果。
其中c和g的選擇是由粒子群優(yōu)化確定的,在粒子群優(yōu)化過程中c和g的取值范圍設(shè)定為[0,100],粒子群進(jìn)化代數(shù)為200,種群數(shù)量設(shè)為20,參數(shù)局部搜索能力和參數(shù)全局搜索能力分別設(shè)置為1.5和1.7,速度最大和最小值分別為5和-5。
優(yōu)化后的c選為18.89,g為1.07。在核函數(shù)以及支持向量機類型的選擇上我們分別選擇RBF核函數(shù)以及
2.3 改進(jìn)的支持向量機
該模型的結(jié)構(gòu)流程圖如圖1所示:
如圖1所示,該模型在進(jìn)行縱搖預(yù)測時首先需要獲取實船縱搖數(shù)據(jù)作為輸入,但由于縱搖在測量過程中受到船體自身載態(tài)以及環(huán)境等因素等影響,實測縱搖數(shù)據(jù)具有較高的不確定性以及測量誤差,所以該部分?jǐn)?shù)據(jù)首先經(jīng)過灰色模型AGO操作,處理后的數(shù)據(jù)相比于原始數(shù)據(jù)具有更明顯的規(guī)律性,該部分?jǐn)?shù)據(jù)可作為支持向量機輸入應(yīng)用于縱搖預(yù)報,在預(yù)報過程中通過粒子群算法對支持向量機進(jìn)行優(yōu)化,選取支持向量機的懲罰系數(shù)c和核函數(shù)半徑g,利用該值對支持向量機的訓(xùn)練模型進(jìn)行設(shè)置,之后可以獲得精度較高的縱搖的預(yù)測值,該值還需要進(jìn)行IAGO操作以還原數(shù)據(jù),得到最終的縱搖預(yù)測結(jié)果。
3 仿真結(jié)果
本文的實驗數(shù)據(jù)均取自大連海事大學(xué)教學(xué)實驗船“玉鯤”輪,數(shù)據(jù)記錄的為船舶在公海上航行時的縱搖數(shù)據(jù),記錄間隔為1s。一共選取1000個連續(xù)的縱搖數(shù)據(jù)用于本次實驗,其中500個數(shù)據(jù)作為輸入用于支持向量機的網(wǎng)絡(luò)訓(xùn)練,另500個縱搖數(shù)據(jù)用于測試和驗證模型的預(yù)測效果,對支持向量機的參數(shù)設(shè)置均選用上一章選取的值。
圖2是使用支持向量機對縱搖直接預(yù)測的結(jié)果,圖3是使用改進(jìn)支持向量機對縱搖預(yù)報的結(jié)果:
從圖2中我們可以看出,雖然使用支持向量機對縱搖直接預(yù)測基本能反映縱搖變化的趨勢,但其誤差也是相對較大的,而利用改進(jìn)的支持向量機預(yù)測的縱搖數(shù)據(jù)與實測縱搖數(shù)據(jù)的吻合程度要明顯高于用支持向量機直接預(yù)測的方法。
為了更精確地分析改進(jìn)方法在精度上的優(yōu)勢,在本文中提出了均方根誤差RMSE作為縱搖預(yù)測誤差大小的評判標(biāo)準(zhǔn),其表達(dá)式為:
其中L為縱搖在仿真中的樣本數(shù)目,y和
經(jīng)過仿真得出,支持向量機直接預(yù)測的RMSE為0.7351°,預(yù)測時間42.75s;改進(jìn)支持向量機預(yù)測的RMSE為0.6428°,預(yù)測時間67.43s;BP神經(jīng)網(wǎng)絡(luò)預(yù)測的RMSE為0.8016°,預(yù)測時間20.37s。由此可知,改進(jìn)的支持向量機相比于直接使用支持向量機進(jìn)行預(yù)測的方法雖然在預(yù)測時間上略有增加,但在精度上有了較大的提升。并且相比于其它神經(jīng)網(wǎng)絡(luò),支持向量機在預(yù)測精度上有較大的優(yōu)勢,證明該方法適用于船舶的縱搖預(yù)測。
4 結(jié)論
在船舶航行時,由于船舶自身操作的不可預(yù)知以及受到不同海況的影響,造成船舶縱搖運動復(fù)雜性和不確定性。為了能夠準(zhǔn)確預(yù)測船舶縱搖運動,本文提出了基于改進(jìn)支持向量機的船舶縱搖預(yù)報模型,通過對支持向量機建立單步預(yù)測模型,并利用灰色模型以及粒子群算法對數(shù)據(jù)以及模型參數(shù)進(jìn)行優(yōu)化提高了模型預(yù)測精度,并使用預(yù)測模型對實際船舶縱搖數(shù)據(jù)進(jìn)行建模,根據(jù)實船數(shù)據(jù)特點確定船舶縱搖數(shù)據(jù)間的預(yù)測關(guān)系,確定了支持向量機的輸入結(jié)構(gòu),并應(yīng)用模型對船舶縱搖進(jìn)行了短期的預(yù)報,驗證了模型的效果,測試證明該模型適用于船舶的縱搖預(yù)測并具有較高預(yù)測精度。
參考文獻(xiàn):
[1] 楊麗麗. 基于GM模型進(jìn)行艦船縱搖參數(shù)預(yù)測[J]. 國外電子測量技術(shù), 2013, 32(3):55-57.
[2] 馬潔. 船舶縱搖運動預(yù)報AR法與多層遞階方法比較研究[J] 中國智能自動化會議. 2009.pp1040-1047.
[3] Wiener N. Extrapolation, interpolation, and smoothing of stationary time series, with engineering applications [M]. Technology Press of the Massachusetts Institute of Technology ;, 1950.
[4] Triantafyllou M S, Bodson M B. Real Time Prediction of Marine Vessel Motions[J], Using Kalman Filtering Techniques. 1982.
[5] 馬潔, 劉小河, 李國斌,等. 大型艦船縱搖運動的多層遞階預(yù)報[J]. 船舶工程, 2006, 28(1):5-8.
[6] Cortes C, Vapnik V Support-vector networks. Machine learning [J], vol.20, no.3, pp.273-297(1995).
[7] Zhang X G, Zou Z J. Application of Wavelet Denoising in the Modeling of Ship Manoeuvring Motion[J]. Journal of Ship Mechanics, 2011, 15(6):616-621.
[8] 丁世飛, 齊炳娟, 譚紅艷. 支持向量機理論與算法研究綜述[J].電子科技大學(xué)學(xué)報,2011,40(1):2-10.
[9]鄧聚龍. 灰色預(yù)測與決策[M]. 華中理工大學(xué)出版社,1998
[10]Kennedy J, Eberhart R C. Particle Swarm Optimization [J]. Proceedings of IEEE International Conference on Neural Networks, 1995, 1942-1948.
基金項目:1.交通部應(yīng)用基礎(chǔ)研究項目2014329225010;2.遼寧省教育廳一般項目L2014214;3.中央高?;究蒲袠I(yè)務(wù)經(jīng)費項目3132016116