计算智能后向传播学习前馈型神经网络matlab实验报告.docx
文本预览下载声明
计算智能实验报告后向传播学习前馈型神经网络班 级 姓 名 指导教师 成 绩自动化学院2017年5月目 录一、实验目的1二、实验要求1三、实验设备1四、实验程序与结果1五、实验心得5一、实验目的掌握后向传播学习前馈型神经网络(Back Propagation Feed-forwardNeuarl Network, BPNN)二、实验要求matlab实现例2.1的BPNN算法三、实验设备pc机,MATLAB R2013b四、实验程序与结果实验代码:maxloop=int16(100);%最大循环次数sl=double(0.9);%学习率mlnum=int16(2);%中间层节点数v=[0.2, -0.3; 0.4 ,0.1; -0.5, 0.2];%中间层权值w=[-0.3;-0.2];%输出层权值mlt=[-0.4,0.2];%中间层阈值olt=0.1;%输出层阈值merr=[0.0,0.0];%中间层误差oerr=0.0;%输出层误差mout=[0.0,0.0];%中间层输出量oout=0.0;%输出层输出量n_in=int8(3);%输入节点个数n_out=int8(1);%输出节点个数n=int16(0);%循环次数tmp=double(0.0);%累加errl=double(0.000001);%误差限error=errl+1;%输出误差Sample=int16(1);%样本个数x=[1.0,0.0,1.0];%样本y=double(1.0);%理想输出ploterr=0:0.01:1;plotout=0:0.01:1;i=int16(0);j=int8(0);k=int8(0);for n=1:maxloop if errorerrl break end for i=1:Sample for k=1:mlnumtmp=0.0; for j=1:n_intmp = tmp + (x(i,j) * v(j,k)); endtmp = tmp + mlt(k);mout(k) = (1/(1 + exp(-tmp))); end for k=1:n_outtmp=0.0; for j=1:mlnumtmp = tmp + (mout(j) * w(j,k)); endtmp = tmp + olt(k);oout = (1/(1 + exp(-tmp))); end for j=1:n_outoerr=oout(j)*(1-oout(j))*(y(i,j)-oout(j)); end for j=1:n_out error=oout(j)*(y(i,j)-oout(j))*(y(i,j)-oout(j)); end for j=1:mlnumtmp=0.0; for k=1:n_outtmp = tmp + (w(j,k) * oerr(k)); endmerr(j) = tmp*mout(j)*(1-mout(j)); end for j=1:mlnum for k=1:n_out w(j,k) = w(j,k) + (sl*mout(j)*oerr(k)); end end for j=1:n_in for k=1:mlnum v(j,k) = v(j,k) + (sl*x(i,j)*merr(k)); end end for j=1:n_outolt=olt(j)+ (sl*oerr(j)); end for j=1:n_outmlt(j)=mlt(j)+ (sl*merr(j)); end end%输出结果fprintf(第%d次迭代后误差为:%f,n,error)fprintf(第%d次迭代后输出为:%f\n,n,oout)endfprintf(迭代次数: %d\n,n);fprintf(最终输出:);disp(oout);运行结果: shiyan11次迭代后误差为:0.131169第1次迭代后输出为:0.473889第2次迭代后误差为:0.121089第2
显示全部