汪松松,徐蓬博,胡書源,王凱
(浙江水利水電學(xué)院信息工程學(xué)院,浙江杭州310018)
山洪災(zāi)害防治事關(guān)人民群眾生命安全、財(cái)產(chǎn)安全和民生福祉。2020年全國山洪災(zāi)害致死157人[1],主要發(fā)生在小流域,以山地丘陵眾多、降雨量豐富的浙江省小流域分布廣泛,對山洪預(yù)測預(yù)報有著迫切需求。浙江省共劃分為1200多條重點(diǎn)小流域,梅雨和臺風(fēng)引起的溪河洪水災(zāi)害頻繁,小流域山洪災(zāi)害成災(zāi)時間短、突發(fā)性強(qiáng)、危害性大、易發(fā)頻發(fā)等特征突出,對沿河村落居民生命財(cái)產(chǎn)安全構(gòu)成較大的威脅。
傳統(tǒng)的水文水動力預(yù)測模型主要以雨量測定為主,由于山洪致災(zāi)因素多、時空因素變化快、成災(zāi)速度快,導(dǎo)致山洪災(zāi)害預(yù)測預(yù)報及時度不高、可靠度低、覆蓋面小,在山地丘陵小流域地區(qū)預(yù)測效果不明顯[2-3]。隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等[4-5]智慧信息技術(shù)的快速發(fā)展與廣泛應(yīng)用,在智慧水利建設(shè)的大背景下,為山洪災(zāi)害的實(shí)時監(jiān)測與精準(zhǔn)預(yù)測提供了新的解決思路。
本文以浙江苕溪流域?yàn)檠芯繀^(qū)域,對山洪水位預(yù)測進(jìn)行研究?;谏窠?jīng)網(wǎng)絡(luò)具有輸入多維數(shù)據(jù)的優(yōu)勢,根據(jù)水位和降水歷史與實(shí)時信息,從tutiempo 網(wǎng)站獲取濕度以及氣溫的歷史信息,作為神經(jīng)網(wǎng)絡(luò)模型的輸入。設(shè)計(jì)基于時間序列的RNN 和LSTM 對比預(yù)測模型,使用Python3.7 和TensorFlow2.0 框架開發(fā),在Jupyter Notebook平臺編寫RNN和LSTM代碼。通過采用不同的模型參數(shù)集,對兩種模型進(jìn)行訓(xùn)練。最后對RNN 神經(jīng)網(wǎng)絡(luò)以及LSTM 神經(jīng)網(wǎng)絡(luò)的擬合情況進(jìn)行對比,并用于預(yù)測連續(xù)48 小時的水位情況,當(dāng)模型預(yù)測位線超過預(yù)警水位線時可以發(fā)布預(yù)警信息,以降低災(zāi)害損失。
在數(shù)據(jù)輸入方面,Khan等人[6]提出了一種采用模糊神經(jīng)網(wǎng)絡(luò)來預(yù)測城市河流峰值流量的方法,使用模糊數(shù)來說明輸出和模型參數(shù)的不確定性。Supattra 等人[7]提出了一種在自適應(yīng)機(jī)器學(xué)習(xí)框架中融合氣象、水文、地理空間和眾包大數(shù)據(jù)的洪水預(yù)報系統(tǒng),能夠有效預(yù)測在特定區(qū)域和時間范圍內(nèi)發(fā)生的洪水事件。Nitin 等人[8]提出了一種基于傳感網(wǎng)絡(luò)的洪水預(yù)測模型,在印度洪災(zāi)預(yù)測中顯示出了其有效性。Samikwa 等人[9]提出了一種基于邊緣計(jì)算的短期洪水預(yù)測系統(tǒng),使用IoT 和人工神經(jīng)網(wǎng)絡(luò)(ANN)對實(shí)時降雨和水位數(shù)據(jù)進(jìn)行長時短期記憶訓(xùn)練,但總體上僅適用于短實(shí)時洪水預(yù)報。
在基于ANN 預(yù)測方面,Snieder 等人[10]調(diào)整了ANN 的四種輸入變量選擇方法,產(chǎn)生了性能最強(qiáng)的ANN。Haibo Chu 等人[11]提出了一種基于ANN的洪水淹沒仿真建??蚣埽m合在快速響應(yīng)中使用。Thabo Michael等人[12]應(yīng)用?-支持向量機(jī)(SVM)和ANN 來模擬和預(yù)測三個不同流域的水流,在潮濕和半潮濕的系統(tǒng)中均表現(xiàn)良好。Lu Chen等人[13]提出了一種基于回溯搜索算法的短期洪水預(yù)報模型,但可靠度仍有較大提升空間。
在基于改進(jìn)的深度學(xué)習(xí)模型方面,Le等人[14]提出了一種改進(jìn)的長期短期記憶神經(jīng)網(wǎng)絡(luò)LSTM 洪水預(yù)報模型,將日流量和降雨量用作輸入數(shù)據(jù),適用于越南的大河流域洪水預(yù)報。IFeng Kao 等人[15]提出了基于LSTM 的編解碼器模型,用于多步提前洪水預(yù)報。Juanhui Ren 等人[16]提出了KNN 混合洪水預(yù)報模型,在大洪水中的仿真性能良好。Moyang Liu 等人[17]利用LSTM 和遞歸神經(jīng)網(wǎng)絡(luò),證明了LSTM-KNN 模型在研究區(qū)域中的有效性??傮w上都僅適應(yīng)特定的環(huán)境,具有一定局限性。
RNN 是典型的時間序列前饋神經(jīng)網(wǎng)絡(luò),包括各時間點(diǎn)狀態(tài)、通道與通道之間時間上的聯(lián)系。神經(jīng)元的輸入信息,不僅包括前一神經(jīng)細(xì)胞層的輸出,還包括它自身在先前通道的狀態(tài)。循環(huán)神經(jīng)網(wǎng)絡(luò)內(nèi)核結(jié)構(gòu)如圖1所示,xt是第t個時間序列輸入數(shù)據(jù),循環(huán)核ht表示存儲器,ht的內(nèi)容由xt與權(quán)重矩陣whx進(jìn)行線性變換,并加上一個循環(huán)核所傳送過來的內(nèi)容即whh與ht-1進(jìn)行線性變換的結(jié)果,再過激活函數(shù)tanh 轉(zhuǎn)化為ht的值。yt表示存儲器ht與權(quán)重矩陣why進(jìn)行線性變換,再過激活函數(shù)的輸出值。神經(jīng)網(wǎng)絡(luò)元節(jié)點(diǎn)ht、yt的計(jì)算公式如下:
圖1 RNN內(nèi)核結(jié)構(gòu)
循環(huán)神經(jīng)網(wǎng)絡(luò)按照時間步展開,即把循環(huán)核按照時間軸方向展開,存儲器ht周圍的權(quán)重矩陣在whx、why在前向傳播過程中基本不變,只有當(dāng)進(jìn)行反向傳播時才會更新參數(shù)矩陣。訓(xùn)練完成后使用效果最好的權(quán)重矩陣whx、why、whh執(zhí)行前向傳播,并且輸出預(yù)測結(jié)果。
RNN最大的特點(diǎn)就是存在循環(huán)核,循環(huán)核可以存儲狀態(tài)信息,正是因?yàn)槊總€時間步都存在狀態(tài)信息,因此可以時間按照時間序列進(jìn)行預(yù)測。小流域山洪水位預(yù)測需要展開的循環(huán)時間步較長,可能會造成梯度消失的問題。
LSTM 是一種特殊的RNN 神經(jīng)網(wǎng)絡(luò),LSTM 比RNN 增加了對信息選擇性存儲的能力,LSTM擁有門控裝置,可以對信息進(jìn)行挑選,較好地解決長時依賴,從而解決梯度消失的問題。LSTM 結(jié)構(gòu)如圖2 所示。it,ft還和ot分別是輸入門、忘記門和輸出門;Wi、Wf和WO分別表示將輸入、忘記和輸出門與輸入連接的權(quán)重;Ui、Uf和Uo分別表示從輸入、忘記和輸出門到隱藏狀態(tài)的權(quán)重;bi、bf和bo分別是輸入、忘記和輸出門偏置向量;Ct是記憶單元輸入,~Ct是當(dāng)前的記憶單元狀態(tài),ht是指當(dāng)前的隱藏狀態(tài);?是元素乘法,tanh 是雙曲正切函數(shù)。這種結(jié)構(gòu)設(shè)計(jì)是以細(xì)胞狀態(tài)作為記憶單元,通過每個門的不同操作來記住有用的信息。輸入門濾波器是在當(dāng)前輸入和歷史信息的輔助下添加到記憶單元中的信息,而忘記門丟棄某些先前的信息,允許單元格清除它所包含的值,輸出門選擇性地輸出信息,主要計(jì)算公式為:
圖2 LSTM的基本結(jié)構(gòu)
GRU和LSTM同為RNN的變體,LSTM擁有兩個門限,GRU對LSTM 進(jìn)行簡化,只擁有一個門限,但兩者非常相近,國內(nèi)外眾多學(xué)者采用LSTM 進(jìn)行研究,但對于LSTM 認(rèn)可度較高。LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是基于存儲器結(jié)構(gòu)的遞歸記憶型神經(jīng)網(wǎng)絡(luò)中的一種,它能將當(dāng)前節(jié)點(diǎn)的隱藏狀態(tài)記錄下來,LSTM擁有獨(dú)特的存儲器單元機(jī)制,LSTM通過它的“門控裝置”,使得梯度消失和爆炸問題得到較好解決。LSTM 相比于RNN 神經(jīng)網(wǎng)絡(luò)增加了門控裝置,對信息進(jìn)行挑選,并且使用累加的形式計(jì)算狀態(tài),這種累加形式使導(dǎo)數(shù)也成累加形式存在,從而避免了傳統(tǒng)RNN 神經(jīng)網(wǎng)絡(luò)因?yàn)殒準(zhǔn)角髮?dǎo)法則而直接導(dǎo)致的梯度被連續(xù)乘積,而導(dǎo)致的梯度消失的問題,即避免了RNN神經(jīng)網(wǎng)絡(luò)因?yàn)樵S多小于1 的項(xiàng)相乘導(dǎo)致梯度無限接近于0 造成梯度消失的問題。當(dāng)輸入的水位、雨量、空氣濕度、溫度數(shù)據(jù)量較少時,RNN神經(jīng)網(wǎng)絡(luò)可能并不會因?yàn)樘荻认栴}而出現(xiàn)很大的劣勢,當(dāng)數(shù)據(jù)量較大,并且對準(zhǔn)確度要求更高時,LSTM神經(jīng)網(wǎng)絡(luò)會因?yàn)楸苊馓荻认栴}的發(fā)生從而產(chǎn)生出一定的優(yōu)勢。
通過苕溪小流域的橋東村水位站歷史水位、雨量、空氣濕度、溫度數(shù)據(jù),預(yù)測雨量和水位。實(shí)驗(yàn)設(shè)計(jì)通過對2020年6月1日—2021年4月1日總共7296小時的數(shù)據(jù)進(jìn)行模型訓(xùn)練,其中5400小時作為訓(xùn)練集,1896小時作為測試集。用連續(xù)輸入240小時的數(shù)據(jù)來預(yù)測第241小時的水位,以達(dá)到預(yù)測目的。
試驗(yàn)環(huán)境為Window10,64位操作系統(tǒng),處理器為AMD Ry‐zen 7 4800U with Radeon Graphics,內(nèi)存16GB。Python 為3.7 版本,使用Jupyter Notebook 平臺作為代碼編寫平臺,RNN、LSTM神經(jīng)網(wǎng)絡(luò)均使用tensorflow2.0 框架進(jìn)行編寫,整個輸入輸出模型如圖3所示。
圖3 時間序列預(yù)測算法模型
構(gòu)建100 層的RNN 與LSTM 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),在學(xué)習(xí)率為0.001,訓(xùn)練次數(shù)為400 次的情況下均取得較好的成果,各參數(shù)誤差見表1、表2 所示。為了更加直觀地對比兩種算法在最優(yōu)情況下的模型,繪制的效果圖如圖4所示。RNN神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)率較大,且步長較短的情況下,擬合誤差較高;在學(xué)習(xí)率為0.001,步長為400 時,在訓(xùn)練集以及測試集上誤差均較小。LSTM 在長時間的水位預(yù)測上效果均較好,在學(xué)習(xí)率為0.001,步長為400時擬合效果最好,模型最佳。可以看出,LSTM神經(jīng)網(wǎng)絡(luò)對于真實(shí)的水位更加接近,說明LSTM 神經(jīng)網(wǎng)絡(luò)在苕溪流域的橋東村水位站水位預(yù)測更加準(zhǔn)確。
表1 RNN神經(jīng)網(wǎng)絡(luò)水位預(yù)測模型參數(shù)及誤差對比表
表2 LSTM神經(jīng)網(wǎng)絡(luò)水位預(yù)測模型參數(shù)及誤差對比表
圖4 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)預(yù)測模型對比圖
根據(jù)試驗(yàn)?zāi)P蛯α饔蛏胶樗活A(yù)測。以浙江雨水情實(shí)時網(wǎng)站獲取2021 年4 月1日—4月12日的歷史水位信息,并從中央氣象臺獲取4 月13 日當(dāng)?shù)貙?shí)時的降水預(yù)測信息以及空氣濕度和溫度的實(shí)時預(yù)測信息。使用基于深度學(xué)習(xí)的LSTM小流域山洪水位模型預(yù)測4月13日的水位,預(yù)測結(jié)果如圖5所示。根據(jù)LSTM 模型預(yù)測的水位,當(dāng)預(yù)測過高時有關(guān)部門可以向群眾發(fā)布洪水預(yù)警信息,從而及時地疏散群眾,保障生命財(cái)產(chǎn)安全。
圖5 小流域山洪水位預(yù)測圖
從該小流域山洪水位預(yù)測試驗(yàn)得知,基于深度學(xué)習(xí)的小流域山洪水位深度學(xué)習(xí)預(yù)測具有一定的可行性?;谏疃葘W(xué)習(xí)的小流域山洪水位預(yù)測RNN 與LSTM 算法模型的實(shí)時性與準(zhǔn)確性效果較好,在最優(yōu)參數(shù)的情況下,LSTM模型誤差更低。該模型對小流域山洪災(zāi)害的預(yù)測預(yù)警具有一定的參考意義。