




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)基于BP算法的異或運(yùn)算的實(shí)現(xiàn)劉政宇 摘 要:在人工神經(jīng)網(wǎng)絡(luò)理論的基礎(chǔ)上,利用多層感知器對(duì)異或問題進(jìn)行解決。分析了BP算法的學(xué)習(xí)過程,采取BP算法編制一個(gè)C+語言的程序,實(shí)現(xiàn)基于BP算法的異或運(yùn)算,并描述了使用BP算法實(shí)現(xiàn)異或問題的具體學(xué)習(xí)過程,給出了程序運(yùn)行后的結(jié)果,驗(yàn)證了BP網(wǎng)絡(luò)通過若干簡單非線性處理單元的復(fù)合映射,可獲得復(fù)雜的非線性處理能力。關(guān)鍵詞:人工神經(jīng)網(wǎng)絡(luò) 多層感知器 BP算法 異或運(yùn)算 作為一門活躍的邊緣性交叉學(xué)科,神經(jīng)網(wǎng)絡(luò)的研究與應(yīng)用正成為人工智能、認(rèn)識(shí)科
2、學(xué)、神經(jīng)生理學(xué)、非線性動(dòng)力學(xué)等相關(guān)專業(yè)的熱點(diǎn)。近十幾年來,針對(duì)神經(jīng)網(wǎng)絡(luò)的學(xué)術(shù)研究大量涌現(xiàn),上百種神經(jīng)網(wǎng)絡(luò)模型被提出,其應(yīng)用涉及模式識(shí)別、聯(lián)想記憶、信號(hào)處理、自動(dòng)控制、組合優(yōu)化、故障診斷及計(jì)算機(jī)視覺等眾多方面,取得了令人矚目的進(jìn)展。經(jīng)過近半個(gè)世紀(jì)的發(fā)展,神經(jīng)網(wǎng)絡(luò)理論在模式識(shí)別、自動(dòng)控制、信號(hào)處理、輔助決策、人工智能等眾多研究領(lǐng)域取得了廣泛的成功。關(guān)于學(xué)習(xí)、聯(lián)想和記憶等具有智能特點(diǎn)過程的機(jī)理及其模擬方面的研究正受到越來越多的重視。學(xué)習(xí)功能是神經(jīng)網(wǎng)絡(luò)最主要的特征之一。各種學(xué)習(xí)算法的研究,在人工神經(jīng)網(wǎng)絡(luò)理論與實(shí)踐發(fā)展過程中起著重要作用。當(dāng)前,人工神經(jīng)網(wǎng)絡(luò)研究的許多課題都致力于學(xué)習(xí)算法的改進(jìn)、更新和應(yīng)用
3、。1958年,美國學(xué)者Frank Rosenblatt首次定義了一個(gè)具有單層計(jì)算單元的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),取名為感知器(Perceptron)。經(jīng)過論證,單層感知器只能進(jìn)行線性分類,對(duì)非線性樣本的劃分無法實(shí)現(xiàn),例如異或問題在二維空間中就是一個(gè)非線性的樣本空間分類的問題,就需要用到多層感知器,即網(wǎng)絡(luò)應(yīng)具有隱層,但對(duì)隱層神經(jīng)元的學(xué)習(xí)規(guī)則尚無所知。就感知器學(xué)習(xí)規(guī)則來說,其權(quán)值的調(diào)整取決于網(wǎng)絡(luò)期望輸出與實(shí)際輸出之差,而對(duì)各隱層節(jié)點(diǎn)來說,不存在期望輸出,因而該學(xué)習(xí)規(guī)則對(duì)隱層權(quán)值調(diào)整不適用。此時(shí)需要用到誤差反向傳播的BP學(xué)習(xí)規(guī)則。BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和Mc
4、Celland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。BP算法由數(shù)據(jù)流的前向計(jì)算(正向傳播)和誤差信號(hào)的反向傳播兩個(gè)過程構(gòu)成。正向傳播時(shí),傳播方向?yàn)檩斎雽与[層輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉(zhuǎn)向誤
5、差信號(hào)的反向傳播流程。通過這兩個(gè)過程的交替進(jìn)行,在權(quán)向量空間執(zhí)行誤差函數(shù)梯度下降策略,動(dòng)態(tài)迭代搜索一組權(quán)向量,使網(wǎng)絡(luò)誤差函數(shù)達(dá)到最小值,從而完成信息提取和記憶過程。BP算法的學(xué)習(xí)目的是對(duì)網(wǎng)絡(luò)的連接權(quán)值進(jìn)行調(diào)整,使得調(diào)整后的網(wǎng)絡(luò)對(duì)任一輸入都能達(dá)到所期望的輸出。學(xué)習(xí)過程由正向傳播與反向傳播組成。正向傳播用于對(duì)前向網(wǎng)絡(luò)進(jìn)行計(jì)算,即對(duì)某一輸入信息,經(jīng)過網(wǎng)絡(luò)計(jì)算后得出它的輸出結(jié)果;反向傳播用于逐層傳遞誤差,修改神經(jīng)元間的連接權(quán)值,以使網(wǎng)絡(luò)對(duì)于輸入信息經(jīng)過計(jì)算后得到的輸出能達(dá)到期望的誤差要求。學(xué)習(xí)的方法是使用一組訓(xùn)練樣例對(duì)網(wǎng)絡(luò)的連接權(quán)值進(jìn)行訓(xùn)練,每一個(gè)樣例中,都包括輸入及期望的輸出兩部分。在正向傳播算法中
6、,首先將訓(xùn)練樣例的輸入信息輸入到網(wǎng)絡(luò)中,輸入信息從輸入層經(jīng)過隱層節(jié)點(diǎn)逐層計(jì)算處理后,傳至輸出層。在計(jì)算處理過程中,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài),如果在輸出層得到的結(jié)果不是所期望的輸出,那么就轉(zhuǎn)為反向傳播。反向傳播把誤差信號(hào)沿路徑方向傳回,并按一定的原則對(duì)各層神經(jīng)元的權(quán)值進(jìn)行修正,直到第一個(gè)隱層,這時(shí)再開始進(jìn)行正向傳播,利用剛才的輸入信息進(jìn)行正向網(wǎng)絡(luò)計(jì)算,如果網(wǎng)絡(luò)的輸出達(dá)到了誤差要求,則學(xué)習(xí)過程結(jié)束,如果達(dá)不到要求,則再進(jìn)行反向傳播的連接權(quán)值調(diào)整。這一過程不斷反復(fù),直到網(wǎng)絡(luò)正向計(jì)算的輸出結(jié)果達(dá)到誤差要求的結(jié)果為止,這時(shí)學(xué)習(xí)過程結(jié)束。具體算法過程見右圖。一旦網(wǎng)絡(luò)進(jìn)行訓(xùn)練后,在用于求解
7、實(shí)際問題時(shí)就只需要使用正向傳播,而不需要使用反向傳播了。使用BP算法實(shí)現(xiàn)異或問題的具體學(xué)習(xí)過程按以下步驟順序進(jìn)行:(1)網(wǎng)絡(luò)狀態(tài)初始化:用較小的隨機(jī)數(shù)對(duì)網(wǎng)絡(luò)的權(quán)值(Wji)和(Vkj)以及偏置值(j)和(k)賦初值。(2)輸入第一個(gè)模式。(3)把學(xué)習(xí)模式的值作為輸入層單元i的輸出(Ii),用輸入層到中間層的權(quán)值(Wji)和中間層單元的偏置值(j),求出對(duì)中間單元j的輸入U(xiǎn)j以及相應(yīng)的輸出Hj:Uj=Ii +j,Hj= f(Uj)。上式中的f()是Sigmoid函數(shù)。(4)用中間層的輸出(Hj),中間層到輸入層的連接權(quán)值(Vkj)以及輸出層單元的偏置值(k)求出對(duì)輸出層單元k的輸入Sk以及相應(yīng)的
8、輸出Ok:Sk=Hj +k,Ok= f(Sk)。(5)根據(jù)學(xué)習(xí)模式的教師信號(hào)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ù),對(duì)從中間層單元j到輸出層單元k的權(quán)值(Vkj)加以調(diào)整。另外,根據(jù)k和常數(shù)對(duì)輸出層單元k的偏置值k加以調(diào)整:Vkj= Vkj+k Hj,k=k+k。(8)根據(jù)誤差j,輸入單元i的輸出
9、(Ii)以及常數(shù)對(duì)從輸入單元i到中間層單元j的連接權(quán)值(Wji)加以調(diào)整。根據(jù)誤差(j)和常數(shù)對(duì)中間層單元j的偏置值(j)加以調(diào)整:Wji = Wji +j Ii,j =j +j。(9)輸入下一個(gè)模式。(10)若有學(xué)習(xí)模式,則返回(3)。(11)更新學(xué)習(xí)次數(shù)。(12)若學(xué)習(xí)次數(shù)小于規(guī)定的次數(shù),則返回(2)。程序運(yùn)行過程及結(jié)果:程序運(yùn)行后,在提示下輸入“學(xué)習(xí)率”為0.999,輸入“誤差控制精度”為0.0001,輸入“循環(huán)的最大次數(shù)”為20000,程序執(zhí)行后,可以看到在result.txt中結(jié)果如下:網(wǎng)絡(luò)學(xué)習(xí)20000次結(jié)束,誤差為:0.,各層的權(quán)值如下:網(wǎng)絡(luò)學(xué)習(xí)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,對(duì)應(yīng)著樣本實(shí)際輸出為:000.010.100.110.通過這個(gè)程序?qū)嵗?,使用多層感知器解決了單層感知器不能解決的異或問題,也從側(cè)面驗(yàn)證了BP網(wǎng)絡(luò)通過若干簡單非線性處理單元的復(fù)合映射,可獲得復(fù)雜的非線性處理能力。但是從給入不同的學(xué)習(xí)率、誤差控制精度和學(xué)習(xí)次數(shù)得到了不同的結(jié)果,從中也暴露了BP算法的一些局限性。第一,該學(xué)習(xí)算法的收斂速度慢,常常需要成千上萬次的迭代,而且隨著訓(xùn)練樣
11、例的增多,網(wǎng)絡(luò)性能會(huì)變差;第二,網(wǎng)絡(luò)中隱節(jié)點(diǎn)個(gè)數(shù)的選取上無理論上的指導(dǎo);第三,從數(shù)學(xué)角度上看,BP算法是一種梯度最速下降法,這就有可能出現(xiàn)局部最小的問題。當(dāng)出現(xiàn)局部最小時(shí),從表面上看,符合誤差的要求,但這時(shí)所得到的解并不一定是問題的真正解。所以BP算法是不完備的。參考文獻(xiàn)1 徐麗娜. 神經(jīng)網(wǎng)絡(luò)控制(第三版).電子工業(yè)出版社.2009.72 王偉. 人工神經(jīng)網(wǎng)絡(luò)原理入門與應(yīng)用.北京航空航天大學(xué)出版社.1995.103 楊建剛. 人工神經(jīng)網(wǎng)絡(luò)實(shí)用教程. 浙江大學(xué)出版社.2001.14 朱大奇. 人工神經(jīng)網(wǎng)絡(luò)研究現(xiàn)狀及其展望. 江南大學(xué)學(xué)報(bào),2004,3(1):103110 5 宋宜斌,王培進(jìn). 多
12、層前饋神經(jīng)網(wǎng)絡(luò)改進(jìn)算法及其應(yīng)用.計(jì)算機(jī)工程.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開始輸入學(xué)習(xí)率開始輸入學(xué)習(xí)率輸入誤差控制精度輸入循環(huán)的最大次數(shù)打開sample.txt文件讀取樣本數(shù)據(jù)學(xué)習(xí)次數(shù)
14、最大次數(shù)?計(jì)算中間層單元的輸出計(jì)算輸出層單元的輸出計(jì)算輸出層單元的誤差計(jì)算中間層單元的誤差學(xué)習(xí)次數(shù)+1結(jié)束在result.txt寫入相應(yīng)結(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 /樣本個(gè)數(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; /學(xué)習(xí)率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 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2009級(jí)工程碩士,學(xué)號(hào):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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三線城市房屋租賃合同范本參考
- 2025個(gè)人地下車位租賃合同
- 2025工商銀行房貸借款合同
- 甲方預(yù)付貨款合同協(xié)議
- 盈利飯店團(tuán)購合同協(xié)議
- 用刮膩?zhàn)鎏吣_線合同協(xié)議
- 電梯產(chǎn)品買賣合同協(xié)議
- 瓷磚加工建材銷售合同協(xié)議
- 環(huán)境治理施工合同協(xié)議
- 特殊馬達(dá)采購合同協(xié)議
- 中遠(yuǎn)集團(tuán)養(yǎng)老保險(xiǎn)工作管理程序
- 缺血缺氧性腦病詳解課件
- 自動(dòng)打鈴控制器plc課程設(shè)計(jì)
- 最新司法鑒定程序通則課件來源于司法部司法鑒定局
- 變電站第二種工作票
- 機(jī)電一體化專業(yè)畢業(yè)論文43973
- 基于PLC的變頻中央空調(diào)溫度控制系統(tǒng)的畢業(yè)設(shè)計(jì)
- 門禁系統(tǒng)調(diào)試報(bào)告(共4頁)
- 北師大版一年級(jí)英語下冊(cè)期中測(cè)試卷
- 檔案學(xué)概論重點(diǎn)知識(shí)梳理
- 地下連續(xù)墻鋼筋籠起重吊裝專項(xiàng)施工方案
評(píng)論
0/150
提交評(píng)論