資源簡介
基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法matlab程序,matlab可以直接運行

代碼片段和文件信息
function?err=BPfun(xPThiddennumP_testT_test)
%%?訓(xùn)練&測試BP網(wǎng)絡(luò)
%%?輸入
%?x:一個個體的初始權(quán)值和閾值
%?P:訓(xùn)練樣本輸入
%?T:訓(xùn)練樣本輸出
%?hiddennum:隱含層神經(jīng)元數(shù)
%?P_test:測試樣本輸入
%?T_test:測試樣本期望輸出
%%?輸出
%?err:預(yù)測樣本的預(yù)測誤差的范數(shù)
inputnum=size(P1);???????%?輸入層神經(jīng)元個數(shù)
outputnum=size(T1);??????%?輸出層神經(jīng)元個數(shù)
%%?新建BP網(wǎng)絡(luò)
net=newff(minmax(P)[hiddennumoutputnum]{‘tansig‘‘logsig‘}‘trainlm‘);
%%?設(shè)置網(wǎng)絡(luò)參數(shù):訓(xùn)練次數(shù)為1000,訓(xùn)練目標為0.01,學(xué)習(xí)速率為0.1
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
LP.lr=0.1;
net.trainParam.show=NaN;
%?net.trainParam.showwindow=false;??%高版MATLAB
%%?BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值
w1num=inputnum*hiddennum;?%?輸入層到隱層的權(quán)值個數(shù)
w2num=outputnum*hiddennum;%?隱層到輸出層的權(quán)值個數(shù)
w1=x(1:w1num);???%初始輸入層到隱層的權(quán)值
B1=x(w1num+1:w1num+hiddennum);??%初始隱層閾值
w2=x(w1num+hiddennum+1:w1num+hiddennum+w2num);?%初始隱層到輸出層的閾值
B2=x(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum);?%輸出層閾值
net.iw{11}=reshape(w1hiddennuminputnum);
net.lw{21}=reshape(w2outputnumhiddennum);
net.b{1}=reshape(B1hiddennum1);
net.b{2}=reshape(B2outputnum1);
%%?訓(xùn)練網(wǎng)絡(luò)以
net=train(netPT);
%%?測試網(wǎng)絡(luò)
Y=sim(netP_test);
err=norm(Y-T_test);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-01?17:52??基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法\
?????文件????????1282??2018-10-05?17:15??基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法\BPfun.m
?????文件????????1864??2011-03-31?19:30??基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法\callbackfun.m
?????文件????????1607??2010-12-09?10:05??基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法\data.mat
?????文件????????2307??2010-12-12?19:16??基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法\GABPMain.m
?????文件?????????404??2018-10-05?17:15??基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法\Objfun.m
評論
共有 條評論