齊銀峰,譚榮建
(昆明理工大學國土資源學院,云南省昆明市 650093)
水庫入庫徑流量預測是水庫進行科學管理、搞好水庫調度運用的重要依據,開展水庫入庫徑流量預報對確保水庫和下游安全、充分利用水資源、發(fā)揮水庫的工程效益起著重要作用,具有重要的理論意義和實用價值[1]。一般來說,河流徑流量預報的方法基本分為兩種:一是過程驅動模型方法,該模型以水文學概念為基礎,模擬河道的演變過程和徑流的產流過程,以期對徑流量的產生過程進行預報;二是數據驅動模型方法,該模型不研究水文系統(tǒng)的物理過程,將建立數據之間的最優(yōu)數學關系作為模型的目標[2]。本文中采取的BP神經網絡是基于數據之間的最優(yōu)數學關系的預測方法。理論已經證明,BP神經網絡只要有足夠多的隱含層和隱節(jié)點,就可以以任意的精度逼近非線性映射關系[3],其在處理高度非線性的水文系統(tǒng)時有著傳統(tǒng)預測方法不可比擬的優(yōu)勢[4]。
圖1 3層BP神經網絡結構Fig.1 3 layer BP neural network structure
BP(Back Propagation)神經網絡是一種多層前饋神經網絡,是一個3層的網絡的拓撲結構,如圖1所示,包括輸入層、輸出層和隱含層,各神經元與下一層的神經元全連接,同層神經元之間無連接。BP神經網絡采用單隱層的三層前饋神經網絡模型,學習規(guī)則為有導師的誤差反向修正法,即以網絡學習時輸出層的輸出與期望輸出的誤差為原則,將此誤差沿輸出層傳遞到隱藏層,再由隱藏層到輸入層,通過誤差的反向傳播修正各連接層的連接權重和閾值,直到誤差達到要求為止[5]。
定義誤差的目標函數為:
式中 n——輸入層神經元的個數;
yk——網絡的期望輸出值;
?k——網絡的實際輸出值。
反向傳播(BP)神經網絡的訓練過程主要包括以下步驟:
(1)網絡初始化:確定BP網絡的輸入層節(jié)點數n、隱含層結點數m、輸出層結點數l,選定各節(jié)點之間的傳遞函數為Sigmoid函數,設定輸入層與隱含層、隱含層與輸出層神經元之間的連接權值分別為 Wij和 Wjk。
(2)隱含層輸出計算:
xi——第i個輸入節(jié)點變量。
(3)輸出層輸出計算:
(4)修正連接權值:
式中 η—— 學習速率,η>0,G(t)=-?E/?Wij(t),P(t)=-?E/?Wjk(t);
β——動量因子,0≤β<1。
(5)判斷目標函數的結果是否滿足要求,當誤差函數的值達到了預設的精度或者學習的次數超出設定的次數,則算法終止。否則,繼續(xù)選取樣本輸入及樣本對應的期望輸出,返回到步驟(2)繼續(xù)對網絡進行訓練,直至誤差達標或學習次數達到預設值。
遺傳算法(Genetic Algorithm)是模擬進化論中的遺傳選擇和自然淘汰的生物進化過程的算法模型,在本質上是一種不依賴問題類型的直接搜索方法,屬于啟發(fā)式搜索算法。該算法首先生成一組候選解(初始種群),接著定義解空間的適應度函數(個體評價函數),并利用適應度函數求取候選解所對應的適應度,根據所求適應度決定保留其中某些候選解,而將另一些適應度低的候選解進行淘汰,然后對未被淘汰的候選解進行交叉和變異操作,生成新的候選解。再對這些新的候選解進行適應度選擇,依次進行直至求得最優(yōu)解[6]。
BP神經網絡對于層與層之間初始的連接權值和閾值異常敏感,若初始參數的設置不合理,比較容易導致網絡收斂速度慢和陷入局部最優(yōu)解,因此本文將遺傳算法和BP神經網絡相結合,利用遺傳算法來對BP神經網絡的初始權值和閾值進行優(yōu)化,以提高BP神經網絡的收斂速度,同時減小BP算法陷入局部最優(yōu)解的可能性[7-10]。
遺傳算法與 BP 神經網絡結合的數學表達為:
具體步驟為:
(1)設種群規(guī)模為P。隨機生成P個個體的初始種群W=(W1,W2,…,Wp)T,選擇一個數據范圍,利用一般的線性插值函數在該范圍內生成一個種群中個體Wi的實數向量w1,w2,…,ws,將其作為遺傳算法的一個染色體。染色體包含了整個BP神經網絡的所有權值和閾值。為了得到高精度權值和閾值,本文對染色體采用實數編碼的方式進行編碼,編碼長度為:
式中 R——輸入層節(jié)點數;
S1——隱含層節(jié)點數;
S2——輸出層節(jié)點數。
(2)確定初始種群的適應度函數。 給定BP 神經網絡的進化參數,將上一步中通過線性插值得到的實數向量作為遺傳算法的染色體對BP神經網絡的權值和閾值進行賦值,輸入訓練樣本進行神經網絡訓練,達到設定的精度得到網絡訓練輸出值,以BP神經網絡的預測輸出和期望輸出之間的絕對誤差平方和的倒數作為適應度函數。
(3)選擇操作。采用比例選擇方法選擇算子,基于適應度比例的選擇策略對每一代種群中的染色體進行選擇。選擇概率為:
式中 p——種群個體的數目;
Fi——個體i的適應度值。
(4)交叉操作。由于個體采用實數編碼,交叉操作方法采用實數交叉法。第k個基因gk和第l個基因gl在j位的交叉操作分別為:
式中 b——[0,1]之間的隨機數。
(5)變異操作。以一個比較小的變異概率選擇第i個個體的第j個基因gij進行變異從而增加種群的多樣性,變異操作方法為:
以上式中 r1——[0,1]之間的隨機數;
gmax、gmin——gij的上、下限 ;
r2——一個隨機數;
s——當前迭代次數;
smax——最大進化代數。
(6)計算適應度函數的值,若滿足算法預設的結束條件,則將優(yōu)化后的神經網絡的權值和閾值進行輸出,否則返回(3)繼續(xù)進行迭代,直至滿足結束條件。
(7)以遺傳算法輸出的優(yōu)化的權值和閾值作為BP神經網絡的初始權值和閾值,用訓練樣本對 BP神經網絡進行訓練,得到水庫入庫流量預測模型。
本文數據來源于某水庫多年來的入庫徑流量記錄,根據相關資料分析可知,影響該水庫入庫徑流量的主要因素為該水庫上游流域的月降水量、平均氣溫、蒸發(fā)量、平均濕度等,這些主要影響因素的值可由該水庫上游的多個水情監(jiān)測站所記錄的多年多期數據獲得。將這些數據作為BP神經網絡的學習樣本,并將所有58個樣本分為訓練樣本和測試樣本,其中48個作為訓練樣本,10個作為測試樣本。
圖2 GA-BP算法流程Fig.2 GA-BP algorithm flow
數據的歸一化是將有量綱經過變換化為無量綱的方法。數據歸一化處理有利于BP神經網絡的訓練速度,加快網絡的收斂進程。本文采用最大最小值法對數據進行歸一化處理。
選定BP神經網絡的結構參數和訓練參數對網絡進行訓練。神經網絡輸入層節(jié)點的數目為4個,輸出節(jié)點數目為1個。隱含層節(jié)點數對BP神經網絡預測精度有較大的影響:節(jié)點數太少,網絡不能充分的學習,需要增加訓練次數,訓練的精度也會受到影響;節(jié)點數太多則訓練的時間增加,網絡容易過擬合。最佳隱含層節(jié)點數的選擇參考如下公式:
式中 n——輸入層節(jié)點數;
l——隱含層節(jié)點數;
m——輸出層節(jié)點數;
a——0~10之間的常數。
結合以上經驗公式來確定隱含層節(jié)點數的大概范圍,然后用試湊法來確定隱含層的最佳節(jié)點數。本例中設定神經網絡的數目為5個,隱層和輸出層均采用Sigmoid傳輸函數,設定訓練函數為自適應調整學習速率附加動量因子梯度下降反向傳播算法訓練函數,設定神經網絡訓練的目標誤差為0.001,最大訓練步數為2000,學習速率為0.01。訓練結束后,將模型的輸出數據反歸一化到原來的數據范圍。
把遺傳算法用于BP神經網絡的訓練,利用遺傳算法全局搜索的特性,得到一個初始的權值矩陣和初始的閾值向量,再用BP神經網絡算法得到最終的GA-BP神經網絡。選擇遺傳算法初始的種群數目為50。交叉概率用于控制交叉操作的頻率,不可過大也不可過小,交叉概率過大會使得種群中個體的更新過快,而將適應度高的個體淘汰掉,交叉概率過小會使搜索緩慢甚至停止,故選擇交叉概率為 0.5,變異概率過大大會使搜索趨于隨機化,過小也影響下一代個體的產生,因此選擇變異概率為0.03。遺傳算法的主要參數如表1所示。
表1 遺傳算法的主要參數Tab.1 Main parameters of genetic algorithm
經過遺傳算法優(yōu)化的BP神經網絡,其具有了更為恰當的初始的權值和閾值,提高了BP神經網絡的收斂速度。將采集的48組訓練數據輸入模型進行訓練,訓練的結果如圖3和圖4所示。
BP網絡預測與GA-BP預測結果對比如圖4所示。
圖3 GA-BP算法適應度與誤差變化曲線Fig.3 The fitness of GA-BP algorithm and the curve of error change
圖4 BP網絡預測與GA-BP預測情況對比Fig.4 Comparison between BP network prediction and GA-BP prediction
圖5 BP網絡預測與GA-BP預測誤差對比Fig.5 Comparison between BP network prediction and GA-BP prediction error
將兩種方法的預測誤差進行對比分析,并將評價算法優(yōu)劣的其他幾個因素也進行對比。BP網絡預測與GA-BP預測誤差對比結果如圖5所示,BP網絡預測與GA-BP預測誤差百分比對比結果如圖6所示。
圖6 BP網絡預測與GA-BP預測誤差百分比Fig.6 BP network prediction and the percentage of GA-BP prediction error
將兩種方法的預測誤差數值進行對比分析,并將評價算法優(yōu)劣的幾個主要指標也進行對比。利用10個測試樣本對BP網絡預測與GA-BP預測誤差數值進行對比,對比分析結果如表2所示,BP網絡預測與GA-BP預測性能對比結果如表3所示。
表2 10個測試樣本的BP神經網絡與GA-BP預測誤差對比Tab.2 Comparison between BP neural network and GA-BP prediction error of 10 test samples
表3 BP神經網絡與GA-BP算法評價指標比較Tab.3 Comparison of evaluation indexes between BP neural network and GA-BP algorithm
本文將遺傳算法與BP神經網絡相結合建立水庫月入庫徑流量的預測模型,以影響水庫月入庫徑流量的幾個因素的歷史數值作為BP神經網絡預測模型的輸入變量,水庫月入庫徑流量的歷史數值作為模型的輸出變量,利用遺傳算法特有的全局搜索能力優(yōu)化了BP神經網絡的初始權值和閾值。采用優(yōu)化后的BP神經網絡建立水庫月入庫徑流量預測模型。實驗結果表明,遺傳算法結合BP網絡的模型相較于單獨的BP神經網絡具有預測精度較高、收斂速度較快的優(yōu)點。
[1]吳彬.淺談水庫水文預報基本資料的搜集[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]屈磊磊,齊麗巖,高勝哲.時間序列分析在徑流預測中的應用[J].安徽農業(yè)科學,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網絡結構設計與算法探討[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ōu)化神經網絡算法應用研究[J].中國農村水利水電,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]程向軍,神經網絡原理及其應用[M]. 北京: 國防工業(yè)出版社,1995:1-300.
CHENG Xiangjun. The principle and application of neural network[M]. Beijing: National Defense Industry Press,1995:1-300.
[6]周明,孫樹棟. 遺傳算法原理與應用[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]黃建國,羅航,王厚軍,龍兵.運用GA-BP神經網絡研究時間序列的預測[J].電子科技大學學報,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].熱帶氣象學報,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風電場短期風速及功率預測的研究[D].南京理工大學,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嵌套算法的理論及應用[J].數學的實踐與認識,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—),男,在讀碩士,主要研究方向:機器學習算法在工程實踐中的應用。E-mail:443518908@qq.com
譚榮建(1965—),男,副教授,碩士生導師,主要研究方向:測繪及土地資源管理方面的學習與研究。E-mail:bcys5502@163.com