BP神经网络的构建与使用.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BP神经网络的构建与使用

BP神经网络的构建与使用 函数逼近: 实验内容:选取为测试函数,其中,。构造独立的训练样本集和检验样本集,实验在不同的网络规模、样本集大小、学习速率等条件下,网络的学习能力、推广能力和性能上的差异。 实验过程:用MATLAB构建并使用BP神经网络, 这里网络训练采用Levenberg-Marquardt算法。 具体程序: k=0.05;%随机数据的选取精度 m=1.0/k;%矩阵的行或列的数据个数 X=[k:k:1]; Y=[k:k:1]; %输入矩阵2*400 p=zeros(2,m*m); for i=1:m, for j=1:m, p(1,(i-1)*m+j)=X(i); p(2,(i-1)*m+j)=Y(j); end end %输出矩阵1*400 Z1=zeros(1,m*m); for i=1:m, for j=1:m, Z1(1,(i-1)*m+j)=sin(2*pi*X(i))*sin(2*pi*Y(j)); end end %BP神经网络 n=10;%隐层神经元数目 %建立BP网络结构,选择隐层和输出层神经元传递函数分别为 %tansig函数和purelin函数 %网络训练采用Levenberg-Marquardt算法trainlm net=newff(minmax(p),[n,1],{tansig,purelin},trainlm); %网络训练 net.trainParam.epochs=50;%训练时间 net.trainParam.goal=0.01;%训练精度 net.trainParam.lr=0.001;%学习速率 net=train(net,p,Z1); Z2=sim(net,p); %将Z1和Z2转换成ZZ1(20*20),ZZ2(20*20) ZZ1=zeros(m,m); ZZ2=zeros(m,m); for i=1:m, for j=1:m, ZZ1(i,j)=Z1(1,(i-1)*m+j); ZZ2(i,j)=Z2(1,(i-1)*m+j); end end %期望输出的曲面图 subplot(1,2,1) surf(X,Y,ZZ1) title(期望输出); %实际输出的曲面图 subplot(1,2,2) surf(X,Y,ZZ2) title(实际输出); 实验结果及分析: 运行后,我们得到期望输出和实际输出的曲面图(图1),经过比较,原曲面图和非线性函数的曲面图很接近,这说明,经过训练,BP网络对非线性函数的逼近效果相当好。 图1 下面对网络规模、样本集大小、学习速率等条件进行修改并观察结果,分析这些因素对网络的学习能力、推广能力和性能上的影响。 神经元数目n变化 n=5(图2) 图2 n=10(图3) 图3 比较图2和图3,可以看出,隐层神经元的数目对于网络逼近效果有一定的影响,一般来说,隐层神经元数目越多,则BP网络逼近非线性函数的能力越强,而同时网络训练所用的时间相对来说更长一些。 样本集大小 40*40(图4) 图4 20*20(图5) 图5 比较图4和图5,可以看出,样本集的数目对于网络逼近效果有一定的影响,一般来说,样本集的数目越多,网络逼近效果越好。 学习速率 lr=0.001(图6) 图6 lr=0.01(图7) 图7 比较图6和图7,可以看出,学习速率对于网络逼近效果有一定的影响,一般来说,学习速率越小,网络逼近效果越好,但是学习速率过小会造成训练时间过长。 BP算法的改进 拟牛顿算法 图8 Levenberg-Marquardt算法 图9 在前馈反向传播网络应用中,对某一特定的问题,很难确定哪种训练算法最好,因为这取决于问题的复杂性、训练样本数、网络权重和阈值个数以及期望误差等许多因素。一般来说,网络具有几百个权值时,采用Levenberg-Marquardt算法收敛速度最快。如果要求正确训练时,该算法的优点更明显。 分类 实验内容:进行Iris数据分类实验,通过实验选择具有最佳性能的网络结构和训练参数,并与最近邻分类器进行性能对比。 实验过程: 具体程序: K=3;%类别 N=50;%每类的样本数目 M=4;%样本的维数 Q=zeros(M,N*K);%定义样本矩阵 %---------------读入数据-------------------------- [a,b,c,d]=textread(iris.txt,%f %f %f %f %*s, delimiter, , ); %放入4*150的矩阵中,每一列为一个样本 for i=1:N*K, Q(1,i)=a(i

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档