萬新宇,華麗娟,孫淼焱,鐘平安
(河海大學水文水資源學院,江蘇南京210098)
我國洪澇災害發(fā)生頻繁,經(jīng)濟損失巨大[1]。準確預報洪水過程是減輕洪水災害的一項重要的非工程措施[2]。目前,洪水預報方法較多,大體可分為模型驅(qū)動與數(shù)據(jù)驅(qū)動兩類。模型驅(qū)動利用各類基于物理機制的水文模型進行洪水預報,如新安江模型[3]、TOPKAPI模型[4]和TOPMODEL[5]等。此類模型能詳細描述流域洪水形成過程,預報精度高,應用廣泛;但對資料要求高,除了基本的降雨徑流資料外,還需要流域蒸發(fā)、地形地貌和土地利用等資料的支撐[6]。當資料要求得不到滿足時,人們常常依據(jù)統(tǒng)計理論構建降雨徑流數(shù)據(jù)驅(qū)動模型,如ARMA[7]、NARX[8]和神經(jīng)網(wǎng)絡模型[9]等。其中,以神經(jīng)網(wǎng)絡模型應用最為流行。
神經(jīng)網(wǎng)絡模型一般分為靜態(tài)網(wǎng)絡和動態(tài)網(wǎng)絡[10]。靜態(tài)網(wǎng)絡主要有反向傳播網(wǎng)絡[11]、徑向基網(wǎng)絡[12]和廣義回歸網(wǎng)絡[13]等。其中,以應用反向傳播網(wǎng)絡進行洪水預報最為普遍[14-15]。然而,流域洪水過程是一個復雜的非線性的動態(tài)過程,當前時刻洪水流量受到前期若干時段的降雨、徑流以及流域狀態(tài)的影響,靜態(tài)網(wǎng)絡一般難以反映這種動態(tài)特征[16]。相反,動態(tài)網(wǎng)絡因具有反饋連接和延遲結構而能夠反映系統(tǒng)的動態(tài)變化過程,如Elman網(wǎng)絡[17,18]和NARX網(wǎng)絡[19]。為此,本文以淮河流域響洪甸水庫為例,基于Elman網(wǎng)絡構建洪水預報模型,采用實時遞歸學習算法進行模型訓練,并對模型預測性能進行評價。
本研究基于三層感知機,構建動態(tài)神經(jīng)網(wǎng)絡,其中包含1個輸入-輸出聯(lián)結層、1個隱含層和1個輸出層,具體結構如圖1所示。網(wǎng)絡有M個外部輸入和K個輸出。x(t)為網(wǎng)絡在t時刻的M×1維外部輸入向量,z(t+1)為網(wǎng)絡在t+1時刻的K×1維輸出向量,y(t+1)為網(wǎng)絡在t+1時刻隱含層的N×1維輸出向量。聯(lián)結外部輸入向量x(t)和隱含層延遲輸出向量y(t),得(M+N)×1維向量u(t),其中ui(t)代表其第i個元素,即
(1)
式中,A為外部輸入xi(t)的下標集;B為隱含層單元輸出yi(t)的下標集。
網(wǎng)絡的輸入-輸出聯(lián)結層與隱含層之間完全互連,其中有M×N個前向連接和N×N個反饋連接。W表示網(wǎng)絡的N×(M+N)維遞歸權重矩陣。為了使每個單元都有一個偏置值,本研究在M個輸入中總包含一個值為1的輸入。隱含層與輸出層也是完全互連,V表示K×N維權重矩陣。
圖1 Elman動態(tài)網(wǎng)絡結構
計算t時刻網(wǎng)絡隱含層中神經(jīng)元j的凈輸入,j∈B。即
(2)
再由傳輸函數(shù)f1(·)得到隱含層神經(jīng)元j在t+1時刻的輸出,即
yj(t+1)=f1(netj(t))
(3)
計算網(wǎng)絡輸出層神經(jīng)元k在t+1時刻的凈輸入netk(t+1)和輸出zk(t+1)。即
(4)
zk(t+1)=f2(netk(t+1))
(5)
式中,f2(·)為隱含層到輸出層的傳輸函數(shù)。值得注意的是,t時刻的外部輸入直到t+1時刻才會影響神經(jīng)元的輸出。上述系統(tǒng)構成完整的動態(tài)網(wǎng)絡,本研究中傳輸函數(shù)f1(·)和f2(·)分別取tanh函數(shù)和線性函數(shù)。
定義t時刻的網(wǎng)絡輸出K×1維時變誤差向量e(t),其第k個元素為
ek(t)=dk(t)-zk(t)
(6)
式中,dk(t)為t時刻輸出層神經(jīng)元k的目標值。定義網(wǎng)絡t時刻的瞬時誤差平方和為
(7)
則網(wǎng)絡所有時刻的總誤差為
(8)
(9)
(10)
式中,η2為學習參數(shù)。又有
(11)
同理,可以求得各時刻權重wmn的變化
(12)
式中,η1是學習參數(shù)。
(13)
(14)
式中,j∈B,m∈B,n∈A∪B;δmj為克羅內(nèi)克函數(shù),當且僅當j=m時,δmj=1;否則,等于0。
假設時刻時t=0網(wǎng)絡的初始狀態(tài)與其權重無關,即
(15)
利用實時遞歸學習算法訓練如圖1所示Elman動態(tài)網(wǎng)絡,步驟如下:
(1)從開始,對每一時刻,用網(wǎng)絡的動態(tài)方程式(2)和(3)計算隱含層N個神經(jīng)元的輸出,從而求出聯(lián)合輸入ui(t)(i∈A∪B);再用動態(tài)方程式(4)和(5)計算輸出層K個神經(jīng)元的輸出。對權重的初值可賦以均勻分布的隨機數(shù)。
(16)
(4)按式(17)修正權重wmn和vkj
(17)
重復上述計算,直到誤差滿足一定的精度。
上述方法中,從初始時刻開始,每一時刻修正一次權重,使用的是瞬時誤差的梯度,與總誤差的梯度不同。當學習參數(shù)較小時,兩者效果差別不大[20]。
本研究以響洪甸水庫為例,進行入庫洪水預報研究。響洪甸水庫位于大別山區(qū)淮河流域淠河西源的安徽省金寨縣境內(nèi),流域面積1 431 km2。上游主要支流有燕子河、宋家河、姜家河,其中燕子河經(jīng)張沖流入水庫,宋家河和姜家河在青山匯合后流入庫內(nèi)。流域設有5座雨量站和2座水文站,具體分布如圖2所示。流域內(nèi)地勢南高北低,均是山區(qū)坡地匯流,匯流時間短。地質(zhì)構造簡單,以水成變質(zhì)巖分布最廣,其次為火成變質(zhì)巖和火山巖。流域內(nèi)植被較好,多為野生灌木叢。地表面與巖面覆蓋層一般為0.5 m左右,滲透性較好。響洪甸水庫地處江淮之間,位置偏南,氣候接近長江流域。降雨主要受季風控制,多年平均降水量1 519.8 mm,7、8月降雨頻繁且雨量大,易造成洪水。
圖2 響洪甸水庫流域示意
本研究收集到響洪甸水庫流域1998年至2006年間31場洪水資料,主要包括宋家河和響洪甸兩站的雨量資料、響洪甸水庫水位、出庫流量以及水位庫容曲線等資料。根據(jù)水量平衡原理,反推響洪甸水庫入庫洪水過程??紤]大中小不同量級的洪水過程,選擇其中16場洪水進行模型訓練,剩余15場洪水進行模型測試。計算時段長取1 h,以上時段雨量和入庫流量為模型輸入,預報下時段水庫入庫流量。模型結構為3個外部輸入單元,4個隱含層單元和1個輸出單元,隱含層向輸入層的反饋延遲1個時段。
利用訓練集中16場洪水,對上述模型進行訓練,模擬洪水過程。采用洪水總量誤差、洪峰流量誤差、峰現(xiàn)時刻差和確定性系數(shù)等指標評價各場洪水的模擬誤差,訓練結果見表1。
由表1可見,模型訓練后對各場洪水的模擬精度總體較高,洪水總量和洪峰流量的相對誤差絕對值平均為0.79%和4.17%,峰現(xiàn)時刻差平均為1.06小時,確定性系數(shù)平均值達到0.979。但各評價指標離散程度有所差別,洪峰流量相對誤差離散程度要大于洪水總量相對誤差離散程度,其變化范圍為[-1.13%,10.6%],而洪水總量相對誤差變化范圍為[-0.38%,2.75%]。峰現(xiàn)時刻差變化范圍為[-8,1],確定性系數(shù)的變化范圍為[0.868,0.999]。
通過訓練,確定了模型參數(shù)W和V,并利用該模型對預測集中15場洪水進行預測,預測結果見表2。
圖4為部分洪水的預測過程。由圖表可見,模型對預測集中15場洪水的預測精度也較高,洪水總量和洪峰流量的相對誤差絕對值平均為1.22%和4.24%,兩者均略高大于訓練誤差。但確定性系數(shù)平均值與模型訓練時相同,且峰現(xiàn)時刻差小于模型訓練時的峰現(xiàn)時刻差。相對于訓練結果,除峰現(xiàn)時刻差之外其他3個指標的離散程度均大于模型訓練時的離散程度。洪水總量相對誤差變化范圍為[-5.23%, 2.49%],洪峰流量相對誤差變化范圍為[-5.02%, 12.6%],確定性系數(shù)變化范圍為[0.857, 1.000]。
表1 訓練集中16場洪水的模擬結果
表2 測試集中15場洪水的預測結果
圖3 19990629號洪水預報過程
圖4 20050901號洪水預報過程
通過上述實例研究,得到以下結論:
(1)利用動態(tài)神經(jīng)網(wǎng)絡構建洪水預報模型,模型輸出不僅依賴于當前模型當前輸入,而且還依賴于前期模型輸入和模型狀態(tài),很好地反映了流域洪水動態(tài)變化特征。
(2)利用實時遞歸學習算法進行模型訓練,隨時間進程實時修正網(wǎng)絡權重,使得該算法和動態(tài)網(wǎng)絡模型能夠很好地適應實時洪水預報的要求。
(3)基于Elman網(wǎng)絡的響洪甸水庫洪水預報模型能夠得到較高的預報精度,洪水總量和洪峰流量的相對誤差絕對值平均為1.22%和4.24%,確定性系數(shù)平均達到0.979。
然而,本研究中采用的預見期較短,需要在后續(xù)研究中進一步研究較長預見期的動態(tài)網(wǎng)絡實時洪水預報模型,以更好地滿足防洪決策要求。