資源描述:
《BP神經(jīng)網(wǎng)絡(luò)實(shí)例.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、BP神經(jīng)網(wǎng)絡(luò)實(shí)例分析一、實(shí)例要求1、取九個(gè)點(diǎn)來訓(xùn)練網(wǎng)絡(luò),然后得出擬合曲線。2、取適當(dāng)數(shù)量訓(xùn)練點(diǎn)來訓(xùn)練網(wǎng)絡(luò),然后得出擬合曲線3、取11*11個(gè)點(diǎn)來訓(xùn)練網(wǎng)絡(luò),并用21*21個(gè)點(diǎn)測(cè)試擬合的曲面。二、計(jì)算結(jié)果如下1、第一個(gè)函數(shù):(1)學(xué)習(xí)率為0.2,訓(xùn)練次數(shù)為3300時(shí)訓(xùn)練過程如學(xué)習(xí)曲線所示,圈圈為學(xué)習(xí)后產(chǎn)生的,折線為標(biāo)準(zhǔn)函數(shù)點(diǎn)連線。檢驗(yàn)過程如檢驗(yàn)曲線所示,點(diǎn)序列為擬合曲線上的點(diǎn),曲線為標(biāo)準(zhǔn)函數(shù)曲線。誤差曲線如右圖所示。(2)學(xué)習(xí)率為0.01,訓(xùn)練次數(shù)為3300時(shí)的曲線。從函數(shù)1可以看出,學(xué)習(xí)率比較大時(shí),曲線收斂比較快,可以比較快速達(dá)到精度要求。但實(shí)際上,
2、學(xué)習(xí)率比較大時(shí)(即收斂步長比較大),容易超出收斂邊界,反而收斂導(dǎo)致不穩(wěn)定,甚至發(fā)散。2、第二個(gè)函數(shù):(1)學(xué)習(xí)率為0.2,樣本點(diǎn)數(shù)為10,學(xué)習(xí)次數(shù)為5000時(shí)的曲線如下:(2)學(xué)習(xí)率為0.2,樣本點(diǎn)數(shù)為30,學(xué)習(xí)次數(shù)為5000時(shí)的曲線如下:從函數(shù)2可以看出,樣本點(diǎn)個(gè)數(shù)越多時(shí),曲線精度越高。但學(xué)習(xí)時(shí)間會(huì)有所增加。3、第三個(gè)函數(shù)學(xué)習(xí)率為0.1,動(dòng)量項(xiàng)學(xué)習(xí)率為0.05,訓(xùn)練次數(shù)為5000,訓(xùn)練樣本數(shù)為11*11。圖形如下:附:程序源代碼第一個(gè)和第二個(gè)函數(shù)的程序:%此BP網(wǎng)絡(luò)為兩層隱含層,每個(gè)隱含層4個(gè)節(jié)點(diǎn)。輸入輸出各一層%輸入層和輸出層均采用恒等函數(shù),隱
3、含層采用S形函數(shù)clearall;closeall;b=0.01;%精度要求a=0.2;%學(xué)習(xí)率c=2;Num=30;%訓(xùn)練樣本數(shù)N=3300;%訓(xùn)練次數(shù)Nj=80;%檢驗(yàn)樣本數(shù)o0=rand(2,1);%輸入層閾值o1=rand(4,1);%第一層隱含層閾值o2=rand(4,1);%第二層隱含層閾值o3=rand(1,1);%輸出層閾值w1=rand(4,2);%輸入信號(hào)為兩個(gè)w2=rand(4,4);%第一層隱含層與第二層隱含層的權(quán)系數(shù)w3=rand(1,4);%第二層隱含層與輸出層的權(quán)系數(shù)symsxy;%符號(hào)變量,用于兩個(gè)輸入值%fcn=c
4、os(x);%被學(xué)習(xí)的函數(shù)fcn=abs(sin(x));x0=0:2*pi/(Num-1):2*pi;%輸入的訓(xùn)練樣本y0=0:2*pi/(Num-1):2*pi;x=x0;y=y0;X(1,:)=x0;X(2,:)=y0;yf=eval(fcn);%輸出的訓(xùn)練樣本x3=zeros(1,Num);time=0;forj=1:1:Nfori=1:1:Num%前向計(jì)算:s1=w1*X(:,i)-o1;x1=1./(1+exp(-s1));%第一層隱含層輸出s2=w2*x1-o2;x2=1./(1+exp(-s2));%第二層隱含層輸出s3=w3*x2
5、-o3;%x3=1./(1+exp(-s3));%輸出層輸出x3(i)=s3;%反向計(jì)算:%e3=(yf(i)-x3)./(exp(s3)+2+exp(-s3));%輸出層誤差e3=yf(i)-x3(i);e2=((w3)'*e3)./(exp(s2)+2+exp(-s2));%第二層隱含層誤差e1=((w2)'*e2)./(exp(s1)+2+exp(-s1));%第一層隱含層誤差%權(quán)值和閾值修正w3=w3+a*e3*(x2)';%權(quán)值修正w2=w2+a*e2*(x1)';w1=w1+a*e1*(X(:,i))';o3=o3-a*e3;%閾值修正
6、o2=o2-a*e2;o1=o1-a*e1;endE(j)=0.5*((yf-x3)*(yf-x3)');%方差time=time+1;%記錄學(xué)習(xí)次數(shù)ifE(j)7、(-S2));%第二層隱含層輸出S3=w3*m2-o3;%m3(i)=1./(1+exp(-S3));%輸出層輸出m3(i)=S3;endfigure(1);plot(m,ym,'g-');holdonplot(m,m3,'r.');title('檢驗(yàn)曲線');xlabel('x');ylabel('y=cos(x)');figure(2);plot(x0,yf,'b-');holdonplot(x0,x3,'ro');title('學(xué)習(xí)曲線');xlabel('x');ylabel('y=cos(x)');k=1:time;figure(3);p
8、lot(k,E);title('誤差曲線');xlabel('訓(xùn)練次數(shù)');ylabel('誤差值');第三個(gè)函數(shù)的程序%