基于BP算法的異或運算的實現(xiàn)_第1頁
基于BP算法的異或運算的實現(xiàn)_第2頁
基于BP算法的異或運算的實現(xiàn)_第3頁
基于BP算法的異或運算的實現(xiàn)_第4頁
基于BP算法的異或運算的實現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)基于BP算法的異或運算的實現(xiàn)劉政宇 摘 要:在人工神經(jīng)網(wǎng)絡(luò)理論的基礎(chǔ)上,利用多層感知器對異或問題進行解決。分析了BP算法的學習過程,采取BP算法編制一個C+語言的程序,實現(xiàn)基于BP算法的異或運算,并描述了使用BP算法實現(xiàn)異或問題的具體學習過程,給出了程序運行后的結(jié)果,驗證了BP網(wǎng)絡(luò)通過若干簡單非線性處理單元的復合映射,可獲得復雜的非線性處理能力。關(guān)鍵詞:人工神經(jīng)網(wǎng)絡(luò) 多層感知器 BP算法 異或運算 作為一門活躍的邊緣性交叉學科,神經(jīng)網(wǎng)絡(luò)的研究與應用正成為人工智能、認識科

2、學、神經(jīng)生理學、非線性動力學等相關(guān)專業(yè)的熱點。近十幾年來,針對神經(jīng)網(wǎng)絡(luò)的學術(shù)研究大量涌現(xiàn),上百種神經(jīng)網(wǎng)絡(luò)模型被提出,其應用涉及模式識別、聯(lián)想記憶、信號處理、自動控制、組合優(yōu)化、故障診斷及計算機視覺等眾多方面,取得了令人矚目的進展。經(jīng)過近半個世紀的發(fā)展,神經(jīng)網(wǎng)絡(luò)理論在模式識別、自動控制、信號處理、輔助決策、人工智能等眾多研究領(lǐng)域取得了廣泛的成功。關(guān)于學習、聯(lián)想和記憶等具有智能特點過程的機理及其模擬方面的研究正受到越來越多的重視。學習功能是神經(jīng)網(wǎng)絡(luò)最主要的特征之一。各種學習算法的研究,在人工神經(jīng)網(wǎng)絡(luò)理論與實踐發(fā)展過程中起著重要作用。當前,人工神經(jīng)網(wǎng)絡(luò)研究的許多課題都致力于學習算法的改進、更新和應用

3、。1958年,美國學者Frank Rosenblatt首次定義了一個具有單層計算單元的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),取名為感知器(Perceptron)。經(jīng)過論證,單層感知器只能進行線性分類,對非線性樣本的劃分無法實現(xiàn),例如異或問題在二維空間中就是一個非線性的樣本空間分類的問題,就需要用到多層感知器,即網(wǎng)絡(luò)應具有隱層,但對隱層神經(jīng)元的學習規(guī)則尚無所知。就感知器學習規(guī)則來說,其權(quán)值的調(diào)整取決于網(wǎng)絡(luò)期望輸出與實際輸出之差,而對各隱層節(jié)點來說,不存在期望輸出,因而該學習規(guī)則對隱層權(quán)值調(diào)整不適用。此時需要用到誤差反向傳播的BP學習規(guī)則。BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和Mc

