陸小敏,劉 凡,蔡麗華,李雪丁,徐 嘯
(1.河海大學(xué)海岸災(zāi)害及防護(hù)教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210098; 2.河海大學(xué)計(jì)算機(jī)與信息學(xué)院,江蘇 南京 211100;3.福建省海洋預(yù)報(bào)臺(tái),福建 福州 350003; 4.河海大學(xué)港口海岸與近海工程學(xué)院,江蘇 南京 210098)
災(zāi)害性海浪通常是海上有效波高大于等于4 m的海浪[1]。它主要是在熱帶氣旋(臺(tái)風(fēng))、溫帶氣旋和寒潮的作用下形成的,能夠掀翻海上的船只,摧毀海洋和海岸工程,能給一切海上的活動(dòng)帶來(lái)巨大危害。因此,海浪有效波高預(yù)報(bào)的準(zhǔn)確性一直以來(lái)都是海洋科學(xué)研究中的熱點(diǎn)與難點(diǎn)問(wèn)題。當(dāng)前,海浪的預(yù)報(bào)方法主要有2類:數(shù)值預(yù)報(bào)方法和機(jī)器學(xué)習(xí)方法。其中,數(shù)值預(yù)報(bào)方法應(yīng)用得最廣泛的有3種:WAM[2-4](Wave Modeling)、SWAN[5-8](Sea Wave Modeling)和WW3(WAVEWATCH III)[9-13]。這些方法的主要特征是直接計(jì)算波與波之間的非線性能量傳輸作用,考慮能量平衡方程中的各個(gè)項(xiàng),模型的預(yù)報(bào)結(jié)果與實(shí)際值吻合較高,是一種能夠廣泛應(yīng)用于全球淺水、深水的數(shù)值預(yù)報(bào)模型。但海浪的數(shù)值預(yù)報(bào)方法也有弊端,其計(jì)算成本大,模型建立困難。機(jī)器學(xué)習(xí)方法由于具有良好的非線性映射能力和自適應(yīng)學(xué)習(xí)能力,能夠處理好物理機(jī)制復(fù)雜以及因果關(guān)系和推理關(guān)系無(wú)法確定的非線性問(wèn)題。因此,在有效波高預(yù)報(bào)中得到廣泛的應(yīng)用,包括:人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN)[14-16]、支持向量機(jī)(Support Vector Machine, SVM)[17-19]和BP神經(jīng)網(wǎng)絡(luò)[20-22]。但機(jī)器學(xué)習(xí)方法作為一種淺層的網(wǎng)絡(luò)架構(gòu),其表達(dá)能力有限,預(yù)報(bào)準(zhǔn)確性不高。深度學(xué)習(xí)可自動(dòng)提取高層語(yǔ)義特征,在復(fù)雜問(wèn)題求解中明顯優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)方法,近年來(lái)也被應(yīng)用于海浪預(yù)報(bào)中。如Mandal等人[23]提出一種使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)預(yù)測(cè)波浪,其實(shí)驗(yàn)結(jié)果表明與神經(jīng)網(wǎng)絡(luò)相比,循環(huán)神經(jīng)網(wǎng)絡(luò)的波浪預(yù)測(cè)產(chǎn)生了更好的結(jié)果。顧興健等人[24]提出使用基于LSTM(Long-Short Term Memory)的海浪環(huán)境短期預(yù)報(bào)模型,該模型在我國(guó)海域上的預(yù)報(bào)結(jié)果取得了較好的精度。棧式自編碼器(Stacked AutoEncoders, SAE)作為深度學(xué)習(xí)算法的一種,由于其優(yōu)良的泛化和函數(shù)表達(dá)能力,在特征提取方面優(yōu)勢(shì)明顯,可以有效挖掘出數(shù)據(jù)中包含的豐富信息,提高分類和預(yù)報(bào)的準(zhǔn)確率,近年來(lái)在多個(gè)領(lǐng)域得到了相關(guān)應(yīng)用并展現(xiàn)出優(yōu)勢(shì)。如劉凡等人[25]利用SAE與BP神經(jīng)網(wǎng)絡(luò)集成算法進(jìn)行洪水預(yù)報(bào)。實(shí)驗(yàn)結(jié)果表明,SAE-BP集成算法的性能比其他基準(zhǔn)測(cè)試好得多。楊洪富等人[26]利用SAE進(jìn)行航空發(fā)動(dòng)機(jī)氣路故障的診斷。仿真結(jié)果表明,SAE適用于航空發(fā)動(dòng)機(jī)氣路故障診斷研究,相較于BPNN和SVM方法能獲得更高的診斷準(zhǔn)確率。
因此,本文提出一種集成SAE和XGBoost的深度學(xué)習(xí)海浪有效波高預(yù)報(bào)模型,進(jìn)行有效波高預(yù)報(bào),并將預(yù)報(bào)結(jié)果與已有的海浪預(yù)報(bào)方法:BP、SVM和LSTM進(jìn)行比較。結(jié)果表明,本文提出模型的預(yù)測(cè)能力優(yōu)于已有的模型。
本章將詳細(xì)介紹SAE-XGBoost的深度學(xué)習(xí)海浪有效波高預(yù)報(bào)模型,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。在實(shí)施過(guò)程中,主要包括2個(gè)步驟:1)使用SAE算法處理海浪數(shù)據(jù),獲得輸出權(quán)值;2)將SAE隱藏層的輸出權(quán)值作為XGBoost算法的輸入,經(jīng)過(guò)有限次迭代,獲得最終的預(yù)測(cè)模型。
圖1 SAE-XGBoost網(wǎng)絡(luò)結(jié)構(gòu)圖
具體地,SAE是一個(gè)由多層稀疏自動(dòng)編碼器堆疊而成的神經(jīng)網(wǎng)絡(luò)。自動(dòng)編碼器是一種能夠提取非線性特征的無(wú)監(jiān)督網(wǎng)絡(luò),它可以從輸入的數(shù)據(jù)中提取隱含的特征,并且用提取的特征又可以重構(gòu)出原始輸入的數(shù)據(jù)。每一個(gè)自動(dòng)編碼器都是由輸入層、輸出層和隱含層3部分組成。對(duì)于SAE的第l個(gè)稀疏自動(dòng)編碼器,設(shè)其網(wǎng)絡(luò)參數(shù)為(W,b)=(W(l,1),W(l,2),b(l,1),b(l,2)),則編碼步驟為:
a(l-1)=f(z(l-1))
(1)
z(l)=W(l,1)a(l)+b(l,1)
(2)
其中,a(l-1)表示第l-1層的輸出,z(l-1)表示第l-1層的輸入,W(l,1)、b(l,1)表示第l層編碼過(guò)程的權(quán)重與偏置。其解碼步驟為:
a(l)=f(z(l))
(3)
z(l+1)=W(l,2)a(l)+b(l,2)
(4)
其中,W(l,2)、b(l,2)表示第l層解碼過(guò)程的權(quán)重與偏置,f(·)取Sigmoid函數(shù):
f(x)=1/(1+exp(-x))
(5)
(6)
(7)
為了獲取合適的輸出權(quán)值,自動(dòng)編碼器采用的方法是逐層的貪婪訓(xùn)練。將第一層訓(xùn)練好的自動(dòng)編碼器參數(shù)W(1,1)、b(1,1)作為第二層自動(dòng)編碼器的輸入,即每個(gè)自動(dòng)編碼器的輸出作為后續(xù)自動(dòng)編碼器的輸入,不斷重復(fù)上述步驟。
有效波高的預(yù)報(bào)是一種非線性的過(guò)程,本文添加X(jué)GBoost到SAE中。如圖1所示,在SAE訓(xùn)練了2個(gè)隱藏層之后,將第2個(gè)隱藏層的輸出權(quán)值作為XGBoost的輸入,以進(jìn)行有效波高的預(yù)測(cè)。使用SAE的輸出作為輸入,不需要對(duì)原始數(shù)據(jù)進(jìn)行重新學(xué)習(xí),降低對(duì)計(jì)算資源占有率的同時(shí),也保證了模型的精準(zhǔn)度。
本文實(shí)驗(yàn)所使用的數(shù)據(jù)來(lái)源于福建海浪預(yù)報(bào)臺(tái)布設(shè)在臺(tái)灣海峽中部的2號(hào)大浮標(biāo),經(jīng)緯度分別為119.30°E和24.48°N。測(cè)點(diǎn)水深為67 m,測(cè)點(diǎn)周邊5 km范圍內(nèi)的水深都介于60~70 m之間。浮標(biāo)每30 min記錄一筆波浪有效波高(m),每10 min采集一筆風(fēng)數(shù)據(jù),包括10 m高度平均風(fēng)速(m/s)和平均風(fēng)向(°)、最大風(fēng)速(m/s)等。圖2給出了2號(hào)大浮標(biāo)的地理位置。
圖2 2號(hào)大浮標(biāo)站位置
數(shù)據(jù)的時(shí)間跨度為2016年7月1日到2017年12月31日,每隔1 h取一組實(shí)測(cè)的波浪與風(fēng)浪數(shù)據(jù),總共13076條。模型的輸入特征為風(fēng)要素,包括:平均風(fēng)速、平均風(fēng)向和最大風(fēng)速,輸出是海浪的有效波高。
2.2.1 數(shù)據(jù)缺失處理
2號(hào)大浮標(biāo)的風(fēng)、浪觀測(cè)數(shù)據(jù)存在著數(shù)據(jù)缺失的現(xiàn)象,而數(shù)據(jù)缺失會(huì)使模型表現(xiàn)出的不確定性更加顯著,導(dǎo)致不可靠的輸出。因此,本文針對(duì)數(shù)據(jù)缺失問(wèn)題采用簡(jiǎn)單刪除法,此方法將存在缺失值的數(shù)據(jù)條目進(jìn)行刪除,總共刪除70條數(shù)據(jù)。這種方法簡(jiǎn)單易行,且在被刪除的條目相比總的數(shù)據(jù)量非常小的情況下是非常有效的。本文實(shí)驗(yàn)按照時(shí)間順序選擇2016年7月1日至2017年8月23日的10000個(gè)數(shù)據(jù)樣本作為訓(xùn)練數(shù)據(jù)集,剩下的3006個(gè)數(shù)據(jù)樣本作為測(cè)試數(shù)據(jù)集。
2.2.2 歸一化處理
歸一化處理的目的包括對(duì)于方差非常小的屬性可以增強(qiáng)其穩(wěn)定性,并且有利于維持稀疏矩陣中為0的條目。歸一化處理后每個(gè)指標(biāo)處于同一數(shù)量級(jí),適合進(jìn)行綜合對(duì)比評(píng)價(jià),另外,歸一化不但可以提升模型的收斂速度,還可以提升模型的精度。因此,為避免規(guī)模效應(yīng)對(duì)深度網(wǎng)絡(luò)體系結(jié)構(gòu)的影響,將輸入特征標(biāo)準(zhǔn)化為[0,1]區(qū)間,本文采用min-max標(biāo)準(zhǔn)化(Min-Max Normalization),轉(zhuǎn)換函數(shù)如式(8)所示:
vi=(ai-minai)/(maxai-minai)
(8)
其中,ai表示對(duì)第i個(gè)變量進(jìn)行歸一化的值,maxai和minai分別表示訓(xùn)練集中該變量的最大值和最小值。
為了更好地評(píng)估SAE-XGBoost深度網(wǎng)絡(luò)模型的有效波高預(yù)測(cè)效果,本文引入均方誤差(Mean Squared Error, MSE)和R^2(R Squared, R^2)這2個(gè)指標(biāo)對(duì)模型的預(yù)報(bào)誤差進(jìn)行客觀的評(píng)價(jià)。其中R^2被稱為確定系數(shù),取值范圍為[0,1],R^2的值越大,表明模型的擬合效果越好。
(9)
(10)
將SAE-XGBoost深度網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果與已有的方法進(jìn)行比較,包括BP模型、SVM模型和LSTM模型。表1給出了每種方法在MSE和R^2指標(biāo)下的對(duì)比。從表1可以看出,4種模型的相關(guān)系數(shù)R^2均大于0.8,其中SAE-XGBoost深度網(wǎng)絡(luò)模型的相關(guān)系數(shù)R^2最高,說(shuō)明該模型的精度最好。比較4種模型的均方誤差MSE,SAE-XGBoost模型的均方誤差MSE達(dá)到最小,說(shuō)明其模型預(yù)測(cè)結(jié)果最好。
表1 不同預(yù)報(bào)模型的結(jié)果比較
均方誤差MSE與相關(guān)系數(shù)R^2只能評(píng)估模型的整體預(yù)測(cè)結(jié)果。為了更好地分析預(yù)測(cè)結(jié)果,本文展示了上述4種模型在2號(hào)大浮標(biāo)測(cè)試數(shù)據(jù)集下的預(yù)測(cè)值和真實(shí)值的對(duì)比圖,如圖3~圖6所示。直接使用BP算法難以進(jìn)行有效預(yù)測(cè),SVM算法和LSTM算法的預(yù)測(cè)波高與真實(shí)波高比較吻合,但SVM算法在不同區(qū)域間波動(dòng)較大,影響了整體預(yù)報(bào)的準(zhǔn)確性,而LSTM在低波部分性能較好,但在波峰部分性能較差。而集成棧式自編碼器和XGBoost的深度學(xué)習(xí)算法對(duì)于有效波高的作用明顯,預(yù)測(cè)效果更好,提高了有效波高的總體預(yù)報(bào)準(zhǔn)確性。
圖3 BP模型的預(yù)報(bào)折線圖
圖4 SVM模型預(yù)報(bào)折線圖
圖5 LSTM模型預(yù)報(bào)折線圖
圖6 SAE-XGBoost模型預(yù)報(bào)折線圖
本文將深度學(xué)習(xí)技術(shù)應(yīng)用于災(zāi)害性海浪預(yù)報(bào)之中。利用SAE算法對(duì)有效波高的時(shí)間序列進(jìn)行無(wú)監(jiān)督特征學(xué)習(xí),從而達(dá)到初始化XGBoost的目的,并且利用XGBoost超強(qiáng)的決策能力預(yù)報(bào)海浪的有效波高。通過(guò)臺(tái)灣海峽的2號(hào)大浮標(biāo)的海浪數(shù)據(jù)驗(yàn)證,表明本文提出的算法優(yōu)于已有的海浪有效波高預(yù)報(bào)方法。但是,SAE-XGboost模型仍有很大的改善空間,因?yàn)楸疚臎](méi)有充分考慮數(shù)據(jù)分布的不平衡和數(shù)據(jù)集的規(guī)模大小。在下一步工作中,將使用域自適應(yīng)方法來(lái)獲得更好的性能。