《第34章 BP神經網絡模型》由會員分享,可在線閱讀,更多相關《第34章 BP神經網絡模型(4頁珍藏版)》請在裝配圖網上搜索。
1、BP神經網絡模型
第1節(jié) 基本原理簡介
近年來全球性的神經網絡研究熱潮的再度興起,不僅僅是因為神經科學本身取得了巨大的進展.更主要的原因在于發(fā)展新型計算機和人工智能新途徑的迫切需要.迄今為止在需要人工智能解決的許多問題中,人腦遠比計算機聰明的多,要開創(chuàng)具有智能的新一代計算機,就必須了解人腦,研究人腦神經網絡系統(tǒng)信息處理的機制.另一方面,基于神經科學研究成果基礎上發(fā)展出來的人工神經網絡模型,反映了人腦功能的若干基本特性,開拓了神經網絡用于計算機的新途徑.它對傳統(tǒng)的計算機結構和人工智能是一個有力的挑戰(zhàn),引起了各方面專家的極大關注.
目前,已發(fā)展了幾十種神經網絡,例如Hopficld模型,F(xiàn)e
2、ldmann等的連接型網絡模型,Hinton等的玻爾茨曼機模型,以及Rumelhart等的多層感知機模型和Kohonen的自組織網絡模型等等。在這眾多神經網絡模型中,應用最廣泛的是多層感知機神經網絡。多層感知機神經網絡的研究始于50年代,但一直進展不大。直到1985年,Rumelhart等人提出了誤差反向傳遞學習算法(即BP算),實現(xiàn)了Minsky的多層網絡設想,如圖34-1所示。
輸入層
中間層
輸出層
圖34-1 BP神經網絡模型
?
?
?
?
?
?
?
?
?
BP算法不僅有輸入層節(jié)點、輸出層節(jié)點,還可有1個或多個隱含層節(jié)點。對于
3、輸入信號,要先向前傳播到隱含層節(jié)點,經作用函數(shù)后,再把隱節(jié)點的輸出信號傳播到輸出節(jié)點,最后給出輸出結果。節(jié)點的作用的激勵函數(shù)通常選取S型函數(shù),如
式中Q為調整激勵函數(shù)形式的Sigmoid參數(shù)。該算法的學習過程由正向傳播和反向傳播組成。在正向傳播過程中,輸入信息從輸入層經隱含層逐層處理,并傳向輸出層。每一層神經元的狀態(tài)只影響下一層神經元的狀態(tài)。如果輸出層得不到期望的輸出,則轉入反向傳播,將誤差信號沿原來的連接通道返回,通過修改各層神經元的權值,使得誤差信號最小。
社含有n個節(jié)點的任意網絡,各節(jié)點之特性為Sigmoid型。為簡便起見,指定網絡只有一個輸出y,任一節(jié)點i的輸出為Oi,并設有N
4、個樣本(xk,yk)(k=1,2,3,…,N),對某一輸入xk,網絡輸出為yk節(jié)點i的輸出為Oik,節(jié)點j的輸入為netjk=
并將誤差函數(shù)定義為
其中為網絡實際輸出,定義Ek=(yk-?k)2, ,且Ojk=f(netjk),于是
=δjkOik
當j為輸出節(jié)點時,Ojk=?k
(34.1)
若j不是輸出節(jié)點,則有
因此
(34.2)
如果有M層,而第M層僅含輸出節(jié)點,第一層為輸入節(jié)點,則BP算法為:
第一步,選取初始權值W。
第二步,重復下述過程直至收斂:
a. a.?????? 對于k=1到N
a). 計算Oik, netjk和?k的值(正
5、向過程);
b). 對各層從M到2反向計算(反向過程);
b. b.?????? 對同一節(jié)點j∈M,由式(34.1)和(34.2)計算δjk;
第三步,修正權值,Wij=Wij-μ, μ>0, 其中。
從上述BP算法可以看出,BP模型把一組樣本的I/O問題變?yōu)橐粋€非線性優(yōu)化問題,它使用的是優(yōu)化中最普通的梯度下降法。如果把神經網絡的看成輸入到輸出的映射,則這個映射是一個高度非線性映射。
設計一個神經網絡專家系統(tǒng)重點在于模型的構成和學習算法的選擇。一般來說,結構是根據(jù)所研究領域及要解決的問題確定的。通過對所研究問題的大量歷史資料數(shù)據(jù)的分析及目前的神經網絡理論發(fā)展水平,建立合適的模型,并針
6、對所選的模型采用相應的學習算法,在網絡學習過程中,不斷地調整網絡參數(shù),直到輸出結果滿足要求。
第2節(jié) DPS數(shù)據(jù)處理系統(tǒng)操作步驟
在DPS數(shù)據(jù)處理系統(tǒng)中,數(shù)據(jù)的輸入格式是一行為一個樣本,一列為一個變量,輸入節(jié)點(變量)放在數(shù)據(jù)塊左邊,輸出節(jié)點(因變量)放在數(shù)據(jù)塊右邊,輸完一個樣本后再輸下一個樣本。對于待識別(預測)的樣本,不需要輸入輸出變量(因變量)。
數(shù)據(jù)輸入完畢后,定義數(shù)據(jù)塊。如有待識別(預測)的樣本,可在按下Ctrl鍵時再按下并拖動鼠標,將待預測的樣本定義成第二個數(shù)據(jù)塊。
在進行神經網絡學習之前,系統(tǒng)出現(xiàn)如圖34-2所示界面,這時需要你提供若干參數(shù),各個參數(shù)取值的基本原則
7、是:
圖34-2 神經網絡參數(shù)設置對話框
網絡參數(shù)確定原則:
①、網絡節(jié)點 網絡輸入層神經元節(jié)點數(shù)就是系統(tǒng)的特征因子(自變量)個數(shù),輸出層神經元節(jié)點數(shù)就是系統(tǒng)目標個數(shù)。隱層節(jié)點選按經驗選取,一般設為輸入層節(jié)點數(shù)的75%。如果輸入層有7個節(jié)點,輸出層1個節(jié)點,那么隱含層可暫設為5個節(jié)點,即構成一個7-5-1 BP神經網絡模型。在系統(tǒng)訓練時,實際還要對不同的隱層節(jié)點數(shù)4、5、6個分別進行比較,最后確定出最合理的網絡結構。
②、初始權值的確定 初始權值是不應完全相等的一組值。已經證明,即便確定 存在一組互不相等的使系統(tǒng)誤差更小的權值,如果所設Wji的的初始值彼此相等,它們將在學習過
8、程中始終保持相等。故而,在程序中,我們設計了一個隨機發(fā)生器程序,產生一組一0.5~+0.5的隨機數(shù),作為網絡的初始權值。
③、最小訓練速率 在經典的BP算法中,訓練速率是由經驗確定,訓練速率越大,權重變化越大,收斂越快;但訓練速率過大,會引起系統(tǒng)的振蕩,因此,訓練速率在不導致振蕩前提下,越大越好。因此,在DPS中,訓練速率會自動調整,并盡可能取大一些的值,但用戶可規(guī)定一個最小訓練速率。該值一般取0.9。
④、動態(tài)參數(shù) 動態(tài)系數(shù)的選擇也是經驗性的,一般取0.6 ~0.8。
⑤、允許誤差 一般取0.001~0.00001,當2次迭代結果的誤差小于該值時,系統(tǒng)結束迭代計算,給出結果。
9、⑥、迭代次數(shù) 一般取1000次。由于神經網絡計算并不能保證在各種參數(shù)配置下迭代結果收斂,當?shù)Y果不收斂時,允許最大的迭代次數(shù)。
⑦、Sigmoid參數(shù) 該參數(shù)調整神經元激勵函數(shù)形式,一般取0.9~1.0之間。
⑧、數(shù)據(jù)轉換。在DPS系統(tǒng)中,允許對輸入層各個節(jié)點的數(shù)據(jù)進行轉換,提供轉換的方法有取對數(shù)、平方根轉換和數(shù)據(jù)標準化轉換。
第3節(jié) 應用實例
原始數(shù)據(jù)整理:本例令影響棉鈴蟲發(fā)生程度的因素指標集序列由麥田1代幼蟲量、6月降水天數(shù)、5月積溫、6月積溫、5月相對濕度、5月降水天數(shù)和6月相對濕度等7個生態(tài)和生物因子構成,2代發(fā)生程度按照全國植保站頒發(fā)的標準分級,并規(guī)定發(fā)生程度重、偏重、中
10、、偏輕和輕分別賦值為0.9、0.7、0.5、0.3和0.1。在建立BP神經網絡模型時,取1982~1991年的數(shù)據(jù)作為學習、訓練樣本,1992和1993年為試報樣本。在數(shù)據(jù)分析前將數(shù)據(jù)定義成數(shù)據(jù)塊(圖34-3).
圖34-3 BP神經網絡數(shù)據(jù)編輯定義示意圖
進入BP神經網絡訓練時, 系統(tǒng)會顯示如圖34-3所示界面。這時我們可按網絡的結構確定網絡的參數(shù),這里輸入層節(jié)點數(shù)為7,隱含層1層,最小訓練速率取0.1,動態(tài)參數(shù)0.7,Sigmoid參數(shù)為0.9, 允許誤差0.00001,最大迭代次數(shù)1000。并對輸入節(jié)點的數(shù)值進行標準化轉換。
點擊“確定”按鈕后,設置隱層的神經元個數(shù)(這里取5)
11、,運行1000次后,樣本誤差等于0.0001427。輸出各個神經元(節(jié)點)的權值如下:
第1隱含層各個結點的權重矩陣
1.632710 2.449820 3.089710 0.212710 5.392370
1.627420 2.600110 1.987550 5.240410 3.146180
1.743830 2.056300 5.238480 0.550590 0.380470
1.630830 3.163400 2.513480 3.658300 0.965040
1.629290 1.091600 0.677230 0.744880 2.091490
1.545600
12、1.652540 0.896670 1.161810 2.270320
1.611040 4.564460 1.945230 0.709980 2.607020
輸出層各個結點的權重矩陣
-1.488610
-4.286470
-5.201220
5.492000
4.719190
學習樣本的擬合值和實際觀察值, 以及根據(jù)BP神經網絡對1992、1993年2代棉鈴蟲發(fā)生程度進行預測的結果與實際值的比較列于表34-1。結果表明,應用BP神經網絡進行二代棉鈴蟲發(fā)生程度預測,不僅歷史資料的擬合率高,而且2年的試報結果與實際完全符合。
表34-1 神經元網絡訓練結果及試報結果
年份
13、
1982
1983
1984
1985
1986
1987
訓練輸出值
0.6997
0.8952
0.5004
0.3000
0.8900
0.1014
實際值
0.7000
0.9000
0.5000
0.3000
0.9000
0.1000
年份
1988
1989
1990
1991
1992
1993
訓練輸出值
0.8862
0.5011
0.7026
0.8733
0.8955*
0.8985*
實際值
0.9000
0.5000
0.7000
0.9000
0.9000
0.9000
*1992~1993年為試報結果