高麗媛,董 甲
(1.華北水利水電大學(xué)信息工程學(xué)院,河南鄭州 450011;2.黃河勘測(cè)規(guī)劃設(shè)計(jì)有限公司,河南鄭州 450000)
BP網(wǎng)絡(luò)因其強(qiáng)大的非線性映射能力,可逼近任何非線性連續(xù)函數(shù),同時(shí)具有自學(xué)習(xí)和自適應(yīng)能力等優(yōu)點(diǎn),國(guó)內(nèi)外學(xué)者均對(duì)其進(jìn)行了研究,并解決了較多應(yīng)用方面的問(wèn)題。隨著應(yīng)用范圍的擴(kuò)大,其缺點(diǎn)暴露出來(lái),在訓(xùn)練過(guò)程中,網(wǎng)絡(luò)權(quán)值易陷入局部最小化,對(duì)訓(xùn)練結(jié)果造成誤導(dǎo),當(dāng)要優(yōu)化的目標(biāo)函數(shù)較為復(fù)雜時(shí),收斂速度會(huì)很慢。基于這些問(wèn)題,本文在前人研究的基礎(chǔ)上提出了基于模擬退火遺傳算法的改進(jìn)BP神經(jīng)網(wǎng)絡(luò),并利用黃河流域水文站數(shù)據(jù)進(jìn)行洪峰測(cè)試,根據(jù)兩種模型的驗(yàn)算數(shù)據(jù),分析其優(yōu)劣。
神經(jīng)網(wǎng)絡(luò)(Back Propagation,BP)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層反饋網(wǎng)絡(luò),是目前應(yīng)用廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,模型訓(xùn)練開(kāi)始前需要設(shè)置最大訓(xùn)練次數(shù)c,訓(xùn)練終止條件E≤e,初始化網(wǎng)絡(luò)權(quán)重wij、vjt和閾值 θj、γt,四者均為為(- 1,1)之間的隨機(jī)值。變量設(shè)置完畢后,讀入訓(xùn)練樣本并計(jì)算計(jì)算中間層的輸入輸出并根據(jù)公式計(jì)算輸出層的輸入,輸出Ct=f(Lt)=涉及到輸出層的一般誤差Ct)Ct(1-Ct),中間層的一般誤差bj(1-bj)根據(jù)誤差結(jié)果修改輸出層的權(quán)值和閾值vjt(N+1)=vjt(N)+αdktbj,γjt(N+1)= γjt(N)+(- αdkt),以及隱層的權(quán)值和閾值wij(N+1)=wij(N)+βejai,θj(N+1)= θj(N)+(- βej),直至 m 個(gè)樣本訓(xùn)練完成。此時(shí)判斷全局誤差是否滿足E≤e,否則重新訓(xùn)練,直到滿足要求,或達(dá)到最大訓(xùn)練次數(shù)[1-2]。BP網(wǎng)絡(luò)模型其算法流程,如圖1所示。
各連接權(quán)值W(k)和神經(jīng)元閾值的初始值依靠隨機(jī)選取,其分布范圍較大,網(wǎng)絡(luò)優(yōu)化時(shí)需多次迭代才能找到最優(yōu)解。鑒于此,本文提出基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò),根據(jù)遺傳算法的特點(diǎn),減少優(yōu)化時(shí)的迭代次數(shù),提高收斂速度[3]。
圖1 BP網(wǎng)絡(luò)模型其算法流程圖
模擬退火遺傳算法是以遺傳算法為主體流程,引入模擬退火機(jī)制,該算法在執(zhí)行時(shí)首先通過(guò)遺傳算法進(jìn)行全局搜索,產(chǎn)生出較優(yōu)良的群體,再利用模擬退火算法進(jìn)行局部搜索,對(duì)基因個(gè)體進(jìn)行優(yōu)化調(diào)整,避免了遺傳算法收斂性差的缺點(diǎn),可高效地找到最優(yōu)解[4]。文中的改進(jìn)BP神經(jīng)網(wǎng)絡(luò)先利用模擬退火遺傳算法局部搜索能力強(qiáng)的特點(diǎn),將神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值優(yōu)化到一個(gè)較小的范圍,然后利用BP算法進(jìn)行預(yù)測(cè)[5],從而建立成熟神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),兩種算法的結(jié)合能顯著提高BP網(wǎng)絡(luò)的性能。
GA -BP 算法具體[6-8]步驟如下:(1)選擇適應(yīng)度函數(shù),模擬退火遺傳算法敘述要利用該函數(shù)確定種群個(gè)體適應(yīng)度大小,以此判斷個(gè)體是否被選擇。(2)初始化網(wǎng)絡(luò)參數(shù),并給出訓(xùn)練參數(shù)。由rand函數(shù)產(chǎn)生一組(-1,1)之間的隨機(jī)數(shù)確定,選擇訓(xùn)練結(jié)果最好的一次作為網(wǎng)絡(luò)的初始權(quán)值和閾值,網(wǎng)絡(luò)的訓(xùn)練參數(shù)按照模擬退火遺傳算法進(jìn)行預(yù)處理,表示成二進(jìn)制編碼的形式。(3)計(jì)算種群個(gè)體的適應(yīng)度及總適應(yīng)度,若達(dá)到預(yù)定值則轉(zhuǎn)至步驟(5),否則執(zhí)行步驟(4)。(4)采用模擬退火遺傳算法對(duì)種群進(jìn)行進(jìn)化,對(duì)種群個(gè)體進(jìn)行相應(yīng)的選擇、交叉和變異操作,繁殖過(guò)程采用最優(yōu)個(gè)體保留策略,選擇優(yōu)異個(gè)體組成優(yōu)異群體,直到群體的適應(yīng)度趨于穩(wěn)定,完成后轉(zhuǎn)至步驟(3)。(5)使用BP網(wǎng)絡(luò)進(jìn)行迭代計(jì)算,若未達(dá)到全局誤差要求,則轉(zhuǎn)至步驟(4),否則執(zhí)行步驟(6)。(6)輸出此時(shí)的種群,即網(wǎng)絡(luò)權(quán)值和閾值。(7)輸出對(duì)應(yīng)的匹配結(jié)果。
GA-BP網(wǎng)絡(luò)流程如圖2所示。
圖2 GA-BP網(wǎng)絡(luò)流程圖
以黃河流域潢川水文站、淮濱水文站、泌陽(yáng)水文站逐日流量及逐日區(qū)間雨量數(shù)據(jù)為例,分別采用BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行洪峰預(yù)測(cè),對(duì)比說(shuō)明GA-BP網(wǎng)絡(luò)的可行性和優(yōu)越性。表1中前10組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),后5組作為測(cè)試數(shù)據(jù)。
表1 前10組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)
續(xù)表1
BP神經(jīng)網(wǎng)絡(luò)輸入元需先經(jīng)歸一化處理,分別為潢川水文站流量、淮濱水文站流量、區(qū)間雨量和區(qū)間凈雨量,隱層節(jié)點(diǎn)數(shù)根據(jù)經(jīng)驗(yàn)公式為輸入層節(jié)點(diǎn)數(shù),n0為輸出層節(jié)點(diǎn)數(shù),a為1~10之間的常數(shù)),輸出層為一個(gè)神經(jīng)元,輸出值為泌陽(yáng)水文站流量歸一化數(shù)值,采用newff函數(shù)創(chuàng)建網(wǎng)絡(luò),設(shè)定訓(xùn)練誤差為1e-5,訓(xùn)練次數(shù)為1 000次。網(wǎng)絡(luò)設(shè)置完成后,使用BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,訓(xùn)練完成后,將其用于流量預(yù)測(cè),得到的數(shù)據(jù)與真實(shí)數(shù)據(jù)進(jìn)行比較,表2為泌陽(yáng)水文站BP神經(jīng)網(wǎng)絡(luò)模型下預(yù)測(cè)流量與實(shí)際流量的對(duì)比。設(shè)Q為模型演算值Qi與實(shí)際流量值Qs之間的誤差,根據(jù)誤差公式Q=(Qi-Qs)/Qs×100%,對(duì)樣本進(jìn)行統(tǒng)計(jì)。
表2 泌陽(yáng)水文站BP神經(jīng)網(wǎng)絡(luò)模型下預(yù)測(cè)流量與實(shí)際流量對(duì)比
由表2可看出,BP神經(jīng)網(wǎng)絡(luò)模型最大誤差為0.49%,最小誤差為-0.45%,根據(jù)公式,得平均絕對(duì)值誤差為1.56%。
基于模擬退火遺傳算法BP網(wǎng)絡(luò)模型輸入層和輸出層同樣需要經(jīng)過(guò)歸一化處理,與原始BP神經(jīng)網(wǎng)絡(luò)模型設(shè)定相同,隱層節(jié)點(diǎn)數(shù)采用經(jīng)驗(yàn)公式進(jìn)行設(shè)定,設(shè)定為4,遺傳群體數(shù)目初始化為10,同樣設(shè)定訓(xùn)練誤差為1e-5,公式訓(xùn)練參數(shù)、個(gè)體適應(yīng)度及總適應(yīng)度、閾值等均在實(shí)驗(yàn)過(guò)程中不斷進(jìn)行調(diào)試,以取得滿意效果。模型仍采用表1數(shù)據(jù),表3為泌陽(yáng)水文站GA-BP神經(jīng)網(wǎng)絡(luò)模型下預(yù)測(cè)流量與實(shí)際流量的對(duì)比。
表3 泌陽(yáng)水文站GA-BP神經(jīng)網(wǎng)絡(luò)模型下預(yù)測(cè)流量與實(shí)際流量的對(duì)比
根據(jù)表3數(shù)據(jù)和平均絕對(duì)誤差公式0.88%。由此可見(jiàn),改進(jìn)的BP網(wǎng)絡(luò)模型演算數(shù)據(jù)與實(shí)際數(shù)據(jù)更為接近,誤差控制在更小的范圍內(nèi)。同時(shí)模擬退火遺傳算法對(duì)初值的引進(jìn),減輕了BP網(wǎng)絡(luò)的負(fù)擔(dān),縮短耗時(shí)。
使用模擬退火遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),主要包括優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)化權(quán)系數(shù)、優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和學(xué)習(xí)規(guī)則等[4]。由實(shí)驗(yàn)結(jié)果對(duì)比可以看到,BP網(wǎng)絡(luò)和模擬退火遺傳算法的結(jié)合,在程序運(yùn)行上減小了搜索空間、提高了算法的搜索效率,結(jié)果更為精確,縮小了誤差范圍。
[1]王鵬.基于數(shù)據(jù)挖掘的洪峰預(yù)測(cè)系統(tǒng)的研究與實(shí)現(xiàn)[D].南京:河海大學(xué),2006.
[2]陳云翔.防洪決策中洪水災(zāi)情智能預(yù)測(cè)與評(píng)估模型的研究[D].上海:東華大學(xué),2008.
[3]丁永生.計(jì)算智能理論技術(shù)與應(yīng)用[M].北京:科學(xué)出版社,2004.
[4]張暉,吳斌,余張國(guó).引入模擬退火機(jī)制的新型遺傳算法[J].電子科技大學(xué)學(xué)報(bào):自然科學(xué)版,2003,32(1):39-42.
[5]穆阿華,周紹磊,劉青志,等.利用遺傳算法改進(jìn)BP學(xué)習(xí)算法[J].計(jì)算機(jī)仿真,2005,20(2):150-151.
[6]李維良,葉三星.遺傳BP算法在雙色球彩票預(yù)測(cè)中的應(yīng)用[J].軟件導(dǎo)刊,2011,10(11):81 -83.
[7]石爭(zhēng)浩,黃士坦,馮亞寧,等.遺傳算法和BP算法相結(jié)合進(jìn)行圖像匹配[J].武漢大學(xué)學(xué)報(bào):工學(xué)版,2003,36(3):91-94.
[8]陳偉濤,楊沛,劉朝陽(yáng),等.BP神經(jīng)網(wǎng)絡(luò)在雷達(dá)目標(biāo)識(shí)別中的應(yīng)用[J].電子科技,2010,23(12):18 -19.