齊銀峰,譚榮建
(昆明理工大學(xué)國土資源學(xué)院,云南省昆明市 650093)
水庫入庫徑流量預(yù)測是水庫進(jìn)行科學(xué)管理、搞好水庫調(diào)度運(yùn)用的重要依據(jù),開展水庫入庫徑流量預(yù)報(bào)對(duì)確保水庫和下游安全、充分利用水資源、發(fā)揮水庫的工程效益起著重要作用,具有重要的理論意義和實(shí)用價(jià)值[1]。一般來說,河流徑流量預(yù)報(bào)的方法基本分為兩種:一是過程驅(qū)動(dòng)模型方法,該模型以水文學(xué)概念為基礎(chǔ),模擬河道的演變過程和徑流的產(chǎn)流過程,以期對(duì)徑流量的產(chǎn)生過程進(jìn)行預(yù)報(bào);二是數(shù)據(jù)驅(qū)動(dòng)模型方法,該模型不研究水文系統(tǒng)的物理過程,將建立數(shù)據(jù)之間的最優(yōu)數(shù)學(xué)關(guān)系作為模型的目標(biāo)[2]。本文中采取的BP神經(jīng)網(wǎng)絡(luò)是基于數(shù)據(jù)之間的最優(yōu)數(shù)學(xué)關(guān)系的預(yù)測方法。理論已經(jīng)證明,BP神經(jīng)網(wǎng)絡(luò)只要有足夠多的隱含層和隱節(jié)點(diǎn),就可以以任意的精度逼近非線性映射關(guān)系[3],其在處理高度非線性的水文系統(tǒng)時(shí)有著傳統(tǒng)預(yù)測方法不可比擬的優(yōu)勢[4]。
圖1 3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 3 layer BP neural network structure
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),是一個(gè)3層的網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),如圖1所示,包括輸入層、輸出層和隱含層,各神經(jīng)元與下一層的神經(jīng)元全連接,同層神經(jīng)元之間無連接。BP神經(jīng)網(wǎng)絡(luò)采用單隱層的三層前饋神經(jīng)網(wǎng)絡(luò)模型,學(xué)習(xí)規(guī)則為有導(dǎo)師的誤差反向修正法,即以網(wǎng)絡(luò)學(xué)習(xí)時(shí)輸出層的輸出與期望輸出的誤差為原則,將此誤差沿輸出層傳遞到隱藏層,再由隱藏層到輸入層,通過誤差的反向傳播修正各連接層的連接權(quán)重和閾值,直到誤差達(dá)到要求為止[5]。
定義誤差的目標(biāo)函數(shù)為:
式中 n——輸入層神經(jīng)元的個(gè)數(shù);
yk——網(wǎng)絡(luò)的期望輸出值;
?k——網(wǎng)絡(luò)的實(shí)際輸出值。
反向傳播(BP)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程主要包括以下步驟:
(1)網(wǎng)絡(luò)初始化:確定BP網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)n、隱含層結(jié)點(diǎn)數(shù)m、輸出層結(jié)點(diǎn)數(shù)l,選定各節(jié)點(diǎn)之間的傳遞函數(shù)為Sigmoid函數(shù),設(shè)定輸入層與隱含層、隱含層與輸出層神經(jīng)元之間的連接權(quán)值分別為 Wij和 Wjk。
(2)隱含層輸出計(jì)算:
xi——第i個(gè)輸入節(jié)點(diǎn)變量。
(3)輸出層輸出計(jì)算:
(4)修正連接權(quán)值:
式中 η—— 學(xué)習(xí)速率,η>0,G(t)=-?E/?Wij(t),P(t)=-?E/?Wjk(t);
β——?jiǎng)恿恳蜃樱?≤β<1。
(5)判斷目標(biāo)函數(shù)的結(jié)果是否滿足要求,當(dāng)誤差函數(shù)的值達(dá)到了預(yù)設(shè)的精度或者學(xué)習(xí)的次數(shù)超出設(shè)定的次數(shù),則算法終止。否則,繼續(xù)選取樣本輸入及樣本對(duì)應(yīng)的期望輸出,返回到步驟(2)繼續(xù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,直至誤差達(dá)標(biāo)或?qū)W習(xí)次數(shù)達(dá)到預(yù)設(shè)值。
遺傳算法(Genetic Algorithm)是模擬進(jìn)化論中的遺傳選擇和自然淘汰的生物進(jìn)化過程的算法模型,在本質(zhì)上是一種不依賴問題類型的直接搜索方法,屬于啟發(fā)式搜索算法。該算法首先生成一組候選解(初始種群),接著定義解空間的適應(yīng)度函數(shù)(個(gè)體評(píng)價(jià)函數(shù)),并利用適應(yīng)度函數(shù)求取候選解所對(duì)應(yīng)的適應(yīng)度,根據(jù)所求適應(yīng)度決定保留其中某些候選解,而將另一些適應(yīng)度低的候選解進(jìn)行淘汰,然后對(duì)未被淘汰的候選解進(jìn)行交叉和變異操作,生成新的候選解。再對(duì)這些新的候選解進(jìn)行適應(yīng)度選擇,依次進(jìn)行直至求得最優(yōu)解[6]。
BP神經(jīng)網(wǎng)絡(luò)對(duì)于層與層之間初始的連接權(quán)值和閾值異常敏感,若初始參數(shù)的設(shè)置不合理,比較容易導(dǎo)致網(wǎng)絡(luò)收斂速度慢和陷入局部最優(yōu)解,因此本文將遺傳算法和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,利用遺傳算法來對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化,以提高BP神經(jīng)網(wǎng)絡(luò)的收斂速度,同時(shí)減小BP算法陷入局部最優(yōu)解的可能性[7-10]。
遺傳算法與 BP 神經(jīng)網(wǎng)絡(luò)結(jié)合的數(shù)學(xué)表達(dá)為:
具體步驟為:
(1)設(shè)種群規(guī)模為P。隨機(jī)生成P個(gè)個(gè)體的初始種群W=(W1,W2,…,Wp)T,選擇一個(gè)數(shù)據(jù)范圍,利用一般的線性插值函數(shù)在該范圍內(nèi)生成一個(gè)種群中個(gè)體Wi的實(shí)數(shù)向量w1,w2,…,ws,將其作為遺傳算法的一個(gè)染色體。染色體包含了整個(gè)BP神經(jīng)網(wǎng)絡(luò)的所有權(quán)值和閾值。為了得到高精度權(quán)值和閾值,本文對(duì)染色體采用實(shí)數(shù)編碼的方式進(jìn)行編碼,編碼長度為:
式中 R——輸入層節(jié)點(diǎn)數(shù);
S1——隱含層節(jié)點(diǎn)數(shù);
S2——輸出層節(jié)點(diǎn)數(shù)。
(2)確定初始種群的適應(yīng)度函數(shù)。 給定BP 神經(jīng)網(wǎng)絡(luò)的進(jìn)化參數(shù),將上一步中通過線性插值得到的實(shí)數(shù)向量作為遺傳算法的染色體對(duì)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行賦值,輸入訓(xùn)練樣本進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,達(dá)到設(shè)定的精度得到網(wǎng)絡(luò)訓(xùn)練輸出值,以BP神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出和期望輸出之間的絕對(duì)誤差平方和的倒數(shù)作為適應(yīng)度函數(shù)。
(3)選擇操作。采用比例選擇方法選擇算子,基于適應(yīng)度比例的選擇策略對(duì)每一代種群中的染色體進(jìn)行選擇。選擇概率為:
式中 p——種群個(gè)體的數(shù)目;
Fi——個(gè)體i的適應(yīng)度值。
(4)交叉操作。由于個(gè)體采用實(shí)數(shù)編碼,交叉操作方法采用實(shí)數(shù)交叉法。第k個(gè)基因gk和第l個(gè)基因gl在j位的交叉操作分別為:
式中 b——[0,1]之間的隨機(jī)數(shù)。
(5)變異操作。以一個(gè)比較小的變異概率選擇第i個(gè)個(gè)體的第j個(gè)基因gij進(jìn)行變異從而增加種群的多樣性,變異操作方法為:
以上式中 r1——[0,1]之間的隨機(jī)數(shù);
gmax、gmin——gij的上、下限 ;
r2——一個(gè)隨機(jī)數(shù);
s——當(dāng)前迭代次數(shù);
smax——最大進(jìn)化代數(shù)。
(6)計(jì)算適應(yīng)度函數(shù)的值,若滿足算法預(yù)設(shè)的結(jié)束條件,則將優(yōu)化后的神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行輸出,否則返回(3)繼續(xù)進(jìn)行迭代,直至滿足結(jié)束條件。
(7)以遺傳算法輸出的優(yōu)化的權(quán)值和閾值作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,用訓(xùn)練樣本對(duì) BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到水庫入庫流量預(yù)測模型。
本文數(shù)據(jù)來源于某水庫多年來的入庫徑流量記錄,根據(jù)相關(guān)資料分析可知,影響該水庫入庫徑流量的主要因素為該水庫上游流域的月降水量、平均氣溫、蒸發(fā)量、平均濕度等,這些主要影響因素的值可由該水庫上游的多個(gè)水情監(jiān)測站所記錄的多年多期數(shù)據(jù)獲得。將這些數(shù)據(jù)作為BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)樣本,并將所有58個(gè)樣本分為訓(xùn)練樣本和測試樣本,其中48個(gè)作為訓(xùn)練樣本,10個(gè)作為測試樣本。
圖2 GA-BP算法流程Fig.2 GA-BP algorithm flow
數(shù)據(jù)的歸一化是將有量綱經(jīng)過變換化為無量綱的方法。數(shù)據(jù)歸一化處理有利于BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,加快網(wǎng)絡(luò)的收斂進(jìn)程。本文采用最大最小值法對(duì)數(shù)據(jù)進(jìn)行歸一化處理。
選定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)和訓(xùn)練參數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點(diǎn)的數(shù)目為4個(gè),輸出節(jié)點(diǎn)數(shù)目為1個(gè)。隱含層節(jié)點(diǎn)數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度有較大的影響:節(jié)點(diǎn)數(shù)太少,網(wǎng)絡(luò)不能充分的學(xué)習(xí),需要增加訓(xùn)練次數(shù),訓(xùn)練的精度也會(huì)受到影響;節(jié)點(diǎn)數(shù)太多則訓(xùn)練的時(shí)間增加,網(wǎng)絡(luò)容易過擬合。最佳隱含層節(jié)點(diǎn)數(shù)的選擇參考如下公式:
式中 n——輸入層節(jié)點(diǎn)數(shù);
l——隱含層節(jié)點(diǎn)數(shù);
m——輸出層節(jié)點(diǎn)數(shù);
a——0~10之間的常數(shù)。
結(jié)合以上經(jīng)驗(yàn)公式來確定隱含層節(jié)點(diǎn)數(shù)的大概范圍,然后用試湊法來確定隱含層的最佳節(jié)點(diǎn)數(shù)。本例中設(shè)定神經(jīng)網(wǎng)絡(luò)的數(shù)目為5個(gè),隱層和輸出層均采用Sigmoid傳輸函數(shù),設(shè)定訓(xùn)練函數(shù)為自適應(yīng)調(diào)整學(xué)習(xí)速率附加動(dòng)量因子梯度下降反向傳播算法訓(xùn)練函數(shù),設(shè)定神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目標(biāo)誤差為0.001,最大訓(xùn)練步數(shù)為2000,學(xué)習(xí)速率為0.01。訓(xùn)練結(jié)束后,將模型的輸出數(shù)據(jù)反歸一化到原來的數(shù)據(jù)范圍。
把遺傳算法用于BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,利用遺傳算法全局搜索的特性,得到一個(gè)初始的權(quán)值矩陣和初始的閾值向量,再用BP神經(jīng)網(wǎng)絡(luò)算法得到最終的GA-BP神經(jīng)網(wǎng)絡(luò)。選擇遺傳算法初始的種群數(shù)目為50。交叉概率用于控制交叉操作的頻率,不可過大也不可過小,交叉概率過大會(huì)使得種群中個(gè)體的更新過快,而將適應(yīng)度高的個(gè)體淘汰掉,交叉概率過小會(huì)使搜索緩慢甚至停止,故選擇交叉概率為 0.5,變異概率過大大會(huì)使搜索趨于隨機(jī)化,過小也影響下一代個(gè)體的產(chǎn)生,因此選擇變異概率為0.03。遺傳算法的主要參數(shù)如表1所示。
表1 遺傳算法的主要參數(shù)Tab.1 Main parameters of genetic algorithm
經(jīng)過遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò),其具有了更為恰當(dāng)?shù)某跏嫉臋?quán)值和閾值,提高了BP神經(jīng)網(wǎng)絡(luò)的收斂速度。將采集的48組訓(xùn)練數(shù)據(jù)輸入模型進(jìn)行訓(xùn)練,訓(xùn)練的結(jié)果如圖3和圖4所示。
BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測結(jié)果對(duì)比如圖4所示。
圖3 GA-BP算法適應(yīng)度與誤差變化曲線Fig.3 The fitness of GA-BP algorithm and the curve of error change
圖4 BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測情況對(duì)比Fig.4 Comparison between BP network prediction and GA-BP prediction
圖5 BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測誤差對(duì)比Fig.5 Comparison between BP network prediction and GA-BP prediction error
將兩種方法的預(yù)測誤差進(jìn)行對(duì)比分析,并將評(píng)價(jià)算法優(yōu)劣的其他幾個(gè)因素也進(jìn)行對(duì)比。BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測誤差對(duì)比結(jié)果如圖5所示,BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測誤差百分比對(duì)比結(jié)果如圖6所示。
圖6 BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測誤差百分比Fig.6 BP network prediction and the percentage of GA-BP prediction error
將兩種方法的預(yù)測誤差數(shù)值進(jìn)行對(duì)比分析,并將評(píng)價(jià)算法優(yōu)劣的幾個(gè)主要指標(biāo)也進(jìn)行對(duì)比。利用10個(gè)測試樣本對(duì)BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測誤差數(shù)值進(jìn)行對(duì)比,對(duì)比分析結(jié)果如表2所示,BP網(wǎng)絡(luò)預(yù)測與GA-BP預(yù)測性能對(duì)比結(jié)果如表3所示。
表2 10個(gè)測試樣本的BP神經(jīng)網(wǎng)絡(luò)與GA-BP預(yù)測誤差對(duì)比Tab.2 Comparison between BP neural network and GA-BP prediction error of 10 test samples
表3 BP神經(jīng)網(wǎng)絡(luò)與GA-BP算法評(píng)價(jià)指標(biāo)比較Tab.3 Comparison of evaluation indexes between BP neural network and GA-BP algorithm
本文將遺傳算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合建立水庫月入庫徑流量的預(yù)測模型,以影響水庫月入庫徑流量的幾個(gè)因素的歷史數(shù)值作為BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型的輸入變量,水庫月入庫徑流量的歷史數(shù)值作為模型的輸出變量,利用遺傳算法特有的全局搜索能力優(yōu)化了BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值。采用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)建立水庫月入庫徑流量預(yù)測模型。實(shí)驗(yàn)結(jié)果表明,遺傳算法結(jié)合BP網(wǎng)絡(luò)的模型相較于單獨(dú)的BP神經(jīng)網(wǎng)絡(luò)具有預(yù)測精度較高、收斂速度較快的優(yōu)點(diǎn)。
[1]吳彬.淺談水庫水文預(yù)報(bào)基本資料的搜集[J].科技信息,2009,11:733.
WU Bin. Discussion on the collection of basic data of reservoir hydrology forecast[J]. Science & Technology Information,2009,11:733.
[2]屈磊磊,齊麗巖,高勝哲.時(shí)間序列分析在徑流預(yù)測中的應(yīng)用[J].安徽農(nóng)業(yè)科學(xué),2015,21:23-24+103.
QU Leilei,QI Liyan,GAO Shengzhe. Application of time series analysis in runoff forecasting[J]. Journal of Anhui Agricultural Sciences ,2015,21:23-24+103.
[3]顏七笙,游泳,楊志輝. BP網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)與算法探討[J].科技廣場,2005,03:36-38.
YAN Qisheng,YOU Yong,YANG Zhihui. Design and algorithm of BP network structure[J]. Science Mosaic,2005,03:36-38.
[4]楊鑫,任海霞,萬芳.水庫徑流預(yù)報(bào)的蟻群優(yōu)化神經(jīng)網(wǎng)絡(luò)算法應(yīng)用研究[J].中國農(nóng)村水利水電,2013,12:9-12+18.
YANG Xin,REN Haixia,WANG Fang. Study on the application of ant colony optimization neural network algorithm for reservoir runoff forecasting[J]. China Rural Water and Hydropower,2013,12:9-12+18.
[5]程向軍,神經(jīng)網(wǎng)絡(luò)原理及其應(yīng)用[M]. 北京: 國防工業(yè)出版社,1995:1-300.
CHENG Xiangjun. The principle and application of neural network[M]. Beijing: National Defense Industry Press,1995:1-300.
[6]周明,孫樹棟. 遺傳算法原理與應(yīng)用[M]. 北京: 國防工業(yè)出版社,1999:32-64.
ZHOU Ming,SUN Shudong. The principle and application of genetic algorithm[M]. Beijing: National Defense Industry Press,1999:32-64.
[7]黃建國,羅航,王厚軍,龍兵.運(yùn)用GA-BP神經(jīng)網(wǎng)絡(luò)研究時(shí)間序列的預(yù)測[J].電子科技大學(xué)學(xué)報(bào),2009,05:687-692.
HUANG Jianguo,LUO Hang,WANG Houjun,LONG Bing. Application of GA-BP neural network to study time series prediction[J]. Journal of University of Electronic Science and Technology of China,2009,05:687-692.
[8]谷曉平,王長耀,袁淑杰.GA-BP神經(jīng)網(wǎng)絡(luò)模型在流域面雨量預(yù)報(bào)的應(yīng)用研究[J].熱帶氣象學(xué)報(bào),2006,03:248-252.
GU Xiaoping,WANG Changyao,YUAN Shujie. Application of.GA-BP neural network model to rainfall forecast of basin surface[J]. Journal of Tropical Meteorology,2006,03:248-252.
[9]都晨. 基于模糊聚類的GA-BP風(fēng)電場短期風(fēng)速及功率預(yù)測的研究[D].南京理工大學(xué),2013.
DU Chen. short-term prediction research of wind power based on Fuzzy Clustering algorithm and GA-BP[D]. Nanjing University of Science and Technology,2013.
[10]郭海湘,諸克軍,胡杰,劉婷.GA-BP嵌套算法的理論及應(yīng)用[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),2008,01:116-125.
GUO Haixiang,ZHU Kejun,HU Jie,Liu Ting. The theory and application of GA-BP nested algorithm [J].Mathematics in Practice and Theory,2008,01:116-125.
齊銀峰(1992—),男,在讀碩士,主要研究方向:機(jī)器學(xué)習(xí)算法在工程實(shí)踐中的應(yīng)用。E-mail:443518908@qq.com
譚榮建(1965—),男,副教授,碩士生導(dǎo)師,主要研究方向:測繪及土地資源管理方面的學(xué)習(xí)與研究。E-mail:bcys5502@163.com