姚汭成,龔德文
(長沙礦冶研究院有限責(zé)任公司 深海礦產(chǎn)資源開發(fā)利用國家重點(diǎn)實(shí)驗(yàn)室,湖南 長沙 410012)
對(duì)深海采礦海試來說,惡劣的海況可能導(dǎo)致試驗(yàn)無法進(jìn)行,甚至危及人員和設(shè)備的安全,海浪高度的準(zhǔn)確預(yù)測對(duì)深海采礦工程具有重要意義。隨著對(duì)海浪高度預(yù)測方法的研究不斷深入,機(jī)器學(xué)習(xí)[1]及深度學(xué)習(xí)[2]中很多算法已在海浪高度預(yù)測中得到應(yīng)用。
支持向量回歸[3](SVR)的原理基于支持向量機(jī)[4](SVM),是一種可靠且準(zhǔn)確的機(jī)器學(xué)習(xí)算法。目前,使用SVR及SVM對(duì)海浪高度預(yù)測已有初步研究,但對(duì)于這兩種算法在此方面的特征構(gòu)建及參數(shù)優(yōu)化尚無確切方法[5-8]。
本文首次將灰狼優(yōu)化(GWO)[9]和支持向量回歸算法(SVR)相結(jié)合應(yīng)用于海浪高度預(yù)測。本文數(shù)據(jù)源為ERA5再分析數(shù)據(jù)[10],使用GWO算法優(yōu)化SVR參數(shù),并將GWO-SVR預(yù)測效果與傳統(tǒng)SVR預(yù)測效果對(duì)比,驗(yàn)證GWO-SVR算法預(yù)測海浪高度的有效性;并進(jìn)一步將GWO-SVR預(yù)測效果與基于粒子群算法(PSO)的PSO-SVR預(yù)測結(jié)果進(jìn)行對(duì)比,驗(yàn)證GWO-SVR算法預(yù)測的準(zhǔn)確性。最后,據(jù)現(xiàn)有研究成果,建立了3種海浪高度預(yù)測數(shù)據(jù)模型構(gòu)建算法輸入特征,并用GWO-SVR算法預(yù)測海浪高度。3種數(shù)據(jù)模型預(yù)測結(jié)果證實(shí),使用較大空間范圍的海洋環(huán)境數(shù)據(jù)構(gòu)建特征訓(xùn)練算法可明顯減少預(yù)測誤差。
本文預(yù)測區(qū)域?yàn)槟成詈2傻V海試區(qū)域,區(qū)域中心位置為115.5°E,預(yù)測點(diǎn)在18.5°N(見圖1),此處離海岸較遠(yuǎn),涌浪的影響不容忽視。本文數(shù)據(jù)源為ERA5再分析數(shù)據(jù),其數(shù)據(jù)類型有:有效波高(SWH)、10 m風(fēng)速U(U10)和V(V10)分量、2 m溫度(T2M)、海面氣壓(MSL)、實(shí)際云量(TCC);數(shù)據(jù)的時(shí)間分辨率為1 h、空間分辨率為0.5°×0.5°,時(shí)間區(qū)間從2020年1月1日至2020年12月31日。
圖1 預(yù)測點(diǎn)選擇
灰狼優(yōu)化算法的優(yōu)化過程基于狼群的社會(huì)等級(jí)和捕食行為。如圖2所示,根據(jù)狼群社會(huì)等級(jí)關(guān)系,將每代適應(yīng)度最好的3個(gè)個(gè)體分別標(biāo)記為α、β、δ,剩下的個(gè)體標(biāo)記為ω。其優(yōu)化過程由每代適應(yīng)度最好的3個(gè)解指導(dǎo)完成。而SVR的原理基于SVM,可使用核函數(shù)將線性SVR擴(kuò)展為非線性SVR,使其可以進(jìn)行非線性的回歸預(yù)測。
圖2 狼群社群等級(jí)關(guān)系
本文使用基于高斯核函數(shù)非線性SVR預(yù)測海浪高度,要確定的參數(shù)包括懲罰系數(shù)C、合理誤差ε和高斯核函數(shù)寬度參數(shù)γ,目前該算法參數(shù)尋優(yōu)困難,本文使用GWO算法優(yōu)化SVR參數(shù)。GWO-SVR算法實(shí)現(xiàn)步驟如下:
1)數(shù)據(jù)預(yù)處理:輸入數(shù)據(jù)歸一化,采用式(1)對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)處理:
式中xscaled為標(biāo)準(zhǔn)化后的輸入數(shù)據(jù);x為原始輸入數(shù)據(jù);x為輸入數(shù)據(jù)均值;xstd為輸入數(shù)據(jù)標(biāo)準(zhǔn)差;
2)分割數(shù)據(jù)集:將數(shù)據(jù)集按照1∶3的比例分為測試集和訓(xùn)練集;
3)設(shè)置GWO-SVR參數(shù):設(shè)置狼群數(shù)量Pack_size、迭代次數(shù)Iterations、參數(shù)上界max_values和下界min_values;
4)適應(yīng)度定義:如式(2)所示,使用實(shí)際浪高和預(yù)測浪高的均方誤差MSE作為GWO-SVR算法適應(yīng)度函數(shù):
5)構(gòu)建GWO-SVR算法:使用Python語言構(gòu)建GWO算法,并通過scikit-learn工具包將C、ε和γ參數(shù)帶入SVR迭代訓(xùn)練。
算法的執(zhí)行流程如圖3所示。
圖3 GWO-SVR算法流程
本文使用均方根誤差RMSE、平均絕對(duì)誤差MAE和平均絕對(duì)百分比誤差MAPE作為算法預(yù)測效果評(píng)估標(biāo)準(zhǔn),RMSE、MAE、MAPE值越小,算法預(yù)測效果就越好。
式(2)~(5)中y為實(shí)際有效波高;yi為預(yù)測有效波高。
基于Python 3.8的環(huán)境下完成GWO-SVR算法構(gòu)建。海浪一般分為風(fēng)浪和涌浪。風(fēng)浪是受當(dāng)?shù)仫L(fēng)影響的波浪。當(dāng)波浪從其產(chǎn)生地傳播出去,或其相速度超過當(dāng)?shù)仫L(fēng)速時(shí),就被稱作涌浪。所以,在SVR特征構(gòu)建時(shí),不僅要考慮預(yù)測點(diǎn)受到風(fēng)影響產(chǎn)生的風(fēng)浪,還要考慮預(yù)測點(diǎn)受到環(huán)境因素產(chǎn)生涌浪的影響,更要考慮周圍各點(diǎn)海洋環(huán)境對(duì)預(yù)測點(diǎn)海浪高度的影響。因此,本文選擇有效波高(SWH)作為預(yù)測對(duì)象。
為進(jìn)一步提高算法對(duì)海浪高度的預(yù)測能力,深入探究周圍環(huán)境及海浪狀態(tài)對(duì)預(yù)測點(diǎn)有效波高預(yù)測的影響,構(gòu)建了M0、M1和M2共3種數(shù)據(jù)點(diǎn)空間分布模型構(gòu)建算法輸入特征。M0數(shù)據(jù)點(diǎn)數(shù)據(jù)僅為預(yù)測點(diǎn)當(dāng)前時(shí)刻的海洋環(huán)境參數(shù);M1數(shù)據(jù)點(diǎn)數(shù)據(jù)為預(yù)測點(diǎn)當(dāng)前時(shí)刻的海洋環(huán)境參數(shù)及距預(yù)測點(diǎn)經(jīng)緯度0.5°×0.5°內(nèi)各數(shù)據(jù)點(diǎn)的海洋環(huán)境參數(shù);M1數(shù)據(jù)點(diǎn)數(shù)據(jù)為預(yù)測點(diǎn)當(dāng)前時(shí)刻的海洋環(huán)境參數(shù)及距預(yù)測點(diǎn)經(jīng)緯度1.0°×1.0°內(nèi)各數(shù)據(jù)點(diǎn)的海洋環(huán)境參數(shù)。上述海洋環(huán)境參數(shù)包括:數(shù)據(jù)點(diǎn)當(dāng)前有效波高、10 m風(fēng)速U和V分量、2 m溫度、海面氣壓及實(shí)際云量。數(shù)據(jù)點(diǎn)分布如圖4所示。
圖4 數(shù)據(jù)點(diǎn)分布模型
通過大量預(yù)試驗(yàn)調(diào)整GWO-SVR算法初始參數(shù)范圍,當(dāng)GWO-SVR算法參數(shù)狼群個(gè)體數(shù)pack_size=10、最大迭代次數(shù)iterations=60、參數(shù)下界min_value=0.000 1、參數(shù)上界max_value=10 000.000 0時(shí),預(yù)測效果較好。然后使用訓(xùn)練集數(shù)據(jù)對(duì)傳統(tǒng)非線性SVR(C=1,GWO-SVR和PSO-SVR進(jìn)行訓(xùn)練,再使用測試集計(jì)算MSE、MAE、MAPE得到各算法的預(yù)測效果,如表1~3所示。
表1 傳統(tǒng)SVR算法預(yù)測效果
對(duì)比表1和表2數(shù)據(jù)可知:傳統(tǒng)SVR預(yù)測效果不佳,難以預(yù)測模型有效波高,預(yù)測誤差較大。取相同數(shù)據(jù)模型使用GWO-SVR進(jìn)行預(yù)測時(shí),其RMSE、MAE、MAPE值均小于傳統(tǒng)SVR方法。
表2 GWO-SVR算法預(yù)測效果
對(duì)比表2和表3數(shù)據(jù)可知,GWO-SVR方法RMSE和MAE均比PSO-SVR方法小。如選擇數(shù)據(jù)模型M2預(yù)測時(shí)間12 h的試驗(yàn),GWO-SVR方法得到的RMSE約為PSO-SVR方法的85.7%,MAE值約為PSO-SVR方法的80%。所以GWO-SVR方法的誤差相比于PSO-SVR有一定減少。又如數(shù)據(jù)模型M2預(yù)測時(shí)間15 h以及數(shù)據(jù)模型M0預(yù)測時(shí)間1 h試驗(yàn),PSO算法在逐代優(yōu)化SVR參數(shù)過程中易陷入局部最優(yōu),致使預(yù)測誤差較大。
表3 PSO-SVR算法預(yù)測效果
通過對(duì)表1~3研究及通過對(duì)GWO-SVR算法的預(yù)測結(jié)果比較可以看出,GWO-SVR算法的M0模型對(duì)有效波高預(yù)測能力較低,預(yù)測時(shí)間6 h時(shí)RMSE=0.16、MAE=0.12,失去6 h后有效波高預(yù)測能力;M1模型對(duì)有效波高的預(yù)測能力較強(qiáng),預(yù)測時(shí)間12 h時(shí)RMSE升至0.16、MAE升至0.12,12 h后有效波高預(yù)測能力不佳;M2模型對(duì)有效波高預(yù)測能力強(qiáng),預(yù)測時(shí)間15 h時(shí)RMSE升至0.16、MAE升至0.12,15 h后有效波高預(yù)測能力不佳。M2數(shù)據(jù)模型SVR參數(shù)優(yōu)化結(jié)果如表4所示。
表4 GWO-SVR算法M2數(shù)據(jù)模型參數(shù)優(yōu)化結(jié)果
根據(jù)表4優(yōu)化后的C、ε、γ參數(shù),使用訓(xùn)練好的GWO-SVR算法對(duì)2021年1月該點(diǎn)的有效波高進(jìn)行預(yù)測,未來3、6、9、12 h預(yù)測結(jié)果和實(shí)際有效波高的比對(duì)如圖5所示。
圖5 GWO-SVR有效波高預(yù)測結(jié)果
由圖5可知,未來3 h波高預(yù)測結(jié)果中,3種數(shù)據(jù)模型預(yù)測能力均表現(xiàn)較好,預(yù)測誤差較?。晃磥? h波高預(yù)測結(jié)果中,M0數(shù)據(jù)模型預(yù)測結(jié)果誤差較大,M1、M2數(shù)據(jù)模型預(yù)測效果較好;未來9 h及12 h波高預(yù)測結(jié)果中,M0和M1數(shù)據(jù)模型預(yù)測結(jié)果與真實(shí)波高的趨勢(shì)基本一致,但誤差均較大,M2數(shù)據(jù)模型對(duì)于短時(shí)間的波高預(yù)測,其雖輸入的特征過多,增加了計(jì)算時(shí)間,但對(duì)未來12 h波高有一定預(yù)測能力,仍能較好反映出有效波高受環(huán)境影響的變化結(jié)果。
基于GWO-SVR方法,建立了3種預(yù)測數(shù)據(jù)模型展開有效波高預(yù)測試驗(yàn),結(jié)果表明,GWO-SVR能顯著提高有效波高預(yù)測精度;GWO-SVR算法和PSO-SVR算法有效波高預(yù)測結(jié)果表明,GWO-SVR算法預(yù)測結(jié)果的平均誤差低于PSO-SVR算法,且不易陷入局部最優(yōu);使用較大空間范圍的海洋環(huán)境數(shù)據(jù)構(gòu)建特征訓(xùn)練GWO-SVR算法并進(jìn)行預(yù)測,可有效減少其預(yù)測誤差。