段生月,王長坤,張柳艷
(南昌航空大學 信息工程學院,南昌 330063)
我國是世界上洪水災害頻繁且嚴重的國家之一,洪水災害不僅范圍大、發生頻繁、突發性強,而且損失大.特別是近年來,受全球氣候變化和人類活動影響,極端天氣事件和人為突發水事件明顯增加.為了防治洪澇災害,我國投入了大量的人力、財力與物力,建設了一批又批防洪工程,大大加強了我國抗災御洪的能力.與此同時,我國還加強了非工程防洪措施.其中,洪水預報就是預防洪水災害的重要非工程措施之一,也一直是專家學者關心的課題.因此提高洪水預測的準確性,減輕洪水帶來的一系列災害,對整個流域的防洪安全有著非常重要的意義.一般來說洪水預測有3 種不同的方法,經驗法、統計法以及模型方法,但水文系統中多變量之間的非線性關系[1]遠非傳統方法能解決.隨著科學技術的快速發展,如何把最新的科學技術引入到水文預報中,提高水文預報精度,成為大家的關注點.隨著人工神經網絡[2]等非線性科學技術在各個行業的廣泛應用,為解決上述問題提供了機遇.
目前國內已有很多學者嘗試將人工神經網絡引入到洪水預測中.蘭州理工大學的李曉麗等[3]提出了不確定,確定支持向量機在洪水預測模型中的應用,該算法利用數據間的關系去掉冗余的信息,簡化算法運算,從而提高了洪水預測的精度;晉中市水文水資源勘測局的梁存峰等[4]提出了基于混沌自適應模型在洪水預測中的研究,該模型亦可在數據較少的情況下,取得精度較好的預測結果;福建省南平市水利局的金保明[5]在閩江十里庵流量預測中應用BP神經網絡,將反向傳播BP神經網絡模型應用于洪水預測,并且預測精度符合要求;何勇、李妍琰[6]提出改進粒子優化 BP神經網絡的洪水智能預測模型研究,以BP神經網絡為基礎,提取水位站往年平均徑流量作為洪水屬性,采用POS 算法對BP神經網絡的各個參數進行優化,得出最優的BP神經網絡預測適應度值,提高了預測的效率.以上算法都是比較傳統的神經網絡算法,雖然在一定程度上提高了洪水預測精確度,但是精度依舊不是特別理想.
本文提出一種基于正則化GRU神經網絡的洪水預測模型來提高洪水預報精度,選用relu 函數作為整個神經網絡的輸出層激活函數[7-9],將彈性網正則化引入到GRU模型中,對網絡中輸入權重w實施正則化處理,以提升GRU模型的泛化性能.并將該模型應用于外洲水文站每月平均水位的擬合及預測,實驗對比表明,彈性網正則化改進后模型的擬合效果和預測效果明顯提高,該方法計算出的均方根誤差較小,預測擬合程度較高.
傳統的人工神經網絡又被稱為前饋神經網絡FNN,是一種最簡單的神經網絡,包含輸入層、隱藏層這種模型在處理序列數據時只能利用當前時刻的信息,無法利用歷史信息.Elman 在1990年提出了循環神經網(Recurrent Neural Network,RNN),其隱藏層之間的節點也是有連接的,因此隱藏層的輸入不僅包括當前時刻輸入層的輸入還包括上一時刻隱藏層的輸出.理論上,RNN 能夠對任何長度的序列數據進行處理,但是在實踐中,當相關信息和當前預測位置之間的間隔不斷增大時,RNN 就會喪失學習遠距離信息的能力.這是因為RNN 通常使用的是BPTT 反向傳播算法對網絡進行優化,但是BPTT 無法解決長時依賴問題,因此該算法會帶來神經網絡梯度消失問題和梯度爆炸問題.
為了解決RNN網絡的梯度消失和梯度爆炸問題,研究人員在優化學習算法和配置網絡的技巧方面提出了較多的改進方法.文獻[10,11]中介紹 Schimidhuber H 于1997年提出了長短期記憶單元(Long Short-Term Memory,LSTM),用于改進傳統的RNN模型.LSTM神經單元是由一個或多個存儲器外加三個自適應乘法門組成.它通過輸入門、輸出門和遺忘門來控制信息的流動和傳遞,通過對輸入的信息進行剔除或增強到神經細胞單元中實現對細胞狀態的控制,使得LSTM 可以記憶、更新長距離的信息,從而實現對長距離信息的處理.受LSTM模型門機制啟發,Stanford在2014年提出了GRU模型,GRU網絡將LSTM 結構中的輸入門和遺忘門結合成一個單獨的更新門,合并了記憶細胞和隱含狀態,同時也做了一些調整.已有研究結果表明,GRU模型的性能與LSTM 相當,但計算效率更高,參數更少.整體的GRU神經網絡結構如圖1所示.

