資源描述:
《bp神經(jīng)網(wǎng)絡(luò)matlab編程代碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、實用標(biāo)準(zhǔn)文案BP神經(jīng)網(wǎng)絡(luò)的設(shè)計MATLAB編程例1采用動量梯度下降算法訓(xùn)練BP網(wǎng)絡(luò)。訓(xùn)練樣本定義如下:輸入矢量為p=[-1-231-115-3]目標(biāo)矢量為t=[-1-111]解:本例的MATLAB程序如下:closeallclearechoonclc%NEWFF——生成一個新的前向神經(jīng)網(wǎng)絡(luò)%TRAIN——對BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練%SIM——對BP神經(jīng)網(wǎng)絡(luò)進行仿真pause%敲任意鍵開始clc%定義訓(xùn)練樣本%P為輸入矢量P=[-1,-2,3,1;-1,1,5,-3];%T為目標(biāo)矢量T=[-1,-1,1,1];pause;clc%創(chuàng)建一
2、個新的前向神經(jīng)網(wǎng)絡(luò)net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')%當(dāng)前輸入層權(quán)值和閾值inputWeights=net.IW{1,1}inputbias=net.b{1}%當(dāng)前網(wǎng)絡(luò)層權(quán)值和閾值layerWeights=net.LW{2,1}layerbias=net.b{2}pauseclc%設(shè)置訓(xùn)練參數(shù)net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;精彩文檔實用標(biāo)準(zhǔn)文案bp
3、net=newff(pr,[124],{'logsig','logsig'},'traingdx','learngdm');%建立BP神經(jīng)網(wǎng)絡(luò),12個隱層神經(jīng)元,4個輸出神經(jīng)元%tranferFcn屬性'logsig'隱層采用Sigmoid傳輸函數(shù)%tranferFcn屬性'logsig'輸出層采用Sigmoid傳輸函數(shù)%trainFcn屬性'traingdx'自適應(yīng)調(diào)整學(xué)習(xí)速率附加動量因子梯度下降反向傳播算法訓(xùn)練函數(shù)%learn屬性'learngdm'附加動量因子的梯度下降學(xué)習(xí)函數(shù)net.trainParam.epochs=10
4、00;%允許最大訓(xùn)練步數(shù)2000步net.trainParam.goal=0.001;%訓(xùn)練目標(biāo)最小誤差0.001net.trainParam.show=10;%每間隔100步顯示一次訓(xùn)練結(jié)果net.trainParam.lr=0.05;%學(xué)習(xí)速率0.05net.trainParam.epochs=1000;net.trainParam.goal=1e-3;pauseclc%調(diào)用TRAINGDM算法訓(xùn)練BP網(wǎng)絡(luò)[net,tr]=train(net,P,T);pauseclc%對BP網(wǎng)絡(luò)進行仿真A=sim(net,P)%計算仿真誤差
5、E=T-AMSE=mse(E)pauseclcechooff例2采用貝葉斯正則化算法提高BP網(wǎng)絡(luò)的推廣能力。在本例中,我們采用兩種訓(xùn)練方法,即L-M優(yōu)化算法(trainlm)和貝葉斯正則化算法(trainbr),用以訓(xùn)練BP網(wǎng)絡(luò),使其能夠擬合某一附加有白噪聲的正弦樣本數(shù)據(jù)。其中,樣本數(shù)據(jù)可以采用如下MATLAB語句生成:輸入矢量:P=[-1:0.05:1];目標(biāo)矢量:randn(’seed’,78341223);T=sin(2*pi*P)+0.1*randn(size(P));解:本例的MATLAB程序如下:closeallcle
6、ar精彩文檔實用標(biāo)準(zhǔn)文案echoonclc%NEWFF——生成一個新的前向神經(jīng)網(wǎng)絡(luò)%TRAIN——對BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練%SIM——對BP神經(jīng)網(wǎng)絡(luò)進行仿真pause%敲任意鍵開始clc%定義訓(xùn)練樣本矢量%P為輸入矢量P=[-1:0.05:1];%T為目標(biāo)矢量randn('seed',78341223);T=sin(2*pi*P)+0.1*randn(size(P));%繪制樣本數(shù)據(jù)點plot(P,T,'+');echooffholdon;plot(P,sin(2*pi*P),':');%繪制不含噪聲的正弦曲線echoonclcpa
7、useclc%創(chuàng)建一個新的前向神經(jīng)網(wǎng)絡(luò)net=newff(minmax(P),[20,1],{'tansig','purelin'});pauseclcechooffclcdisp('1.L-M優(yōu)化算法TRAINLM');disp('2.貝葉斯正則化算法TRAINBR');choice=input('請選擇訓(xùn)練算法(1,2):');figure(gcf);if(choice==1)echoonclc%采用L-M優(yōu)化算法TRAINLMnet.trainFcn='trainlm';pauseclc%設(shè)置訓(xùn)練參數(shù)net.trainPar
8、am.epochs=500;net.trainParam.goal=1e-6;net=init(net);%重新初始化精彩文檔實用標(biāo)準(zhǔn)文案pauseclcelseif(choice==2)echoonclc%采用貝葉斯正則化算法TRAINBRnet