版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、BP網(wǎng)絡(luò)模型處理信息的基本原理是:輸入信號(hào)Xi通過(guò)中間節(jié)點(diǎn)(隱層點(diǎn))作用于輸出節(jié)點(diǎn),經(jīng)過(guò)非線形變換,產(chǎn)生輸出信號(hào)Yk,網(wǎng)絡(luò)訓(xùn)練的每個(gè)樣本包括輸入向量X和期望輸出量t,網(wǎng)絡(luò)輸出值Y與期望輸出值t之間的偏差,通過(guò)調(diào)整輸入節(jié)點(diǎn)與隱層節(jié)點(diǎn)的聯(lián)接強(qiáng)度取值Wij和隱層節(jié)點(diǎn)與輸出節(jié)點(diǎn)之間的聯(lián)接強(qiáng)度Tjk以及閾值,使誤差沿梯度方向下降,經(jīng)過(guò)反復(fù)學(xué)習(xí)訓(xùn)練,確定與最小誤差相對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)(權(quán)值和閾值),訓(xùn)練即告停止。此時(shí)經(jīng)過(guò)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)即能對(duì)類似樣本的輸入信息,自行處理輸出誤差最小的經(jīng)過(guò)非線形轉(zhuǎn)換的信息。 一 BP神經(jīng)網(wǎng)絡(luò)模型BP網(wǎng)絡(luò)模型包括其輸入輸出模型、作用函數(shù)模型、誤差計(jì)算模型和自學(xué)習(xí)模型。(1)節(jié)點(diǎn)輸出
2、模型隱節(jié)點(diǎn)輸出模型:Oj=f(Wij×Xi-q j) (1)輸出節(jié)點(diǎn)輸出模型:Yk=f(Tjk×Oj-q k) (2)f-非線形作用函數(shù);q -神經(jīng)單元閾值。(2)作用函數(shù)模型作用函數(shù)是反映下層輸入對(duì)上層節(jié)點(diǎn)刺激脈沖強(qiáng)度的函數(shù)又稱刺激函數(shù),一般取為(0,1)內(nèi)連續(xù)取值Sigmoid函數(shù):
3、160; f(x)=1/(1+e-x) (3)(3)誤差計(jì)算模型誤差計(jì)算模型是反映神經(jīng)網(wǎng)絡(luò)期望輸出與計(jì)算輸出之間誤差大小的函數(shù): Ep=1/2&
4、#215;(tpi-Opi)2 (4)tpi- i節(jié)點(diǎn)的期望輸出值;Opi-i節(jié)點(diǎn)計(jì)算輸出值。(4)自學(xué)習(xí)模型神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程,即連接下層節(jié)點(diǎn)和上層節(jié)點(diǎn)之間的權(quán)重拒陣Wij的設(shè)定和誤差修正過(guò)程。BP網(wǎng)絡(luò)有師學(xué)習(xí)方式-需要設(shè)定期望值和無(wú)師學(xué)習(xí)方式-只需輸入模式之分。自學(xué)習(xí)模型為
5、; Wij(n+1)= h ×i×Oj+a×Wij(n) (5)h -學(xué)習(xí)因子;i-輸出節(jié)點(diǎn)i的計(jì)算誤差;Oj-輸出節(jié)點(diǎn)j的計(jì)算輸出;a-動(dòng)量因子。二 BP網(wǎng)絡(luò)模型的缺陷分析及優(yōu)化策略(1)學(xué)習(xí)因子h 的優(yōu)化采用變步長(zhǎng)法根據(jù)輸出誤差大小自動(dòng)調(diào)整學(xué)習(xí)因子,來(lái)減少迭代次數(shù)和加快收斂速度。h =h +a×(Ep(n)- Ep(n-1)/ Ep(n) a為調(diào)整步長(zhǎng),01之間取值 (6)(2)隱層節(jié)點(diǎn)數(shù)的優(yōu)化 &
6、#160; 隱 節(jié)點(diǎn)數(shù)的多少對(duì)網(wǎng)絡(luò)性能的影響較大,當(dāng)隱節(jié)點(diǎn)數(shù)太多時(shí),會(huì)導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)時(shí)間過(guò)長(zhǎng),甚至不能收斂;而當(dāng)隱節(jié)點(diǎn)數(shù)過(guò)小時(shí),網(wǎng)絡(luò)的容錯(cuò)能力差。利用逐步回歸分析 法并進(jìn)行參數(shù)的顯著性檢驗(yàn)來(lái)動(dòng)態(tài)刪除一些線形相關(guān)的隱節(jié)點(diǎn),節(jié)點(diǎn)刪除標(biāo)準(zhǔn):當(dāng)由該節(jié)點(diǎn)出發(fā)指向下一層節(jié)點(diǎn)的所有權(quán)值和閾值均落于死區(qū)(通常取±0.1、±0.05等區(qū)間)之中,則該節(jié)點(diǎn)可刪除。最佳隱節(jié)點(diǎn)數(shù)L可參考下面公式計(jì)算:L=(m+n)1/2+c (7)m-輸入節(jié)點(diǎn)數(shù);n-輸出節(jié)點(diǎn)數(shù);c-介于110的常數(shù)。(3)輸入和輸出神經(jīng)元的確定利用多元回歸分析法對(duì)神經(jīng)網(wǎng)絡(luò)的輸入?yún)?shù)進(jìn)行處理,刪除相關(guān)性強(qiáng)的輸入?yún)?shù),來(lái)減少輸入節(jié)點(diǎn)數(shù)
7、。(4)算法優(yōu)化由于BP算法采用的是剃度下降法,因而易陷于局部最小并且訓(xùn)練時(shí)間較長(zhǎng)。用基于生物免疫機(jī)制地既能全局搜索又能避免未成熟收斂的免疫遺傳算法IGA取代傳統(tǒng)BP算法來(lái)克服此缺點(diǎn)。該程序?qū)崿F(xiàn)神經(jīng)網(wǎng)絡(luò)的BP算法,輸入節(jié)點(diǎn)數(shù),輸出節(jié)點(diǎn)數(shù),隱層數(shù),隱層節(jié)點(diǎn)數(shù)任意,由用戶決定。其中隱層數(shù)指的是總共曾數(shù)包含輸出層,比如說(shuō)異或算法為2層,第一層節(jié)點(diǎn)數(shù)為2,第二層也即輸出層節(jié)點(diǎn)數(shù)為1,輸入點(diǎn)數(shù)為2 。但是該程序?qū)Ξ惢蛩惴▽?shí)現(xiàn)并不理想,對(duì)多層多節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)有較好的結(jié)果。#include "iostream.h"#include <time.h> #include <
8、stdlib.h> #include<fstream>#include <math.h>#include "stdio.h "#define MAXCOUNT 1e5 /迭代訓(xùn)練次數(shù)上限/ 精度0.001的隨機(jī)浮點(diǎn)數(shù),范圍在-0.50.5float randf()return (float)(rand() % 1001) * 0.001f-0.5);/高斯隨機(jī)數(shù)產(chǎn)生函數(shù)double gaussrand() static double V1, V2, S; static in
9、t phase = 0; double X; if(phase = 0) do double U1 = (double)rand() / RAND_MAX; double U2 = (double)rand() / RAND_MAX; V1 = 2 * U1 - 1;
10、160; V2 = 2 * U2 - 1; S = V1 * V1 + V2 * V2; while(S >= 1 | S = 0); X = V1 * sqrt(-2 * log(S) / S); else X = V2 * sqrt(-2 * log(S) / S); phase = 1 - phase;
11、0; return X;/定義一個(gè)多層前向BP網(wǎng)絡(luò)class BPpublic:double *p;/記錄所有的權(quán)值double *ddp;/記錄所有的權(quán)值增量int *pnode;/記錄每一層的節(jié)點(diǎn)數(shù)double *pnodey;/記錄每組每一層的節(jié)點(diǎn)的輸出值double *ddlj;/記錄每組每一層的節(jié)點(diǎn)的ddljdouble *pX;/記錄輸入樣本double *pY;/記錄輸入理想輸出值int Sidenum;int Inputnodenum;int outputnodenum;int yangbenzushu;BP() Sidenum=0;Inputnodenum=0;o
12、utputnodenum=0;yangbenzushu=0;BP() for(int m=0;m<Sidenum;m+) for(int n=0;n<pnodem+1;n+) delete pmn; delete ddpmn; delete pm; delete ddpm; dele
13、te p; delete ddp; p=NULL; ddp=NULL;if(p=NULL)delete pnode;for(int M=0;M<Sidenum;M+)delete pnodeyM;delete ddljM;delete pnodey;delete ddlj;pnodey=NULL;ddlj=NULL;/完成所有權(quán)值的初始化void getW(int sidenum,in
14、t inputnodenum,int outputnodenum1,int yangbenzu) Sidenum=sidenum; yangbenzushu= yangbenzu; Inputnodenum=inputnodenum;outputnodenum=outputnodenum1;p=new double *sidenum;ddp=new double *sidenum;pnode=new int sidenum+1;/包含輸入層輸出層每一層的節(jié)點(diǎn)數(shù)for(int i=0;i&
15、lt;sidenum+1;i+)int data=0;cout<<"請(qǐng)輸入第"<<i<<"層節(jié)點(diǎn)數(shù)"<<endl; cin>>data; pnodei=data;for (int j=0;j<sidenum;j+) pj=new double* pnodej+1; ddpj=new double*pnodej+1;
16、; for (int k=0;k<pnodej+1;k+) ddpjk=new doublepnodej+1; pjk=new doublepnodej+1;
17、for (int t=0;t<pnodej+1;t+) ddpjkt=0;/每一層的權(quán)值初始化為0 if(t=0)pjkt=-fabs(randf();/每一層的閥值初始化
18、 else pjkt=randf();/每一層的權(quán)值初始化 /為記錄每一層的節(jié)點(diǎn)的輸出值和ddlj的指針開(kāi)辟內(nèi)存pnodey=new double *Sidenum;ddlj=new double *Sidenum;for(int p=0;p<Sidenum;p+) pnodeyp = new double pnodep+1+1;
19、0; ddljp=new double pnodep+1; pnodeyp0=1;/每組每層的首值為1/*/每個(gè)節(jié)點(diǎn)輸出函數(shù)double fas(double s) double t;t=1.0/(exp(-s)+1);return t;/*/該函數(shù)用來(lái)記錄樣本值和理想輸出值void INPUT(int yangbenz
20、ushu1 ) pY=new double*yangbenzushu1;pX=new double*yangbenzushu1;for(int yu=0;yu<yangbenzushu1;yu+) pXyu=new doubleInputnodenum+1; pYyu=new doubleoutputnodenum+1;/每組樣本的首值賦為1 for(int yu1=0;yu1<yangbenzushu1;yu1+) pXyu10=1;
21、160; pYyu10=1; cout<<"請(qǐng)輸出樣本輸入值"<<endl;for(int yuy=0;yuy<yangbenzushu1;yuy+)for(int yy=1;yy<=Inputnodenum;yy+) if(yy=Inputnodenum) cout<<endl; cout<<"X"<<yuy<<""<<""<<yy&
22、lt;<"="<<' ' cin>>pXyuyyy;cout<<"請(qǐng)輸出樣本理想輸出值"<<endl;for(int yuy1=0;yuy1<yangbenzushu1;yuy1+)for(int yy1=1;yy1<=outputnodenum;yy1+) /if(yy=Inputnodenum) cout<<endl; cout<<"Y"<<yuy1<<&
23、quot;"<<""<<yy1<<"="<<' ' cin>>pYyuy1yy1;/*/計(jì)算每個(gè)節(jié)點(diǎn)的輸出值函數(shù)double computeYl(int KK)/KK代表第幾組組號(hào) double sum1=0;/把所有的層的每一個(gè)節(jié)點(diǎn)的輸出值算出來(lái)并記錄在 pnodey里,不包含輸入點(diǎn)值 for(int y=0;y<Sidenum;y+)/層數(shù) for(i
24、nt r=1;r<pnodey+1+1;r+)/節(jié)點(diǎn)數(shù) double sum=0; for(int z=0;z<pnodey+1;z+)/前一層的節(jié)點(diǎn)數(shù) if(y=0)sum+= pXKKz*pyr-1z; else
25、 sum+=pnodeyy-1z*pyr-1z; pnodeyyr=fas(sum); for(int j=1;j<=outputnodenum;j+)sum1+=pow(pYKKj-pnodeySidenum-1
26、j,2);return sum1;/*/Compute Back-Propagation-Errorsvoid ComputeBackPropagationErrors(int gf)/gf代表組號(hào)/計(jì)算所有的ddlj/for(int gf=0;gf<yangbenzushu;gf+)/組數(shù)for(int q=Sidenum-1;q>=0;q-)/從最后一層開(kāi)始 if (q=Sidenum-1)/如果是最外一層的話 for(int rt=0;rt<pnodeq+1;rt+)/每層的節(jié)點(diǎn)數(shù) &
27、#160; ddljqrt=pnodeyqrt+1*(1-pnodeyqrt+1)*(pYgfrt+1-pnodeyqrt+1) ; else for(int ry=0;ry<pnodeq+1;ry+) &
28、#160; double sumtemp=0; for(int fg=0;fg<pnodeq+2;fg+) sumtemp+=ddljq+1fg*pq+1fgry+1; ddljqry = pnodeyqry+1*(1-pnodeyq
29、ry+1)* sumtemp; /計(jì)算所有的ddp/for(int gf1=0;gf1<yangbenzushu;gf1+)/組數(shù) for(int l=0;l<Sidenum;l+)/層數(shù) for(int JJ=0;JJ<pnodel+1;JJ+)/每一層的節(jié)點(diǎn)數(shù) for(int i=0;i<pnodel+1;i+)
30、/前一層的節(jié)點(diǎn)數(shù) if(l=0)/如果是第一層的話,y值為輸入的X值 ddplJJi=ddljlJJ*pXgfi; else ddplJJi=ddljlJJ*pnodeyl-1i; /*/void UpdatetheWeightsusingBPAlgorithm() for(int ce
31、nt=0;cent<Sidenum;cent+)/層數(shù) for(int J=0;J<pnodecent+1;J+)/每一層的節(jié)點(diǎn)數(shù) for(int i=0;i<pnodecent+1;i+)/前一層的節(jié)點(diǎn)數(shù) pcentJi+=0.2*ddpcentJi;/*/double xunlianErrors()/定義訓(xùn)練誤差函數(shù) double error=0; double sum=0;
32、60; double temp=0; double temp1=0;for(int gf1=0;gf1<yangbenzushu;gf1+)/組數(shù)temp= computeYl(gf1); /temp1=zhengquelv(gf1); /sum+=temp1;for(int jj=1;jj<=outputnodenum;jj+) cout<<pnodeySidenum-1jj;
33、 error+=temp;/ sum=sum/yangbenzushu; cout<<"用訓(xùn)練集所得到的正確率:"<<sum<<endl;return error/yangbenzushu;/*/double jiaoyanErrors(int yangbenzushu1 )/定義校驗(yàn)誤差函數(shù)double error=0; double sum=0; double temp=0; double temp1=0;for(i
34、nt gf1=0;gf1<yangbenzushu1;gf1+)/組數(shù)temp= computeYl(gf1); for(int jj=1;jj<=outputnodenum;jj+) cout<<pnodeySidenum-1jj; /temp1=zhengquelv(gf1); /sum+=temp1; error+=temp;/sum=sum/yangbenzushu1;&
35、#160; / cout<<"用校驗(yàn)集所得到的正確率:"<<sum<<endl;return error/yangbenzushu1;/*/double zhengquelv(int KK)int count=0; double av=0;/for(int gf1=0;gf1<yangbenzushu;gf1+)/組數(shù)for(int jj=1;jj<=outputnodenum;jj+)if (pnodeySidenum-1jj>0) pnodeySidenum
36、-1jj=1; else pnodeySidenum-1jj=0; if(pYKKjj=pnodeySidenum-1jj)count+; av=(double)count/outputnodenum;return av;/*/void freeINput() if(pX!=NULL)for(int u=0;u<yangbenzushu;u+) delete pXu;
37、60; delete pX; pX=NULL;if(pY!=NULL)for(int u1=0;u1<yangbenzushu;u1+) delete pYu1; delete pY; pY=NULL;/*/輸出所有的權(quán)值void wputout() for
38、 (int j=0;j<Sidenum;j+) cout<<"第"<<j+1<<"層權(quán)值為:"<<endl; for (int k=0;k<pnodej+1;k+) /if(k=pnodej+1-1) cout<<endl;
39、; for (int t=0;t<pnodej+1;t+) cout<<pjkt<<' ' if
40、(t=pnodej) cout<<endl; /*/;void main()BP bp;int count=0;/用來(lái)統(tǒng)計(jì)所用的迭代次數(shù)/FILE *fp;int inputnodenum,outnodenum,sidenum,yangbenzunum;double error;cout<<"請(qǐng)輸入輸入點(diǎn)數(shù),輸出點(diǎn)數(shù),隱層數(shù)"<<endl;cin>>inputnodenum>>outnoden
41、um>>sidenum;cout<<"請(qǐng)輸入樣本組數(shù)"<<endl;cin>>yangbenzunum;/第一步初始化所有的權(quán)值bp.getW(sidenum,inputnodenum,outnodenum,yangbenzunum);/第二步輸入樣本組bp.INPUT(yangbenzunum);for(;count+)double sum=0; double temp=0;for(int fuzu=0;fuzu<yangbenzunum;fuzu+) /第三
42、步計(jì)算所有y值temp=puteYl(fuzu);/第四步Compute Back-Propagation-Errorsbp.ComputeBackPropagationErrors(fuzu);/第五步Update the Weights using BP Algorithmbp.UpdatetheWeightsusingBPAlgorithm(); sum+=temp;/第六步判斷是否收斂error=sum/2*yangbenzunum;/freopen("debugout.txt","w",stdout); /f
43、p=freopen( "out.txt", "w", stdout) ;/ cout<<count<<' '<<error<<endl;/ fclose(stdout);/關(guān)閉文件 /*if(count=1000)cout<<error<<endl; if(count=1500)cout<<error<<endl;if(count=1600)cout<<error<<endl;*/if
44、(count=10000)cout<<error<<endl;if(error<1.02) cout<<"循環(huán)收斂"<<"迭代次數(shù)為:"<<count<<endl; /bp.freeINput();/釋放X Y空間 break;cout<<"權(quán)值為:&q
45、uot;<<endl;bp.wputout();double XUNLIANER=bp.xunlianErrors();/cout<<"訓(xùn)練誤差為:"<<XUNLIANER<<endl;bp.freeINput();/釋放X Y空間/*cout<<"請(qǐng)輸入校驗(yàn)樣本: "<<endl;int jiaoyannum=0;cin>>jiaoyannum;bp.INPUT(jiaoyannum);double jiaoyanER=bp.jiaoyanErrors(jiaoyann
46、um);cout<<"校驗(yàn)誤差為:"<<jiaoyanER<<endl;/fclose( stdout ) ;*/簡(jiǎn)介:BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無(wú)需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過(guò)反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(inp
47、ut)、隱層(hide layer)和輸出層(output layer)摘 要:神經(jīng)網(wǎng)絡(luò)算法是在神經(jīng)網(wǎng)絡(luò)現(xiàn)有算法的基礎(chǔ)上提出的,是通過(guò)任意選定一組權(quán)值,將給定的目標(biāo)輸出直接作為線性方程的代數(shù)和來(lái)建立線性方程組,解得待求權(quán),不存在傳統(tǒng)方法的局部極小及收斂速度慢的問(wèn)題,且更易理解。關(guān)鍵詞:固定權(quán)值;消元法;算法人工神經(jīng)網(wǎng)絡(luò)( ,)系統(tǒng)是世紀(jì)年代后出現(xiàn)的,它是由眾多的神經(jīng)元可調(diào)的連接權(quán)值連接而成,具有大規(guī)模并行處理、分布式信息存儲(chǔ)、良好的自組織自學(xué)習(xí)能力等特點(diǎn),在信息處理、模式識(shí)別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來(lái)越廣泛的應(yīng)用。尤其誤差反向傳播算法( ,簡(jiǎn)稱網(wǎng)絡(luò))可以逼近任意連續(xù)函數(shù),具有很強(qiáng)的非線
48、性映射能力,而且網(wǎng)絡(luò)的中間層數(shù)、各層的處理單元數(shù)及網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等參數(shù)可根據(jù)具體情況設(shè)定,靈活性很大,所以它在許多應(yīng)用領(lǐng)域中起到重要作用。近年來(lái),為了解決神經(jīng)網(wǎng)絡(luò)收斂速度慢、不能保證收斂到全局最小點(diǎn),網(wǎng)絡(luò)的中間層及它的單元數(shù)選取無(wú)理論指導(dǎo)及網(wǎng)絡(luò)學(xué)習(xí)和記憶的不穩(wěn)定性等缺陷,提出了許多改進(jìn)算法。 傳統(tǒng)的算法簡(jiǎn)述算法是一種有監(jiān)督式的學(xué)習(xí)算法,其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對(duì)網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行反復(fù)的調(diào)整訓(xùn)練,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時(shí)訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。具體步驟如下:()初始化,隨機(jī)給定各連接權(quán),及閥值i,t。()由給定的輸
49、入輸出模式對(duì)計(jì)算隱層、輸出層各單元輸出j(wijai-j) t(vjtbjt)式中:j為隱層第個(gè)神經(jīng)元實(shí)際輸出;t為輸出層第個(gè)神經(jīng)元的實(shí)際輸出;wij為輸入層至隱層的連接權(quán);vjt為隱層至輸出層的連接權(quán)。tk(tkt)t(t) jkdtvjt j(j)式中:tk為輸出層的校正誤差;jk為隱層的校正誤差。()計(jì)算新的連接權(quán)及閥值,計(jì)算公式如下:jt()jt()?琢tkj ij()ij()?茁jkikt()t()?琢tk j()=j()?茁jk式中:?琢,?茁為學(xué)習(xí)系數(shù)(?琢,?茁)。()選取下一個(gè)輸入模式對(duì)返回第步反復(fù)訓(xùn)練直到網(wǎng)絡(luò)設(shè)輸出誤差達(dá)到要求結(jié)束訓(xùn)練。傳統(tǒng)的算法,實(shí)質(zhì)上是把一組樣本輸入/輸
50、出問(wèn)題轉(zhuǎn)化為一個(gè)非線性優(yōu)化問(wèn)題,并通過(guò)負(fù)梯度下降算法,利用迭代運(yùn)算求解權(quán)值問(wèn)題的一種學(xué)習(xí)方法,但其收斂速度慢且容易陷入局部極小,為此提出了一種新的算法,即高斯消元法。 改進(jìn)的網(wǎng)絡(luò)算法 改進(jìn)算法概述此前有人提出:任意選定一組自由權(quán),通過(guò)對(duì)傳遞函數(shù)建立線性方程組,解得待求權(quán)。本文在此基礎(chǔ)上將給定的目標(biāo)輸出直接作為線性方程等式代數(shù)和來(lái)建立線性方程組,不再通過(guò)對(duì)傳遞函數(shù)求逆來(lái)計(jì)算神經(jīng)元的凈輸出,簡(jiǎn)化了運(yùn)算步驟。沒(méi)有采用誤差反饋原理,因此用此法訓(xùn)練出來(lái)的神經(jīng)網(wǎng)絡(luò)結(jié)果與傳統(tǒng)算法是等效的。其基本思想是:由所給的輸入、輸出模式對(duì)通過(guò)作用于神經(jīng)網(wǎng)絡(luò)來(lái)建立線性方程組,運(yùn)用高斯消元法解線性方程組來(lái)求得未知權(quán)值,而未
51、采用傳統(tǒng)網(wǎng)絡(luò)的非線性函數(shù)誤差反饋尋優(yōu)的思想。 改進(jìn)算法的具體步驟對(duì)給定的樣本模式對(duì),隨機(jī)選定一組自由權(quán),作為輸出層和隱含層之間固定權(quán)值,通過(guò)傳遞函數(shù)計(jì)算隱層的實(shí)際輸出,再將輸出層與隱層間的權(quán)值作為待求量,直接將目標(biāo)輸出作為等式的右邊建立方程組來(lái)求解?,F(xiàn)定義如下符號(hào)(見(jiàn)圖): (p)輸入層的輸入矢量; (p)輸入層輸入為 (p)時(shí)輸出層的實(shí)際輸出矢量; (p)目標(biāo)輸出矢量;,分別為輸入層、隱層和輸出層神經(jīng)元個(gè)數(shù);為隱層與輸入層間的權(quán)矩陣;為輸出層與隱層間的權(quán)矩陣。具體步驟如下:()隨機(jī)給定隱層和輸入層間神經(jīng)元的初始權(quán)值ij。()由給定的樣本輸入i(p)計(jì)算出隱層的實(shí)際輸出j(p)。為方便起見(jiàn)將圖
52、網(wǎng)絡(luò)中的閥值寫(xiě)入連接權(quán)中去,令:隱層閥值jnj,(),則:j(p)=(wiji(p) (,)。()計(jì)算輸出層與隱層間的權(quán)值jr。以輸出層的第個(gè)神經(jīng)元為對(duì)象,由給定的輸出目標(biāo)值r(p)作為等式的多項(xiàng)式值建立方程,用線性方程組表示為:a0(1)v1r+a1(1)v2r+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+am(2)vmr=tr(2) a0(p)v1r+a1(p)v2r+am(p)vmr=tr(p) 簡(jiǎn)寫(xiě)為: 為了使該方程組有唯一解,方程矩陣為非奇異矩陣,其秩等于其增廣矩陣的秩,即:()(),且方程的個(gè)數(shù)等于未知數(shù)的個(gè)數(shù),故取,此時(shí)方程組的唯一解為: 0r,2r,mr(,) ()重復(fù)第三步就可以求出輸出層個(gè)神經(jīng)元的權(quán)值,以求的輸出
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省衡水市武強(qiáng)中學(xué)2024-2025學(xué)年高一上學(xué)期期中考試數(shù)學(xué)試題(含答案)
- 2024年度云南省高校教師資格證之高等教育學(xué)自我檢測(cè)試卷A卷附答案
- 數(shù)據(jù)中心建設(shè)方案
- 贛南師范大學(xué)《三維動(dòng)畫(huà)制作》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽(yáng)師范大學(xué)《通信工程專業(yè)導(dǎo)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 人教版小學(xué)四年級(jí)體育教案上冊(cè)
- 福建師范大學(xué)《通信一》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《民事訴訟法》2023-2024學(xué)年第一學(xué)期期末試卷
- 檔案利用效果登記表
- 2024年嘉峪關(guān)客運(yùn)從業(yè)資格證考試模擬試題
- 道路開(kāi)口施工方案6
- 國(guó)開(kāi)作業(yè)《公共關(guān)系學(xué)》實(shí)訓(xùn)項(xiàng)目1:公關(guān)三要素分析(六選一)參考552
- 大學(xué)勞動(dòng)教育(高等院校勞動(dòng)教育課程)全套教學(xué)課件
- 人教版七級(jí)下《第五章相交線與平行線》單元測(cè)試題含試卷分析答題技巧
- 二年級(jí)上冊(cè)語(yǔ)文第四單元《日月潭》教學(xué)課件 第1課時(shí)
- MOOC 英語(yǔ)語(yǔ)法與寫(xiě)作-暨南大學(xué) 中國(guó)大學(xué)慕課答案
- 婦科腹腔鏡手術(shù)術(shù)前宣教
- 2017年天津?yàn)I海新區(qū)公務(wù)員考試《行測(cè)》真題
- 2023-2024學(xué)年北京市延慶區(qū)八年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷含詳解
- 2024年中考數(shù)學(xué)專項(xiàng)復(fù)習(xí)模型33旋轉(zhuǎn)-奔馳模型-原卷版+解析
- 內(nèi)科學(xué)白血病教材教學(xué)課件
評(píng)論
0/150
提交評(píng)論