基于BP神经网络的非线性函数拟合系统实验分析与结果.docx

上传人:p** 文档编号:771264 上传时间:2024-02-26 格式:DOCX 页数:8 大小:164.66KB
下载 相关 举报
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第1页
第1页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第2页
第2页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第3页
第3页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第4页
第4页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第5页
第5页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第6页
第6页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第7页
第7页 / 共8页
基于BP神经网络的非线性函数拟合系统实验分析与结果.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于BP神经网络的非线性函数拟合系统实验分析与结果.docx》由会员分享,可在线阅读,更多相关《基于BP神经网络的非线性函数拟合系统实验分析与结果.docx(8页珍藏版)》请在第壹文秘上搜索。

1、基于BP神经网络的非线性函数拟合系统实验分析与结果前几章已经完成了实验的数据准备并做好了相关理论研究,有了一定的理论基础。本章将通过MATLAB软件搭建拟合模型,完成BP神经网络的训练和预测工作,并对最后的模型根据评价指标进行评价。4.1 实验平台的搭建本实验的MATLAB软件版本为2018a,CPU15930OH,操作系统Windows-64位,显卡GTXIO50Ti3G0搭建步骤如下:(1)新建工程打开MATLAB,点击主页,选择新建一工程一空白工程,如图4-1所示。图4-1新建工程(2)新建M程序文件点击主页,选择新建脚本,然后点击保存并对文件重命名为data.m,如图42所示。图4-2

2、新建M程序文件完成上述流程,表明程序运行环境搭建完毕,通过在程序文件里面编写程序完成实验内容。4.2 数据归一化数据处理是数据拟合、预测和分类的关键步骤,对实验精度有很大影响。本实验的数据是2个输入一个输出。在进行BP网络训练之前,由于每一项输入指标量化标准各不相同,不利于直接进行训练。并且由于输入数据的单位不一样,有些数据的范围差别很大,导致神经网络收敛慢,训练时间长。所以在此之前,对样本输入进行归一化处理。4.2.1 最大-最小归一化最大-最小归一化是将Data经过公式映射在固定的范围内,具体公式如下:y=ww(4.1)naxXmin最大最小归一化可以将数据各个特征映射在一定范围,消除量纲

3、对数据特征的影响,不改变数据分布,加快模型的训练学习。4.2.2 Z-Score归一化Z-Score归一化是将原始数据进行标准化,其中方差为a,均值为b,具体公式如下:Z-Score归一化可以将离群点的数据规范化,改变原有数据分布,减少离群点数据对模型的影响。根据非线性函数的特点,本实验选择最大最小归一化方法,并将数据归一化在之间。4.3 BP神经网络模型的结构设计原则4.3.1 网络层数的确定由于在数学上已经证明,三层神经网络可以处理任何复杂的线性或者非线性问题,能完成任意m维度到n维度的映射。由此本文使用三层感知器的神经网络结构,其包含了输入层、隐含层和输出层。4.3.2 输入数据和输出数

4、据的确定将第二章中给出的非线性函数的输入作为输入向量。根据公式(4.1)对输入数据进行数据预处理。本实验将非线性函数作为样本,对其进行模型的建立、仿真和预测。根据第三章的研究,将2个输入分别用xl,x2进行表示,并将这两个输入当作BP神经网络的输入变量。将非线性函数的输出值当作输出变量。当前非线性函数一共生成了2000个数据,在本文中随机选取1900个数据作为TrainingSamPIe来构建神经网络,剩下的100个数据作为TeStSamPle进行仿真。4.3.3 各层节点的设计原则(1)输入层节点设计原则输入层节点要与第二章的非线性数据输入个数相匹配,彼此之间一一对应。输入层节点数确定为2个

5、。(2)隐含层节点数设计原则隐含层节点的作用是从输入的训练样本中提取有用的训练信息并且存储样本之间的联系和规律,它能够将输入数据和输出数据之间的函数映射关系很好地反映出来。因此隐含层节点数的多少直接说明了该神经网络抓取数据有效信息能力的强弱。当网络的隐含层节点数较少的时候,网络获取有效信息的能力也就越差,获取的数据可信度较低,输出的结果没有说服力;隐含层节点过多的时候,会导致网络结构过于复杂,这样会让网络学习过程变得极为漫长,并且最后会出现过度拟合的现象。当前学术界还没有一个公认的理论公式确切计算隐含层的节点数,但是比较常用的一个方法是试凑法。做法是对同一训练样本,从小到大依次设置隐含层节点数

6、,从中找出误差最小时候所对应的隐含层阶段数。此外,以下的经验公式可以作为试凑法的初始值。m=yn+1+(4.3)m=IogZ(4-4)m=4nl(4-5)利用上式,根据算法的特性,不断的训练过程中能将对网络影响小的权值逐步调整到0,这样就能够删除多余的节点。迭代到最后不能再删除的时候,就是最适合的隐含层节点数。本文的隐含层神经元节点数的确定由试凑法在后面进行。(3)输出层节点数设置原则输出层的数据来源于我们最后期望评估的结果,因此输出层节点数取Io4.4 神经网络结构设计和训练根据总结上述原则,因此本文所构建的模型是三层BP神经网络模型,输入层节点数为20,隐含层节点数为未定,学习率暂选默认0

