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

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

ID:55631004

大小:707.00 KB

页数:13页

时间:2020-05-21

BP神经网络的构建与使用.doc_第1页
BP神经网络的构建与使用.doc_第2页
BP神经网络的构建与使用.doc_第3页
BP神经网络的构建与使用.doc_第4页
BP神经网络的构建与使用.doc_第5页
资源描述:

《BP神经网络的构建与使用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、BP神经网络的构建与使用一、函数逼近:1.实验内容:选取为测试函数,其中,。构造独立的训练样本集和检验样本集,实验在不同的网络规模、样本集大小、学习速率等条件下,网络的学习能力、推广能力和性能上的差异。2.实验过程:用MATLAB构建并使用BP神经网络,这里网络训练采用Levenberg-Marquardt算法。具体程序:k=0.05;%随机数据的选取精度m=1.0/k;%矩阵的行或列的数据个数X=[k:k:1];Y=[k:k:1];%输入矩阵2*400p=zeros(2,m*m);fori=1:m,f

2、orj=1:m,p(1,(i-1)*m+j)=X(i);p(2,(i-1)*m+j)=Y(j);endend%输出矩阵1*400Z1=zeros(1,m*m);fori=1:m,forj=1:m,Z1(1,(i-1)*m+j)=sin(2*pi*X(i))*sin(2*pi*Y(j));endend%BP神经网络n=10;%隐层神经元数目%建立BP网络结构,选择隐层和输出层神经元传递函数分别为%tansig函数和purelin函数%网络训练采用Levenberg-Marquardt算法trainlmne

3、t=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);fori=1:m,

4、forj=1:m,ZZ1(i,j)=Z1(1,(i-1)*m+j);ZZ2(i,j)=Z2(1,(i-1)*m+j);endend%期望输出的曲面图subplot(1,2,1)surf(X,Y,ZZ1)title('期望输出');%实际输出的曲面图subplot(1,2,2)surf(X,Y,ZZ2)title('实际输出');1.实验结果及分析:运行后,我们得到期望输出和实际输出的曲面图(图1),经过比较,原曲面图和非线性函数的曲面图很接近,这说明,经过训练,BP网络对非线性函数的逼近效果相当好。图1

5、下面对网络规模、样本集大小、学习速率等条件进行修改并观察结果,分析这些因素对网络的学习能力、推广能力和性能上的影响。1)神经元数目n变化n=5(图2)图2n=10(图3)图3比较图2和图3,可以看出,隐层神经元的数目对于网络逼近效果有一定的影响,一般来说,隐层神经元数目越多,则BP网络逼近非线性函数的能力越强,而同时网络训练所用的时间相对来说更长一些。1)样本集大小40*40(图4)图420*20(图5)图5比较图4和图5,可以看出,样本集的数目对于网络逼近效果有一定的影响,一般来说,样本集的数目越多,

6、网络逼近效果越好。1)学习速率lr=0.001(图6)图6lr=0.01(图7)图7比较图6和图7,可以看出,学习速率对于网络逼近效果有一定的影响,一般来说,学习速率越小,网络逼近效果越好,但是学习速率过小会造成训练时间过长。1.BP算法的改进拟牛顿算法图8Levenberg-Marquardt算法图9在前馈反向传播网络应用中,对某一特定的问题,很难确定哪种训练算法最好,因为这取决于问题的复杂性、训练样本数、网络权重和阈值个数以及期望误差等许多因素。一般来说,网络具有几百个权值时,采用Levenberg

7、-Marquardt算法收敛速度最快。如果要求正确训练时,该算法的优点更明显。一、分类1.实验内容:进行Iris数据分类实验,通过实验选择具有最佳性能的网络结构和训练参数,并与最近邻分类器进行性能对比。2.实验过程:具体程序:K=3;%类别N=50;%每类的样本数目M=4;%样本的维数Q=zeros(M,N*K);%定义样本矩阵%---------------读入数据--------------------------[a,b,c,d]=textread('iris.txt','%f%f%f%f%*s'

8、,'delimiter',',');%放入4*150的矩阵中,每一列为一个样本fori=1:N*K,Q(1,i)=a(i);Q(2,i)=b(i);Q(3,i)=c(i);Q(4,i)=d(i);end%将数据分成两部分,一部分用于训练,一部分用于测试%等间距的方式抽取数据xn_test=zeros(M,N*K/2);xn_train=zeros(M,N*K/2);fori=1:K*N/2,forj=1:M,xn_test(j,i)=Q(j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。