圖1 GRU神經網絡結構示意圖[5]
GRU中各個門的表達式如下:
GRU 更新門表達式:

GRU 重置門表達式:

GRU 輸出部分表達式:

式(1)中zt表示更新門,Wz是更新門的權重矩陣,ht-1表示上一個神經元的輸出,xt表示本次神經元的輸入,s是sigmoid 函數用來激活控制門.更新門的作用是幫助模型決定要將多少過去的信息傳送到未來,或者前一時間步和當前時間步的信息有多少是需要繼續傳遞的,模型通過復制過去信息以減少梯度消失的風險.式(2)中rt表示重置門,Wr表示重置門的權重矩陣,從本質上說,重置門主要決定有多少過去的信息需要被遺忘.
在深度神經網絡中,隨著層數以及各層神經元個數的增加,模型中參數的個數會以極快的速度增長.當網絡參數個數過多或訓練數據集很小時,神經網絡模型往往會出現過擬合問題.所謂過擬合,就是模型在訓練數據上擬合效果好,但是它在驗證集上效果很差,即模型泛化能力差.目前,防止過擬合的一般方法是增大訓練數據集,但當數據集有限時,防止過擬合的方法則是在訓練數據集中加入正則化技術.現在我們主要討論一些旨在改善過擬合的正則化方法.
正則化的方法就是在模型cost函數中加入某種正則項或幾種正則項的組合,表達式如下:

式中,l(·,·)為模型中損失函數,用來評價模型的泛化性能;λρ(w)為正則項,λ為正則化可調參數,用來控制正則項與損失函數之間的平衡關系,w為模型中待估參數.在正則項中,ρ(w)具有多種不同的表達形式,常用的是L1范數和L2范數.當選取不同的范數罰正則項,整個模型會有不同的泛化方向.L2正則化會對待估參數w進行一定程度壓縮使之正態分布,但并不能將其壓縮為零,因此不能產生稀疏解.而L1正則化將待估參數w的先驗分布約束為拉普拉斯分布,從而使模型具有稀疏性[12],進而控制模型的過擬合問題,但是由于參數值大小和模型復雜度成正比;若L1范數較大,最終可能影響模型的預測性能.為了克服不同范數正則項的缺點,這里引入彈性網正則化,也就是將L1范數和L2范數線性組合作為一個正則項.
本文將彈性網引入到GRU模型中,對網絡中輸入權重w實施正則化處理,以提升GRU模型的泛化性能,模型如下:

其中,λ為正則化可調參數用于平衡原有損失函數與正則項之間的關系.通過式(7)可知,修改正則可調參數λ1和λ2可得到不同組合的正則項,當λ1=0和λ2=0時,為普通的GRU模型;當λ1≠0和λ2=0時,為L1正則化網絡;當λ1=0和λ2≠0時,為L2正則化網絡;當λ1≠0和λ2≠0時,為彈性網正則化網絡.
由于GRU 在訓練過程中,容易出現過擬合現象,而正則化方法通過限制網絡中權重的大小,可以對一些因子施加懲罰,以夠彌補網絡本身的不足.所以這里利用正則化方法來優化GRU模型,從而實現對外洲站水位的預測.GRU 改進模型構建步驟如下:
步驟1:將時間序列的水文數據進行預處理,采用極差法使數據標準化,首先計算指標值的最小值和最大值,然后計算極差,通過極差法將指標值映射到[0-1]之間,公式為:

步驟2:將時間序列水文數據集F0={f1,f2,f2,f3,···,fn},劃分為訓練集和測試集,分別表示為Ftr={f1,f2,···,fm}和Fte={fm+1,fm+2,···,fn},滿足約束條件m<n和m,n∈N.設置分割窗口長度(batch-size)取值為L,分割后的模型輸入為:

其中,1 ≤p≤L;p,L∈N.
隱藏神經元的輸出值定義公式為:

X 經過隱藏層后的輸出可表示為:

其中,1 ≤p≤L;p,L∈N.
選用均方誤差作為誤差計算公式,訓練中的損失函數定義公式為:

損失函數是用來評估神經網絡目標輸出和實際輸出差距的函數,函數值越小說明實際輸出與目標輸出的差值越小,也就說明權值越合適.將損失函數與正則項之和設置為目標函數,給定網絡初始化的學習率以及訓練步數,如式(7)再應用Adam 優化算法實現目標函數的最小化并不斷更新網絡權重,從而得到最終的隱藏層網絡.
步驟3:預測過程采用迭代的方法.理論輸出P的最后一行數據:

