BP神經(jīng)網(wǎng)絡(luò)預(yù)測應(yīng)用論文
時間:2022-03-12 09:46:00
導(dǎo)語:BP神經(jīng)網(wǎng)絡(luò)預(yù)測應(yīng)用論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要人工神經(jīng)網(wǎng)絡(luò)是一種新的數(shù)學(xué)建模方式,它具有通過學(xué)習(xí)逼近任意非線性映射的能力。本文提出了一種基于動態(tài)bp神經(jīng)網(wǎng)絡(luò)的預(yù)測方法,闡述了其基本原理,并以典型實例驗證。
關(guān)鍵字神經(jīng)網(wǎng)絡(luò),BP模型,預(yù)測
1引言
在系統(tǒng)建模、辨識和預(yù)測中,對于線性系統(tǒng),在頻域,傳遞函數(shù)矩陣可以很好地表達(dá)系統(tǒng)的黑箱式輸入輸出模型;在時域,Box-Jenkins方法、回歸分析方法、ARMA模型等,通過各種參數(shù)估計方法也可以給出描述。對于非線性時間序列預(yù)測系統(tǒng),雙線性模型、門限自回歸模型、ARCH模型都需要在對數(shù)據(jù)的內(nèi)在規(guī)律知道不多的情況下對序列間關(guān)系進(jìn)行假定。可以說傳統(tǒng)的非線性系統(tǒng)預(yù)測,在理論研究和實際應(yīng)用方面,都存在極大的困難。相比之下,神經(jīng)網(wǎng)絡(luò)可以在不了解輸入或輸出變量間關(guān)系的前提下完成非線性建模[4,6]。神經(jīng)元、神經(jīng)網(wǎng)絡(luò)都有非線性、非局域性、非定常性、非凸性和混沌等特性,與各種預(yù)測方法有機結(jié)合具有很好的發(fā)展前景,也給預(yù)測系統(tǒng)帶來了新的方向與突破。建模算法和預(yù)測系統(tǒng)的穩(wěn)定性、動態(tài)性等研究成為當(dāng)今熱點問題。目前在系統(tǒng)建模與預(yù)測中,應(yīng)用最多的是靜態(tài)的多層前向神經(jīng)網(wǎng)絡(luò),這主要是因為這種網(wǎng)絡(luò)具有通過學(xué)習(xí)逼近任意非線性映射的能力。利用靜態(tài)的多層前向神經(jīng)網(wǎng)絡(luò)建立系統(tǒng)的輸入/輸出模型,本質(zhì)上就是基于網(wǎng)絡(luò)逼近能力,通過學(xué)習(xí)獲知系統(tǒng)差分方程中的非線性函數(shù)。但在實際應(yīng)用中,需要建模和預(yù)測的多為非線性動態(tài)系統(tǒng),利用靜態(tài)的多層前向神經(jīng)網(wǎng)絡(luò)必須事先給定模型的階次,即預(yù)先確定系統(tǒng)的模型,這一點非常難做到。近來,有關(guān)基于動態(tài)網(wǎng)絡(luò)的建模和預(yù)測的研究,代表了神經(jīng)網(wǎng)絡(luò)建模和預(yù)測新的發(fā)展方向。
2BP神經(jīng)網(wǎng)絡(luò)模型
BP網(wǎng)絡(luò)是采用Widrow-Hoff學(xué)習(xí)算法和非線性可微轉(zhuǎn)移函數(shù)的多層網(wǎng)絡(luò)。典型的BP算法采用梯度下降法,也就是Widrow-Hoff算法?,F(xiàn)在有許多基本的優(yōu)化算法,例如變尺度算法和牛頓算法。如圖1所示,BP神經(jīng)網(wǎng)絡(luò)包括以下單元:①處理單元(神經(jīng)元)(圖中用圓圈表示),即神經(jīng)網(wǎng)絡(luò)的基本組成部分。輸入層的處理單元只是將輸入值轉(zhuǎn)入相鄰的聯(lián)接權(quán)重,隱層和輸出層的處理單元將它們的輸入值求和并根據(jù)轉(zhuǎn)移函數(shù)計算輸出值。②聯(lián)接權(quán)重(圖中如V,W)。它將神經(jīng)網(wǎng)絡(luò)中的處理單元聯(lián)系起來,其值隨各處理單元的聯(lián)接程度而變化。③層。神經(jīng)網(wǎng)絡(luò)一般具有輸入層x、隱層y和輸出層o。④閾值。其值可為恒值或可變值,它可使網(wǎng)絡(luò)能更自由地獲取所要描述的函數(shù)關(guān)系。⑤轉(zhuǎn)移函數(shù)F。它是將輸入的數(shù)據(jù)轉(zhuǎn)化為輸出的處理單元,通常為非線性函數(shù)。
2.1基本算法
BP算法主要包含4步,分為向前傳播和向后傳播兩個階段:
1)向前傳播階段
(1)從樣本集中取一個樣本(Xp,Yp),將Xp輸入網(wǎng)絡(luò);
(2)計算相應(yīng)的實際輸出Op
在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運行時的執(zhí)行過程。
2)向后傳播階段
(1)計算實際輸出Op與相應(yīng)的理想輸出Yp的差;
(2)按極小化誤差的方式調(diào)整權(quán)矩陣。
這兩個階段的工作受到精度要求的控制,在這里取作為網(wǎng)絡(luò)關(guān)于第p個樣本的誤差測度,而將網(wǎng)絡(luò)關(guān)于整個樣本集的誤差測度定義為。圖2是基本BP算法的流程圖。
2.2動態(tài)BP神經(jīng)網(wǎng)絡(luò)預(yù)測算法
在經(jīng)典的BP算法以及其他的訓(xùn)練算法中都有很多變量,這些訓(xùn)練算法可以確定一個ANN結(jié)構(gòu),它們只訓(xùn)練固定結(jié)構(gòu)的ANN權(quán)值(包括聯(lián)接權(quán)值和結(jié)點轉(zhuǎn)換函數(shù))。在自動設(shè)計ANN結(jié)構(gòu)方面,也已有較多的嘗試,比如構(gòu)造性算法和剪枝算法。前一種是先隨機化網(wǎng)絡(luò),然后在訓(xùn)練過程中有必要地增加新的層和結(jié)點;而剪枝法則正好相反。文獻(xiàn)[2]中提出了演化神經(jīng)網(wǎng)絡(luò)的理念,并把EP算法與BP進(jìn)行了組合演化;也有很多學(xué)者把遺傳算法和BP進(jìn)行結(jié)合,但這些算法都以時間復(fù)雜度以及空間復(fù)雜度的增加為代價。根據(jù)Kolmogorov定理,對于任意給定的L2型連續(xù)函數(shù)f:[0,1]n→Rm,f可以精確地用一個三層前向神經(jīng)網(wǎng)絡(luò)來實現(xiàn),因而可以只考慮演化網(wǎng)絡(luò)的權(quán)值和結(jié)點數(shù)而不影響演化結(jié)果?;诖耍贐P原有算法的基礎(chǔ)上,增加結(jié)點數(shù)演化因子,然后記錄每層因子各異時演化出的結(jié)構(gòu),最后選取最優(yōu)的因子及其網(wǎng)絡(luò)結(jié)構(gòu),這樣就可以避免由于增加或剪枝得到的局部最優(yōu)。根據(jù)實驗得知,不同的預(yù)測精度也影響網(wǎng)絡(luò)層神經(jīng)元的結(jié)點數(shù),所以可根據(jù)要求動態(tài)地建立預(yù)測系統(tǒng)。具體步驟如下:
(1)將輸入向量和目標(biāo)向量進(jìn)行歸一化處理。
(2)讀取輸入向量、目標(biāo)向量,記錄輸入維數(shù)m、輸出層結(jié)點數(shù)n。
(3)當(dāng)訓(xùn)練集確定之后,輸入層結(jié)點數(shù)和輸出層結(jié)點數(shù)隨之而確定,首先遇到的一個十分重要而又困難的問題是如何優(yōu)化隱層結(jié)點數(shù)和隱層數(shù)。實驗表明,如果隱層結(jié)點數(shù)過少,網(wǎng)絡(luò)不能具有必要的學(xué)習(xí)能力和信息處理能力。反之,若過多,不僅會大大增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性(這一點對硬件實現(xiàn)的網(wǎng)絡(luò)尤其重要),網(wǎng)絡(luò)在學(xué)習(xí)過程中更易陷入局部極小點,而且會使網(wǎng)絡(luò)的學(xué)習(xí)速度變得很慢。隱層結(jié)點數(shù)的選擇問題一直受到神經(jīng)網(wǎng)絡(luò)研究工作者的高度重視。Gorman指出隱層結(jié)點數(shù)s與模式數(shù)N的關(guān)系是:s=log2N;Kolmogorov定理表明,隱層結(jié)點數(shù)s=2n+1(n為輸入層結(jié)點數(shù));而根據(jù)文獻(xiàn)[7]:s=sqrt(0.43mn+0.12nn+2.54m+0.77n+0.35)+0.51[7]。
(4)設(shè)置結(jié)點數(shù)演化因子a。為了快速建立網(wǎng)絡(luò),可以對其向量初始化,并從小到大排序[4,7]。
(5)建立BP神經(jīng)網(wǎng)絡(luò)。隱含層傳遞函數(shù)用tansig,輸出層用logsig,訓(xùn)練函數(shù)采用動態(tài)自適應(yīng)BP算法,并制訂停止準(zhǔn)則:目標(biāo)誤差精度以及訓(xùn)練代數(shù)。
(6)初始化網(wǎng)絡(luò)。
(7)訓(xùn)練網(wǎng)絡(luò)直到滿足停止判斷準(zhǔn)則。
(8)用測試向量對網(wǎng)絡(luò)進(jìn)行預(yù)測,并記錄誤差和逼近曲線,評估其網(wǎng)絡(luò)的適應(yīng)性。其適應(yīng)度函數(shù)采取規(guī)則化均方誤差函數(shù)。
(9)轉(zhuǎn)到(5),選取下一個演化因子,動態(tài)增加隱含層結(jié)點數(shù),直到最后得到最佳預(yù)測網(wǎng)絡(luò)。
3基于神經(jīng)網(wǎng)絡(luò)的預(yù)測原理[4]
3.1正向建模
正向建模是指訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)表達(dá)系統(tǒng)正向動態(tài)的過程,這一過程建立的神經(jīng)網(wǎng)絡(luò)模型稱為正向模型,其結(jié)構(gòu)如圖3所示。其中,神經(jīng)網(wǎng)絡(luò)與待辨識的系統(tǒng)并聯(lián),兩者的輸出誤差用做網(wǎng)絡(luò)的訓(xùn)練信號。顯然,這是一個典型的有導(dǎo)師學(xué)習(xí)問題,實際系統(tǒng)作為教師,向神經(jīng)網(wǎng)絡(luò)提供算法所需要的期望輸出。當(dāng)系統(tǒng)是被控對象或傳統(tǒng)控制器時,神經(jīng)網(wǎng)絡(luò)多采用多層前向網(wǎng)絡(luò)的形式,可直接選用BP網(wǎng)絡(luò)或它的各種變形。而當(dāng)系統(tǒng)為性能評價器時,則可選擇再勵學(xué)習(xí)算法,這時網(wǎng)絡(luò)既可以采用具有全局逼近能力的網(wǎng)絡(luò)(如多層感知器),也可選用具有局部逼近能力的網(wǎng)絡(luò)(如小腦模型控制器等)。3.2逆向建模
建立動態(tài)系統(tǒng)的逆模型,在神經(jīng)網(wǎng)絡(luò)中起著關(guān)鍵作用,并且得到了廣泛的應(yīng)用。其中,比較簡單的是直接逆建模法,也稱為廣義逆學(xué)習(xí)。其結(jié)構(gòu)如圖4所示,擬預(yù)報的系統(tǒng)輸出作為網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)輸出與系統(tǒng)輸入比較,相應(yīng)的輸入誤差用于訓(xùn)練,因而網(wǎng)絡(luò)將通過學(xué)習(xí)建立系統(tǒng)的逆模型。但是,如果所辨識的非線性系統(tǒng)是不可逆的,利用上述方法將得到一個不正確的逆模型。因此,在建立系統(tǒng)時,可逆性應(yīng)該先有所保證。
4應(yīng)用實例分析
以我國西南某地震常發(fā)地區(qū)的地震資料作為樣本來源,實現(xiàn)基于動態(tài)神經(jīng)網(wǎng)絡(luò)的地震預(yù)報。根據(jù)資料,提取出7個預(yù)報因子和實際發(fā)生的震級M作為輸入和目標(biāo)向量。預(yù)報因子為半年內(nèi)M>=3的地震累計頻度、半年內(nèi)能量釋放積累值、b值、異常地震群個數(shù)、地震條帶個數(shù)、是否處于活動期內(nèi)以及相關(guān)地震區(qū)地震級。在訓(xùn)練前,對數(shù)據(jù)進(jìn)行歸一化處理。由于輸入樣本為7維的輸入向量,一般情況下輸入層設(shè)7個神經(jīng)元。根據(jù)實際情況,輸出層神經(jīng)元個數(shù)為1。隱含層神經(jīng)元的傳遞函數(shù)為S型正切函數(shù),輸出層也可以動態(tài)選擇傳遞函數(shù)。實例數(shù)據(jù)來自文獻(xiàn)[4],將數(shù)據(jù)集分為訓(xùn)練集、測試集和確定集。表1中的7×7數(shù)組表示歸一化后的訓(xùn)練向量,第一個7表示預(yù)報因子數(shù),第二個7表示樣本數(shù)。
表1歸一化后的訓(xùn)練向量
在不同神經(jīng)元數(shù)情況下,對網(wǎng)絡(luò)進(jìn)行訓(xùn)練和仿真,得到如圖5所示的一組預(yù)測誤差曲線。其中,曲線A表示隱層結(jié)點數(shù)為6時的預(yù)測誤差曲線,曲線B表示隱含層結(jié)點數(shù)為3時的預(yù)測誤差曲線,曲線C表示隱含層結(jié)點數(shù)為5時的預(yù)測誤差曲線,曲線D表示隱含層結(jié)點數(shù)為4時的預(yù)測誤差曲線。將五種情況下的誤差進(jìn)行對比,曲線C表示的網(wǎng)絡(luò)預(yù)測性能最好,其隱含層神經(jīng)元數(shù)為5,圖中曲線E表示的是隱含層結(jié)點數(shù)為15時的預(yù)測誤差曲線(文獻(xiàn)[4]中的最好結(jié)果)。同時也證明,在設(shè)計BP網(wǎng)絡(luò)時,不能無限制地增加層神經(jīng)元的個數(shù)。若過多,不僅會大大增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,網(wǎng)絡(luò)在學(xué)習(xí)過程中更易陷入局部極小點,而且會使網(wǎng)絡(luò)的學(xué)習(xí)速度、預(yù)測速度變得很慢。
5結(jié)論
本文針對基本的BP神經(jīng)網(wǎng)絡(luò),提出了可動態(tài)改變神經(jīng)元數(shù)(與精度相關(guān))的BP神經(jīng)網(wǎng)絡(luò)預(yù)測方法,可以根據(jù)實際情況建立預(yù)測系統(tǒng)。用此種方法可以建立最好的神經(jīng)網(wǎng)絡(luò),不會有多余的神經(jīng)元,也不會讓網(wǎng)絡(luò)在學(xué)習(xí)過程中過早陷于局部極小點。
參考文獻(xiàn)
[1]YaoX,LiuY.FastEvolutionaryProgramming.inEvolutionaryProgrammingⅤ:Proc.5thAnnu.Conf.EvolutionaryProgram,L.Fogel,P.AngelineandT.Bäck,Eds.Cambridge,MA:MITPress,1996,451-460
[2]XinYao,YongLiu,ANewEvolutionarySystemforEvolvingArtificialNeuralNetworksIEEETRANSACTIONSONNEURALNETWORKS,VOL8,NO.31997,694-714
[3]潘正君,康立山,陳毓屏.演化計算[M].北京:清華大學(xué)出版社,1998
[4]飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡(luò)理論與實現(xiàn).北京:電子工業(yè)出版社,2005
[5]蔡曉芬,方建斌.演化神經(jīng)網(wǎng)絡(luò)算法.江漢大學(xué)學(xué)報,第33卷第3期,2005.9
[6]蔣宗禮.人工神經(jīng)網(wǎng)絡(luò)導(dǎo)論.北京:高等教育出版社,2001
[7]高大啟.有導(dǎo)師的線性基本函數(shù)前向三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)研究.計算機學(xué)報,第21卷第1期,1998
- 上一篇:語言美和心靈美外化表現(xiàn)論文
- 下一篇:銷售一線團隊管理論文