申智鵬,孫穎娜,姚 浩,張麗娜
(黑龍江大學水利電力學院,黑龍江 哈爾濱 150080)
對徑流精確的模擬一直是水文在不停探索的問題之一,因其受影響的因素過多,且每個因素在流域上空間分布都是不均勻的[1],很難精確地模擬計算出每個因素的損失。傳統的水文模型對資料的收集、處理的要求較高,且參數的率定需要一定的經驗進行人工試錯。BP 神經網絡由于具有非線性映射能力、容錯能力、泛化能力、自適應性、自學性、對數據要求低等優點且是一種數據驅動模型[2],可以自動通過調整權值和閾值實現預報過程[3],為解決模擬徑流的模擬問題提供了一條新途徑[4]。
BP(Back-Propagation)網絡是一種多層前饋型網絡[5]、是一種高度的非線性映射[4],其結構見圖1。主要結構包括輸入層、隱藏層、輸出層,基本原理為將數據輸入到輸入層,輸入層進行歸一化處理后通過激活函數、訓練函數進入隱藏層,隱藏層通過激活函數、訓練函數進入輸出層,輸出層對輸出結果進行反歸一化后輸出預測結果,每個層級之間通過權值、神經元閾值連接。

圖1 BP 神經網絡結構示意圖
由于水文循環是一個非常復雜的非線性系統,需要非線性的方式去處理水文循環各要素之間的聯系,BP 神經網絡是一種非線性映射,故可用神經網絡去解決水文當中的非線性關系。流域系統降雨徑流關系離散的集總性水文系統描述[2],通過神經網絡計算方式為:

式中:y(k)是輸出向量;u(h)是輸入向量;ny和na分別是輸入和輸出的滯后;f 是非線性函數。
大部分的非線性系統都可用式(1)表示[6],為BP 神經網絡模擬徑流提供理論依據。
選擇BP 型(Sigmoid)函數,其表達式為:

設輸入層的輸入為p,對于隱藏層的任意節點i 的輸入值則為:

對于隱藏層的輸出則為:

式中:o 為隱藏層的輸出。
同理,隱藏層到輸出層的計算方法相同。
設輸出層的第k 個神經的輸出為Q1,期望輸出值為Q2,樣本的誤差則為:

樣本集合的誤差為樣本誤差的均值,計算方法如下:

式中:M 為輸出層的樣本總數;Ej為輸出層各神經元樣本的誤差。
為減小計算誤差,采用Levenberg-Marquardt 優化算法優化權值,使其優化的方向不會像傳統的向著負梯度方向優化,也可沿著惡化方向搜索,加快收斂速度[5],達到使均方誤差最小的目的。
以輸入層個數為區分,建立BP1、BP2兩個模型進行徑流的模擬。BP1以降水、徑流為輸入建立2-k-1 的拓撲結構,BP2以降水、徑流、累積降水、累積徑流為輸入建立4-k-1 的拓撲結構,分別對兩個模型進行訓練、驗證、測試,對比兩種輸入的模擬結果并分析。
由于數據變幅不同,為了加快收斂網絡,先對數據進行歸一化訓練,使數據全部轉換為[-1,1]范圍的值,歸一化的方法采用MATLAB 中的mapminmax 函數。
兩個模型拓撲結構中的k 為隱藏層個數,k 的確定公式[7,8]為:

式中:m 為輸入層個數;n 為輸出層個數;a 為[1,10]之間的常數。
故BP1中的k1值為[2,12]之間的一個常數,BP2中的k2值為[3,13]之間的一個常數,選擇不同的k 值對模型進行訓練,發現k1=3,k2=8 時模型的誤差最小,則BP1的最佳隱藏層個數為3,拓撲結構為2-3-1,BP2最佳隱藏層個數為8,拓撲結構為4-8-1。圖2 為2-3-1 型BP1神經網絡結構示意圖。

圖2 2-3-1 型BP1 神經網絡結構示意圖
永翠河屬山溪性河流,發源于寒月林場的翠源溝,屬黑龍江,湯旺河水系,匯水面積677.0 km2。其流域出口控制斷面的水文測站為帶嶺(二)站,本文主要以帶嶺(二)站控制范圍為典型區域,該站降水年內分配不均,多年平均降水為605.21 mm,多年平均徑流為323.99 mm。
數據摘自《黑龍江省水文年鑒》中國一帶嶺(二)觀測站的逐日統計降水、徑流觀測資料,對數據進行規范、整理、計算得到時間序列為1995 年~2014 年20 年的資料。
將1995 年~2014 年20 年的降水、徑流數據以月為單位進行分割,劃分為240 個數據。BP1選取168 個降水、徑流作為模型的輸入層,在模型中進行訓練、驗證、測試,剩下的72 個降水、徑流數據經行驗證計算;BP2在BP1的輸入基礎加入168 個累積降水、累積徑流對模型進行訓練、驗證、測試,其余數據均與BP1相同。
3.3.1 權值、閾值率定結果
訓練次數設為1000 次,學習速率設為0.01,訓練目標最小誤差設為0.00001。訓練得到輸入層到隱藏層的權值矩陣為:

輸入層到輸出層的閾值為:

隱藏層到輸出層的權值矩陣為:

3.3.2 徑流模擬評定
模擬的準確性需要用確定性DC與合格率QR兩個參數進行評定。預報過程與實測過程之間的吻合程度用確定性系數表示,計算公式如下:

式中:DC為確定性系數(取兩位小數);yc為預報值;y0為實測值;為實測值的均值;n 為資料系列長度。
一次預報的誤差小于許可誤差時,為合格預報,表示預報的總體精度水平用合格率表示,計算公式如下:

式中:QR為合格率;n 為合格預報次數;m 為預報總次數。
徑流深預報許可誤差以實測值的20%作為許可誤差,當改值大于20 mm 時,取20 mm,當小于3mm 時,取3 mm。模型預測結果見表1(以2014 年為例),模擬誤差表見表2,擬合效果結果見圖3、圖4。

表1 2014 年模型預測結果 單位:mm

表2 BP 模型模擬誤差表

圖3 BP1 徑流實測與預測擬合圖

圖4 BP2 徑流實測與預測擬合圖
從表1 可以看出,BP1模型的確定性系數較BP2模型的高,但預報合格率較BP2模型低,可能原因為輸入的樣本數量少,致使擬合度過高,模型可能出現局部最優的情況。BP2模型的輸入樣本較多,使擬合度下降,模型可能未陷入局部最優,預測的結果更加準確。根據《水文情報預報規范》(SL 250-2000)[9]可知,本此BP2模型的徑流預報精度達到乙級,可用于預測徑流。
BP 神經網絡可根據樣本數據,實現自動對權值和閾值的調整,通過算法模擬水文中的非線性關系。此次研究在建立模型時,基于傳統的BP 模型,采用Levenberg-Marquardt 優化算法對權值進行優化,一定程度上加快模型的運算速度,減小模型的誤差。結果表明:
(1)BP 神經網絡可用于解決水文非線性問題,在永翠河流域有較好的適用性。
(2)BP1的擬合度好,預報結果合格率低;BP2的擬合度較前者低,但預報結果的合格率高。
(3)通過BP1與BP2的對比發現,BP 模型的輸入層數據也需要一定的數據量,否則可能會使模型出現過擬合、但預報結果合格率不高的情況。