朱新國(guó),張展羽,祝 卓
(河海大學(xué)水利水電學(xué)院,江蘇 南京 210098;2.桐鄉(xiāng)市水利局,浙江 桐鄉(xiāng) 314500)
基于改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)馬爾科夫模型的區(qū)域需水量預(yù)測(cè)
朱新國(guó)1,張展羽1,祝 卓2
(河海大學(xué)水利水電學(xué)院,江蘇 南京 210098;2.桐鄉(xiāng)市水利局,浙江 桐鄉(xiāng) 314500)
為提高需水量預(yù)測(cè)的精確度,應(yīng)用了一種BP神經(jīng)網(wǎng)絡(luò)與馬爾科夫相結(jié)合的預(yù)測(cè)模型,介紹了它的基本原理及算法,并給出了該模型建立的具體過(guò)程,最后該模型被應(yīng)用于需水量預(yù)測(cè)工作中,計(jì)算證明取得了較好的效果。
BP神經(jīng)網(wǎng)絡(luò);馬爾科夫模型;需水量預(yù)測(cè)
需水量預(yù)測(cè)在區(qū)域建設(shè)規(guī)劃、水資源優(yōu)化配置與調(diào)度管理中具有重要作用。由于用水系統(tǒng)的復(fù)雜性、需水量的季節(jié)性以及氣候變化等,使得確定的需水量模擬和預(yù)測(cè)模型難以建立,因此國(guó)內(nèi)外大多數(shù)的需水量預(yù)測(cè)方法都建立在對(duì)歷史數(shù)據(jù)的統(tǒng)計(jì)分析計(jì)算的基礎(chǔ)上。根據(jù)對(duì)數(shù)據(jù)處理方式的不同,預(yù)測(cè)方法可分為時(shí)間序列法、回歸分析、灰色模型、神經(jīng)網(wǎng)絡(luò)、系統(tǒng)動(dòng)力學(xué)方法、組合預(yù)測(cè)模型和分類(lèi)預(yù)測(cè)模型等。預(yù)測(cè)方法多種多樣,然而在眾多的預(yù)測(cè)方法中尋找一種適合需水量預(yù)測(cè)的方法仍然比較困難。劉俊良等[1]將BP(back propagation)神經(jīng)網(wǎng)絡(luò)方法引入到城市需水量預(yù)測(cè)中;楊維等[2]采用BP人工神經(jīng)網(wǎng)絡(luò)對(duì)遼寧省營(yíng)口市人均綜合用水量進(jìn)行預(yù)測(cè),進(jìn)而預(yù)測(cè)出城市需水量,取得了滿(mǎn)意的效果;張雪飛等[3]設(shè)定不同的神經(jīng)網(wǎng)絡(luò)運(yùn)行次數(shù),根據(jù)預(yù)測(cè)結(jié)果進(jìn)行誤差分析,BP神經(jīng)網(wǎng)絡(luò)需水量預(yù)測(cè)中網(wǎng)絡(luò)運(yùn)行5000次時(shí),具有高度的可信度和可行性。筆者提出了一種基于改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)與馬爾可夫鏈的組合預(yù)測(cè)方法,首先采用BP神經(jīng)網(wǎng)絡(luò),用少量的樣本數(shù)據(jù)粗略擬合需水量曲線(xiàn),在此基礎(chǔ)上借助馬爾可夫鏈縮小預(yù)測(cè)區(qū)間以提高預(yù)測(cè)精確度,從而為需水量預(yù)測(cè)提供一種新的思路。
BP算法是一種正向求解、反向傳播誤差并達(dá)到修改網(wǎng)絡(luò)層次之間權(quán)值和閾值的網(wǎng)絡(luò)模型。BP算法的步驟是:對(duì)一個(gè)輸入樣本,從輸入層經(jīng)隱層逐層正向計(jì)算,得到輸出層的輸出。若得到了期望的輸出,學(xué)習(xí)算法結(jié)束;否則,轉(zhuǎn)至反向傳播。反向傳播就是將誤差信號(hào)按原連接通路反向計(jì)算,由梯度下降法調(diào)整各層神經(jīng)元的權(quán)值和閾值,從而使網(wǎng)絡(luò)輸出逼近期望輸出,通常使之達(dá)到誤差均方值取最小為止。
BP算法成功地用于訓(xùn)練多層網(wǎng)絡(luò)具有重大的意義。但在實(shí)際應(yīng)用中,BP算法遇到了兩個(gè)困難:一是收斂速度慢,訓(xùn)練時(shí)間長(zhǎng);另一個(gè)是訓(xùn)練易陷入局部極小。針對(duì)以上問(wèn)題及現(xiàn)象,眾多學(xué)者都對(duì)BP算法進(jìn)行了改進(jìn)。筆者在此基礎(chǔ)上進(jìn)行了深入的研究,結(jié)合已有的改進(jìn)方法,采用下列方案對(duì)BP進(jìn)行改進(jìn)。
1.1.1 基于LM改進(jìn)BP[4]
為了進(jìn)一步減小振蕩、加快收斂速度,筆者利用LM算法對(duì)網(wǎng)絡(luò)權(quán)值和閾值進(jìn)行修正。該算法由經(jīng)典N(xiāo)ewton算法發(fā)展而來(lái),利用非線(xiàn)性最小二乘法來(lái)推演Hessian矩陣的近似形式,大大地減少了計(jì)算量。LM算法的基本方法是:
式中:w(k)為當(dāng)前的權(quán)值和閾值矩陣;J(k)為當(dāng)前網(wǎng)絡(luò)的Jacobian矩陣;I為單位矩陣;e(k)為當(dāng)前網(wǎng)絡(luò)的誤差項(xiàng);μ(k)為自適應(yīng)因子,當(dāng) μ(k)很小時(shí),LM算法接近高斯-牛頓法,當(dāng) μ(k)很大時(shí),則接近最速下降法。μ(k)的調(diào)整方法如下:若e(k+1)≥e(k),則 μ(k+1)=10μ(k);否則 μ(k+1)=μ(k)/10。
1.1.2 隱層節(jié)點(diǎn)數(shù)優(yōu)化[5]
BP網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)直接影響著網(wǎng)絡(luò)的容量、泛化能力、學(xué)習(xí)速度和輸出性能。雖然神經(jīng)網(wǎng)絡(luò)神經(jīng)元的冗余說(shuō)明它具有良好的容錯(cuò)性,但冗余太多,網(wǎng)絡(luò)性能勢(shì)必會(huì)受到一定的影響,以致降低預(yù)測(cè)精度。所以,有必要采用適當(dāng)大的隱含層結(jié)點(diǎn)數(shù)。根據(jù)隱含層結(jié)點(diǎn)之間的相關(guān)性大小合并結(jié)點(diǎn),分散度大小刪除結(jié)點(diǎn),確定一個(gè)最佳的網(wǎng)絡(luò)結(jié)構(gòu)。
設(shè)yip為隱含層結(jié)點(diǎn)i在學(xué)習(xí)第p個(gè)樣本時(shí)的輸出i為隱含層結(jié)點(diǎn)i在學(xué)習(xí)N個(gè)樣本的平均輸出,N為訓(xùn)練樣本總數(shù):
rij說(shuō)明隱含層結(jié)點(diǎn)i和j之間的相似程度。rij過(guò)大,說(shuō)明結(jié)點(diǎn)i和j非常相似,需要合并。
樣本對(duì)隱含層結(jié)點(diǎn)的輸出的分散度Si:
Si過(guò)小,說(shuō)明隱含層結(jié)點(diǎn)i的輸出值變化很小,它對(duì)網(wǎng)絡(luò)訓(xùn)練沒(méi)有起什么作用,可刪除此結(jié)點(diǎn)。
馬爾可夫鏈?zhǔn)且环N特殊的隨機(jī)過(guò)程,它的基本原理是:按照某系統(tǒng)的發(fā)展,時(shí)間可離散為n=0,1,2,3,…,對(duì)每個(gè)系統(tǒng)的狀態(tài)可用隨機(jī)變量表示,并且對(duì)應(yīng)一定的概率,稱(chēng)為狀態(tài)概率[6]。當(dāng)系統(tǒng)由某一階段狀態(tài)轉(zhuǎn)移到另一階段狀態(tài)時(shí),在這個(gè)轉(zhuǎn)移過(guò)程中,存在著轉(zhuǎn)移的概率,稱(chēng)為轉(zhuǎn)移概率。如果轉(zhuǎn)移概率只與目前相鄰兩狀態(tài)的變化有關(guān),即下階段的狀態(tài)只與現(xiàn)在狀態(tài)有關(guān)而與過(guò)去無(wú)關(guān),那么這種離散狀態(tài)按照離散時(shí)間的隨機(jī)轉(zhuǎn)移系統(tǒng)過(guò)程,稱(chēng)為馬爾可夫過(guò)程。
馬爾可夫鏈預(yù)測(cè)的理論基礎(chǔ)是馬爾可夫過(guò)程,對(duì)其運(yùn)動(dòng)變化的分析,主要是研究鏈內(nèi)有限馬爾可夫過(guò)程的狀態(tài)及其相互關(guān)系,進(jìn)而預(yù)測(cè)鏈的未來(lái)狀況,據(jù)此作出決策。馬爾可夫模型可表示為:
式中:x(n)為n時(shí)刻的狀態(tài)概率向量;x(0)為初始時(shí)刻的狀態(tài)概率向量;p為狀態(tài)轉(zhuǎn)移概率矩陣。上式具有根據(jù)p及x(0)預(yù)測(cè)第n步的意義。
對(duì)于BP神經(jīng)網(wǎng)絡(luò),將前期神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值與實(shí)測(cè)值的相對(duì)差值 δ所處的不同上下閾值作為狀態(tài)劃分值域,由此來(lái)建立狀態(tài)劃分標(biāo)準(zhǔn)。取yk(i)為i時(shí)刻位于狀態(tài)k的樣本,設(shè)k狀態(tài)樣本數(shù)為Nkj;系統(tǒng)總樣本數(shù)為N,則從狀態(tài)k到狀態(tài)j的轉(zhuǎn)移概率Pkj為[7]:
根據(jù)預(yù)測(cè)時(shí)刻狀態(tài)轉(zhuǎn)移概率組成各步轉(zhuǎn)移概率向量x(n)中最大列向量概率值,確定預(yù)測(cè)時(shí)刻狀態(tài)概率,對(duì)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值進(jìn)行修正,完成計(jì)算。
應(yīng)用BP神經(jīng)網(wǎng)絡(luò)馬爾可夫預(yù)測(cè)模型,對(duì)文獻(xiàn)[11]中的資料進(jìn)行實(shí)例計(jì)算,預(yù)測(cè)2006年、2007年、2010年以及2015年的區(qū)域需水量。
神經(jīng)網(wǎng)絡(luò)馬爾可夫預(yù)測(cè)的基本思想:首先建立BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,再對(duì)由BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)得到的結(jié)果運(yùn)用馬爾可夫模型,分析其誤差的波動(dòng)幅度與波動(dòng)發(fā)展趨勢(shì),獲得誤差的狀態(tài)轉(zhuǎn)移概率矩陣,并據(jù)此矩陣對(duì)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果進(jìn)行修正,每個(gè)預(yù)測(cè)值被修正為一組由概率狀態(tài)表示的預(yù)測(cè)區(qū)間值。
BP神經(jīng)網(wǎng)絡(luò)馬爾可夫預(yù)測(cè)模型的具體步驟如下。
2.2.1 建立BP神經(jīng)網(wǎng)絡(luò)模型
利用MATLAB構(gòu)造BP神經(jīng)網(wǎng)絡(luò)的初始結(jié)構(gòu):采用3層BP網(wǎng)絡(luò)結(jié)構(gòu),輸入層含n1個(gè)神經(jīng)元(以前1年用水量為輸入,n1=1),輸出層含n3個(gè)神經(jīng)元(n3=1),n2個(gè)隱含神經(jīng)元。采用上述改進(jìn)的BP學(xué)習(xí)算法訓(xùn)練網(wǎng)絡(luò),隨機(jī)生成網(wǎng)絡(luò)權(quán)值和域值初始值,允許誤差設(shè)為0.001。網(wǎng)絡(luò)按照上述1.1.1中的改進(jìn)進(jìn)行學(xué)習(xí),直至達(dá)到規(guī)定的學(xué)習(xí)精度。當(dāng)網(wǎng)絡(luò)達(dá)到穩(wěn)定后,開(kāi)始進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化:隱含層結(jié)點(diǎn)的合并和刪除,最終得到優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為1-10-1。對(duì)前15組訓(xùn)練樣本的實(shí)際輸出和理想輸出的結(jié)果及其相對(duì)誤差分析見(jiàn)表1。
表1 BP用水量擬合結(jié)果
從表1可見(jiàn),1990年到2005年擬合值的平均誤差約為5.821%,最大誤差為19.038%。
2.2.2 根據(jù)預(yù)測(cè)對(duì)象的具體情況,劃分狀態(tài)區(qū)間
根據(jù)表1中BP擬合值相對(duì)誤差,考慮到數(shù)據(jù)量不多的實(shí)際情況,將馬爾可夫狀態(tài)區(qū)域劃分為如下3種狀態(tài):①[0,4%],②(4%,10%]和③(10%,20%]。根據(jù)上述分類(lèi),可獲得1990~2003年需水量BP預(yù)測(cè)結(jié)果的馬爾可夫狀態(tài)轉(zhuǎn)移情況,如表2所示。
表2 1990~2003年需水量預(yù)測(cè)結(jié)果的馬爾可夫狀態(tài)轉(zhuǎn)移
2.2.3 計(jì)算轉(zhuǎn)移概率矩陣
由表2可確定馬爾可夫狀態(tài)轉(zhuǎn)移概率矩陣
2.2.4 預(yù)測(cè)
根據(jù)馬爾可夫鏈預(yù)測(cè)模型,得到2004年、2005年、2010年以及2015年的需水量預(yù)測(cè)狀態(tài)向量,如表3所示。綜上所述,可得出需水量的最終預(yù)測(cè)結(jié)果,如表4所示。
表3 需水量預(yù)測(cè)狀態(tài)向量
2004年、2005年 BP網(wǎng)絡(luò)預(yù)測(cè)誤差分別為3.022%和9.809%,馬爾可夫修正后的預(yù)測(cè)誤差分別為1.083%和7.000%??梢?jiàn)BP神經(jīng)網(wǎng)絡(luò)馬爾可夫預(yù)測(cè)精度更高。而且,BP神經(jīng)網(wǎng)絡(luò)馬爾可夫給出了預(yù)測(cè)值區(qū)間及其概率,能反映需水量變化所處的狀態(tài),比直接應(yīng)用BP預(yù)測(cè)更具說(shuō)服力,更易于接受。預(yù)測(cè)的2010年和2015年需水量分別為5465.4萬(wàn)m3/a和7077.2萬(wàn)m3/a。
表4 需水量實(shí)際值、BP擬合值與馬爾可夫改進(jìn)值對(duì)比
有限樣本訓(xùn)練的 BP網(wǎng)絡(luò)結(jié)構(gòu)往往不完全穩(wěn)定,由其完成的后續(xù)預(yù)測(cè)值一般是在一定范圍內(nèi)波動(dòng)的。筆者采用了馬爾可夫模型分析方法,有效地預(yù)見(jiàn)和修正了由于系統(tǒng)的隨機(jī)性產(chǎn)生的預(yù)測(cè)不確定性誤差,得到了更準(zhǔn)確的預(yù)測(cè)結(jié)果,具有較強(qiáng)的科學(xué)性。該方法不僅預(yù)測(cè)精度高,而且簡(jiǎn)便實(shí)用,可操作性強(qiáng)。此外,筆者構(gòu)建的改進(jìn)型BP神經(jīng)網(wǎng)絡(luò),經(jīng)實(shí)例驗(yàn)證該方法可行。
[1]劉俊良,劉興坡,張樹(shù)軍,等.BP神經(jīng)網(wǎng)絡(luò)在城市需水量預(yù)測(cè)中的應(yīng)用[J].河北建筑工程學(xué)院學(xué)報(bào),2001,19(2):1-3.
[2]楊維,王恩德,陳暢.應(yīng)用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)城市需水量的探析[J].資源調(diào)查與環(huán)境,2003,24(3):217-221.
[3]張雪飛,郭秀銳,程水源,等.BP神經(jīng)網(wǎng)絡(luò)法預(yù)測(cè)唐山市需水量[J].安全與環(huán)境學(xué)報(bào),2005,5(5):95-98.
[4]曹邦興.L M算法在地下水動(dòng)態(tài)預(yù)測(cè)中的應(yīng)用研究[J].廣西水利水電,2007(3):4-5.
[5]羅強(qiáng),任慶利,羅莉.應(yīng)用BP神經(jīng)網(wǎng)絡(luò)研究水滑石/聚合物納米復(fù)合材料的制備工藝[J].稀有金屬材料與工程,2007,36(2):283-285.
[6]劉克.實(shí)用馬爾可夫決策過(guò)程[M].北京:清華大學(xué)出版社,2004.
[7]陳繼光,祝令德.基于神經(jīng)網(wǎng)絡(luò)的馬爾可夫預(yù)測(cè)模型[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(6):225-226.
[8]楊勵(lì)雅,邵春福.基于BP神經(jīng)網(wǎng)絡(luò)與馬爾可夫鏈的城市軌道交通周邊房地產(chǎn)價(jià)格的組合預(yù)測(cè)方法[J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2008,38(3):514-519.
[9]王義民,于興杰,暢建霞,等.基于 BP神經(jīng)網(wǎng)絡(luò)馬爾科夫模型的徑流量預(yù)測(cè)[J].武漢大學(xué)學(xué)報(bào):工學(xué)版,2008,41(5):14-17.
[10]呂佳良,張振剛.基于灰色關(guān)聯(lián)指標(biāo)篩選的BP神經(jīng)網(wǎng)絡(luò)中長(zhǎng)期電力負(fù)荷滾動(dòng)預(yù)測(cè)馬爾可夫殘差修正模型研究[J].華東電力,2008,36(9):10-13.
[11]翟春年.開(kāi)發(fā)區(qū)給水規(guī)劃中需水量預(yù)測(cè)的研究[D].天津:天津大學(xué),2007.
Prediction of water demand based on improved BP neural network and Markov model
ZHU Xin-guo1,ZHANG Zhan-yu1,ZHU Zhuo2
(1.College of Water Conservancy and Hydropower Engineering,Hohai University,Nanjing210098,China;2.Tongxiang Water Conservancy Bureau,Tongxiang314500,China)
In order to enhance the prediction accuracy of water demand forecasting,the BP neural network model was used in combination with the Markov model.The basic principle and algorithm were introduced in detail,and the model development process was also described.This model was applied to a water demand forecasting example and obtained good results.
BP network;Markov model;water demand forecasting
TV21
A
1004-6933(2010)02-0028-04
國(guó)家自然科學(xué)基金(50839002);水利部公益性專(zhuān)項(xiàng)科研項(xiàng)目(200701025)
朱新國(guó)(1982—),男,江蘇泰州人,博士研究生,研究方向?yàn)檗r(nóng)業(yè)水土工程。E-mail:11508@hhu.edu.cn
(收稿日期:2009-05-20 編輯:徐 娟)