您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 人工神经网络及其数据拟合中的应用
人工神经网络及其数据拟合中的应用1人工神经网络及其数据拟合中的应用摘要本文将讲述人工神经网络及其数据拟合中的应用。人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及功能的一种抽象数学模型。它在模式识别,图像处理,智能控制,组合优化,金融预测与管理通信机器人以及专家系统等领域得到广泛的应用。文章首先介绍人工神经元和人工神经网络的数学结构,然后介绍神经网络的建立、训练与泛化的概念以及MATLAB语言的神经网络工具箱在解决这些问题中的应用。通过实际例题来巩固这些知识点。关键词:人工神经网络拟合径向基结构MATLAB2一、神经网络基础知识1.1人工神经元模型(i)一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制。(ii)一个求和单元,用于求取各输入信号的加权和(线性组合)。(iii)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在(0,1)或(-1,1)之间)。此外还有一个阈值以上作用可分别以数学式表达出来:式中nxxx,,21为输入信号,为神经元k之权值,为线性组合结果,为阈值,为激活函数又称为传输函数,为神经元k的输出。常用的传输函数有:Sigmoid函数和对数Sigmoid函数。在神经元中,权值和传输函数是两个关键的因素。权值的物理意义是输入信号的强度,多个神经元则是连接强度。神经元的权值应该通过神经元对样本点反复的学习过程而确定,这个过程称为训练。1.2神经网络结构从连接方式上可将其划分为前馈型网络和反馈型网络。(i)前馈型网络各神经元接受前一层的输入,并输出给下一层,没有反馈。结点分为两类,即输入单元和计算单元,每一计算单元可有任意个输入,但只有一个输出(它可耦合到任意多个其它结点作为其输入)。通常前馈网络可分为不同的层,第i层的输入只与第1−i层输出相连,输入和输出结点与外界相连,而其它中间层则称为隐层。(ii)反馈型网络所有结点都是计算单元,同时也可接受输入,并向外界输出。1.3神经网络结构工作方式神经网络的工作过程主要分为两个阶段:第一个阶段是学习期,此时各计算单元状态不变,各连线上的权值可通过学习来修改;第二阶段是工作期,此时各连接权固定,计算单元状态变化,以达到某种稳定状态。从作用效果看,前馈网络主要是函数映射,可用于模式识别和函数逼近。反馈网络按对能量函数的极小点的利用来分类有两种:第一类是能量函数的所有极小点都起作用,这一类主要用作各种联想存储器;第二类只利用全局极小点,它主要用于求解最优化问题。所以我们知道,神经网络要解决的问题是通过已知数据,反复训练神经网络,得到加权量和阀值,使得神经网络的计算输出信号与实际期望输出信号误差最小。一种较适合的方式就是使得误差的平方和最小,即pjkkkkkjkjkvyuvxwu1)(,,kpkk(.)kyiy3其中上标k为样本组数。对于wv采用共轭梯度法来搜索最优值。给出权值和的初值和,则可以通过下面的递推算法修正权值MATLAB里利用newff()函数来建立前馈的神经网络模型,其调用格式为,分别为列向量,存储各个样本输入数据的最小值和最大值,第二个输入变量是一个行向量,将神经网络的节点数输入,单元的个数是隐层的层数;第三个输入变量为单元数组。1.4神经网络的训练与泛化建立了神经网络模型net,则可以调用train()函数对神经网络参数进行训练。调用格式为其中,变量为n*M矩阵,n为输入变量的路数,M为样本的组数,Y为m*M矩阵,m为输出变量的路数,X,Y分别存储样本点的输入和输出数据。由样本点数据进行训练得出训练后的神经网络对象net。神经网络训练完成后,可以利用该网络对样本区域内的其他输入量求解其输出值,这种求值的方法称为神经网络的泛化或仿真。可以理解为利用神经网络进行数据拟合,对新的输入数据调用sim()函数进行泛化,得出这些输入点处的输出矩阵,且二、径向基网络结构与应用径向基网络是一类特殊的神经网络结构。隐层的传输函数为径向基函数,输出的传输函数为线性函数,则此结构的网络称为径向基网络。径向基函数是一类特殊的指数函数,数学描述为其中,c为聚类中心点,b0为调节聚类效果的参数。径向基网络的使用:newrbe()和sim()实现神经网络的建立、训练和泛化全过程。三、例题详解3.1例10-29用神经网络对二元函数Nlmililivwyy11,2)^ˆ(minljltljtljtliljlijlijdvvaeww11,}),...,,{],,...,,[],,([2121kkMmfffhhhxxnewffnetmxMx),,(],,,[1YXnettrainEYtrnet),(11XnetsimY)(1xF)(2xF)()()(cxcxbcxbTeexxyyxexxyxfz22)2(),(24进行曲面拟合。求解思路:先考虑用下面的语句输入样本数据,选择3隐层网络,第1,2层有10个节点,采用Sigmoid函数作为输出函数,这样就可以用下面的语句度该网络进行训练,并得出如图所示的泛化结果。程序如下:[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);%注意这三个变量都是行向量net=newff([-33;-22],[10,10,1],{'tansig','tansig','tansig'});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)得到第2隐层有10节点的拟合图:泛化结果不是很理想,部分点处有较大的波动,现在设定第2层选择20个节点,则可以得处如图所示的泛化结果,可见泛化结果恶化,说明节点数选择过多。从总体拟合效果来看,因为样点不充足,不足以用神经网络得出较好的拟合结果,所以神经网络直接拟合结果较差。程序如下:net=newff([-33;-22],[10,20,1],{'tansig','tansig','tansig'});[net,b]=train(net,[x;y],z);%训练神经网络z1=sim(net,[x1;y1]);z2=reshape(z1,size(x2));surf(x2,y2,z2)得到第2隐层有20个节点拟合图:5从总体拟合效果看,样本点不充足,现在给出密集一点的样本点,则可以用下面的命令[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);%注意这三个变量都是行向量net=newff([-33;-22],[10,10,1],{'tansig','tansig','tansig'});net.trainParam.epochs=100;net.trainFcn='trainlm';[net,b]=train(net,[x;y],z);[x1,y1]=meshgrid(-3:.1:3,-2:.1:2);a=x1;x1=x2(:)';y1=y2(:)';figure;z1=sim(net,[x1;y1]);z2=reshape(z1,size(a));surf(x2,y2,z2);net=newff([-33;-22],[10,20,1],{'tansig','tansig','tansig'});[net,b]=train(net,[x;y],z);%修改节点个数后的泛化结果figure;z1=sim(net,[x1;y1]);z2=reshape(z1,size(a));surf(x2,y2,z2)分别得出当地2层节点个数为10和20时,二元曲面的拟合效果,如图下所示。可见拟合效果比前面的结果好,但远没有第8章中减少的样条插值的效果。-4-2024-2-1012-1-0.500.516-4-2024-2-1012-1-0.500.51对这个例子来说,在当前测试的组合下效果远远差于样条插值算法。用前馈神经网络拟合时,无论采用哪种训练方法,选择哪种网络和节点组合,得出的误差曲线基本均如图所示010203040506070809010010-310-210-1100100EpochsTraining-BluePerformanceis0.00138671,Goalis0当误差准则等于0.0021时不在减少,所以不能得出令人满意的拟合效果。在神经网络研究中,经常有人引用这样的结论结果,即三层BP网络可以按任意精度逼近给定函数。不过从这样普通的例子看,即使选定500个隐层节点,试用了神经网络工具箱中提供的群补训练算法,也无法得出小于10^-3的误差,故而此例子作者没有得出任意精度的可行的神经网络。3.2例10-22用径向基网络对二元函数xyyxexxyxfz22)2(),(27进行曲面拟合。利用已知工具箱函数进行径向基网络的曲面拟合,程序如下:[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);%注意这三个变量均应为行向量net=newrbe([x;y],z);[x2,y2]=meshgrid(-3:.1:3,-2:,.1:2);x1=x2(:)';y1=y2(:)';z1=sim(net,[x1;y1]);z2=reshape(z1,size(x2));surf(x2,y2,z2)得出的拟合效果如图:-4-2024-2-1012-1-0.500.511.5可见,这样得出的拟合效果远远优于BP网络,虽然略差于二维样条插值效果。径向基函数网络自动选择的隐层节点个数的为121。四、人工神经网络的评价人工神经网络是一种非传统算法思想,对大量数据的处理很有优势,可以看作是一种拟合,如样条插值等手段。但是任何算法都不是万能的,此方法也不例外。在本题中三次样条插值的精确度还更好,所以在处理大量的数据且要达到一定的定性效果时用这种方法不失为办法,盲目的套用不会达到预期的效果。五、参考文献[1]薛定宇,陈阳泉.高等应用数学问题的MATLAB求解.北京:清华大学出版社,2011,367-381[2]司守奎.数学建模算法.大连:海军航空工程学院出版社,2007,350-3568
本文标题:人工神经网络及其数据拟合中的应用
链接地址:https://www.777doc.com/doc-5121058 .html