您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > MATLAB完成BP神经网络
%本人完成的MATLAB代码可以直接在MATLABR2013a上面直接运行。完成BP神经网络。%输入节点3输出节点2隐层自主定义,最大节点数50.N_Out=2;N_In=3;N_Sample=6;LayerNum=input('请输入中间节点的数目:');%中间层节点数V=rand(N_In,50);%中间层权值矩阵随机生成W=rand(50,N_Out);%输出层权值矩阵随机生成StudyRate=input('请输入学习率:');%学习率Accuracy=input('请输入精度控制参数:');%精度控制参数MaxLoop=input('请输入最大循环次数:');%最大循环次数n=0;[i,j,k]=deal(0);Out1=zeros(50);Out2=zeros(50);Out1daoshu=zeros(50);Out2daoshu=zeros(50);Tmp=0;Input_num=[000];%=======================训练样本=======================x=[0.80.50;0.90.70.3;10.80.5;00.20.3;0.20.11.3;0.20.70.8]%输入样本y=[01;01;01;11;10;10]%输出期望error=Accuracy+1;whileerrorAccuracy&&nMaxLoop%神经网络训练error=0;fori=1:N_Sample%计算中间层输出向量fork=1:LayerNumTemp=0;forj=1:N_In;Tmp=Tmp+x(i,j)*V(j,k);endOut1(k)=(1+exp(-Tmp)).^(-1);Out1daoshu(k)=daoshu(Tmp);end%计算输出层输出向量fork=1:N_OutTmp=0;forj=1:LayerNumTmp=Tmp+Out1(j)*W(j,k);endOut2(k)=(1+exp(-Tmp)).^(-1);Out2daoshu(k)=daoshu(Tmp);end%计算输出层权值修改量forj=1:N_OutChgO(j)=Out2(j)*(1-Out2(j))*(y(i,j)-Out2(j));end%计算输出误差forj=1:N_Outerror=error+(y(i,j)-Out2(j))*(y(i,j)-Out2(j));end%计算中间层权值修改量forj=1:LayerNumTmp=0;fork=1:N_OutTmp=Tmp+W(j,k)*ChgO(k);endChgH(j)=Tmp*Out1(j)*(1-Out1(j));end%修改输出层权值矩阵forj=1:LayerNumfork=1:N_OutW(j,k)=W(j,k)+StudyRate*Out1daoshu(j)*ChgO(k);endendforj=1:N_Infork=1:LayerNumV(j,k)=V(j,k)+StudyRate*x(i,j)*ChgH(k);endendendif(mod(n,10)==0)fprintf('调整后误差:%f\n',error);endn=n+1;endfprintf('总共循环次数:%f\n',n);%调整后中间层权值矩阵fprintf('调整后中间层权值矩阵:\n');fori=1:N_Inforj=1:LayerNumfprintf('%f',V(i,j));endendfprintf('\n');fprintf('===================================================\n');%调整后输出层权重矩阵fprintf('调整后输出层权值矩阵:\n');fori=1:LayerNumforj=1:N_Outfprintf('%f',W(i,j));endendfprintf('\n');fprintf('何星宏的神经网络训练完成!');while(1)%BP网络使用fprintf('请输入三个数:\n');fori=1:N_InInput_num(N_In)=input('');endfori=1:LayerNumTmp=0;forj=1:N_InTmp=Tmp+Input_num(j)*V(j,i);endOut1(i)=1+exp(-Tmp);endfori=1:N_OutTmp=0;forj=1:LayerNumTmp=Tmp+Out1(j)*W(j,i);endOut2(i)=1+exp(-Tmp);endfprintf('结果:\n');fori=1:N_Outfprintf('%f',Out2(i));endend%=====================================by何同学
本文标题:MATLAB完成BP神经网络
链接地址:https://www.777doc.com/doc-2887375 .html