羅朝林,張 波,孟慶魁,陳武奮
(珠江水利委員會(huì)珠江水利科學(xué)研究院,廣東 廣州 510611)
洪澇災(zāi)害危脅人民生命財(cái)產(chǎn)安全,精準(zhǔn)洪水預(yù)報(bào)作為重要的防洪減災(zāi)非工程措施可以實(shí)現(xiàn)洪水精準(zhǔn)化預(yù)報(bào),減少人民生命財(cái)產(chǎn)損失[1]。目前洪水預(yù)報(bào)研究主要是對(duì)流域建立以物理機(jī)制或者物理概念為基礎(chǔ)的傳統(tǒng)水文模型[2-4]。然而水文模型由于本身機(jī)理的原因,在僅依賴(lài)觀測(cè)數(shù)據(jù)的前提下只能進(jìn)行流域匯流時(shí)間內(nèi)的預(yù)報(bào),想要延長(zhǎng)預(yù)見(jiàn)期還需要?dú)庀箢A(yù)報(bào)數(shù)據(jù)作為輸入條件,這也會(huì)加大預(yù)報(bào)結(jié)果的不確定性。隨著感知設(shè)備以及信息技術(shù)的高速發(fā)展,獲取數(shù)據(jù)的方式逐漸多樣化,由此也引發(fā)了一些研究人員開(kāi)始采用數(shù)據(jù)驅(qū)動(dòng)的方式來(lái)解決洪水預(yù)報(bào)問(wèn)題[5]。從20世紀(jì)90年代開(kāi)始,人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Net-works,ANN)以及遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Net-work,RNN)開(kāi)始應(yīng)用于洪水預(yù)報(bào)模擬并迅速發(fā)展[6]。Bengio等[7]在研究中發(fā)現(xiàn)RNN在計(jì)算過(guò)程中存在梯度消失與爆炸的問(wèn)題,導(dǎo)致長(zhǎng)時(shí)間序列存儲(chǔ)的信息難以被讀取。Hochreiter等[8]針對(duì)該問(wèn)題,通過(guò)引入記憶單元的方式改進(jìn)了RNN神經(jīng)網(wǎng)絡(luò),形成長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)。在過(guò)去的幾年,LSTM開(kāi)始水文預(yù)報(bào)領(lǐng)域展露頭角并且有了眾多的研究應(yīng)用及突破。Liang等[9]采用LSTM對(duì)洞庭湖的水位波動(dòng)和水庫(kù)運(yùn)行進(jìn)行了研究,將LSTM與SVM模型進(jìn)行比較,綜合考察三峽大壩的存在對(duì)洞庭湖水位的影響,得出LSTM模型的偏差值遠(yuǎn)遠(yuǎn)小于SVM模型,在整體水位較高情況下的預(yù)測(cè)中模型精度更高;Hu等[10]分別構(gòu)建了LSTM與ANN模型,分析比較兩者在降雨徑流預(yù)報(bào)上的精度,結(jié)果表明LSTM的預(yù)報(bào)精度高于ANN。殷兆凱等[11]以隱藏層神經(jīng)元數(shù)量為代表,討論LSTM的復(fù)雜程度對(duì)模型精度的影響。Kratzert等[12]利用大量流量數(shù)據(jù)集訓(xùn)練LSTM模型,通過(guò)LSTM預(yù)測(cè)結(jié)果與實(shí)際流量進(jìn)行對(duì)比,得出LSTM可以用于流域流量預(yù)測(cè)的結(jié)論。Miao等[13]采用由卷積神經(jīng)網(wǎng)絡(luò)和LSTM遞歸模塊組成的深度神經(jīng)網(wǎng)絡(luò)模型,提高了GCM降水預(yù)報(bào)的分辨率和準(zhǔn)確性。楊強(qiáng)[14]利用LSTM模型對(duì)瀾滄江烏弄龍水電站進(jìn)行預(yù)見(jiàn)期為1個(gè)月徑流預(yù)測(cè),結(jié)果表明LSTM模型的預(yù)測(cè)精度高。顧逸[15]將LSTM模型與GRU結(jié)合,構(gòu)建Simple-LSTM模型進(jìn)行中長(zhǎng)期預(yù)報(bào),結(jié)果優(yōu)于BP神經(jīng)網(wǎng)絡(luò)和SVR模型。上述研究多將LSTM應(yīng)用于流域長(zhǎng)預(yù)見(jiàn)期的徑流預(yù)報(bào),且模型中參數(shù)對(duì)洪水過(guò)程模擬效果的影響研究較少。對(duì)于LSTM在較短預(yù)見(jiàn)期內(nèi)以及短歷時(shí)強(qiáng)降雨下徑流預(yù)報(bào)方面是否具有同樣的性能和表現(xiàn)是一個(gè)值得探討的問(wèn)題。
本文選取惠東縣白盆珠水庫(kù)開(kāi)展研究,收集白盆珠水庫(kù)7個(gè)雨量站以及1個(gè)水位站的逐時(shí)歷史數(shù)據(jù)建立LSTM神經(jīng)網(wǎng)絡(luò)模型與新安江模型,進(jìn)行不同預(yù)見(jiàn)期下的水位預(yù)報(bào),比較2個(gè)模型的模型精度,并研究隱藏層神經(jīng)元個(gè)數(shù)對(duì)模型精度和模型訓(xùn)練速度的影響。
LSTM具有與其他神經(jīng)網(wǎng)絡(luò)相同的結(jié)構(gòu),由3個(gè)部分組成,分別是輸入層、輸出層以及隱藏層。RNN能夠?qū)W習(xí)到時(shí)間序列數(shù)據(jù)存儲(chǔ)的內(nèi)在特征,但隨著訓(xùn)練次數(shù)的增加以及網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)的增多,很可能會(huì)發(fā)生梯度爆發(fā)或者消失,使更早期的長(zhǎng)距離數(shù)據(jù)存儲(chǔ)的信息不能傳輸。LSTM通過(guò)引入門(mén)控單元統(tǒng)籌并傳遞對(duì)當(dāng)前時(shí)刻重要的歷史信息,提升了神經(jīng)網(wǎng)絡(luò)的長(zhǎng)時(shí)間記憶,并保持了RNN訓(xùn)練過(guò)程中梯度下降的穩(wěn)定性。LSTM的內(nèi)部結(jié)構(gòu)見(jiàn)圖1。
圖1 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
圖1展示了一個(gè)LSTM記憶單元的典型結(jié)構(gòu)。在t時(shí)刻,記憶單元的輸入包括前一時(shí)刻的隱藏層狀態(tài)變量、記憶單元狀態(tài)變量和當(dāng)前時(shí)刻的輸入信息;然后模型依次通過(guò)遺忘門(mén)、輸入門(mén)、輸出門(mén)和這3個(gè)控制機(jī)制得到t時(shí)刻的隱藏層狀態(tài)變量和記憶單元狀態(tài)變量;最終會(huì)傳入輸出層生成LSTM在t時(shí)刻的計(jì)算結(jié)果,同時(shí)與一起傳入后一時(shí)刻進(jìn)行計(jì)算。
具體過(guò)程如下。在t時(shí)刻的計(jì)算過(guò)程中,首先計(jì)算的是遺忘門(mén)ft。ft可以決定從之前的狀態(tài)中舍棄多少信息。ft的計(jì)算公式如下:
ft=σ(Wf·[ht-1,xt]+bf)
(1)
式中Wf——遺忘門(mén)的權(quán)重向量;bf——遺忘門(mén)的偏置向量,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中這些矩陣或向量將被優(yōu)化;σ——Sigmoid激活函數(shù)。
下一步,計(jì)算輸入門(mén)it。it將決定從新獲取的信息中選擇多少用以更新?tīng)顟B(tài)。it的計(jì)算公式如下:
it=σ(Wi·[ht-1,xt]+bi)
(2)
式中Wi——輸入門(mén)的權(quán)重向量;bi——輸入門(mén)的偏置向量。
(3)
式中Wc——輸出門(mén)的權(quán)重向量;bc——輸出門(mén)的偏置向量;tanh——雙曲正切激活函數(shù)。
接下來(lái),使用上面計(jì)算得到的結(jié)果來(lái)更新神經(jīng)元狀態(tài),計(jì)算公式如下:
(4)
式中 ⊙——向量元素積。
然后,計(jì)算輸出門(mén)ot。ot可以決定在t時(shí)刻有多少信息生成隱藏層狀態(tài)變量ht,其計(jì)算公式如下:
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=o⊙tanh(ct)
(6)
式中Wo——門(mén)控單元的權(quán)重向量;bo——門(mén)控單元的偏置向量。
最終,ht傳入輸出層,再經(jīng)過(guò)計(jì)算后得到LSTM在t時(shí)刻的最終輸出yt。
三水源新安江模型是經(jīng)典的概念性半分布式水文模型,為中國(guó)首個(gè)自主研發(fā)的水文模型,在濕潤(rùn)和半濕潤(rùn)地區(qū)有較好的應(yīng)用。新安江模型包含蒸散發(fā)、蓄滿(mǎn)產(chǎn)流、水源劃分、匯流計(jì)算4個(gè)模塊。模型采用三層蒸散發(fā)公式計(jì)算蒸發(fā)量,利用蓄滿(mǎn)產(chǎn)流及蓄水容量曲線計(jì)算總徑流量,并根據(jù)自由蓄水容量曲線將總凈流量劃分成地面、壤中和地下徑流,其中壤中和地下徑流通過(guò)線性水庫(kù)計(jì)算流入河網(wǎng),地面徑流直接流入河網(wǎng),采用滯后演算法計(jì)算河網(wǎng)匯流,采用馬斯京根法計(jì)算河道匯流。
在訓(xùn)練LSTM模型之前,需要設(shè)置用于控制模型訓(xùn)練結(jié)果的超參數(shù)[16],將建立的LSTM初始模型設(shè)置為:隱藏層為1層,包含10個(gè)神經(jīng)元,學(xué)習(xí)率為0.000 1,訓(xùn)練次數(shù)為10次。在LSTM模型中隱藏層的神經(jīng)元數(shù)量對(duì)模型精度影響較大。在模型中將隱藏層中的神經(jīng)元數(shù)量分別設(shè)置為10、20、40、60、80、100、150、200。在其他參數(shù)設(shè)置中,學(xué)習(xí)率設(shè)定為0.000 1,最大迭代次數(shù)為100,模型優(yōu)化算法使用自適應(yīng)矩估計(jì)(Adaptive Moment Estimation,ADAM)算法[17]。
由于量綱不統(tǒng)一會(huì)導(dǎo)致模型在計(jì)算過(guò)程中收斂速度變慢,為使LSTM在模擬過(guò)程中快速收斂,模型的輸入數(shù)據(jù)需要進(jìn)行標(biāo)準(zhǔn)化處理。本研究采用z-score標(biāo)準(zhǔn)化算法來(lái)進(jìn)行模型數(shù)據(jù)的標(biāo)準(zhǔn)化處理。z-score標(biāo)準(zhǔn)化算法具有簡(jiǎn)單、容易實(shí)現(xiàn)、不受數(shù)據(jù)量級(jí)影響等優(yōu)點(diǎn),其計(jì)算原理如下:
(7)
經(jīng)過(guò)z-score標(biāo)準(zhǔn)化處理之后的所有數(shù)據(jù)的平均值為0,標(biāo)準(zhǔn)差為1。
為了量化模型的水位預(yù)報(bào)精度,采用2種量化指標(biāo),分別為Nash-Sutcliffe效率系數(shù)(NSE)和均方根誤差(RMSE)。具體計(jì)算公式如下:
(8)
(9)
白盆珠水庫(kù)位于惠東縣城東北34 km,東江支流西枝江上游,集雨面積856 km2,最大防洪庫(kù)容12.2億m3。白盆珠水庫(kù)2001年建立7個(gè)自動(dòng)雨量采集站,分別為白盆珠壩上、禾多布、新塘、馬山、高潭、石澗和寶口,3個(gè)水位自動(dòng)采集站分別位于寶口、白盆珠壩上、白盆珠壩下,各站點(diǎn)位置見(jiàn)圖2。2018年11月建設(shè)了公梅和井湖雨量站點(diǎn)及白盆珠蒸發(fā)站,由于數(shù)據(jù)存儲(chǔ)量較小,本研究不予考慮。
圖2 站點(diǎn)分布
本研究采用了白盆珠水庫(kù)7個(gè)雨量站的逐小時(shí)降水資料,壩上水位站逐小時(shí)水位資料以及庫(kù)容資料。歷史數(shù)據(jù)從2012年1月1日至2018年1月1日,共計(jì)6年。選取前5年即2012—2017年為模型訓(xùn)練期,后1年即2018年為模型驗(yàn)證期。
流域上的降雨經(jīng)過(guò)產(chǎn)匯流過(guò)程流經(jīng)出口斷面,考慮影響出口斷面流量過(guò)程的因素為上游降雨,為研究不同預(yù)見(jiàn)期下 LSTM 對(duì)洪水過(guò)程的模擬效果,將模型輸入確定為t時(shí)刻7個(gè)雨量站觀測(cè)降雨數(shù)據(jù)和白盆珠壩上水位站實(shí)測(cè)水位以及白盆珠庫(kù)容數(shù)據(jù),共計(jì)9項(xiàng)數(shù)據(jù)組成一組模型輸入,輸入數(shù)據(jù)長(zhǎng)度為6。模型輸出為不同預(yù)見(jiàn)期下白盆珠壩上水位站水位。另外,如果LSTM的模型輸出為負(fù)值,則會(huì)被調(diào)整為0。
為了評(píng)估LSTM模型在白盆珠流域的水位預(yù)報(bào)效果,將其與新安江模型進(jìn)行對(duì)比。表1展示了預(yù)見(jiàn)期為1~6天時(shí),LSTM和新安江模型的水位預(yù)報(bào)效果。
由表1、圖3可知:①LSTM水位預(yù)報(bào)效果較好,在所有預(yù)見(jiàn)期下,NSE均大于0.9。且在相同的預(yù)見(jiàn)期下,LSTM模型的預(yù)報(bào)精度均優(yōu)于新安江模型。這得益于LSTM模型對(duì)非線性關(guān)系的強(qiáng)大擬合能力。②在預(yù)見(jiàn)期為1 h情況下,預(yù)報(bào)效果最好。隨著預(yù)見(jiàn)期的增長(zhǎng),預(yù)報(bào)精度隨之下降。在預(yù)見(jiàn)期為6 h且隱藏層神經(jīng)元數(shù)量為10時(shí)預(yù)報(bào)精度達(dá)到最低,NSE降到0.909 5。預(yù)見(jiàn)期較短時(shí),預(yù)見(jiàn)期內(nèi)的水位受預(yù)報(bào)發(fā)起時(shí)刻之前的降雨等氣象因素影響更大。隨著流域匯流過(guò)程的完成,預(yù)見(jiàn)期較長(zhǎng)時(shí),水位受到預(yù)報(bào)發(fā)起時(shí)刻之前的降雨等氣候因素的影響較小。因此預(yù)見(jiàn)期越長(zhǎng),預(yù)報(bào)結(jié)果與模型輸入之間的邏輯關(guān)系越弱,則預(yù)報(bào)精度會(huì)隨之下降。③同一預(yù)見(jiàn)期情況下,隱藏層神經(jīng)元個(gè)數(shù)增加,水位預(yù)報(bào)效果更好。但神經(jīng)元數(shù)量在達(dá)到一定值時(shí),預(yù)報(bào)精度上升效果不顯著。隱藏層神經(jīng)元個(gè)數(shù)可以提高LSTM模型的預(yù)報(bào)能力。
表1 模型預(yù)報(bào)結(jié)果
圖3 白盆珠壩上水位變化曲線
為了深入研究LSTM模型在短歷時(shí)強(qiáng)降雨期間的預(yù)報(bào)效果,記錄1~6 h預(yù)見(jiàn)期下2013年8月15日至8月20日模型預(yù)測(cè)水位與實(shí)測(cè)水位的變化情況,結(jié)果見(jiàn)圖4。從圖中可以看出,在預(yù)見(jiàn)期為1~2 h時(shí)LSTM模型可以較好地反映短歷時(shí)強(qiáng)降雨期間的洪水過(guò)程,但預(yù)見(jiàn)期大于3 h時(shí)誤差已經(jīng)較為明顯,不能較好地預(yù)報(bào)洪水過(guò)程。在預(yù)見(jiàn)期為3 h時(shí),模型預(yù)報(bào)結(jié)果已出現(xiàn)峰值延后的情況,且隨著預(yù)見(jiàn)期增加,峰值延后時(shí)間增加。分析其原因在于所需預(yù)見(jiàn)期的增長(zhǎng),訓(xùn)練輸入與輸出的時(shí)間間隔增大,導(dǎo)致數(shù)據(jù)的關(guān)聯(lián)性下降,此時(shí)LSTM難以學(xué)習(xí)到時(shí)間序列數(shù)據(jù)特征和數(shù)據(jù)間的關(guān)系。
圖4 不同預(yù)見(jiàn)期LSTM模型預(yù)測(cè)白盆珠壩上水位變化曲線
在LSTM迭代計(jì)算過(guò)程中,記錄其每次迭代計(jì)算的損失率,當(dāng)預(yù)見(jiàn)期為1 h、隱藏層神經(jīng)元數(shù)量為10、訓(xùn)練次數(shù)為100時(shí),其結(jié)果見(jiàn)圖5。從圖中可以看出,訓(xùn)練次數(shù)增加時(shí),損失率首先迅速減小,之后逐漸趨于穩(wěn)定。此現(xiàn)象同時(shí)存在于其他預(yù)見(jiàn)期情況下。
圖5 損失率變化曲線
將損失率趨于穩(wěn)定時(shí)的最小迭代次數(shù)記錄為穩(wěn)定時(shí)迭代次數(shù)。分別統(tǒng)計(jì)預(yù)見(jiàn)期為2、4、6 h的單次迭代所需計(jì)算時(shí)間以及損失率變化穩(wěn)定時(shí)迭代次數(shù),結(jié)果見(jiàn)表2。
表2 LSTM模型進(jìn)化迭代速度
從表中可以看出,在相同預(yù)見(jiàn)期下,隨著神經(jīng)元數(shù)量的增加,LSTM模型單次計(jì)算時(shí)間增加,損失率變化穩(wěn)定時(shí)迭代次數(shù)逐漸減少,但迭代穩(wěn)定時(shí)間上升,模型收斂速度減慢。這種結(jié)果可以用不同復(fù)雜程度神經(jīng)網(wǎng)絡(luò)擬合能力的不同來(lái)解釋。神經(jīng)元數(shù)量越多,神經(jīng)網(wǎng)絡(luò)越復(fù)雜,擬合能力越強(qiáng),因此進(jìn)化到能夠擬合復(fù)雜降雨徑流關(guān)系的狀態(tài)所需要的次數(shù)就越少。
在相同隱藏層神經(jīng)元數(shù)量下,隨著預(yù)見(jiàn)期的增加,LSTM模型單次迭代時(shí)間減少,迭代穩(wěn)定時(shí)迭代次數(shù)增加。由于模型輸入數(shù)據(jù)長(zhǎng)度較小,隨著預(yù)見(jiàn)期的增加,模型計(jì)算過(guò)程中數(shù)據(jù)分組減少,導(dǎo)致單次迭代時(shí)間減少。隨著預(yù)見(jiàn)期的增加,模型預(yù)測(cè)所需參數(shù)增加,所以迭代穩(wěn)定次數(shù)增加。
通過(guò)建立白盆珠水庫(kù)LSTM神經(jīng)網(wǎng)絡(luò)模型及新安江模型,分析2個(gè)模型在不同預(yù)見(jiàn)期的逐小時(shí)水位預(yù)報(bào)精度及參數(shù)設(shè)置對(duì)模型精度的影響,得到以下結(jié)論:①LSTM在各個(gè)預(yù)見(jiàn)期下預(yù)報(bào)精度均大于0.9,在預(yù)見(jiàn)期為1 h時(shí)LSTM模型預(yù)報(bào)精度最高,達(dá)到0.991,模型整體預(yù)報(bào)精度較高;②在預(yù)見(jiàn)期為1~2 h時(shí)LSTM模型可以較好地反映短歷時(shí)強(qiáng)降雨期間的洪水過(guò)程,在預(yù)見(jiàn)期為3 h時(shí),模型預(yù)報(bào)結(jié)果已出現(xiàn)峰值延后的情況,且隨著預(yù)見(jiàn)期增加,峰值延后時(shí)間增加;③隨著神經(jīng)元數(shù)量的增加,LSTM模型單次計(jì)算時(shí)間增加,損失率變化穩(wěn)定時(shí)迭代次數(shù)逐漸減少,但迭代穩(wěn)定時(shí)間整體呈上升趨勢(shì),模型收斂速度減慢。上述結(jié)果顯示,基于長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)模型預(yù)報(bào)精度整體都可以滿(mǎn)足預(yù)報(bào)需求,對(duì)短期洪水預(yù)報(bào)具有指導(dǎo)意義。