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