您好,欢迎访问三七文档
实验一:感知器的分类能力一、实验目的通过本次实验加深对感知器的分类能力的理解,学会运用Matlab处理较复杂的分类问题二、实验内容已知矩阵P=【0.10.70.80.81.00.30.0-0.3-0.5-1.51.21.81.60.60.80.50.20.8-1.5-1.3】;和T=【1110011100;0000011111】;要求使用感知器实现分类。三、实验过程根据实验要求编写程序如下:clcclearfigure(gcf)echoonclcP=[0.10.70.80.81.00.30.0-0.3-0.5-1.5;1.21.81.60.60.80.50.20.8-1.5-1.3];T=[1110011100;0000011111];plotpv(P,T)net=newp([-21;-22],2);net.trainParam.show=1;net=train(net,P,T);net.iw{1,1}net.bfigureplotpv(P,T);holdonplotpc(net.iw{1,1},net.b{1})各个点分分布情况:本次运行的最优分类情况:误差曲线:四、实验总结通过本次实验,加深了对感知器的理解,明白了感知器实现线性分类的优越性。虽然已经有了参考程序,但是在实验过程中还是遇到了不少问题,如:参考程序中有进行初始化,但是实验不要求,因此删掉哪部分使程序最简化也是个问题,经过多次尝试,终于得到了最后程序,运行出了最后的分类情况。实验二:BP神经网络的拟合能力一、实验目的学会使用BP神经网络拟合各种函数曲线,学会分析隐层神经元个数、采样时间间隔以及不同训练函数对训练精度的影响。二、实验题目一维函数:y=sin(12*∏*sin(4*∏*X*(X+1))),其中0≤X≤1;步长为0.01,一个三层的BP网络的实现函数拟合1)、神经元个数对拟合精度的影响;(分别取20、30、40个)2)、采样时间对拟合精度的影响;(步长分别取0.01、0.005、0.001);三、实验过程实验总程序如下:clf;clearfigure(1)echoonclcpauseP=0:0.01:1;T=sin(12*pi*sin(4*pi*P.*(1-P)));pauseclcechoonfigure(2)plot(P,T,'+');pauseclcS1=30;[w1b1w2b2]=initff(P,S1,'tansig',T,'purelin');echoonclcdf=20;me=1000;eg=0.001figure(3)tp=[dfmeeg];%[w1b1w2b2eptr]=trainbp(w1,b1,'tansig',w2,b2,'purelin',P,T,tp);%基本BP算法%[w1b1w2b2eptr]=traingdx(w1,b1,'tansig',w2,b2,'purelin',P,T,tp);%traingdx快速PB算法%[w1b1w2b2eptr]=trainrp(w1,b1,'tansig',w2,b2,'purelin',P,T,tp);%弹性BP算法[w1b1w2b2eptr]=trainlm(w1,b1,'tansig',w2,b2,'purelin',P,T,tp);ploterr(tr,eg);pauseclcfigure(4)plot(P,T,'o');holdonTT=simuff(P,w1,b1,'tansig',w2,b2,'purelin')plot(P,TT,'+');aa=[0.250.75];bb=simuff(aa,w1,b1,'tansig',w2,b2,'purelin');echoon1)、神经元个数对拟合精度的影响神经元个数20采样间隔0.001运用trainlm00.10.20.30.40.50.60.70.80.91-1.5-1-0.500.511.5神经元个数30采样间隔0.001运用trainlm神经元个数40采样间隔0.001运用trainlm0100200300400500600700800900100010-410-310-210-1100101102103Sum-SquaredNetworkErrorfor1000EpochsEpochSum-SquaredError00.10.20.30.40.50.60.70.80.91-1.5-1-0.500.511.50100200300400500600700800900100010-410-310-210-1100101102103104EpochSum-SquaredErrorSum-SquaredNetworkErrorfor1000Epochs从上述的实验结果可以得出结论:在起始阶段,训练精度随着神经元个数增加而增加,到达一定程度后,在增加神经元个数,效果不大明显。2)、采样间隔对拟合精度的影响神经元个数30采样间隔0.01运用trainlm神经元个数30采样间隔0.005运用trainlm神经元个数30采样间隔0.001运用trainlm从上述的实验结果可以得出结论:随着采样间隔的减小,实验过程中所选取的点增加,BP神经网络对函数的拟合效果提高,拟合误差减小。四、实验总结本次实验较第一个实验难度有所增加,因此在实验过程中也遇到较多的问题,比如:在矩阵运算时,没有考虑到是矩阵间的乘法还是点乘,是结果遇到了不小的麻烦;在程序运行阶段,由于事先没有考虑到神经元个数具体个数,而选取个数太少,时仿真效果不明显;在做选作时,由于Matlab版本不对,运行不出结果,放弃了该题。通过这次试验,我明白了选择一组适当的参数(隐层神经元个数、采样步长)对构建BP神经网络至关重要。实验三RBF神经网络的拟合能力的研究一、实验目的学会使用RBF神经网络拟合各种函数曲线,学会分析隐层神经元个数、采样时间间隔以及参数σ2对训练精度的影响二、实验题目一维函数:y=sin(12*∏*sin(4*∏*X*(X+1))),其中0≤X≤1;步长为0.01,一个三层RBF神经网络的实现函数拟合1)、采样时间对拟合精度的影响;(步长分别取0.01、0.005、0.001);2)、讨论RBF神经网络中参数σ2的大小对拟合模型的精度和泛化能力的影响。三、实验内容程序如下:x=0:.003:1;T=sin(12*pi*sin(4*pi*x.*(1-x)))figure(1)plot(x,T,'+');title('TrainingVectors');xlabel('InputVectorx');ylabel('TargetVectorT');pausefigure(2)eg=0.0001;%sum-squarederrorgoalsc=0.003;%spreadconstantnet=newrbe(x,T,sc);plot(x,T,'+');xlabel('Input');X=0:.0002:1;Y=sim(net,X);holdon;plot(X,Y);holdoff;legend({'Target','Output'})net.iw{1}1)采样间隔对拟合精度的影响采样间隔好似0.01σ2是0.003采样间隔是0.003σ2是0.003采样间隔是0.001σ2是0.003从上述仿真结果可得出结论:当σ2选择一个适当值固定不变后,采样间隔减小,拟合精度增加。2)σ2对拟合精度的影响采样间隔好似0.001σ2是0.03采样间隔好似0.001σ2是0.003采样间隔好似0.001σ2是0.001从上述仿真结果可以得出:当采样间隔选择一个适当值时,σ2(在一定范围内)越小,拟合结果越好,尤其是在函数变化较为剧烈的区间。四、实验总结本次实验在编写程序方面由于是使用老师的参考程序,因此没有遇到问题,主要的疑问是在选择参数上,最后在老师的帮助下,确定了参数的变化范围,改变两个参数后,得到仿真结果,分析后得到结论,实验顺利结束。
本文标题:神经网络实验报告
链接地址:https://www.777doc.com/doc-4679029 .html