申智鵬,孫穎娜,姚 浩,張麗娜
(黑龍江大學(xué)水利電力學(xué)院,黑龍江 哈爾濱 150080)
對徑流精確的模擬一直是水文在不停探索的問題之一,因其受影響的因素過多,且每個因素在流域上空間分布都是不均勻的[1],很難精確地模擬計算出每個因素的損失。傳統(tǒng)的水文模型對資料的收集、處理的要求較高,且參數(shù)的率定需要一定的經(jīng)驗進行人工試錯。BP 神經(jīng)網(wǎng)絡(luò)由于具有非線性映射能力、容錯能力、泛化能力、自適應(yīng)性、自學(xué)性、對數(shù)據(jù)要求低等優(yōu)點且是一種數(shù)據(jù)驅(qū)動模型[2],可以自動通過調(diào)整權(quán)值和閾值實現(xiàn)預(yù)報過程[3],為解決模擬徑流的模擬問題提供了一條新途徑[4]。
BP(Back-Propagation)網(wǎng)絡(luò)是一種多層前饋型網(wǎng)絡(luò)[5]、是一種高度的非線性映射[4],其結(jié)構(gòu)見圖1。主要結(jié)構(gòu)包括輸入層、隱藏層、輸出層,基本原理為將數(shù)據(jù)輸入到輸入層,輸入層進行歸一化處理后通過激活函數(shù)、訓(xùn)練函數(shù)進入隱藏層,隱藏層通過激活函數(shù)、訓(xùn)練函數(shù)進入輸出層,輸出層對輸出結(jié)果進行反歸一化后輸出預(yù)測結(jié)果,每個層級之間通過權(quán)值、神經(jīng)元閾值連接。
圖1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
由于水文循環(huán)是一個非常復(fù)雜的非線性系統(tǒng),需要非線性的方式去處理水文循環(huán)各要素之間的聯(lián)系,BP 神經(jīng)網(wǎng)絡(luò)是一種非線性映射,故可用神經(jīng)網(wǎng)絡(luò)去解決水文當(dāng)中的非線性關(guān)系。流域系統(tǒng)降雨徑流關(guān)系離散的集總性水文系統(tǒng)描述[2],通過神經(jīng)網(wǎng)絡(luò)計算方式為:
式中:y(k)是輸出向量;u(h)是輸入向量;ny和na分別是輸入和輸出的滯后;f 是非線性函數(shù)。
大部分的非線性系統(tǒng)都可用式(1)表示[6],為BP 神經(jīng)網(wǎng)絡(luò)模擬徑流提供理論依據(jù)。
選擇BP 型(Sigmoid)函數(shù),其表達式為:
設(shè)輸入層的輸入為p,對于隱藏層的任意節(jié)點i 的輸入值則為:
對于隱藏層的輸出則為:
式中:o 為隱藏層的輸出。
同理,隱藏層到輸出層的計算方法相同。
設(shè)輸出層的第k 個神經(jīng)的輸出為Q1,期望輸出值為Q2,樣本的誤差則為:
樣本集合的誤差為樣本誤差的均值,計算方法如下:
式中:M 為輸出層的樣本總數(shù);Ej為輸出層各神經(jīng)元樣本的誤差。
為減小計算誤差,采用Levenberg-Marquardt 優(yōu)化算法優(yōu)化權(quán)值,使其優(yōu)化的方向不會像傳統(tǒng)的向著負梯度方向優(yōu)化,也可沿著惡化方向搜索,加快收斂速度[5],達到使均方誤差最小的目的。
以輸入層個數(shù)為區(qū)分,建立BP1、BP2兩個模型進行徑流的模擬。BP1以降水、徑流為輸入建立2-k-1 的拓撲結(jié)構(gòu),BP2以降水、徑流、累積降水、累積徑流為輸入建立4-k-1 的拓撲結(jié)構(gòu),分別對兩個模型進行訓(xùn)練、驗證、測試,對比兩種輸入的模擬結(jié)果并分析。
由于數(shù)據(jù)變幅不同,為了加快收斂網(wǎng)絡(luò),先對數(shù)據(jù)進行歸一化訓(xùn)練,使數(shù)據(jù)全部轉(zhuǎn)換為[-1,1]范圍的值,歸一化的方法采用MATLAB 中的mapminmax 函數(shù)。
兩個模型拓撲結(jié)構(gòu)中的k 為隱藏層個數(shù),k 的確定公式[7,8]為:
式中:m 為輸入層個數(shù);n 為輸出層個數(shù);a 為[1,10]之間的常數(shù)。
故BP1中的k1值為[2,12]之間的一個常數(shù),BP2中的k2值為[3,13]之間的一個常數(shù),選擇不同的k 值對模型進行訓(xùn)練,發(fā)現(xiàn)k1=3,k2=8 時模型的誤差最小,則BP1的最佳隱藏層個數(shù)為3,拓撲結(jié)構(gòu)為2-3-1,BP2最佳隱藏層個數(shù)為8,拓撲結(jié)構(gòu)為4-8-1。圖2 為2-3-1 型BP1神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
圖2 2-3-1 型BP1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
永翠河屬山溪性河流,發(fā)源于寒月林場的翠源溝,屬黑龍江,湯旺河水系,匯水面積677.0 km2。其流域出口控制斷面的水文測站為帶嶺(二)站,本文主要以帶嶺(二)站控制范圍為典型區(qū)域,該站降水年內(nèi)分配不均,多年平均降水為605.21 mm,多年平均徑流為323.99 mm。
數(shù)據(jù)摘自《黑龍江省水文年鑒》中國一帶嶺(二)觀測站的逐日統(tǒng)計降水、徑流觀測資料,對數(shù)據(jù)進行規(guī)范、整理、計算得到時間序列為1995 年~2014 年20 年的資料。
將1995 年~2014 年20 年的降水、徑流數(shù)據(jù)以月為單位進行分割,劃分為240 個數(shù)據(jù)。BP1選取168 個降水、徑流作為模型的輸入層,在模型中進行訓(xùn)練、驗證、測試,剩下的72 個降水、徑流數(shù)據(jù)經(jīng)行驗證計算;BP2在BP1的輸入基礎(chǔ)加入168 個累積降水、累積徑流對模型進行訓(xùn)練、驗證、測試,其余數(shù)據(jù)均與BP1相同。
3.3.1 權(quán)值、閾值率定結(jié)果
訓(xùn)練次數(shù)設(shè)為1000 次,學(xué)習(xí)速率設(shè)為0.01,訓(xùn)練目標(biāo)最小誤差設(shè)為0.00001。訓(xùn)練得到輸入層到隱藏層的權(quán)值矩陣為:
輸入層到輸出層的閾值為:
隱藏層到輸出層的權(quán)值矩陣為:
3.3.2 徑流模擬評定
模擬的準(zhǔn)確性需要用確定性DC與合格率QR兩個參數(shù)進行評定。預(yù)報過程與實測過程之間的吻合程度用確定性系數(shù)表示,計算公式如下:
式中:DC為確定性系數(shù)(取兩位小數(shù));yc為預(yù)報值;y0為實測值;為實測值的均值;n 為資料系列長度。
一次預(yù)報的誤差小于許可誤差時,為合格預(yù)報,表示預(yù)報的總體精度水平用合格率表示,計算公式如下:
式中:QR為合格率;n 為合格預(yù)報次數(shù);m 為預(yù)報總次數(shù)。
徑流深預(yù)報許可誤差以實測值的20%作為許可誤差,當(dāng)改值大于20 mm 時,取20 mm,當(dāng)小于3mm 時,取3 mm。模型預(yù)測結(jié)果見表1(以2014 年為例),模擬誤差表見表2,擬合效果結(jié)果見圖3、圖4。
表1 2014 年模型預(yù)測結(jié)果 單位:mm
表2 BP 模型模擬誤差表
圖3 BP1 徑流實測與預(yù)測擬合圖
圖4 BP2 徑流實測與預(yù)測擬合圖
從表1 可以看出,BP1模型的確定性系數(shù)較BP2模型的高,但預(yù)報合格率較BP2模型低,可能原因為輸入的樣本數(shù)量少,致使擬合度過高,模型可能出現(xiàn)局部最優(yōu)的情況。BP2模型的輸入樣本較多,使擬合度下降,模型可能未陷入局部最優(yōu),預(yù)測的結(jié)果更加準(zhǔn)確。根據(jù)《水文情報預(yù)報規(guī)范》(SL 250-2000)[9]可知,本此BP2模型的徑流預(yù)報精度達到乙級,可用于預(yù)測徑流。
BP 神經(jīng)網(wǎng)絡(luò)可根據(jù)樣本數(shù)據(jù),實現(xiàn)自動對權(quán)值和閾值的調(diào)整,通過算法模擬水文中的非線性關(guān)系。此次研究在建立模型時,基于傳統(tǒng)的BP 模型,采用Levenberg-Marquardt 優(yōu)化算法對權(quán)值進行優(yōu)化,一定程度上加快模型的運算速度,減小模型的誤差。結(jié)果表明:
(1)BP 神經(jīng)網(wǎng)絡(luò)可用于解決水文非線性問題,在永翠河流域有較好的適用性。
(2)BP1的擬合度好,預(yù)報結(jié)果合格率低;BP2的擬合度較前者低,但預(yù)報結(jié)果的合格率高。
(3)通過BP1與BP2的對比發(fā)現(xiàn),BP 模型的輸入層數(shù)據(jù)也需要一定的數(shù)據(jù)量,否則可能會使模型出現(xiàn)過擬合、但預(yù)報結(jié)果合格率不高的情況。