肖恭偉, 劉國(guó)林, 曹淑敏, 孫志陽(yáng)
(山東科技大學(xué) 測(cè)繪科學(xué)與工程學(xué)院, 山東 青島 266590)
?
基于BP神經(jīng)網(wǎng)絡(luò)對(duì)七里街測(cè)站洪峰的預(yù)報(bào)與分析
肖恭偉, 劉國(guó)林, 曹淑敏, 孫志陽(yáng)
(山東科技大學(xué) 測(cè)繪科學(xué)與工程學(xué)院, 山東 青島 266590)
摘要:在分析預(yù)報(bào)誤差的時(shí)間分段遞推修正方法的基礎(chǔ)上,以建溪流域東游、水吉、建陽(yáng)三個(gè)水文站點(diǎn)的水位監(jiān)測(cè)數(shù)據(jù)為基礎(chǔ),計(jì)算得到BP神經(jīng)網(wǎng)絡(luò)隱含層最優(yōu)節(jié)點(diǎn)數(shù)目為10,建立了BP神經(jīng)網(wǎng)絡(luò)對(duì)七里街測(cè)站水位預(yù)報(bào)的數(shù)學(xué)模型.在此基礎(chǔ)上,利用時(shí)間分段遞推修正方法對(duì)預(yù)報(bào)的結(jié)果進(jìn)行修正,計(jì)算結(jié)果表明,時(shí)間分段遞推修正方法使得預(yù)報(bào)精度提高很多,其結(jié)果與實(shí)際更加符合.
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò); 洪峰預(yù)報(bào); 隱含層節(jié)點(diǎn); 誤差修正
對(duì)洪峰的預(yù)報(bào)直接關(guān)系到人民的生命和財(cái)產(chǎn)安全,目前研究洪峰預(yù)報(bào)的方法主要有人工神經(jīng)網(wǎng)絡(luò)、灰色模型等[1-2].洪水的預(yù)報(bào)是非線性問(wèn)題,而神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的非線性映射能力,將神經(jīng)網(wǎng)絡(luò)應(yīng)用在對(duì)洪峰的預(yù)報(bào)模型是合適的,并通過(guò)對(duì)預(yù)報(bào)誤差進(jìn)行修正可以提高預(yù)報(bào)的精度,達(dá)到實(shí)際應(yīng)用的水平.
1BP神經(jīng)網(wǎng)絡(luò)
1.1BP神經(jīng)網(wǎng)絡(luò)原理
BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用十分廣泛的一種神經(jīng)網(wǎng)絡(luò)模型[3-4],包含輸入層、隱含層、輸出層三層拓?fù)浣Y(jié)構(gòu),其BP神經(jīng)網(wǎng)絡(luò)原理[5-6]拓?fù)鋱D見圖1.
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
隱含層的第j個(gè)節(jié)點(diǎn)的輸入為
(1)
式中,wij、θj分別為隱含層的權(quán)值和第j個(gè)節(jié)點(diǎn)的閾值.對(duì)應(yīng)的輸出為
(2)
輸出層第k個(gè)節(jié)點(diǎn)的輸入為
(3)
式中,wjk、θk分別為輸出層的權(quán)值和第k個(gè)節(jié)點(diǎn)的閾值.對(duì)應(yīng)的輸出為
(4)
其中f為激活函數(shù),最常用的為sigmoid函數(shù),類似的還有雙曲正切函數(shù),sigmoid把[-,+]映射到[0,1],而雙曲正切則映射到[-1,1].
BP網(wǎng)絡(luò)更新權(quán)值公式[7]:
w(t+1)=w(t)+ηδ(t)y(t)
(5)
其中:y(t)為神經(jīng)元的輸出,δ(t)為誤差項(xiàng),η表示學(xué)習(xí)效率.
1.2BP神經(jīng)網(wǎng)絡(luò)算法流程
下面給出模型中BP反向傳播訓(xùn)練步驟[8]:
(1)置各層權(quán)值和閾值的初值,wij, wjk, θj,θk為隨機(jī)數(shù)陣;誤差代價(jià)函數(shù)ε賦值;循環(huán)次數(shù)R.
(2)提供訓(xùn)練用的學(xué)習(xí)資料:輸入矩陣xki(k=1,…,R; i=1,…,M),經(jīng)過(guò)參考模型后可得到目標(biāo)輸出ypk,即教師信號(hào);經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)后可得到y(tǒng)k,對(duì)于每組k進(jìn)行下面的第(3)—(5)步.
(3)計(jì)算網(wǎng)絡(luò)輸出yk,計(jì)算隱含層單元狀態(tài)aj.
(4)計(jì)算訓(xùn)練輸出層誤差值δk,計(jì)算訓(xùn)練隱含層的誤差值δj.
(5)分別修正隱含層wij和輸出層wjk.
(6)每次經(jīng)過(guò)訓(xùn)練后,判斷指標(biāo)是否滿足精度要求,即判斷誤差代價(jià)函數(shù)E是否達(dá)到E≤ε.若滿足要求則轉(zhuǎn)到第(7)步,否則再判斷是否到達(dá)設(shè)定的循環(huán)次數(shù).若循環(huán)次數(shù)等于R,轉(zhuǎn)到第(7)步,否則轉(zhuǎn)到第(2)步,重新讀取一組樣本,繼續(xù)循環(huán)訓(xùn)練網(wǎng)絡(luò).
(7)停止.
BP模型把一組樣本I/O問(wèn)題變成了一個(gè)非線性的優(yōu)化問(wèn)題,使用了優(yōu)化中最普遍的梯度下降法,用迭代運(yùn)算求解權(quán)系數(shù).下面給出算法步驟流程圖(圖2):
2預(yù)報(bào)誤差的修正方法
時(shí)間分段遞推修正公式為
T′(k)=T(k)+en
(6)
式中:T(k)為預(yù)報(bào)結(jié)果,T′(k)為修正之后的預(yù)報(bào)結(jié)果,en為修正點(diǎn)前n個(gè)小時(shí)誤差的平均值作為修正因子.
修正因子的求法如下:
(7)
3隱含層最優(yōu)節(jié)點(diǎn)數(shù)計(jì)算
3.1實(shí)驗(yàn)區(qū)與數(shù)據(jù)源
論文所采用的實(shí)驗(yàn)數(shù)據(jù)是來(lái)源于閩江支流建溪流域,建陽(yáng)、水吉、東游及七里街河流每小時(shí)采集一次水位.數(shù)據(jù)時(shí)間跨度從2008年1月1日的18:00到2012年3月6日的8:00,共3年3個(gè)月的36615條數(shù)據(jù),其中30024條樣本作為訓(xùn)練數(shù)據(jù),6591條數(shù)據(jù)作為預(yù)報(bào)數(shù)據(jù)進(jìn)行驗(yàn)證.
3.2數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的關(guān)鍵步驟,直接影響到訓(xùn)練后神經(jīng)網(wǎng)絡(luò)的性能.為了提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率,需要對(duì)輸入輸出樣本集數(shù)據(jù)進(jìn)行必要的預(yù)處理.
利用Matlab內(nèi)部函數(shù)mapminmax函數(shù)對(duì)輸入和目標(biāo)數(shù)據(jù)進(jìn)行歸一化處理,使其落入[-1,1]區(qū)間.mapminmax函數(shù)歸一化公式[9]見式(8),其中默認(rèn)情況下ymax=1,ymin=-1:
(8)
當(dāng)xmax=xmin時(shí),整個(gè)向量元素全部相等,所以此時(shí)y=xmin.數(shù)據(jù)的后處理是將計(jì)算結(jié)果進(jìn)行還原,即反歸一化:
(9)
3.3最優(yōu)隱含層節(jié)點(diǎn)數(shù)的選取
目前,隱含層數(shù)目的確定十分復(fù)雜,一般只能根據(jù)經(jīng)驗(yàn)公式來(lái)獲取最佳隱含層節(jié)點(diǎn)數(shù)目[10].
(2)n1=log2n,其中n是輸入節(jié)點(diǎn)數(shù)目,n1是隱含層節(jié)點(diǎn)數(shù)目.
通過(guò)(1)和(2)可以計(jì)算出隱含層節(jié)點(diǎn)數(shù)的大致范圍,遍歷所有節(jié)點(diǎn)就可以找到預(yù)報(bào)誤差最小的隱層節(jié)點(diǎn)數(shù)目,即為最佳節(jié)點(diǎn)數(shù)目.
針對(duì)本文實(shí)驗(yàn),首先根據(jù)經(jīng)驗(yàn)公式計(jì)算隱層節(jié)點(diǎn)的選取范圍在3~12之間,然后采用均方誤差最小的方法計(jì)算出最優(yōu)隱含層節(jié)點(diǎn)數(shù)目為10,其誤差分布見圖3.
圖3 隱含層誤差分布圖
4實(shí)驗(yàn)結(jié)果分析
4.1BP神經(jīng)網(wǎng)絡(luò)對(duì)七里街水位的預(yù)報(bào)
東游、水吉、建陽(yáng)三個(gè)站點(diǎn)洪峰到達(dá)七里街的時(shí)間分別是5h、6h、6h.七里街站點(diǎn)水位預(yù)報(bào)以東游、水吉、建陽(yáng)站水位為輸入,七里街水位作為輸出,預(yù)報(bào)未來(lái)5h七里街的水位.為了得到更好的預(yù)報(bào)結(jié)果,使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)、記憶的更加完善,在對(duì)神經(jīng)網(wǎng)絡(luò)輸入的時(shí)候增加了預(yù)報(bào)站點(diǎn)的同時(shí)水位,發(fā)現(xiàn)預(yù)報(bào)精度較高.預(yù)報(bào)效果見圖4.
(a)預(yù)測(cè)及真實(shí)數(shù)據(jù)
(b)加入同時(shí)水位后圖4 七里街水位BP神經(jīng)網(wǎng)絡(luò)模型預(yù)報(bào)圖
BP神經(jīng)網(wǎng)絡(luò)模型預(yù)報(bào)水位誤差統(tǒng)計(jì)表見表1.
表1BP神經(jīng)網(wǎng)絡(luò)模型水位誤差概率統(tǒng)計(jì)表%
站點(diǎn)名輸入站點(diǎn)誤差<30cm誤差<20cm誤差<10cm七里街建陽(yáng)、東游、水吉62.1544.8820.91
對(duì)洪水的預(yù)報(bào),洪峰的預(yù)報(bào)效果關(guān)系到模型的優(yōu)劣程度,在此也統(tǒng)計(jì)了在高水位即洪峰誤差小于30cm、20cm、10cm的預(yù)報(bào)效果見表2.
表2BP神經(jīng)網(wǎng)絡(luò)模型洪峰預(yù)報(bào)統(tǒng)計(jì)%
站點(diǎn)名輸入站點(diǎn)誤差<30cm誤差<20cm誤差<10cm七里街建陽(yáng)、東游、水吉48.2536.613.99
由表2 可見,BP神經(jīng)網(wǎng)絡(luò)模型對(duì)洪峰的預(yù)報(bào)精度未達(dá)到理想精度,故采用時(shí)間分段遞推方式修正.
4.2基于誤差修正的BP神經(jīng)網(wǎng)絡(luò)對(duì)七里街水位的預(yù)報(bào)
為了對(duì)誤差修正,某個(gè)時(shí)刻的誤差可能與其前一段時(shí)間的誤差有關(guān)系.利用時(shí)間分段遞推方法,利用前n個(gè)小時(shí)誤差的平均值修正后面1個(gè)小時(shí)誤差,得最優(yōu)n值見圖5,其七里街為1.
(a)全體誤差隨前n小時(shí)的修正
(b)洪峰誤差隨前n時(shí)的修正圖5 最優(yōu)n值的選取
時(shí)間分段遞推方法對(duì)全體預(yù)報(bào)誤差小于30cm、20cm、10cm分布的情況見表3,對(duì)洪峰預(yù)報(bào)誤差小于30cm、20cm、10cm的分布情況見表4.
表3時(shí)間分段遞推法對(duì)全體誤差修正結(jié)果對(duì)比%
站點(diǎn)名輸入站點(diǎn)修正前誤差修正后誤差修正后誤差增量七里街建陽(yáng)東游水吉62.1444.8720.9158.7445.7228.42-3.400.857.51
表4時(shí)間分段遞推法對(duì)洪峰誤差修正結(jié)果對(duì)比%
站點(diǎn)名輸入站點(diǎn)修正前誤差修正后誤差修正后誤差增量七里街建陽(yáng)東游水吉48.2536.3613.9999.3095.1081.1251.0558.7467.13
由表3和表4可以看出,采用時(shí)間分段遞推方法對(duì)全體誤差的修正效果很低,但是對(duì)洪峰的修正非常合適.圖6展示了三段洪峰修正前后的對(duì)比圖,由圖6可以看出時(shí)間分段遞推方法修正洪峰預(yù)報(bào)結(jié)果非常顯著,達(dá)到可以實(shí)際應(yīng)用的水準(zhǔn).
(a)修正前洪峰
(b)修正后洪峰圖6 誤差修正后的洪峰預(yù)報(bào)對(duì)比圖
5結(jié)論
本文基于BP神經(jīng)網(wǎng)絡(luò)模型對(duì)七里街測(cè)站洪峰的預(yù)報(bào),通過(guò)對(duì)預(yù)報(bào)誤差的修正,使得預(yù)報(bào)精度進(jìn)一步提高.實(shí)驗(yàn)證明建溪流域可以采用BP神經(jīng)網(wǎng)絡(luò)洪峰預(yù)報(bào),利用時(shí)間分段遞推方法可以將洪峰預(yù)報(bào)誤差小于30cm精度提高到99.30%,誤差小于20cm精度提高到95.10%,誤差小于10cm的精度提高到81.12%,從而說(shuō)明了本文所建立的模型對(duì)洪峰的預(yù)報(bào)具有可行性.
參考文獻(xiàn):
[1]包為民. 水文預(yù)報(bào)[M]. 北京:中國(guó)水利水電出版社,2008.
[2]趙琪,吳素芬,薛燕,等. 神經(jīng)網(wǎng)絡(luò)模型在中長(zhǎng)期水文預(yù)報(bào)中的實(shí)用性探究[J]. 新疆水利,2008,6(38):20-22.
[3]Zhu C J,Wu L P,Li S. Flood forecasting research based on the chaotic BP neural network model [J]. Key Engineering Materials,2010(439): 411-416.
[4]Chen Y,Yi Z. The BP artificial neural network model on expressway construction phase risk [J]. Systems Engineering Procedia,2012(4): 409-415.
[5] 王德明,王莉,張廣明. 基于遺傳BP神經(jīng)網(wǎng)絡(luò)的短期風(fēng)速預(yù)測(cè)模型[J]. 浙江大學(xué)學(xué)報(bào),2012,5(46):837-841.
[6] 李鴻雁等. 提高人工神經(jīng)網(wǎng)絡(luò)洪水峰值預(yù)報(bào)精度的研究[J]. 自然災(zāi)害學(xué)報(bào),2002,11 (1):57-61.
[7] 賈世杰,楊東坡,劉金環(huán). 基于卷積神經(jīng)網(wǎng)絡(luò)的商品圖像精細(xì)分類[J]. 山東科技大學(xué)學(xué)報(bào),2014,6(33):91-96.
[8] 侯媛彬,杜京義,汪梅. 神經(jīng)網(wǎng)絡(luò)[M]. 西安:西安電子科技大學(xué)出版社,2007.
[9] 朱星明,盧長(zhǎng)娜,王如云,等. 基于人工神經(jīng)網(wǎng)絡(luò)的洪水水位預(yù)報(bào)模型[J]. 水利學(xué)報(bào),2005,7(36):806-811.
[10] 葉斌,雷燕. 關(guān)于BP網(wǎng)中隱含層層數(shù)及其節(jié)點(diǎn)數(shù)選取方法淺析[J]. 商丘職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004,6(3):52-53.
(編輯:姚佳良)
The analysis and forecast of flood crest in Qilijie Station based on the BP neural network
XIAO Gong-wei, LIU Guo-lin, CAO Shu-min, SUN Zhi-yang
(Geomatics College, Shandong University of Science and Technology, Qingdao 266590, China)
Abstract:According to the recursion in different section of time, and the monitoring data of water level in three hydrological sites including the east reach of Jianxi, Shuiji, and Jianyang, we find that the optimal node number of hidden layer of BP neural network is 10 through complex calculation, and establish a mathematical model to forecast the water level in Qilijie Station using the BP neural network. On this basis, we can amend the forecast results with recursion in different section of time. The caculation results show that this method improves the forecast accuracy.It can be pointed out through calculation that the correction method of recursion in different section of time is a better choice due to the coincidence between results and facts.
Key words:BP neural network; flood crest forecast; hidden layer node; error correction
中圖分類號(hào):P426.616; TP183
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1672-6197(2016)04-0049-04
作者簡(jiǎn)介:肖恭偉,男,xiaogongwei10@163.com; 通信作者: 劉國(guó)林,男,gliu@sdust.edu.cn
基金項(xiàng)目:山東省自然科學(xué)基金項(xiàng)目(ZK2012DM001)
收稿日期:2015-08-21