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