4、Celland為首的科學家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡(luò),是目前應用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學習和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學方程。它的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓撲結(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。BP算法由數(shù)據(jù)流的前向計算(正向傳播)和誤差信號的反向傳播兩個過程構(gòu)成。正向傳播時,傳播方向為輸入層隱層輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉(zhuǎn)向誤

5、差信號的反向傳播流程。通過這兩個過程的交替進行,在權(quán)向量空間執(zhí)行誤差函數(shù)梯度下降策略,動態(tài)迭代搜索一組權(quán)向量,使網(wǎng)絡(luò)誤差函數(shù)達到最小值,從而完成信息提取和記憶過程。BP算法的學習目的是對網(wǎng)絡(luò)的連接權(quán)值進行調(diào)整,使得調(diào)整后的網(wǎng)絡(luò)對任一輸入都能達到所期望的輸出。學習過程由正向傳播與反向傳播組成。正向傳播用于對前向網(wǎng)絡(luò)進行計算,即對某一輸入信息,經(jīng)過網(wǎng)絡(luò)計算后得出它的輸出結(jié)果;反向傳播用于逐層傳遞誤差,修改神經(jīng)元間的連接權(quán)值,以使網(wǎng)絡(luò)對于輸入信息經(jīng)過計算后得到的輸出能達到期望的誤差要求。學習的方法是使用一組訓練樣例對網(wǎng)絡(luò)的連接權(quán)值進行訓練,每一個樣例中,都包括輸入及期望的輸出兩部分。在正向傳播算法中

6、,首先將訓練樣例的輸入信息輸入到網(wǎng)絡(luò)中,輸入信息從輸入層經(jīng)過隱層節(jié)點逐層計算處理后,傳至輸出層。在計算處理過程中,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài),如果在輸出層得到的結(jié)果不是所期望的輸出,那么就轉(zhuǎn)為反向傳播。反向傳播把誤差信號沿路徑方向傳回,并按一定的原則對各層神經(jīng)元的權(quán)值進行修正,直到第一個隱層,這時再開始進行正向傳播,利用剛才的輸入信息進行正向網(wǎng)絡(luò)計算,如果網(wǎng)絡(luò)的輸出達到了誤差要求,則學習過程結(jié)束,如果達不到要求,則再進行反向傳播的連接權(quán)值調(diào)整。這一過程不斷反復,直到網(wǎng)絡(luò)正向計算的輸出結(jié)果達到誤差要求的結(jié)果為止,這時學習過程結(jié)束。具體算法過程見右圖。一旦網(wǎng)絡(luò)進行訓練后,在用于求解

7、實際問題時就只需要使用正向傳播,而不需要使用反向傳播了。使用BP算法實現(xiàn)異或問題的具體學習過程按以下步驟順序進行:(1)網(wǎng)絡(luò)狀態(tài)初始化:用較小的隨機數(shù)對網(wǎng)絡(luò)的權(quán)值(Wji)和(Vkj)以及偏置值(j)和(k)賦初值。(2)輸入第一個模式。(3)把學習模式的值作為輸入層單元i的輸出(Ii),用輸入層到中間層的權(quán)值(Wji)和中間層單元的偏置值(j),求出對中間單元j的輸入Uj以及相應的輸出Hj:Uj=Ii +j,Hj= f(Uj)。上式中的f()是Sigmoid函數(shù)。(4)用中間層的輸出(Hj),中間層到輸入層的連接權(quán)值(Vkj)以及輸出層單元的偏置值(k)求出對輸出層單元k的輸入Sk以及相應的

8、輸出Ok:Sk=Hj +k,Ok= f(Sk)。(5)根據(jù)學習模式的教師信號Tk和輸出層的輸出Ok的差,求出有關(guān)輸入層單元k的偏置值以及連接到其上權(quán)值的誤差(k):k=(Ok-Tk) Ok(1- Ok)。(6)根據(jù)誤差k,從中間層到輸入層的權(quán)值(Wkj)以及中間層的輸出(Hj),求出有關(guān)中間層j的偏置值以及連接到其上的權(quán)值的誤差(j):j =Vkj Hj(1- Hj)。(7)根據(jù)由第(5)步求出的k以及Hj和常數(shù),對從中間層單元j到輸出層單元k的權(quán)值(Vkj)加以調(diào)整。另外,根據(jù)k和常數(shù)對輸出層單元k的偏置值k加以調(diào)整:Vkj= Vkj+k Hj,k=k+k。(8)根據(jù)誤差j,輸入單元i的輸出