將Pf輸入隱藏層后,輸出結果表示為:

則m+1時刻的預測值為ym+1,然后將Pf后的數據與ym+1合并成新的一行數據:

將Pf+1輸入隱藏層,則m+2時刻的預測值為ym+2,以此類推,得到的預測序列為:

步驟4:對Y0作z-score反標準化,得到最終的與測試集Fte對應的預測序列為Yte,通過計算Yte和Fte的偏差定量的給出模型的擬合與預測精度.
本實驗環境為:硬件配置CPU i7-7700K,GPU Gtx1060,運行內16 GB;軟件配置CUDA9.0、cudnn7.1;操作系統Ubuntu16.04;語言python3.6;框架tensorflow.
本實驗的代碼參數設置如下:輸入層神經元個數設為數設為3,輸出層神經元個數設為1,其中的隱藏單元的數量選取為10,每批數據量的大小batch_size設為10,通過調節λ值得到三種正則化網絡模型:L1正則化網絡、L2正則化網絡和彈性網正則化網絡.對比每組的RMSE 來確定最佳參數配置,最終確定三種模型中正則化可調參數 λ分別為λ1=0.02、λ2=0.004 和λ1=0.0043、λ2=0.38.本文針對江西省贛江外洲水文站1954年到2002年每月平均流量、平均水位、月份數據進行分析,將次月平均水位作為輸出變量,其他3個指標作為模型的輸入變量[13-16].以1954年到1997年各月平均水位作為訓練數據,對1998年到2002年共60個月的平均水位數據進行預測.
為了驗證本文所驗證的預測模型的可行性以及有效性,本文所采用的精度評定標準來自于中華人民共和國水利部《水文情報預報規范》(SL250-2000)[17],一次預報的誤差小于許可誤差時,為合格預報.合格預報次數與預報總次數的百分比為合格率.本文結合《水文情報預報規范》的有關規定設置水位許可誤差為0.2 m.合格率QR的表達公式如下:

其中,m是預報的總次數、n是合格預報(預報誤差小于許可誤差)的次數;當QR ≥85.0%時,為甲級精度;7 0.0% ≤Q R ≤8 5.0%時,為乙級精度;6 0% ≤Q R≤70.0%時,為丙級精度.
采用均方根誤差RMSE(Root Mean Square Error)來定量的評價模型的預測性能,RMSE通過計算預測值對觀察值的平均偏差程度來反映模型的預測性能,值越小預測效果越好.公式定義如下:

通過對上文中每種模型結構及參數的確定,共得到四種不同的GRU模型.為了比較這四種網絡模型預測性能,將四種模型分別對外洲站水文數據做訓練及預測,每組的誤差統計見表1.

表1 幾種預測模型RMSE 值和合格率(QR)統計表
由表1 可以看出3 種正則化GRU模型的RMSE的值均比普通GRU模型的RMSE值小,L2正則化網絡的RMSE 比L1正則化網絡稍小一些,彈性網正則化GRU模型的RMSE是實驗中最低的,僅為0.631.三種正則化GRU模型的合格率均比普通GRU模型大,L2正則化網絡的合格率比L1正則化網絡的合格率大一些,實驗中彈性網正則化GRU模型的合格率QR 最高為91.644%,相比普通的GRU模型合格率提高了9.3%.以上的驗證表明改進的GRU神經網絡對水文時間序列的驗證是有效的,彈性網正則化GRU模型預測結果更加準確,誤差更小,所以在洪水預測預測方面,彈性網正則化GRU模型預測值更接近洪水實測值,是一種有效可靠的預測方法.
這里選取各自最小RMSE的實驗預測結果圖,如圖2-圖5所示.

圖2 GRU模型預測結果圖(λ1=0,λ2=0)

圖3 L1正則化網絡預測結果圖(λ1=0.02,λ2=0)

圖4 L2正則化網絡預測結果圖(λ1=0,λ2=0.004)

圖5 彈性網正則化網絡預測結果圖(λ1=0.0043,λ2=0.38)
本文使用正則化GRU模型對水文站往年每月平均水位進行預測,通過比較三種正則化方法對GRU模型的改進,發現用彈性網正則方法優化GRU模型后合格率提高了9.3%,預測精度從乙等升到了甲等.由于洪水預測受到多方因素以及突發因素的影響,本文所使用的神經網絡訓練數據資料有限導致模型預測精度不是非常高,有待結合更多相關影響因子來進行研究處理.