王建金,石 朋,2,瞿思敏,肖紫薇,戴韻秋,陳穎冰,陳星宇
(1.河海大學 水文水資源學院,南京 210098;2.河海大學 水文水資源與水利工程科學國家重點實驗室,南京 210098)
水文模型是洪水預報中應用最廣泛的預報方式之一,通過流域歷史長期水文資料率定模型參數,而后用于實際水文預報工作中。水文現象在時間上具有極為明顯的連續(xù)性和相關性,單個時刻預報的誤差如若不能及時消除,勢必會對未來預報的精度產生影響,長期積累的誤差甚至會導致預報結果嚴重偏離,這時就需要應用實時修正技術[1]。
BP神經網絡算法是從現代控制理論引入水文的一種智能算法,廣泛應用于洪水預報、水質分類和水資源規(guī)劃等水文領域[2,3]。該算法采用有導師學習的模式,要求預報的結果必須有實測的真值指導模型率定,因而在實時修正領域只能對水文預報的最終結果進行修正。傳統(tǒng)BP神經網絡修正算法基于誤差自回歸的預報原理[4],預報精度與二階AR模型類似[5],且無法延長預見期,應用受到較大限制。
本文對BP神經網絡的基本原理結合水文物理規(guī)律進行改進,解決了修正量無直接對應的實測數據指導模型率定的限制,與馬斯京根匯流模型耦合,實時修正主河道各河段的區(qū)間入流,在不損失預見期的前提下,提升預報精度。選取海南省定安河流域歷史洪水資料對算法的穩(wěn)定性和可靠性進行檢驗[6],并與二階AR模型[7]的修正結果進行對比。
馬斯京根法是在1938年由G.T.麥卡錫提出的河道匯流演算模型,依據上游斷面洪水過程推求下游出流,在國內外均有廣泛應用實例。伴隨著水文預報由集總式模型向半分布式、分布式水文模型發(fā)展的總體趨勢,流域內各計算單元得到的出流結果均需要按一定原則匯入河道,馬斯京根匯流模型在眾多匯流算法中效果顯著。流域內不同位置產流的匯流時間有較大差異,當前時刻的預報結果受上游之前時刻的河道區(qū)間入流影響較大,及時修正主河道各河段區(qū)間入流的誤差對預報的準確性意義重大。
傳統(tǒng)BP神經網絡修正算法采用有導師指導的學習模式,修正量必須有直接的實測真值指導神經網絡的率定。該算法基于誤差自回歸的原理,輸入量為預報時刻前N個時段的預報誤差信息,計算得到預報時刻的誤差值,計算流程如下:
et=Qp,t-Qo,t
(1)
et+L=FBP(et,et-1,…,et-N+1)
(2)
(3)
在實時修正領域,各時段間誤差的自相關性在鄰近時刻達到最強,故而預報精度會隨著預見期的增加逐步下降,且對于模型計算過程中無實測真值的中間變量,例如各子流域計算的產流量,主河道的區(qū)間入流量等不具有修正能力。
本文對神經網絡算法中反向傳播部分進行改進,實現了與馬斯京根匯流模型耦合,以流域最終出流指導主河道區(qū)間入流修正的耦合修正算法。
以流域概化后主河道有m處河段區(qū)間入流的情況為例,模型輸入為控制斷面實測出流和預報流量,輸出為m處河段L個小時前的區(qū)間入流修正量,修正后重新計算L個小時的馬斯京根演算過程即得到最終預報結果,計算流程如下:
ΔQm,t=FBPC(Qp,t+L,Qo,t+L)
(4)
(5)
BP神經網絡算法通過正向計算結果和反向傳播誤差信息修正網絡,基本原理詳見文獻[8]。當神經網絡正向傳播得到各河段計算誤差ΔQm,并經由馬斯京根匯流得最終計算誤差ΔQp后,反向傳播部分的改進方式如下:
基于馬斯京根線性演算的特點,假定各河段區(qū)間入流修正量的誤差與修正后演算的最終出流量的誤差之間也存在線性關系,則以下關系成立:
ΔQmo-ΔQm=km(Qo-Qp)
(6)
式中:ΔQmo和ΔQm分別為第m個河段區(qū)間入流的誤差的真值和計算值;Qo是實測流量;Qp是修正后的計算流量;km為匯流演算的比例系數,大小介于0和1之間。
由神經網絡算法可知:
ΔQm=wk1mo(k-1)1+wk2mo(k-1)2+…+wknmo(k-1)n+θkm
(7)
式中:wkim是k-1層第i個節(jié)點對應k層第m個節(jié)點的權值;o(k-1)i是k-1層第i個節(jié)點的輸出;θkm是k層第m個節(jié)點的閾值。
模型第m個河段的誤差函數:
(8)
因此,神經網絡最后一層由第m個河段區(qū)間入流誤差導致的權值、閾值的修正公式如下:
(9)
(10)
倒數第二層由第m個河段區(qū)間入流誤差導致的權值、閾值的誤差修正公式如下:
(11)
ηkm(Qo-Qp)wkimo(k-1)i(1-o(k-1)i)o(k-2)j
(12)
其余各層按上式方式繼續(xù)推導即可,由上述公式可知,只要確定了各河段匯流演算的修正比例系數km,該改進方案就可以達到預期的目的。km的取值提供以下3種方式:①在馬斯京根匯流過程中保留每一步入流和出流的中間變量,基于數理統(tǒng)計的方式進行線性擬合確定;②采用馬斯京根匯流系數的計算方式獲得;③基于神經網絡本身的學習能力采用二速收斂法:神經網絡各層的修正是一個遞推的模式,只需要關注最后一層的網絡修正。
采用最速下降法確定誤差反向傳播的修正方向,然后將兩種不同修正速率進行反向傳播,構建km1和km2,改進的修正準則如下:
(13)
式中:ΔQp為計算流量的誤差;ΔQmp為神經網絡計算的第m個河段的修正量;sign(·)為符號判斷函數,判斷正負號。
令km1?km2且介于0到1之間,即神經網絡計算的修正量方向與模型誤差方向相反時,采用km2進行大幅度的糾正,反之采用km1只進行小幅度的修正,首先達到單次修正時所有河段的修正量方向相同,然后達到修正量的大小符合要求。以上準則確保了相應權值和閾值可以在正確方向上進行修正,在大量數據反復率定的情況下,該算法最終可以很好地收斂。
定安河流域位于海南島中部偏東北,與樂會水流域共同構成萬泉河的兩大源頭。地處熱帶季風性氣候區(qū),全年高溫,年平均氣溫不低于22 ℃。雨量充沛,年平均降雨1 639 mm,有明顯的旱季和雨季,洪澇災害多發(fā)于5月到翌年的10月,全年降雨的70%~90%發(fā)生這一時期。全流域雨量站共計11處,流域出口處建有加報水文站,集水面積1 257 km2。該流域具有多年水文氣象連續(xù)監(jiān)測資料,選取共計20場次洪開展本次研究。
定安河流域運用泰森多邊形的方式共計劃分為11個子流域,分別由新安江模型計算各子流域的出流結果,出流結果作為區(qū)間入流匯入主河道并應用馬斯京根河段連續(xù)演算至流域出口斷面。經演算,共計7個河段有區(qū)間入流匯入,需要進行實時修正。神經網絡耦合修正模型與馬斯京根匯流模型耦合,輸入節(jié)點為當前時刻預報流量和實測值,網絡采用雙隱層模式,隱含層節(jié)點為4和10,修正預報前1個時刻主河道的7個區(qū)間入流,設置單次修正幅度最大不超過20%。
圖1 定安河流域泰森多邊形劃分圖Fig.1 Thiessen polygon partition of Dingan River watershed
保留新安江模型和馬斯京根匯流模型計算過程中的所有中間變量作為學習樣本,選取10場次洪率定,10場次洪驗證的交叉驗證方式,設置初始學習效率系數0.1,動量系數0.15,采用均方根誤差作為判斷準則,目標精度0.01,最大循環(huán)次數10 000 次,經多次率定網絡在1200次左右時即達到最優(yōu)值,全局誤差變化見圖2。由圖可知,率定數據和驗證數據的誤差均一致下降說明網絡訓練效果較好,且該算法收斂迅速,相較傳統(tǒng)算法數萬次的循環(huán)次數改進明顯。
圖2 神經網絡交叉驗證過程誤差變化圖Fig.2 Error variation of neural network cross validation process
單時段修正檢驗的目的在于驗證模型的穩(wěn)定性,上游各河段區(qū)間入流的修正結果將在多個時段后才會顯現出來,如果模型輸出的修正量存在較大誤差,只看當前時刻的修正結果可能掩蓋模型本身的缺陷。為達到這個目的,保留整場次洪的所有中間變量,每個時段進行一次修正后不再修正,同時記錄下當前時刻,2 h之后、4 h之后的改善結果,記為BPCQ0、BPCQ2和BPCQ4。修正效果指標采用百分比偏差和納什效率系數,驗證期10場次洪的單時段修正效果見表1。
表1 驗證期單時段耦合修正結果統(tǒng)計表Tab.1 Statistics for the accuracy of single period coupling correction during calibration period
注:“Mean”這一欄,ΔR和ΔQ的均值為絕對值的平均值,并非直接相加后求平均。
由表1可知:定安河流域經過多次人機交互率定后,XAJ模型直接計算后模擬結果的平均NSE達到0.914,模擬效果較好,但存在多場洪水洪峰偏離較大的情況。BP神經網絡耦合修正后,ΔR的平均偏差BPQC0為3.09%,BPCQ2為3.69%,BPCQ4為4.19%相較修正前4.9%的偏差略有下降,且最大偏差由18.83%降低為BPCQ0的-8.01%,BPCQ2的11.49%和BPCQ4的15.51%。在洪峰方面,BPCQ0的ΔQ均值較修正前的8.08%降低到0.19%,BPQ2降低到5.1%,BPQ4的ΔQ也僅為6.03%,說明洪峰預報精度提升顯著。BPCQ0的平均NSE達到了0.978,BPQ2為0.958,BPQ4為0.934均高于修正前的0.914,說明耦合修正模型的修正效果確實具有持續(xù)作用。
圖3 次洪20081003和20131109單時段修正結果對比圖Fig.3 single period coupling correction comparison of the flood 20081003 and 20131109
實時修正檢驗的目的在于驗證模型在實際應用中的可靠性,分別采用BP耦合修正和二階AR模型對定安河流域的20場次洪進行實時修正。二階AR模型選用最近5個時段的誤差信息對預報結果進行動態(tài)修正,因為AR模型的修正效果隨著預見期增加會明顯下降,故選取修正后最近一個時段的預報結果進行對比分析,驗證BP耦合修正算法的可靠性,實時修正檢驗結果見表2。由表2可知:修正后,徑流深平均偏差由6.08%分別降為BPC的2.03%和AR(2)的2.91%;在洪峰方面,BPC由XAJ模型ΔQ均值的10.19%降低為2.65%,AR(2)則降低為4.94%。平均NSE的提升方面,BPC由修正前的0.894提高到0.985,AR(2)則為0.97。
綜上可見,BP耦合修正算法在定安河流域的實時修正檢驗過程中,徑流深、洪峰和NSE指標方面均較二階AR模型更優(yōu),該算法的可靠性得到驗證。
表2 定安河流域20場次洪實時修正結果對比Tab.2 Comparison of results of real-time updating for 20 floods of Dingan River watershed
注:“Mean”這一欄,ΔR和ΔQ的均值為絕對值的平均值,并非直接相加后求平均。
圖4 次洪20011021和20020817實時修正結果對比圖Fig.4 Real-time updating comparison of the flood 20011021 and 20020817
本文提出將BP神經網絡與馬斯京根匯流模型耦合修正的新方法,該算法收斂迅速且不損失預見期,拓展了BP神經網絡算法在實時修正領域的應用。選取海南省定安河流域作為研究區(qū),通過單時段修正檢驗構建三種對比方案,證明了該算法的修正效果具有穩(wěn)定性,實時修正檢驗的結果表明該算法在徑流深、洪峰和納什效率系數方面的精度均有一定提升,在修正效果方面整體優(yōu)于二階AR模型,是一種可靠的修正算法,具有進一步研究的價值。
□
[1] 包為民.水文預報[M].北京:中國水利水電出版社,2006.
[2] 盧韋偉,周建中,陳 璐,等.考慮預報因子選擇的神經網絡降雨徑流模型[J].水電能源科學,2013,31(6):21-25.
[3] 王 炎,王船海,王 妮,等.BP神經網絡在感潮河段水動力洪水預報中的應用[J].水力發(fā)電,2016,42(2):21-25.
[4] 鄭春成.湯河水庫實時洪水預報技術研究[J].水利信息化,2012,(3):37-39.
[5] 韓 通,李致家,劉開磊,等.山區(qū)小流域洪水預報實時校正研究[J].河海大學學報(自然科學版), 2015,43(3):208-214.
[6] Si W, Bao W, Gupta H V.Updating real-time flood forecasts via the dynamic system response curve method[J]. Water Resources Research, 2015,51(7):5 128-5 144.
[7] 陳 攀,姜志群.AR模型在寶珠寺水庫實時洪水預報校正中的應用[J].水利信息化,2014(3):41-44.
[8] 韓力群.人工神經網絡教程[M].北京:北京郵電大學出版社, 2006.