1、神经网络实验报告BP网络实现对Hermit函数逼近实验报告 基于BP网络的多层感知器电气工程及其自动化四班 20080240402 曹建 20080240406 邓宏 一、神经网络结构图 O 输出层 W 隐层 Y0 V 输入层 X0 X二、程序1.单样本程序:function main()clcclose allp=1;Pmax=100 ;q=1;Qmax=30000;n=0.005;l=5;Emin=0.1;Erme=; rand(state,sum(100*clock);w=rand(1,l);w0=0.5;v=rand(1,l ); v0=rand(1,l);y0=-1;x0=-1; f
2、or p=1:Pmax interrupt(p)=normrnd(0,0.1); x(p)=8*(rand()-0.5); d(p)=1.1*(1-x(p)+2*x(p)2)*exp(-x(p)2)/2);end while(q=Qmax) for p=1:Pmax y(p,:)=logsig(v*x(p)+v0*x0); o1(p)=w*y(p,:)+y0*w0; o(p)=o1(p)+interrupt(p); ek=d(p)-o(p); for i=1:l ej(i)=w(i)*(d(p)-o(p)*y(p,i)*(1-y(p,i); end wc=n*ek*y(p,:);w0c=n*e
3、k*y0;vc=n*ej*x(p);v0c=n*ej*x0; w=w+wc;w0=w0+w0c;v=v+vc;v0=v0+v0c; E(p)=d(p)-o(p); end s2=0; for p=1:Pmax s2=E(p)2+s2; end e=(s2/Pmax)0.5; Erme=Erme e; if e=Emin break; end q=q+1;end Erme;qx=linspace(-4,4);for p=1:100 d(p)=1.1*(1-x(p)+2*x(p)2)*exp(-x(p)2)/2);endfor p=1:100 y(p,:)=logsig(v*x(p)+v0*x0)
4、; o1(p)=w*y(p,:)+y0*w0;endplot(Erme);xlabel(误差的收敛曲线)figure;plot(x,d,-r);hold on;plot(x,o1,-.b);xlabel(Hermit多项式曲线与所构建BP网络输出曲线)最好的一次运行结果:学习率=0.01,隐节点数=5q = 25002.批处理程序:function main()clcclose allsamnum=100;testsamnum=101;hiddenunitnum=5;indim=1;outdim=1;rand(state,sum(100*clock)noisevar=0.1;noise=noi
5、sevar*randn(1,samnum);samin=8*rand(1,samnum)-4;samoutnonoise=1.1*(1-samin+2*samin.2).*exp(-samin.2/2);samout=samoutnonoise+noise;testsamin=-4:0.08:4;testsamout=1.1*(1-testsamin+2*testsamin.2).*exp(-testsamin.2/2);figurehold ongridplot(testsamin,testsamout,k-)xlabel(inputx);ylabel(outputy);maxepochs=
6、30000;lr=0.003; alpha=0.5;e0=0.1;w1=0.1*rand(hiddenunitnum,indim);b1=0.1*rand(hiddenunitnum,1);w2=0.1*rand(outdim,hiddenunitnum);b2=0.1*rand(outdim,1);w1ex=w1 b1;w2ex=w2 b2;dw1ex=zeros(hiddenunitnum,2);dw2ex=zeros(1,hiddenunitnum+1);saminex=samin ones(samnum,1);errhistory=;for i=1:maxepochs hiddenou
7、t=logsig(w1ex*saminex); hiddenoutex=hiddenout ones(samnum,1); networkout=w2ex*hiddenoutex; error=samout-networkout; sse=(sumsqr(error)/samnum)0.5; errhistory=errhistory sse; if ssee0 break; end delta2=error; delta1=w2*delta2.*hiddenout.*(1-hiddenout); dw2ex=lr*delta2*hiddenoutex; dw1ex=lr*delta1*sam
8、inex; w1ex=w1ex+dw1ex; w2ex=w2ex+dw2ex; w2=w2ex(:,1:hiddenunitnum);end iw1=w1ex(:,1)b1=w1ex(:,2)w2b2=w2ex(:,1+hiddenunitnum)sse testhiddenout=logsig(w1*testsamin+repmat(b1,1,testsamnum);testnnout=w2*testhiddenout+repmat(b2,1,testsamnum);plot(testsamin,testnnout); figurehold ongridxx,num=size(errhist
9、ory);plot(1:num,errhistory);运行结果最好时,学习效率=0.005,隐节点数=5:w1 = 0.5816 2.5220 -3.9213 -1.8311 -1.4301b1 = 0.7763 5.0958 -1.9469 3.9640 0.8285w2 = 0.1420 2.9787 2.9458 2.5186 -2.2577b2 = -3.2267sse = 0.1000i = 2907 3.加入动量项的批处理程序:只需将批处理程序中的 dw2ex=lr*delta2*hiddenoutex; dw1ex=lr*delta1*saminex;改为 dw2ex=lr*d
10、elta2*hiddenoutex+dw2ex*alpha; dw1ex=lr*delta1*saminex+dw1ex*alpha; 运行结果最好时,学习效率=0.005,隐节点数=7:w1 = 1.2224 0.2118 2.2169 -2.4819 -1.1339 -2.8364 1.6276b1 = 0.1389 -0.4904 -4.4112 -5.1026 -0.3769 -1.1383 -1.0608w2 = 1.8665 -1.1976 -2.7362 -2.7258 -1.8990 5.1942 1.9903b2 = -0.3951i = 5227sse =0.1000表格
11、1. 单样本 BP算法平均最小误差 学习效率隐节点数0.00010.0010.0030.0050.010.130.31870.16000.12400.11400.11770.130550.32820.10200.10300.10.10.110070.29000.10600.10.10430.10.1100.30000.10.10200.10750.10.101 表格 2. 批处理 BP算法平均最小误差 学习效率隐节点数0.00010.0010.0030.0050.010.130.40230.19560.12000.14360.1489NaN50.43020.10240.1 0.10.4985N
12、aN70.47520.12010.10.10.4714NaN100.43570.10730.10100.10.5642NaN表格 3. 加入动量项的批处理 BP算法平均最小误差 学习效率隐节点数0.00010.0010.0030.0050.010.130.28450.12890.11620.11650.1452NaN50.18990.10.10.10.1053NaN70.29840.10.10.10.1002NaN100.22350.10.10.10820.1023NaN三.问题回答1. 比较单样本训练和批处理训练的区别;答:单样本输入是每输入一个样本就调整一次权值,并计算误差的大小,而对于批
13、处理来说,是等所有的样本都输入以后再调整权值.当样本较多的时候批处理能获得较快的收敛速度.2. 根据结果分析增加动量项后算法的变化答:加入动量项后,就等于让权值的收敛方向向着一定的方向进行,由输出的数据可以看出这一点,对于相同的结点数,相同的学习率,加入动量项后,收速度即迭代次数明显的降低.2 改变不同参数的BP网络运行情况及结果,并给予相应的结果分析答:改变不同参数,对网络运行情况的影响,可以概括为:总误差的值有一定的随机性.对于改变网络的学习率,小的学习率会使收敛更稳定一点,但是速度也会相对地慢一点,大的学习率在一定程度上能加快收敛的速度,但是收敛的概率要小得多,很容易发散,所以说,随着学习的增大,迭代的次数会先减小后增大。大到一定程度进,由于波动太大。结果就不在收敛.3 思考:输出层可以采用Sigmoid函数吗?为什么?答:可以,但需要进行变换。4 试验中遇到的问题和解决方法答:一开始不理解隐层,没有考虑隐节点个数的变化;后来还不行,因为没加阈值;后来还有很多错,比如矩阵的点乘,初始化最后终于还是被我搞定哈!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1