9、(Ii)以及常數(shù)對從輸入單元i到中間層單元j的連接權(quán)值(Wji)加以調(diào)整。根據(jù)誤差(j)和常數(shù)對中間層單元j的偏置值(j)加以調(diào)整:Wji = Wji +j Ii,j =j +j。(9)輸入下一個模式。(10)若有學習模式,則返回(3)。(11)更新學習次數(shù)。(12)若學習次數(shù)小于規(guī)定的次數(shù),則返回(2)。程序運行過程及結(jié)果:程序運行后,在提示下輸入“學習率”為0.999,輸入“誤差控制精度”為0.0001,輸入“循環(huán)的最大次數(shù)”為20000,程序執(zhí)行后,可以看到在result.txt中結(jié)果如下:網(wǎng)絡(luò)學習20000次結(jié)束,誤差為:0.,各層的權(quán)值如下:網(wǎng)絡(luò)學習20000次結(jié)束,誤差為:0.,各

10、層的權(quán)值如下:隱藏層到輸出層權(quán)值:W00 = 10.9247,W10 = 10.8454,輸入層到隱藏層權(quán)值:V00 = 6.2442,V01 = -6.7187,V10 = -6.46219,V11 = 6.56169,對應著樣本實際輸出為:000.010.100.110.通過這個程序?qū)嵗?,使用多層感知器解決了單層感知器不能解決的異或問題,也從側(cè)面驗證了BP網(wǎng)絡(luò)通過若干簡單非線性處理單元的復合映射,可獲得復雜的非線性處理能力。但是從給入不同的學習率、誤差控制精度和學習次數(shù)得到了不同的結(jié)果,從中也暴露了BP算法的一些局限性。第一,該學習算法的收斂速度慢,常常需要成千上萬次的迭代,而且隨著訓練樣

11、例的增多,網(wǎng)絡(luò)性能會變差;第二,網(wǎng)絡(luò)中隱節(jié)點個數(shù)的選取上無理論上的指導;第三,從數(shù)學角度上看,BP算法是一種梯度最速下降法,這就有可能出現(xiàn)局部最小的問題。當出現(xiàn)局部最小時,從表面上看,符合誤差的要求,但這時所得到的解并不一定是問題的真正解。所以BP算法是不完備的。參考文獻1 徐麗娜. 神經(jīng)網(wǎng)絡(luò)控制(第三版).電子工業(yè)出版社.2009.72 王偉. 人工神經(jīng)網(wǎng)絡(luò)原理入門與應用.北京航空航天大學出版社.1995.103 楊建剛. 人工神經(jīng)網(wǎng)絡(luò)實用教程. 浙江大學出版社.2001.14 朱大奇. 人工神經(jīng)網(wǎng)絡(luò)研究現(xiàn)狀及其展望. 江南大學學報,2004,3(1):103110 5 宋宜斌,王培進. 多

12、層前饋神經(jīng)網(wǎng)絡(luò)改進算法及其應用.計算機工程.2003.86Bulsari A. Some Analytical Solutions to the General Approximation Problem for Feedback Neural Networks. Neural networks,1993,28(6):9919967Aibara K. Chaotic Neural Networks. Physical letter A,1991,158(8):3733768Inoue M,Nagayoshi A. A Chaos Neural-computer. Physical Letter

13、 A,1991,158(8):3733769Inoue M,Nakamoto K. Epilepsy in a Chaos Neural -computer Model,Chaos in Biology and Medicine,SPIE 1993,236:778410Kosko B. Bidirectional Associative Memories. IEEE Transactions On Man,System and Cybernetics. 1988,26(18):4959開始輸入學習率開始輸入學習率輸入誤差控制精度輸入循環(huán)的最大次數(shù)打開sample.txt文件讀取樣本數(shù)據(jù)學習次數(shù)