7、.01,输出层节点数为1,学习率取0.01,允许误差选择系统默认值,HiddenLayer激活函数选择SigmoidFunction,输出层激活函数采用TanhFunction,训练函数采用Iraiglm,学习函数采用Iearndm,性能函数选择Mse函数。MATLAB对应BP神经网络语句如下:net=newff(trainsample(1:2,:),trainsample(3,:),23,logsig,tansig,trainlm);图4-3非线性函数拟合模型的MATLAB结构图4.4.1 神经网络模型隐含层节点数的确定综合4.3.3中的公式,将HiddenLayer神经元个数范围确定在14

8、,25之间的正整数。之后根据控制变量法,保持其他参数不变,变动隐含层神经元节点数,对每一次的训练数据的误差进行统计和分析,将Mse最低的神经元节点数确定为本文的HiddenLayer神经元个数。先将学习率设置为系统默认值0.01,以此为依据对14,25间不同的隐含层节点数进行数据训练,以期得到最优的结果,最终得到的不同隐含层节点数下网络的结果误差统计表如表4-1所示。表4-1隐藏层神经元训练对比表隐含层的神经元数均方误差训练次数140.15242000150.06472000160.05222000170.04822000180.03492000190.03122000200.03752000

9、210.02402000220.03182000230.02742000240.03972000250.00902000由表4-1所得,均方误差最小值出现在隐含层神经元为25时。因此神经网络的最优隐含层神经元数目确定为25,其神经网络结构图如图4-3所示。,NeuralNetworkTraining(nntraintool)NeuralNetworkHiddenLayerOutputLayer25图4-3BP神经网络拟合模型的结构图4.4.2 神经网络模型学习率的确定由于BP神经网络的学习率一般默认在0.01-0.1之间,因此本文选择分别取0.01,OJ之间的10组数据,将隐含层神经元固定在2

10、5个,并且保持其他参数不变的条件之下分别将学习率设定为0.01,0.02.0.1,并且对原始数据进行网络训练,将所得的误差结果进行统计得到表4-2。表4-2学习率训练表学习率均方误差训练次数0.010.009020000.020.012720000.030.029120000.040.022020000.050.013220000.060.015320000.070.015120000.080.009520000.090.015120000.10.02242000根据表4-2的内容所示,当学习率取0.01时整个原始数据集的均方误差值最小。4.4.3 神经网络模型训练及仿真结果本文使用MATLA

11、B软件的神经网络工具箱对整个非线性函数拟合模型进行仿真和训练。(1)训练数据的输入和输出在MATLAB软件中新建脚本,并且清空环境变量,导入数据包id.mat,中的数据文本,得到输入2OOO3的数值矩阵,如下图4-4所示。田 2OOO3 double3,680038.54243460056.971632400354976Ml 20432840031.6564236002.14001.920028.68641.70002749001480027.19(M1260026.58764.54004383564.120041.97443.90004021456845.7936图4-4神经网络数据导入图-

12、3X)20029.5796(2)随机产生训练集和测试集为了保证神经网络训练结果的可信性,因此本文从输入的2000个Sample中随机选取1900个SamPIe作为样本的训练集trainsample,剩下的100个SamPle作为Sample的测试集testsample,从而对训练结果进行检验和误差分析。(3)创建网络并进行网络训练根据前文所确定的神经网络的层数、InPUtLayer节点数、HiddenLayer节点数、OUIPUtLayer节点数、ACtiVationFUnCtiOn和学习函数,设定各参数值、创建所需的神经网络并进行网络训练。(4)训练结果分析把上一步计算得到的规范化后的数据样

13、本导入MATLAB软件,利用建立好的BP网络对样本数据进行训练,样本的预测值与测试集的真实结果之间的评价指标用相对误差E和决定系数R的平方进行表示。相对误差E越小,说明模型的性能越好。=1,2,.)(4-6)X经过训练之后,所得决定系数的值为0.99994,说明了整个网络性能非常好。下图4-5是对整个神经网络进行回归分析的过程,从图可知,基本上所有的回归分析系数都接近于1,这说明了整个神经网络模型具有良好的非线性映射能力和学习能力。,NeuralNetworkTrainingRegression(plotregression).Epoch243.Validationstop.文件(D美修三三(

14、YMQ)工M(DJEE(D)B(W)Training: R=0.99995CZooOd + as,F;Ln5noValidation: R=0.99994-0.5 O 0.5TargetTest:R=0.99992All:R=0.99994图4-5BP神经网络模型表现图4-6为误差分析图,从图中可以看出误差均小于0.2,满足拟合性能要求。图4-7为预测值与实际值的对比图,从图中可以看出预测值和实际值十分接近,说明拟合效果很好。0.250.20.150.10.05必0-005-0.1-015-0.2-0.25010203040507080901数据组数图4-6误差分析图IuHzIWpW图4-7预测值和真实值的对比图(5)预测结果与评价在训练结束之后,根据上述的训练结果,获得评价指标结果,如图4-8所示。平均绝对误差MAE为0.0090368,均方误差MSE为0.0063983,均方根误差RMSE为007999,满足系统性能指标要求。误差计算平均绝对误差MAE为:0,0090368均方误差MSE为:0.0063983均方根误差RMSE为:0.07999图4-8性能指标结果图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!