王繼民,季昌政,李家歡,曹 穎
(1.河海大學(xué)計(jì)算機(jī)與信息學(xué)院,江蘇 南京 211100; 2.水利部信息中心,北京 100053)
中小河流洪水是我國(guó)自然災(zāi)害中造成人員傷亡和經(jīng)濟(jì)損失的主要災(zāi)種[1]。中小河流洪水預(yù)報(bào)是重要的防洪非工程措施之一,但其預(yù)報(bào)精度和預(yù)見(jiàn)期長(zhǎng)短是亟待解決的關(guān)鍵問(wèn)題[2]。
目前,國(guó)內(nèi)外常用的洪水預(yù)報(bào)方法主要有3種:經(jīng)驗(yàn)預(yù)報(bào)法、臨界雨量法和預(yù)報(bào)模型法[3]。經(jīng)驗(yàn)預(yù)報(bào)法通常通過(guò)流量和水位資料等數(shù)據(jù)建立上、下游的水位流量關(guān)系,憑借經(jīng)驗(yàn)通過(guò)上游水位和流量預(yù)測(cè)下游水位或流量。臨界雨量法依據(jù)流域觀測(cè)資料建立降雨總量與洪峰相關(guān)關(guān)系實(shí)現(xiàn)洪峰預(yù)測(cè)。預(yù)報(bào)模型法主要分過(guò)程驅(qū)動(dòng)和數(shù)據(jù)驅(qū)動(dòng)2種模型。過(guò)程驅(qū)動(dòng)模型包括降雨徑流預(yù)報(bào)方法、集中式概念性水文模型、分布式網(wǎng)格模型等水文學(xué)概念的物理模型,而數(shù)據(jù)驅(qū)動(dòng)模型利用已有水文站點(diǎn)數(shù)據(jù)尋求輸入輸出間的映射關(guān)系的黑盒方法,包括統(tǒng)計(jì)回歸模型、神經(jīng)網(wǎng)絡(luò)模型[4-7]等。
單個(gè)模型預(yù)報(bào)存在局限性且不穩(wěn)定,因此集成學(xué)習(xí)整合多個(gè)“弱”模型以得到一個(gè)“強(qiáng)”模型從而提高整個(gè)模型的泛化能力[8-10]。2017年,程子鵬[11]以虎跳峽壩區(qū)歷史徑流為研究對(duì)象,組合梯度提升樹(shù)和隨機(jī)森林進(jìn)行中長(zhǎng)期水文預(yù)報(bào),有效地增加了算法泛化能力和降低了過(guò)擬合風(fēng)險(xiǎn),使得相對(duì)誤差和均方誤差得到有效改善。2018年,馮鈞等[12]基于LSTM和BP神經(jīng)網(wǎng)絡(luò)建立LSTM-BP多模型組合預(yù)報(bào)模型進(jìn)行水文預(yù)報(bào),預(yù)報(bào)精度有一定提升,但各個(gè)學(xué)習(xí)器仍是各自為戰(zhàn),學(xué)習(xí)器間沒(méi)有信息交互,限制了組合模型的性能。2018年,Cai等[13]利用支持向量回歸(Support Vector Regression, SVR)集成方法對(duì)淮河流域TIGGE降水預(yù)報(bào)進(jìn)行改進(jìn),采用集成均值、減小偏差的集成均值與線性回歸方法,使用SVR優(yōu)化集成模型的MAE值,實(shí)驗(yàn)驗(yàn)證了基于SVR方式集成的模型效果較好。2019年,許國(guó)艷等[14]提出了基于卷積神經(jīng)網(wǎng)絡(luò)和馬爾科夫鏈的水文時(shí)間序列預(yù)測(cè)組合模型,解決了現(xiàn)有算法未考慮站點(diǎn)之間空間的相關(guān)性、多維輸入會(huì)提高特征提取中數(shù)據(jù)重建的復(fù)雜度,以及單一模型只考慮水位時(shí)間序列線性部分而未考慮非線性部分所導(dǎo)致的預(yù)測(cè)精度較低的問(wèn)題,在一定程度上提升了預(yù)測(cè)性能,但卷積神經(jīng)網(wǎng)絡(luò)和馬爾科夫鏈對(duì)于不同水文特征的預(yù)測(cè)各有優(yōu)勢(shì),由于2個(gè)算法之間沒(méi)有進(jìn)行信息交互,所提模型在復(fù)雜的水文情景下難以進(jìn)行有效的預(yù)測(cè),并不能發(fā)揮集成學(xué)習(xí)方法在復(fù)雜的實(shí)際場(chǎng)景下泛化能力較強(qiáng)的優(yōu)勢(shì)。目前中小河流洪水預(yù)報(bào)存在如下問(wèn)題:
1)概念性洪水預(yù)報(bào)模型依賴大量歷史觀測(cè)資料,且模型結(jié)構(gòu)復(fù)雜、適應(yīng)性差、參數(shù)確定難度大,很難應(yīng)用于某些數(shù)據(jù)較少的中小河流洪水預(yù)報(bào)[15]。
2)單一預(yù)報(bào)模型存在適應(yīng)的局限性且不穩(wěn)定,有時(shí)不同模型間的預(yù)測(cè)結(jié)果差異較大,在實(shí)際決策時(shí)難以取舍。
3)傳統(tǒng)的集成預(yù)報(bào)方法在構(gòu)建集成網(wǎng)絡(luò)時(shí),集成模型中各個(gè)子網(wǎng)在訓(xùn)練時(shí)只關(guān)注自身變化,無(wú)法獲得其他子網(wǎng)的訓(xùn)練信息,各子網(wǎng)之間沒(méi)有交互,難以發(fā)揮出集成學(xué)習(xí)的優(yōu)勢(shì)。
針對(duì)以上問(wèn)題,本文提出一種基于負(fù)相關(guān)學(xué)習(xí)的集成神經(jīng)網(wǎng)絡(luò)中小河流洪水預(yù)報(bào)方法。分別構(gòu)建基于BP神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)和長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-term Memory Networks, LSTM)的單個(gè)預(yù)報(bào)模型,并以其為子網(wǎng)絡(luò),采用負(fù)相關(guān)學(xué)習(xí)建立集成的中小河流預(yù)報(bào)模型。通過(guò)對(duì)集成模型中子網(wǎng)絡(luò)的損失函數(shù)添加相關(guān)性懲罰項(xiàng),使得各子網(wǎng)絡(luò)在訓(xùn)練時(shí)可以有效交互,并使用BP網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)法對(duì)集成模型的輸出進(jìn)行組合,得出最終的預(yù)報(bào)結(jié)果。
負(fù)相關(guān)學(xué)習(xí)(Negative Correlation Learning, NCL)是一種特定的神經(jīng)網(wǎng)絡(luò)集成算法。其理論源于分歧分解和誤差-方差分解,最早應(yīng)用于神經(jīng)網(wǎng)絡(luò)集成,通過(guò)在每個(gè)單獨(dú)的學(xué)習(xí)器的損失函數(shù)中顯式地添加一個(gè)相關(guān)性懲罰項(xiàng),使得多個(gè)學(xué)習(xí)器之間可以進(jìn)行交互,以此來(lái)保證集成系統(tǒng)的多樣性[16-17]。
負(fù)相關(guān)學(xué)習(xí)方法在訓(xùn)練每個(gè)子網(wǎng)時(shí),通過(guò)將子網(wǎng)組合到相同的學(xué)習(xí)過(guò)程中,即讓各子網(wǎng)在訓(xùn)練時(shí)可以獲得其與其他子網(wǎng)交互的訓(xùn)練信息,并指導(dǎo)自身的訓(xùn)練[18]。在負(fù)相關(guān)學(xué)習(xí)過(guò)程中,通過(guò)在子網(wǎng)的損失函數(shù)中加入相關(guān)懲罰項(xiàng)來(lái)實(shí)現(xiàn)子網(wǎng)間的交互,這樣的交互可以使NCL實(shí)現(xiàn)對(duì)各子網(wǎng)誤差的方差、偏差、協(xié)方差有效的折中[19],產(chǎn)生較小偏差的子網(wǎng)。通過(guò)負(fù)相關(guān)學(xué)習(xí)建立的集成網(wǎng)絡(luò),不僅使各子網(wǎng)有效協(xié)作,還具有較高泛化能力。簡(jiǎn)單來(lái)說(shuō),基于負(fù)相關(guān)學(xué)習(xí)方法的集成神經(jīng)網(wǎng)絡(luò)模型是在子網(wǎng)學(xué)習(xí)時(shí)添加負(fù)相關(guān)學(xué)習(xí)信息作為其損失函數(shù)的一項(xiàng),使各子網(wǎng)在訓(xùn)練時(shí)獲得其他子網(wǎng)的訓(xùn)練信息,以減小集成模型整體的訓(xùn)練誤差[17,20]。
現(xiàn)有的負(fù)相關(guān)學(xué)習(xí)方法大多是針對(duì)同一類型的網(wǎng)絡(luò)進(jìn)行集成,且基本都是對(duì)BP網(wǎng)絡(luò)進(jìn)行集成,而異構(gòu)的網(wǎng)絡(luò)未必能夠有效地集成。
1986年,Rumelhart和McClelland等提出一種根據(jù)誤差反向傳播算法訓(xùn)練的多層前饋網(wǎng)絡(luò),即反向傳播(BP)神經(jīng)網(wǎng)絡(luò)算法[21]。BP神經(jīng)網(wǎng)絡(luò)一般由輸入層、隱藏層和輸出層組成。一個(gè)簡(jiǎn)單的BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)的選擇對(duì)模型性能影響很大,Cybenko[22]在1988年的研究表明,三層神經(jīng)網(wǎng)絡(luò)就可逼近任意函數(shù),增加隱藏層數(shù)量可以顯著提高預(yù)測(cè)精度,但同時(shí)使得模型計(jì)算、訓(xùn)練更加復(fù)雜,一般采用經(jīng)驗(yàn)公式計(jì)算隱藏層的數(shù)量。即:
S=log2N
(1)
其中,S為隱藏層數(shù)量,N為輸入層節(jié)點(diǎn)數(shù)量。確定隱藏層數(shù)量后,一般使用人工試錯(cuò)法和經(jīng)驗(yàn)法相結(jié)合來(lái)確定每層的神經(jīng)元節(jié)點(diǎn)數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)最早由Yann LeCun等在1980年提出。卷積神經(jīng)網(wǎng)絡(luò)通常包括輸入層、卷積層、池化層、全連接層和輸出層。一個(gè)簡(jiǎn)化的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示[23]。CNN包含特征提取網(wǎng)絡(luò)和基于特征進(jìn)行運(yùn)算的預(yù)測(cè)網(wǎng)絡(luò),特征提取網(wǎng)絡(luò)接收輸入數(shù)據(jù),經(jīng)過(guò)卷積層的卷積操作后得到特征,通過(guò)池化操作對(duì)卷積后的特征圖進(jìn)行降維,將降維后的特征值輸入到預(yù)測(cè)網(wǎng)絡(luò)中的全連接層,最后輸出預(yù)測(cè)結(jié)果。一個(gè)CNN模型可以由多個(gè)卷積層和池化層交替組成。
圖2 CNN結(jié)構(gòu)圖
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)是一種廣泛用于序列問(wèn)題的神經(jīng)網(wǎng)絡(luò)[24]。RNN包含一些周期,這些周期將先前時(shí)間步長(zhǎng)的網(wǎng)絡(luò)活動(dòng)作為輸入輸入到網(wǎng)絡(luò)中,從而影響當(dāng)前時(shí)間步的預(yù)測(cè)。但在實(shí)際使用中,RNN通常面臨著網(wǎng)絡(luò)層數(shù)增加時(shí),無(wú)法很好地解決長(zhǎng)距離依賴的問(wèn)題,于是Hochreiter和Schmidhuber[25]提出了長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)模型(LSTM),在RNN的基礎(chǔ)上添加記憶單元,通過(guò)遺忘門、輸入門和輸出門來(lái)解決RNN的長(zhǎng)期依賴問(wèn)題。標(biāo)準(zhǔn)的LSTM結(jié)構(gòu)如圖3所示。
圖3 LSTM結(jié)構(gòu)圖
本文基于集成學(xué)習(xí)思想,采用負(fù)相關(guān)學(xué)習(xí)方法構(gòu)建集成神經(jīng)網(wǎng)絡(luò)預(yù)報(bào)模型。構(gòu)建具有較高預(yù)測(cè)精度的集成模型時(shí),需要選擇具有高預(yù)測(cè)精度且差異盡可能大的基學(xué)習(xí)器進(jìn)行組合。負(fù)相關(guān)學(xué)習(xí)方法主要通過(guò)在每個(gè)子網(wǎng)模型的損失函數(shù)中添加一個(gè)相關(guān)性懲罰項(xiàng),使得多個(gè)子網(wǎng)之間可以進(jìn)行交互。基于集成學(xué)習(xí)的中小河流洪水預(yù)報(bào)模型如圖4所示。
考慮到BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)簡(jiǎn)單及強(qiáng)大的非線性映射能力、CNN處理網(wǎng)格數(shù)據(jù)的優(yōu)勢(shì)、局部連接和權(quán)值共享的特性以及LSTM可以更好地解決較長(zhǎng)時(shí)間序列依賴問(wèn)題,故選用BP神經(jīng)網(wǎng)絡(luò)、CNN和LSTM作為子網(wǎng)絡(luò)來(lái)構(gòu)建集成模型。
圖4 基于集成學(xué)習(xí)的洪水預(yù)報(bào)模型結(jié)構(gòu)圖
集成模型使用負(fù)相關(guān)學(xué)習(xí)方法進(jìn)行訓(xùn)練。對(duì)于集成模型中的子網(wǎng)絡(luò),結(jié)合負(fù)相關(guān)學(xué)習(xí)的方法,需要為子網(wǎng)模型設(shè)計(jì)自定義損失函數(shù)以使得子網(wǎng)之間可以進(jìn)行有效交互。
假設(shè)訓(xùn)練數(shù)據(jù)集為D={(x1,y1),…,(xn,yn)},其中,x表示輸入數(shù)據(jù),y表示數(shù)據(jù)的期望值,n表示訓(xùn)練數(shù)據(jù)的數(shù)量。通過(guò)集成模型的輸出值來(lái)不斷擬合期望值d。為了方便計(jì)算和表示,假設(shè)集成網(wǎng)絡(luò)輸出的集合為各子網(wǎng)輸出的平均值[26],即:
(2)
其中,M表示模型中子網(wǎng)的個(gè)數(shù),fi(xn)表示第i個(gè)子網(wǎng)在第n次訓(xùn)練后的輸出,fens(xn)表示模型的輸出即所有子網(wǎng)輸出的平均。負(fù)相關(guān)學(xué)習(xí)法在每個(gè)子網(wǎng)的損失函數(shù)中加入懲罰項(xiàng),使模型中各子網(wǎng)在訓(xùn)練時(shí)可以進(jìn)行有效的交互,第i個(gè)子網(wǎng)的損失函數(shù)可以表示為[27-28]:
(3)
其中,ei為第i個(gè)子網(wǎng)在第n次訓(xùn)練過(guò)程中的誤差函數(shù)輸出值,右式第一項(xiàng)是第i個(gè)子網(wǎng)的經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù),即在回歸任務(wù)中使用最多的均方誤差,第二項(xiàng)中pi是相關(guān)懲罰函數(shù),用于對(duì)每個(gè)子網(wǎng)的誤差和剩余所有子網(wǎng)的誤差進(jìn)行平衡。參數(shù)λ是懲罰系數(shù)且0<λ<1,用于控制懲罰項(xiàng)pi對(duì)各子網(wǎng)損失函數(shù)的影響程度[18]。當(dāng)λ取0時(shí),表示各子網(wǎng)的誤差與其他子網(wǎng)相互獨(dú)立,即傳統(tǒng)的集成神經(jīng)網(wǎng)絡(luò)[29],本文取λ為0.5,以使其他子網(wǎng)的誤差對(duì)當(dāng)前子網(wǎng)的影響程度適中。
(4)
在訓(xùn)練階段,每個(gè)子網(wǎng)通過(guò)各自誤差函數(shù)中的懲罰項(xiàng)進(jìn)行信息交互,負(fù)相關(guān)學(xué)習(xí)考慮了當(dāng)前子網(wǎng)本身和集成模型中其他網(wǎng)絡(luò)在訓(xùn)練時(shí)學(xué)習(xí)到的誤差信息,使得每個(gè)子網(wǎng)不僅最小化輸出值fi(xn)與期望值yn之間的差異,同時(shí)最小化集成網(wǎng)絡(luò)平均輸出fens(xn)與期望值yn之間的差異。
本文通過(guò)梯度下降法與反向傳播算法得到集成模型中各子網(wǎng)每次訓(xùn)練的誤差,更新整個(gè)模型中每個(gè)子網(wǎng)的權(quán)重和閾值,并設(shè)置模型達(dá)到指定訓(xùn)練次數(shù)或誤差小于閾值時(shí),停止訓(xùn)練。
集成模型的均方誤差公式如下[27]:
(5)
從公式(5)可知,負(fù)相關(guān)學(xué)習(xí)集成網(wǎng)絡(luò)是將網(wǎng)絡(luò)整體學(xué)習(xí)任務(wù)分解成多個(gè)子任務(wù)并由不同的單個(gè)子網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)的方法,各子網(wǎng)在訓(xùn)練時(shí)可以和其他子網(wǎng)交互,使其學(xué)習(xí)到其他子網(wǎng)的學(xué)習(xí)誤差,通過(guò)這種方法可以有效地提高網(wǎng)絡(luò)訓(xùn)練效率。
集成模型用于回歸任務(wù)時(shí),一般是對(duì)各個(gè)體學(xué)習(xí)器的輸出結(jié)果進(jìn)行簡(jiǎn)單平均或加權(quán)平均,但也有利用神經(jīng)網(wǎng)絡(luò)的方法對(duì)權(quán)重進(jìn)行自適應(yīng)學(xué)習(xí),進(jìn)行非線性的組合以得到最終的結(jié)果。平均法即將3個(gè)輸出的平均值或加權(quán)值作為最終模型的預(yù)測(cè)結(jié)果。
本文構(gòu)建的集成模型共有3個(gè)輸出,分別對(duì)應(yīng)3個(gè)子網(wǎng)的預(yù)測(cè)結(jié)果,采用BP神經(jīng)網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)法對(duì)集成模型的輸出進(jìn)行組合,即將3個(gè)子網(wǎng)的輸出作為BP神經(jīng)網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)的輸出為預(yù)見(jiàn)期的預(yù)測(cè)斷面流量,通過(guò)BP神經(jīng)網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)最優(yōu)組合方式。
屯溪流域地處安徽省黃山市屯溪區(qū),位于我國(guó)東南沿海,在錢塘江流域內(nèi)處于新安江上游,氣候適宜,雨量充沛,年平均降水量1600 mm,年內(nèi)降水分配不均,4~6月份降水較充沛,7~9月份降水較少。屯溪流域共設(shè)有11個(gè)報(bào)訊雨量站和1個(gè)流量站,如圖5所示。
圖5 屯溪流域圖
本文選取屯溪流域1981-2003年汛期發(fā)生的共38場(chǎng)洪水?dāng)?shù)據(jù)作為研究對(duì)象,數(shù)據(jù)時(shí)間間隔為1 h。將38場(chǎng)洪水劃分成訓(xùn)練集和測(cè)試集,其中訓(xùn)練集包括28場(chǎng)洪水,測(cè)試集包括10場(chǎng)洪水。訓(xùn)練集包括19969個(gè)時(shí)刻的監(jiān)測(cè)值,測(cè)試集包括5249個(gè)時(shí)刻的監(jiān)測(cè)值。采用min-max方法將數(shù)據(jù)規(guī)約到[0,1],分別建立1~6 h預(yù)見(jiàn)期下的屯溪流域出口流量預(yù)測(cè)模型。
針對(duì)BP、CNN、LSTM模型分別建立不同預(yù)見(jiàn)期下的預(yù)測(cè)模型。使用第3.2節(jié)中的評(píng)價(jià)指標(biāo)對(duì)模型進(jìn)行評(píng)價(jià)。分析在相同預(yù)見(jiàn)期下,不同模型預(yù)測(cè)的洪水過(guò)程的誤差指標(biāo)來(lái)評(píng)估各個(gè)模型的效果。本文采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型(BP)、卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型(CNN)、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)預(yù)測(cè)模型(LSTM)和負(fù)相關(guān)結(jié)合BP集成網(wǎng)絡(luò)預(yù)測(cè)模型(NCLBP)進(jìn)行實(shí)驗(yàn)對(duì)比。
使用調(diào)優(yōu)后的模型在測(cè)試集上進(jìn)行測(cè)試,并計(jì)算洪水預(yù)報(bào)評(píng)價(jià)指標(biāo),對(duì)模型最終的預(yù)測(cè)效果進(jìn)行分析和評(píng)價(jià)。水文模型評(píng)價(jià)指標(biāo)包括納什效率系數(shù)(NSE)、均方根誤差(RMSE)等[30]。NSE一般用來(lái)驗(yàn)證水文過(guò)程模擬結(jié)果的好壞,其取值范圍為(-∞,1],越接近1表示模型質(zhì)量越好,可信度越高;越接近0,表示預(yù)測(cè)結(jié)果總體可信,但存在較大誤差;遠(yuǎn)小于0時(shí),預(yù)測(cè)結(jié)果是不可信的。NSE和RMSE的計(jì)算方法如下:
(6)
(7)
但由于NSE的誤差累積效應(yīng)和均化處理這2點(diǎn)特征,其作為評(píng)價(jià)標(biāo)準(zhǔn)時(shí)側(cè)重于對(duì)整體過(guò)程誤差的估計(jì),對(duì)單點(diǎn)狀況如洪峰的表征不夠。而在中小河流的洪水預(yù)報(bào)中,除了洪水過(guò)程的精度,洪峰和洪量精度也尤為重要。因此本文還選用了洪峰出現(xiàn)時(shí)間誤差(PTE)、預(yù)報(bào)洪峰流量和洪峰相對(duì)誤差(PRE)對(duì)模型結(jié)果進(jìn)行評(píng)價(jià)[31-32]。
(8)
PTE=Tp-To
(9)
其中,yo為實(shí)測(cè)洪峰流量,yp為預(yù)報(bào)洪峰流量,To為實(shí)測(cè)峰現(xiàn)時(shí)間,Tp為預(yù)測(cè)峰現(xiàn)時(shí)間。
首先采用皮爾遜相關(guān)系數(shù)法,分析不同時(shí)間間隔的雨量與流域出口斷面流量之間的相關(guān)系數(shù),結(jié)果如圖6所示。圖6中不同曲線代表屯溪流域11個(gè)雨量站的雨量與流量間的相關(guān)性,可以看出,曲線均呈先單調(diào)遞增再遞減趨勢(shì),峰值出現(xiàn)在t=11時(shí)刻,因此選取t時(shí)刻前11 h的歷史數(shù)據(jù)作為輸入數(shù)據(jù)。
以1 h預(yù)見(jiàn)期為例,使用滑動(dòng)窗口法切分?jǐn)?shù)據(jù),將預(yù)見(jiàn)期前11 h斷面流量及測(cè)站雨量作為輸入,后1 h斷面流量作為輸出來(lái)建立模型。
本文中,BP子網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)量為132,通過(guò)經(jīng)驗(yàn)公式[22]將隱藏層數(shù)量設(shè)定為4。結(jié)合人工法和經(jīng)驗(yàn)法,經(jīng)過(guò)多次實(shí)驗(yàn)測(cè)試,對(duì)實(shí)驗(yàn)結(jié)果的誤差進(jìn)行分析對(duì)比,最終得出BP子網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)分別為512、256、128和64,輸出層節(jié)點(diǎn)數(shù)為1,代表預(yù)報(bào)期的流量。
圖6 不同時(shí)刻雨量與t時(shí)刻流量之間相關(guān)性分布圖
CNN主要用于處理網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),例如圖像、視頻等,本文將其用于水文時(shí)間序列預(yù)測(cè)時(shí),將各雨量站原始的一維雨量時(shí)間序列數(shù)據(jù)reshape為二維網(wǎng)格數(shù)據(jù)作為網(wǎng)絡(luò)輸入,模型包括輸入層、3個(gè)卷積層、1個(gè)全連接層和輸出層。
本文采用的CNN子網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 CNN網(wǎng)絡(luò)參數(shù)表
本文采用的LSTM子網(wǎng)絡(luò)輸入層為各雨量站原始的一維雨量時(shí)間序列數(shù)據(jù),節(jié)點(diǎn)數(shù)為132,使用前11個(gè)歷史數(shù)據(jù)作為輸入來(lái)預(yù)測(cè)下一時(shí)刻的數(shù)據(jù),即預(yù)測(cè)步長(zhǎng)為11,LSTM層神經(jīng)元個(gè)數(shù)為50,全連接層神經(jīng)元個(gè)數(shù)為256,本文中預(yù)測(cè)值只有一個(gè),故輸出層神經(jīng)元個(gè)數(shù)為1,代表預(yù)報(bào)期的流量,Dropout值設(shè)為20%以降低過(guò)擬合。
表2、表3展示了不同模型在1~6 h預(yù)見(jiàn)期下的NSE、RMSE。
表2 不同網(wǎng)絡(luò)在1~6 h預(yù)見(jiàn)期下的NSE
表3 不同網(wǎng)絡(luò)在1~6 h預(yù)見(jiàn)期下的RMSE平均誤差
可以看出,在1~6 h預(yù)見(jiàn)期下,各模型的平均確定性系數(shù)均高于0.90,達(dá)到甲級(jí)。且在1~4 h預(yù)見(jiàn)期下,平均確定性系數(shù)均高于0.95,但隨著預(yù)見(jiàn)期增加,均呈下降趨勢(shì)。預(yù)見(jiàn)期較短時(shí),不同模型NSE相差不大,但隨著預(yù)見(jiàn)期的增加,NCLBP模型的優(yōu)勢(shì)逐漸凸顯。
在1~4 h預(yù)見(jiàn)期下,各模型的平均RMSE均低于100.0。CNN模型和LSTM模型在1~2 h預(yù)見(jiàn)期下RMSE顯著低于BP模型;在3 h以上預(yù)見(jiàn)期時(shí)RMSE增幅較大,而NCLBP模型整體比較穩(wěn)定,僅在6 h預(yù)見(jiàn)期下大于100.0。在1~6 h預(yù)見(jiàn)期下,隨著預(yù)見(jiàn)期的增加RMSE系數(shù)均呈上升趨勢(shì)。不同模型的RMSE變化趨勢(shì)各不相同,整體上NCLBP模型增長(zhǎng)幅度較小。
圖7展示了不同模型10場(chǎng)洪水的預(yù)報(bào)洪峰流量相對(duì)誤差,表4展示了預(yù)報(bào)洪峰流量平均誤差。如圖7(a)所示,BP模型在1~2 h預(yù)見(jiàn)期下,除了2個(gè)情形外,均小于5%;在3 h預(yù)見(jiàn)期下,均小于20%;在4~6 h預(yù)見(jiàn)期下,6個(gè)情形大于20%。如圖7(b)所示,CNN模型在1~2 h預(yù)見(jiàn)期下,除2個(gè)情形外,均小于5%;在3 h預(yù)見(jiàn)期下,除1個(gè)情形外,均小于20%;在4~6 h預(yù)見(jiàn)期下,13個(gè)情形大于20%。如圖7(c)所示,LSTM模型在1~2 h預(yù)見(jiàn)期下,均小于5%;在3 h預(yù)見(jiàn)期下,除1個(gè)情形外,均小于20%;在4~6 h預(yù)見(jiàn)期下,5個(gè)情形大于20%。如圖7(d)所示,NCLBP模型在1~2 h預(yù)見(jiàn)期下,均小于5%;3 h預(yù)見(jiàn)期下,除3個(gè)情形外,均小于20%;在4~6 h預(yù)見(jiàn)期下,4個(gè)情形大于20%。
(a) BP預(yù)報(bào)流量誤差
(b) CNN 預(yù)報(bào)流量誤差
(c) LSTM預(yù)報(bào)流量誤差
(d) NCLBP 預(yù)報(bào)流量誤差
從表4可以看出,NCLBP在1~6 h預(yù)見(jiàn)期下的平均誤差為7.97%,優(yōu)于其他模型,比最好的單模型BP提升了1.13個(gè)百分點(diǎn)。在3 h預(yù)見(jiàn)期下,平均誤差為3.24%,比最好的單模型BP提升了2.1個(gè)百分點(diǎn)??傮w來(lái)說(shuō)在1~6 h預(yù)見(jiàn)期下,相較其他模型, NCLBP的預(yù)報(bào)流量平均誤差有顯著提升。
表4 不同網(wǎng)絡(luò)在1~6 h預(yù)見(jiàn)期下的預(yù)報(bào)流量平均誤差 單位:%
圖8展示了不同模型10場(chǎng)洪水的峰現(xiàn)時(shí)刻洪峰流量誤差,表5展示了不同模型在1~6 h預(yù)見(jiàn)期下的峰現(xiàn)時(shí)刻洪峰流量平均誤差。從圖8可以看出,預(yù)見(jiàn)期較短時(shí),僅使用BP神經(jīng)網(wǎng)絡(luò)就可得到較好的結(jié)果,其相對(duì)誤差較?。活A(yù)見(jiàn)期大于3 h時(shí),可以明顯看出,LSTM模型預(yù)測(cè)的結(jié)果仍能保證較小的誤差,但也有一些誤差較大的點(diǎn),當(dāng)預(yù)見(jiàn)期達(dá)到6 h時(shí),CNN模型的優(yōu)勢(shì)逐漸凸顯,NCLBP模型則很好地綜合了這些特點(diǎn),在預(yù)見(jiàn)期不斷增大的情況下,模型相對(duì)比較穩(wěn)定,具有較高的泛化能力。
(a) BP峰現(xiàn)時(shí)刻洪峰流量誤差
(b) CNN 峰現(xiàn)時(shí)刻洪峰流量誤差
(c) LSTM峰現(xiàn)時(shí)刻洪峰流量誤差
(d) NCLBP 峰現(xiàn)時(shí)刻洪峰流量誤差
從表5可以看出,NCLBP在1~6 h預(yù)見(jiàn)期下的平均誤差為5.92%,優(yōu)于其他模型,比最好的單模型LSTM提升了0.32個(gè)百分點(diǎn)。
表5 不同網(wǎng)絡(luò)峰現(xiàn)時(shí)刻洪峰流量平均誤差 單位:%
總體來(lái)看,使用NCLBP模型相較于單一模型而言,洪峰流量預(yù)報(bào)準(zhǔn)確率較高,且預(yù)報(bào)誤差隨著預(yù)見(jiàn)期的增加變化不明顯。
洪水過(guò)程預(yù)報(bào)結(jié)果的另一項(xiàng)重要的評(píng)價(jià)指標(biāo)是洪峰出現(xiàn)時(shí)間誤差,峰現(xiàn)時(shí)間誤差的大小直接決定了給防洪措施預(yù)留的準(zhǔn)備時(shí)間,表6展示了不同模型在1~6 h預(yù)見(jiàn)期下的峰現(xiàn)時(shí)間誤差(單位:h),以預(yù)報(bào)時(shí)間至實(shí)測(cè)洪峰出現(xiàn)時(shí)間之間時(shí)距的30%作為許可誤差。
從表6可以看出,BP模型在1~3 h預(yù)見(jiàn)期下,有4個(gè)情形誤差大于3 h。在4~6 h預(yù)見(jiàn)期下,有16個(gè)情形不滿足誤差許可(粗體顯示)。CNN模型在1~3 h預(yù)見(jiàn)期下,有2個(gè)情形誤差大于3 h。在4~6 h預(yù)見(jiàn)期下,有14個(gè)情形不滿足誤差許可(粗體顯示)。LSTM模型在1~3 h預(yù)見(jiàn)期下,有1個(gè)誤差大于3 h。在4~6 h預(yù)見(jiàn)期下,有14個(gè)情形不滿足誤差許可(粗體顯示)。NCLBP模型在1~3 h預(yù)見(jiàn)期下,有2個(gè)情形誤差大于3 h。在4~6 h預(yù)見(jiàn)期下,有10個(gè)情形不滿足誤差許可(粗體顯示)。
表6 不同網(wǎng)絡(luò)1~6 h預(yù)見(jiàn)期峰現(xiàn)時(shí)間誤差 單位:h
總體來(lái)看,任一單獨(dú)的模型預(yù)測(cè)峰現(xiàn)時(shí)間均隨著預(yù)見(jiàn)期的增大效果變差,除第6場(chǎng)洪水在4~5 h預(yù)見(jiàn)期下的預(yù)測(cè)峰值誤差較大外,NCLBP模型均表現(xiàn)出明顯優(yōu)勢(shì),出現(xiàn)較多的提前預(yù)報(bào)洪峰的情況,這正解決了當(dāng)前中小河流洪水預(yù)報(bào)面臨的問(wèn)題,為及時(shí)采取防護(hù)措施爭(zhēng)取了時(shí)間。
本文分別使用BP神經(jīng)網(wǎng)絡(luò)、CNN和LSTM網(wǎng)絡(luò)建立預(yù)見(jiàn)期為1~6 h的洪水預(yù)報(bào)模型,并在集成學(xué)習(xí)基礎(chǔ)上結(jié)合負(fù)相關(guān)學(xué)習(xí)方法,將上述3個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行集成,基于負(fù)相關(guān)學(xué)習(xí)理論重新設(shè)計(jì)了集成模型損失函數(shù)以使集成模型中各子網(wǎng)絡(luò)得到有效交互。并對(duì)集成模型的輸出結(jié)果使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行融合,驗(yàn)證了對(duì)異構(gòu)模型的集成問(wèn)題的可行性,根據(jù)流域歷史降雨和流量監(jiān)測(cè)數(shù)據(jù)對(duì)未來(lái)1~6 h出口流量可以使用多種預(yù)報(bào)模型進(jìn)行高精度預(yù)測(cè)。
實(shí)驗(yàn)結(jié)果表明,NCLBP模型相對(duì)單一模型而言具有更高的預(yù)測(cè)精度,且整體上隨預(yù)見(jiàn)期的增大預(yù)測(cè)精度相對(duì)變化不大,具有更高的穩(wěn)定性。在預(yù)見(jiàn)期不斷增大的情況下,單一模型預(yù)測(cè)波動(dòng)較大,不同模型顯現(xiàn)出各自的特點(diǎn),而NCLBP模型很好地綜合了這些特點(diǎn),大大降低了整體的偏差和方差。
負(fù)相關(guān)學(xué)習(xí)方法中懲罰系數(shù)的選取對(duì)集成模型的泛化能力有一定的影響。因此,如何快速準(zhǔn)確地選擇出合適的懲罰系數(shù)可以作為下一步研究的課題。