14、最大次數(shù)?計算中間層單元的輸出計算輸出層單元的輸出計算輸出層單元的誤差計算中間層單元的誤差學習次數(shù)+1結(jié)束在result.txt寫入相應結(jié)果調(diào)整中間層到輸出層的連接權(quán)值,調(diào)整輸出層單元的偏置值調(diào)整輸入層到中間層的連接權(quán)值,調(diào)整中間層單元的偏置值否是附件二:源程序清單#include#include#include#includeusing namespace std;#define n 2#define H 2#define m 1#define T 4 /樣本個數(shù)double WHm; /輸出層的權(quán)矩陣double sita_hH; /隱藏層閾值double sita_om; /輸出層閾值d

15、ouble VnH; /輸出(隱藏)層的權(quán)矩陣double delta_om; /輸出層各連接權(quán)的修改量組成的向量double delta_hH; /隱藏層各連接權(quán)的修改量組成的向量double hide_sH; /隱藏層的輸入值double hide_oH; /隱藏層的輸出值double output_sm; /輸出層的輸入值double output_om; /輸出層的輸出值double inputTn; /輸入層的輸入向量double outputTm; /期望的輸出值double E; /誤差double jingdu; /精度控制參數(shù)double xuexilv; /學習率int M

16、; /循環(huán)最大次數(shù)/*初始化函數(shù)*/void initialize()int i,j;for(i = 0; i H; i+)hide_si = 0;hide_oi = 0;delta_hi = 0;sita_hi = rand() / ( RAND_MAX + 1.0 );for(i = 0; i m; i+)sita_oi = rand() / ( RAND_MAX + 1.0 );output_si = 0;output_oi = 0;delta_oi = 0;for(i = 0; i H; i+)for(j = 0; j m; j+)Wij = rand() / ( RAND_MAX +

17、 1.0 );for(i = 0; i n; i+)for(j = 0; j H; j+)Vij = rand() / ( RAND_MAX + 1.0 );int main()int i,j,t,N;double error;ofstream fout( result.txt );if( !fout )cout cant create bp.txtn ;cout 計算機科學與技術(shù)學院2009級工程碩士,學號:S,劉政宇 endl;cout xuexilv;cout endl jingdu;cout endl M;ifstream fin( sample.txt );if( !fin )cou

18、t cant open sample.txtn;for(i = 0; i inputi0 inputi1 outputi0;fin.close();E = jingdu + 1;N = 0; initialize();while( E jingdu & N M )N+;for(t = 0; t T; t+)for(i = 0; i H; i+)hide_si = 0;for(j = 0; j n; j+)hide_si += Vji * inputtj;hide_si -= sita_hi;hide_oi = 1.0 / ( 1.0 + exp(-hide_si) );for(i = 0; i

19、 m; i+)output_si = 0;for(j = 0; j H; j+)output_si += Wji * hide_oj;output_si -= sita_oi;output_oi = 1.0 / ( 1.0 + exp(-output_si) );for(i = 0; i m; i+)delta_oi = output_oi * ( 1 - output_oi ) * ( outputti - output_oi );sita_oi -= xuexilv * delta_oi;for(i = 0; i H; i+)double Z = 0;for(j = 0; j m; j+)

20、Z += Wij * delta_oj;delta_hi = Z * hide_oi * ( 1 - hide_oi );sita_hi -= xuexilv * delta_hi;for(i = 0; i H; i+)for(j = 0; j m; j+)Wij += xuexilv * hide_oi * delta_oj;for(i = 0; i n; i+)for(j = 0; j H; j+)Vij += xuexilv * inputti * delta_hj;E = 0;for(t = 0; t T; t+)for(i = 0; i H; i+)hide_si = 0;for(j = 0; j n; j+)hide_si += Vji * inputtj;hide_si -= sita_hi;hide_oi = 1.0 / ( 1.0 + exp(-hide_si) );for(i = 0; i m; i+)output_si = 0;for(j = 0; j H; j+)output_si += Wji * hide_oj;output_si -= sita_oi;output_oi = 1.0 / ( 1.0 + exp(-output_si) );error =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論