基于BP神经网络的非线性函数拟合.docx
- 文档编号:7981908
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:21
- 大小:388.97KB
基于BP神经网络的非线性函数拟合.docx
《基于BP神经网络的非线性函数拟合.docx》由会员分享,可在线阅读,更多相关《基于BP神经网络的非线性函数拟合.docx(21页珍藏版)》请在冰豆网上搜索。
基于BP神经网络的非线性函数拟合
基于BP神经网络的非线性函数拟合
摘要:
本文建立BP神经网络对一个多输入多输出系统的二元非线性函数进行拟合,仿真实验表明:
在样本数据充足且不含噪声的情况下,训练的精度越高,逼近的效果越好;数据不充足且不含噪声时,训练精度的高低在一定范围内对于网络性能没有决定性的影响,网络性能主要取决于初始化;不管训练数据是否充足,若含有噪声,训练精度过高会使网络泛化能力降低。
0引言
作为当前应用最为广泛的一种人工神经网络,BP网络在函数逼近、模式识别、数据压缩、智能控制等领域有着非常广泛的应用。
BP网络由大量简单处理单元广泛互联
而成,是一种对非线性函数进行权值训练的多层映射网络,结构简单,工作状态稳定,具有优良的非线性映射能力,理论上它能够以任意精度逼近任意非线性函数。
BP神经
网络通过学习能够存储大量输入输出样本中蕴含的映射关系,只需提供足够的样本模式对BP网络进行训练,而无需事先了解数学方程。
本文采用BP神经网络解决下列函数拟合问题。
函数逼近:
设计一个神经网络拟合下列多输入多输出函数:
y1=2+x1RP1.5-1.5sin(3x2);y2=x2sin(x1)+x1cos(x2);1 产生200个数据,其中100个用来训练网络,另外100个用于网络模型的测试。 1BP神经网络结构和算法 一个典型的3层BP神经网络结构如图1所示,包括输入层、隐含层和输出层。 各层神经元之间无反馈连接,各层内神经元之间无任何连接。 其中隐含层的状态影响输入输出之间的关系,及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。 BP神经网络的学习过程由正向传播和反向传播组成。 在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。 在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。 反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精 度要求。 BP算法的实质是求取误差函数最小值问题,通过多个样本的反复训练,一般采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。 隐含节点 图1典型3层BP神经网络结构图 2用于函数拟合的BP神经网络模型的建立 为建立函数拟合的BP神经网络模型,一般要考虑以下几步: (1)样本数据的产生 为简单起见,在X1,X2均属于[1,5]区间内选择均匀分布的200个数据点分别 作为训练和测试样本。 如图2所示。 训练和测试数据 5 ・1 Dr ― —*— 1 —t~~r- -H卡 训练数据 4.5 + 测试数据 +■ * 4- * +■ ★ *- +弓T 4 • * * *, 3.5 * * * * * * *'r 3 、* * 1b * * *■7 4 +- +■ +■、T 2.5 * * ★ * * ¥ +'尸 2 k0 - 右 4- 土 * *" 1.5 4r 4 4- * 缶 4 ★ +■Hr 1 l! b 1 r i i 1' 1 1.5 2 2.5 3 3.5 4 4.55 x1 图2数据样本 (2)数据预处理 通常需要将样本数据归一化,由于这里的数据变化范围不大,所以暂不考虑对数据的归一化。 (3)网络结构的选择 1网络层数: 理论证明,在不限制隐层节点数目的情况下,单隐层BP网络可 以实现任意非线性映射。 但本题中,仿真表明采用两个隐层更为合适。 2输入输出层节点数: 本题中,所拟合的函数为两个输入变量,两个输出变量。 所以BP网络输入层设置两个节点,输出层也设置两个节点。 3隐层节点数: 隐含层节点数目的选择是一个十分复杂的问题,到目前为止, 还没有用数学公式来明确表示应该怎样确定隐含层的节点数目。 节点数目太少,不 能很好的表达样本数据种所蕴含的规律;但隐含层节点太多又导致学习训练时间太长,误差也不一定最佳,还可能出现“过度吻合”的问题,使得泛化能力降低。 本题中隐层节点的选取主要采用试凑的办法。 如前所述,这里设置两个隐层,第一层节点设置分为3和30两种,第二层节点设置分为2和20两种,以便于对比。 4神经元的传递函数: 隐层采用单极性sigmoid函数“tansig”输出层采用 线性传递函数“purelin”。 (4)训练及仿真 采用批训练方法,一批数据即为全部100个训练样本。 输入xi,X2€[1.2,4.8], 输出y1€[1.8660,14.0105];y2€[-7.9795,4.9380]。 通过对100个样本进行一次整体学习后,再统一修改一次网络的权。 学习算法 采用学习率可变的动量BP算法(traingdx)。 训练目标为网络输出与样本输出之间的均方误差(mse),训练精度可根据需要设定。 BP网络训练完成以后,即可用于仿真。 将测试数据输入网络,得到的网络输出与样本输出进行比较,即可分析网络的泛化能力。 当然,通过网络仿真的数据需要经过适当的反归一化变换才能够与测试样本的输出直接进行比较。 (5)测试及仿真 为检验所训练出的网络是否满足要求,需要对其进行仿真测试。 测试数据的输入x1, X2€[1.4,5.0],输出y1€[2.1587,14.5593];y1€[-8.0943,5.3798]。 3模型仿真及验证 按前述方法用下面的指令创建神经网络: net=newff([1.24.8;1.24.8],[3,2,2],{'tansig','tansig','purelin'},'traingdx', 'learngdm'); 待拟合的函数图形化结果如图3所示。 图3(a)为y1,y2的三维视图,图3(b)为y1的二维 投影视图,图3(c)为y2的二维投影视图。 1y 待拟合函数的三维视图 5 平面(2=截曲面M所得的曲线在-y面上的投影 图3(b)待拟合函数y1的投影视图 图3(c)待拟合函数y2的投影视图 图3待拟合的函数图形化结果 首先采用学习率可变的动量 BP算法(其训练函数为’traingdx' ,取不同的隐含层得到 的训练结果如图4,测试结果如图5: 1)隐含层为3,2,epochs=30000,goal=0.001; BP网络训练输出曲面y1 1y 4 4 3 2 x2 x1 11 3 BP网络训练输出曲面y2 图4(a)网络训练输出曲面 网络训练误差曲面 0.2 0.1 0 -0.1 3 x1 -0.2 5 差误出输 图4(b)网络训练输出误差曲面 以下为网络测试结果: 图5(a)仿真测试输出曲面 5 10* 图5(b)仿真测试输出误差曲面 15225 somoEK^.亦 U oD EE」□-! ■□p-axtlE-GFH电士 此时训练的收敛速度太慢,网络训练误差较大,函数逼近效果不是很好,有待改进 2)隐含层为30,20,epochs=30000,goal=0.001 图6(a)网络训练输出曲面 差误出输 网络训练误差曲面 5 差误出输 x2 11 x1 5 网络训练误差曲面 图6(b)网络训练输出误差曲面 irf 二計mmlLIEnnuEcn-vs- EfelT'^TirijPGckarK易i*heH就沖巩十眇 1rf ID 10 ID 10 0501001503C0? W3CD EDIEattl^ 图6(c)网络训练过程的误差曲线(goal=0.001,用时1秒) 网络测试结果如下: 5 图7(a)网络测试输出曲面 5 0 差误出输 55 图7(b)网络测试输出曲面及误差 直P・r£0(r・i首l(fl itf 氐却'•印rr■]H航xrn^rtBi? N夬甜3pi: h昭 0100300U)dOITOSMTOOTM E€lEpq曲 ID 10 图7(c)网络测试过程的误差曲线(goal=0.001,用时4秒) 对比可看出,虽然此时网络训练和测试速度提高很多,但网络性能并没有随着隐含 层层数的增加而有显著改善,反而出现了“过适配”问题。 网络训练误差有所减小,但网络测试误差没有显著下降。 从误差曲面看,反而有局部的误差增大。 从前面的实验结果可以看出: 并不是网络隐含层层数越多,函数逼近的效果就越好。 即使在相同的训练精度下,网络的性能也可能因初始化的不同而在性能上有很大差别。 4.网络性能的改善 为提高BP网络的泛化能力。 可以从几个方面考虑: 一是网络结构参数,;二是该进训练方法;三是提高数据质量。 这里采用自动归一化法提高网络的泛化性能。 贝叶斯归一化法基于贝叶斯框架理论。 按照该理论,假定网络的权值和阀值是按照 指定的分布随机可变的,归一化参数与这些分布的位置随机变量有关,于是可以用统计 的方法估计出这些参数。 其实现函数是“trainbr”。 利用这个函数训练BP网络,可以 使得网络响应更加平滑,提高泛化能力。 相应的网络训练语句为: net=newff([1.24.8;1.2 4.8],[3,2,10],{'tansig','tansig','purelin'},'trainbr','learngdm'); 0 2 y -5 -10 图8(a).自动归一化后网络训练输出曲面 图8(b).自动归一化后网络训练误差曲面 B«etFinmgPerformaflta■■血M笛即『h7- [吧PetgwirF™X Irf .1』glulnpJlLL 1D 用时1秒) 图8(c)自动归一化后网络训练过程的误差曲线(goal=0.001, 网络测试结果: 2 y -10 5 -5 图9(a).自动归一化后网络测试输出曲面 网络测试误差曲面 5 5o515a0- 差误出输 网络测试误差曲面 差误出输 图9(b).自动归一化后网络测试的误差曲面 '^Ppr(plvVpptfni*).|FX] Train Coal Ml J 口」c口E口jjaj ha JIc 图9(c)自动归一化后网络测试的误差曲线(goal=0.001,用时1秒) 采用这种方法训练出来的网络,注重泛化能力,不追求每一个数据点的精确逼近, 使输出曲线比较平滑,而且很快就能达到训练目标。 不过测试显示,误差并没有急剧减小,而是存在相对稳定的误差。 5结束语 本文首先简单介绍了BP神经网络的原理,接着针对函数拟合的问题,建立了相应的BP神经网络模型,然后对建立的模型进行了仿真测试和验证,最后采用自动归一化法对网络进行了改进,以提高网络的泛化能力,使得函数逼近的效果更加显著。 若要提高网络模型的函数拟合性能,一方面需要增加训练点数,以保证有充分多、充分好的数据,另一方面应考虑优化网络结构。 网络本身的结构对于神经网络的性能具有决定性的影响。 在实际工程中,我们获得数据的数量、质量可能会受到客观条件的限制。 因此,在生成有限数据的条件下,研究如何从优化网络结构的角度来提高函数逼近的效果将更具现实意义。 参考文献: [1]周开利,康耀红.神经网络模型及其Matlab仿真程序设计[M].北京: 清华大学出版社,2005. [2]葛哲学,孙志强.神经网络理论与MatlabR2007实现[M].北京: 电子工业出版社,2008. [3]陈黎霞,裴炳南.基于Bayesian正则化算法的非线性函数拟合[J].河南科学,23 (1),2005,23-25. THANKS 致力为企业和个人提供合同协议,策划案计划书,学习课件等等 打造全网一站式需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BP 神经网络 非线性 函数 拟合