基于遗传算法的BP神经网络MATLAB代码
用遗遗算法遗化BP神遗遗的网Matlab遗程遗例;遗,由于BP遗的遗遗遗化是一无遗束遗化遗遗~而且遗遗要采用遗遗遗~所以直接利用网个数Matlab遗遗算法工具箱。以下遗出的代遗是遗一个19遗入遗量~1遗出遗量情下的个况非遗性回遗而遗遗的~如果要遗用
于其情~只需改遗遗解遗函可。 它况数即
GABP程序一,遗遗遗遗的主函数
function net=GABPNET(XX,YY)
%----------------------------------------------------------------
----------
% GABPNET.m
% BPBP使用遗遗算法遗网遗遗遗遗遗遗行遗化~再用算法遗遗遗网
%----------------------------------------------------------------
----------
%数据遗一化遗遗理
nntwarn off
XX=[1:19;2:20;3:21;4:22]';
YY=[1:4];
XX=premnmx(XX);
YY=premnmx(YY);
YY
%遗建遗网
net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'trainlm');%下面使用遗遗算法遗遗遗行遗化网
P=XX;
T=YY;
R=size(P,1);
S2=size(T,1);
S1=25;%遗含遗遗点数
S=R*S1+S1*S2+S1+S2;%遗遗算法遗遗遗度
aa=ones(S,1)*[-1,1];
popu=50;%遗群遗模
save data2 XX YY % xx,yy data2 MAT-file是 将二遗的遗遗存入 个数数遗个~initPpp=initializega(popu,aa,'gabpEval');%初始化遗群gen=100;%遗遗代数
%gaotgabpEval下面遗用工具箱~其中目遗函定遗遗数
[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1
1],'maxGenTerm',gen,...
'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2
gen 3]);
%遗收遗曲遗遗
figure(1)
plot(trace(:,1),1./trace(:,3),'r-');
hold on
plot(trace(:,1),1./trace(:,2),'b-');xlabel('Generation');
ylabel('Sum-Squared Error');figure(2)
plot(trace(:,1),trace(:,3),'r-');hold on
plot(trace(:,1),trace(:,2),'b-');xlabel('Generation');
ylabel('Fittness');
%BP下面初步得到的遗遗矩遗遗遗未遗始遗遗的将尚网遗
[W1,B1,W2,B2,P,T,A1,A2,SE,val]=gadecod(x);
net.LW{2,1}=W1;
net.LW{3,2}=W2;
net.b{2,1}=B1;
net.b{3,1}=B2;
XX=P;
YY=T;
%遗置遗遗参数
net.trainParam.show=1;
net.trainParam.lr=1;
net.trainParam.epochs=50;
net.trainParam.goal=0.001;%遗遗遗网
net=train(net,XX,YY);
程序二,适遗遗函数
function [sol, val] = gabpEval(sol,options)
% val - the fittness of this individual% sol - the individual, returned to allow for Lamarckian
evolution
% options - [current_generation]load data2
nntwarn off
XX=premnmx(XX);
YY=premnmx(YY);
P=XX;
T=YY;
R=size(P,1);
S2=size(T,1);
S1=25;%遗含遗遗点数
S=R*S1+S1*S2+S1+S2;%遗遗算法遗遗遗度
for i=1:S,
x(i)=sol(i);
end;
[W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x);
程序三,遗解遗函数
function [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x)
load data2
nntwarn off
XX=premnmx(XX);
YY=premnmx(YY);
P=XX;
T=YY;
R=size(P,1);
S2=size(T,1);
S1=25;%遗含遗遗点数
S=R*S1+S1*S2+S1+S2;%遗遗算法遗遗遗度
% R*S1W1前个遗遗遗
for i=1:S1,
for k=1:R,
W1(i,k)=x(R*(i-1)+k);
end
end
% S1*S2R*S1W2接着的个即遗遗;第个后的遗遗,遗for i=1:S2,
for k=1:S1,
W2(i,k)=x(S1*(i-1)+k+R*S1);
end
end
% S1R*S1+S1*S2B1接着的个即遗遗;第个后的遗遗,遗for i=1:S1,
B1(i,1)=x((R*S1+S1*S2)+i);end
% S2R*S1+S1*S2+S1B2接着的个即遗遗;第个后的遗遗,遗for i=1:S2,
B2(i,1)=x((R*S1+S1*S2+S1)+i);
end
% S1S2遗算与遗的遗出
A1=tansig(W1*P,B1);
A2=purelin(W2*A1,B2);% 遗算遗差平方和
SE=sumsqr(T-A2);
val=1/SE; % 遗遗算法的适遗遗
GABPNET想行程序~直接在代遗口遗入运窗即可。
遗了~行程序遗需要遗用运gaot工具箱~有一就行了。没装个
本文档为【基于遗传算法的BP神经网络MATLAB代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。