资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验十二:神经网络及其在数据拟合中的应用(设计性实验)一、实验目的1、了解神经网络的基本知识。2、学会用 matlab 神经网络工具箱进行数据拟合。3、通过实例学习 matlab 神经网络工具箱的应用。二、实验原理人工神经网络是在对复杂的生物神经网络研究和理解的基础上发展起来的。我们知道,人脑是由大约 个高度互连的单元构成,这些单元称为神经元,每个神经元约有 个10 410连接。仿照生物的神经元,可以用数学方式表示神经元,引入人工神经元的概念,并由神经元的互连可以定义出不同种类的神经网络。1、神经网络的概念及结构单个人工神经元的数学表示形式如图 1 所示。其中, 为一组输入信号,nx,21L它们经过权值 加权后求和,再加上阈值 ,则得出 的值。可以认为该值为输入信号与iwbiu阈值所构成的广义输入信号的线性组合。该信号经过传输函数 可以得出神经元的输出)(f信号 。y图 1由若干个神经元相互连接,则可以构成一种网络,称为神经网络。由于连接方式的不同,神经网络的类型也不同。这里仅介绍前馈神经网络,因为其权值训练中采用误差逆向传播的方式,所以这类神经网络更多地称为反向传播(back propagation)神经网络,简称BP 神经网络。BP 网的基本结构如下图所示:MATLAB 的神经网络工具箱提供了现成的函数和神经网络类,可以使用 newff()函数来建立一个前馈的 BP 神经网络模型。newff()的具体调用格式如下:net=newff(x,y,h1,h2,hk,f1,f2,fk)其中,x 为输入向量,y 为输出(目标)向量。h1,h2,hk是一个行向量,用以存储神经网络各层的节点数,该向量的大小等于神经网络隐层的层数。f1,f2,fk为一个元胞数组,由若干个字符串构成,每个字符串对应于该层的传输函数类型。当这些参数设定好后,就建立了一个神经网络数据对象 net,它的一些重要属性在下表给出。2、神经网络的训练和泛化若建立了神经网络模型 net,则可以调用 train()函数对神经网络参数进行训练。该函数的调用格式为:net,tr,y1,e=train(net,x,y)其中,变量 x 为 的矩阵, 为输入变量的维数, 为样本的组数,y 为 的MnnMMm矩阵, 为输出变量的维数,x,y 分别存储样本点的输入和输出数据。由样本点数据进行m训练,则可以得出训练后的神经网络对象 net,且可以返回其它相关的内容,tr 为结构体数据,返回训练的相关跟踪信息,tr.epochs 为训练步数,tr.perf 为各步目标函数的值。y1 和e 矩阵分别返回由神经网络计算出的输出和误差矩阵。在训练过程中将每隔 25 步自动显示一次训练指标。训练结束后还可以用下面的语句绘制出目标值曲线:plotperf(tr)如果在给出的最大训练步数下无法得出满足要求的网络,则将给出错误的信息提示。用户可以再调用该函数一次,这时将以上次的训练结果加权矩阵为初值继续训练,用户可以循环调用该语句。如果误差在几次循环调用后仍无显著改善,则说明网络结构有问题,应该修改网络结构。神经网络训练完成后,可以利用该网络对样本区域内的其他输入量求解其输出值,这种求值的方法称为神经网络的仿真或泛化(generalization ) ,可以理解为利用神经网络进行数据拟合,对新的输入点数据 x1 调用 sim()函数进行泛化,得出这些输入点处的输出矩阵y1,且y1=sim(net,x1)神经网络是否成功不在于对样本点本身拟合误差的大小,而关键在于其泛化效果。如果对样本点以外的其他输入点均有较好的拟合效果,则说明该神经网络结构合理。否则,训练出来的神经网络没有应用价值。例:产生一组数据:x=-1 :0.2 :1 ;y=1./(1+25*x.2) ;x0=-1 :0.1 :1 ;y0=1./(1+25*x0.2) ;其中,x, y 为训练数据,x1, y1 为测试数据。由数据可知,输入变量 x 为一维数据,取值范围分别为-1,1。利用 newff()函数建立 BP 神经网络。设定其有 2 个隐层,第 1 隐层有 5 个节点,该层神经元采用 tansig 传输函数,第 2 隐层含 1 个节点,传输函数为 tansig()函数,建立神经网络模型:net=newff(x,y,5,tansig) ;net=train(net,x,y) ; %用 x,y 训练网络y1=sim(net,x0) ; %调用 sim()函数进行泛化figure,plot(x,y,o,x0,y0,x0,y1,:) ; %从图形上看神经网络的泛化能力 c用神经网络对二元函数进行曲面拟合。例:x,y=meshgrid(-3:.6:3, -2:.4:2); x=x(:); y=y(:); %生成训练样本数据z=(x.2-2*x).*exp(-x.2-y.2-x.*y); % 注意 x,y,z 均应为行向量net=newff(x;y,z); %二维输入 ,3 个隐层net.trainParam.epochs=1000; net.trainFcn=trainlm; %设定最大训练步数和训练算法net,b=train(net,x; y,z); % 训练神经网络x2,y2=meshgrid(-3:.1:3, -2:.1:2); x1=x2(:); y1=y2(:); %生成测试样本数据figure; z1=sim(net,x1; y1); %求出测试样本数据的拟合输出值z2=reshape(z1,size(x2); surf(x2,y2,z2) %画出拟合曲面x,y=meshgrid(-3:.6:3, -2:.4:2); x=x(:);y=y(:);z=(x.2-2*x).*exp(-x.2-y.2-x.*y); z=z(:);net=newff(-3 3;-2 2,10,10,1,tansig,tansig,tansig);net.trainParam.epochs=1000; net.trainFcn=trainlm; net=train(net,x;y,z); x2,y2=meshgrid(-3:.1:3, -2:.1:2); x1=x2(:); y1=y2(:); figure; z1=sim(net,x1; y1); z2=reshape(z1,size(x2); surf(x2,y2,z2)三、实验内容1、神经网络对一元函数进行曲线拟合。2、神经网络对二元函数进行曲面拟合。3、神经网络在数据拟合具体实例上的应用。四、实验报告实验十二:神经网络在数据拟合中的应用实验名称: 实验日期: 年 月 日姓名: 班级学号: 成绩: 一、实验目的1、了解神经网络的基本知识。2、学会用 matlab 神经网络工具箱进行数据拟合。3、通过实例学习 matlab 神经网络工具箱的应用。二、实验内容及步骤1、已知数据:x 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1y .3 .5 1 1.4 1.6 1.9 .6 .4 .8 1.5 2利用神经网络在0.1区间上绘制出样本对应的函数曲线。尝试不同的神经网络结构和训练算法,将神经网络的曲线拟合结果和实验十一的三次多项式拟合结果进行比较。(1) 利用神经网络算法拟合曲线。程序:x=0:0.1:1;y=0.3 0.5 1 1.4 1.6 1.9 0.6 0.4 0.8 1.5 2;x0=0:0.01:1;net=newff(0,1,20,1,tansig,tansig);net.trainParam.epochs=1000;net=train(net,x,y);figure;y0=sim(net,x0);plot(x,y,+,x0,y0,o)legend(原始数据, 拟合数据)运行结果:(2)不同神经网络结构和训练算法的比较。程序:x=0:0.1:1;y=0.3 0.5 1 1.4 1.6 1.9 0.6 0.4 0.8 1.5 2;x0=0:0.01:1;net=newff(0,1,30,1,tansig,tansig);net.trainParam.epochs=1500;net.trainFcn=trainlm;net=train(net,x,y);figure;y0=sim(net,x0);plot(x,y,+,x0,y0,o)legend(原始数据, 拟合数据)0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.500.511.52原原原原原原原原运行结果:(3)与三次多项式拟合进行比较。神经网络的曲线拟合结果远远不如实验十一的三次多项式拟合结果,因为数据个数本身就很有限,所以神经网络的拟合效果不好。2、 “人口问题”是我国最大社会问题之一,估计人口数量和发展趋势是我们制定一系列相关政策的基础。有人口统计年鉴,可查的我国从 1949 年至 1994 年人口数据智料如下:年份 1949 1954 1959 1964 1969 1974 1979 1984 1989 1994人口数 (百万) 541.67 602.66 672.09 704.99 806.71 908.59 975.42 1034.75 1106.76 1176.74分析:(1)在直角坐标系上作出人口数的图象。(2)用神经网络方法拟合数据,并算出 1999 年人口数。(1)程序:x=1949:5:1994;y=541.67 602.66 672.09 704.99 806.71 908.59 975.42 1034.75 1106.76 1176.74;plot(x,y)title(1949-1994 年我国人口数图像 )运行结果:(2)程序:x=1:10;y=0.54167 0.60266 0.67209 0.70499 0.80671 0.90859 0.97542 1.03475 1.10676 1.17674;x0=1:0.01:10;net=newff(1,10,50,1,tansig,tansig);net.trainParam.epochs=5000;net.trainFcn=trainlm;net=train(net,x,y);figure;y0=sim(net,x0);plot(x,y,+,x0,y0,o)legend(原始数据, 拟合数据)运行结果:3、已知某处山区地形选点测量坐标数据为:x=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5y=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6海拔高度数据为:z=89 90 87 85 92 91 96 93 90 87 8292 96 98 99 95 91 89 86 84 82 8496 98 95 92 90 88 85 84 83 81 8580 81 82 89 95 96 93 92 89
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号