基于BP神经网络的非线性函数拟合
BP神经网络逼近非线性函数

应用BP 神经网络逼近非线性函一、实验要求1、逼近的非线性函数选取为y=sin(x 1)+cos(x 2) ,其中有两个自变量即x1,x2,一个因变量即y。
2、逼近误差<5% ,即:应用测试数据对网络进行测试时,神经网络的输出与期望值的最大误差的绝对值小于期望值的5% 。
3、学习方法为经典的BP 算法或改进形式的BP 算法,鼓励采用改进形式的BP 算法。
4、不允许采用matlab 中现有的关于神经网络建立、学习、仿真的任何函数及命令。
二、实验基本原理2.1神经网络概述BP 神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传播,误差反向传播。
在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。
每一层的神经元状态只影响下一层神经元状态。
如果输出层得不到期望输出,则转入反向传播,根据预判误差调整网络权值和阈值,从而使BP 神经网络预测输出不断逼近期望输出。
BP 神经网络的拓扑结构如图所示。
2.2BP 神经网络训练步骤BP 神经网络预测前首先要训练网络,通过训练使网络具有联想记忆和预测能力。
BP 神经网络的训练过程包括以下几个步骤。
步骤 1 :网络初始化。
根据系统输入输出序列(X,Y) 确定网络输入层节点数n 、隐含层节点数l、输出层节点数m ,初始化输入层、隐含层和输出层神经元之间的连接权值ωij,ωjk ,初始化隐含层阈值a,输出层阈值 b ,给定学习速率和神经元激励函数。
步骤 2 :隐含层输出计算。
根据输入变量X,输入层和隐含层间连接权值ω ij 以及隐含层阈值a,计算隐含层输出H 。
2.3 附加动量法经典 BP 神经网络采用梯度修正法作为权值和阈值的学习算法, 从网络预测误差的负梯 度方向修正权值和阈值, 没有考虑以前经验的积累,学习过程收敛缓慢。
对于这个问题,可 以采用附加动量法来解决,带附加动量的算法学习公式为(k) (k 1) (k) a (k 1) (k 2)式中,ω (k),ω(k-1) ,ω(k-2)分别为 k ,k-1,k-2 时刻的权值; a 为动量学习率,一般取值 为 0.95 。
基于BP神经网络的非线性函数拟合系统设计代码

基于BP神经网络的非线性函数拟合系统设计代码data.m 数据集生成代码clc %关闭所有窗口clear %清除所有变量close all %关闭所有界面X1=-5:0.22:5; %x1的范围X2=X1; %x2的范围[x1,x2]=meshgrid(X1,X2); %x1,x2生成网格y=x1.^2+x2.^2; %根据公式计算ysurf(x1,x2,y); %画曲面图d=[x1(1:2000)' x2(1:2000)' y(1:2000)']; %获取前2000个数据shading interp %平滑曲面save('d.mat','d'); %保存数据main.m BP神经网络的模型建立,训练,预测和评价clc %关闭所有窗口clear %清除所有变量close all%关闭所有界面%%%数据导入load('d.mat');D=d;%网络训练y=D(:,3); %输出x=D(:,1:2); %输入[y,a1]=mapminmax(y',-1,1); %输出归一化%[x,a2]=mapminmax(x',-1,1); %输入归一化data1=[x;y]; %数据[trainsample,testsample] =dividerand(data1,19,1,0); %划分训练集和测试集%创建BP神经网络%创建网络net=newff(trainsample(1:2,:),trainsample(3,:),25,{'logsig','tansig'},'trainlm'); %隐层2个,神经元个数是[9,9]%设置训练次数net.trainParam.epochs = 2000;net.trainParam.lr=0.01; %学习率%设置收敛误差net.trainParam.goal=0.000001; %收敛误差%训练网络[net,tr]=train(net,trainsample(1:2,:),trainsample(3,:));%在训练集和测试集上的表现y_train_predict=sim(net,trainsample(1:2,:)); %训练结果y_test_predict=sim(net,testsample(1:2,:)); %测试结果predict=mapminmax('reverse',y_test_predict,a1); %预测输出反归一化output_test=mapminmax('reverse',testsample(3,:),a1); %输出反归一化error=predict-output_test; %计算误差plot(output_test,'bo-') %画图:测试实际结果hold on %多个曲线画在一张图像上plot(predict,'r*-') %画图:预测记过legend('期望值','预测值')xlabel('数据组数'),ylabel('值'),title('测试集预测值和期望值的对比')figureplot(error,'bo-') %误差曲线% axis([0,100,-0.4,0.4]) %横坐标范围[0 - 100],纵坐标范围[-0.4 - 0.4]xlabel('数据组数'),ylabel('值'),title('测试集误差曲线')[~,len]= size(output_test); %计算测试集的数量MAE1= sum(abs(error./output_test))/len; %计算MAE指标MSE1=error*error'/len; %计算MSE指标RMSE1=MSE1^(1/2); %计算RSME指标disp(['----------误差计算----------'])disp(['平均绝对误差MAE为:',num2str(MAE1)]) %显示结果disp(['均方误差MSE为:',num2str(MSE1)])disp(['均方根误差RMSE为: ',num2str(RMSE1)])。
基于BP神经网络的非线性函数拟合系统实验分析与结果

基于BP神经网络的非线性函数拟合系统实验分析与结果前几章已经完成了实验的数据准备并做好了相关理论研究,有了一定的理论基础。
本章将通过MATLAB软件搭建拟合模型,完成BP神经网络的训练和预测工作,并对最后的模型根据评价指标进行评价。
4.1 实验平台的搭建本实验的MATLAB软件版本为2018a,CPU I5 9300H,操作系统Windows-64位,显卡GTX 1050Ti 3G。
搭建步骤如下:(1)新建工程打开MATLAB,点击主页,选择新建→工程→空白工程,如图4-1所示。
图4-1 新建工程(2)新建M程序文件点击主页,选择‘新建脚本’,然后点击保存并对文件重命名为‘data.m’,如图4-2所示。
图4-2 新建M程序文件完成上述流程,表明程序运行环境搭建完毕,通过在程序文件里面编写程序完成实验内容。
4.2 数据归一化数据处理是数据拟合、预测和分类的关键步骤,对实验精度有很大影响。
本实验的数据是2个输入一个输出。
在进行BP 网络训练之前,由于每一项输入指标量化标准各不相同,不利于直接进行训练。
并且由于输入数据的单位不一样,有些数据的范围差别很大,导致神经网络收敛慢,训练时间长。
所以在此之前,对样本输入进行归一化处理。
4.2.1 最大-最小归一化最大-最小归一化是将Data 经过公式映射在固定的范围内,具体公式如下:min max minx-x y x x =- (4.1) 最大-最小归一化可以将数据各个特征映射在一定范围,消除量纲对数据特征的影响,不改变数据分布,加快模型的训练学习。
4.2.2 Z -Score 归一化Z -Score 归一化是将原始数据进行标准化,其中方差为a ,均值为b ,具体公式如下:x-b y a= (4.2) Z -Score 归一化可以将离群点的数据规范化,改变原有数据分布,减少离群点数据对模型的影响。
根据非线性函数的特点,本实验选择最大-最小归一化方法,并将数据归一化在[-1,1]之间。
基于BP神经网络的函数拟合算法研究

基于BP神经网络的函数拟合算法研究[摘要] 人工神经网络(Artificial Neural Network,ANN)是智能领域的研究热点,目前已经成功地应用到信号处理、模式识别、机器控制、专家系统等领域中。
在神经网络技术中,BP神经网络因具有结构、学习算法简单等特点,近年来得到广泛的关注,相关技术已经在预测、分类等领域中实现产业化。
本文针对经典的函数拟合问题,以BP神经网络为工具,力求分析BP神经网络隐含层神经元数目对网络性能以及函数拟合效果的影响。
通过Matlab的仿真实验结果表明,BP神经网络作为高效的计算智能工具,是实现复杂函数拟合的有效工具。
[关键字]人工神经网络;BP神经网络;函数拟合Function Fitting Based on BP Neural Network[Abstract] Artificial neural network is a hot topic in the field of intelligent,it has been successfully applied to the field of signal processing, pattern recognition, machine control, expert systems, etc.In the neural network technology, BP neural network due to having a structure learning algorithm and simple, it is widespread concern in recent years, related technologies have been forecasting, classification and other areas of industrialization. In this paper, a function for fitting the classic problems with BP neural network as a tool to seek to analyze the number of BP neural network hidden layer neuron impact on network performance and function fitting effect. Matlab simulation results show that, BP neural network as an efficient computational intelligence tools, is an effective tool to achieve complex function fitting[Keywords] Artificial neural networks; BP neural network; Function fitting1 引言 (1)1.1 研究意义 (1)1.2研究现状 (1)1.2.1函数拟合的工具及方法 (2)1.2.2 神经网络的发展现状 (3)1.3 本文研究内容 (3)1.4 本文的组织结构 (4)2 人工神经网络简介 (5)2.1人工神经网络特性 (5)2.2 人工神经网络的特点 (6)2.3人工神经网络的基本特性和结构 (6)2.4 人工神经网络的主要学习算法 (8)2.5 BP神经网络结构 (9)2.6 BP神经网络训练方法 (11)3 基于BP神经网络的函数拟合算法设计与实现 (14)3.1面向函数拟合的BP网络结构 (14)3.1.1 函数问题的提出 (14)3.1.2 建立BP神经网络 (15)3.1.3 网络仿真 (15)3.1.4 网络测试 (16)3.2 实验及其结果分析 (18)3.2.1 设置实验参数 (18)3.2.2 实验结果分析 (19)4 结论 (24)5 致谢语 (25)[参考文献] (26)1.1 研究意义函数拟合在数值计算中有着十分广泛的应用。
基于BP神经网络的非线性函数拟合

基于BP神经网络的非线性函数拟合摘要:本文建立BP神经网络对一个多输入多输出系统的二元非线性函数进行拟合,仿真实验表明:在样本数据充足且不含噪声的情况下,训练的精度越高,逼近的效果越好;数据不充足且不含噪声时,训练精度的高低在一定范围内对于网络性能没有决定性的影响,网络性能主要取决于初始化;不管训练数据是否充足,若含有噪声,训练精度过高会使网络泛化能力降低。
0引言作为当前应用最为广泛的一种人工神经网络,BP网络在函数逼近、模式识别、数据压缩、智能控制等领域有着非常广泛的应用。
BP网络由大量简单处理单元广泛互联而成,是一种对非线性函数进行权值训练的多层映射网络,结构简单,工作状态稳定,具有优良的非线性映射能力,理论上它能够以任意精度逼近任意非线性函数。
BP神经网络通过学习能够存储大量输入输出样本中蕴含的映射关系,只需提供足够的样本模式对BP网络进行训练,而无需事先了解数学方程。
本文采用BP神经网络解决下列函数拟合问题。
函数逼近:设计一个神经网络拟合下列多输入多输出函数:y1=2+x11.5-1.5sin(3x2); y2=x2sin(x1)+x1cos(x2); 1< x1, x2<5 产生200个数据,其中100个用来训练网络,另外100个用于网络模型的测试。
1BP神经网络结构和算法一个典型的3层BP神经网络结构如图1所示,包括输入层、隐含层和输出层。
各层神经元之间无反馈连接,各层内神经元之间无任何连接。
其中隐含层的状态影响输入输出之间的关系,及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。
BP 神经网络的学习过程由正向传播和反向传播组成。
在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。
在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。
反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精度要求。
基于BP神经网络的非线性函数拟合

基于BP神经网络的非线性函数拟合张宝堃;张宝一【期刊名称】《电脑知识与技术》【年(卷),期】2012(000)027【摘要】This paper introduces the features and algorithm theorem of BP neural network, and deduces the update rules of the network weight based on a given BP neural network. According to several problems of BP neural network, suggestions are pro⁃vided for these problems. Applicability of BP neural network for nonlinear function approximation is verified by simulations, and the accuracy can be guaranteed.% 该文介绍了神经网络领域中BP神经网络的特点及其算法原理,对BP网络权值的修正规则进行了推导,并对BP网络存在的问题提出了几点改进,在此基础上对一组非线性函数的采样数据进行拟合。
实验结果表明,BP神经网络能保证拟合误差在很小的范围之内,说明了其拟合的有效性。
【总页数】5页(P6579-6583)【作者】张宝堃;张宝一【作者单位】北京中核东方控制系统工程有限公司,北京 100076;斯比泰电子深圳有限公司,广东深圳 518004【正文语种】中文【中图分类】TP18【相关文献】1.基于BP神经网络对非线性函数拟合 [J], 吴琼2.思维进化算法在BP神经网络拟合非线性函数中的应用研究 [J], 刘俊3.基于新的改进粒子群算法的BP神经网络在拟合非线性函数中的应用 [J], 林宇锋;邓洪敏;史兴宇4.遗传算法优化BP神经网络非线性函数拟合的研究 [J], 康彩丽5.思维进化算法优化BP神经网络在非线性函数拟合中的应用 [J], 王永亮因版权原因,仅展示原文概要,查看原文内容请购买。
基于BP神经网络的非线性函数拟合

基于BP神经网络的非线性函数拟合作者:张宝堃张宝一来源:《电脑知识与技术》2012年第27期摘要:该文介绍了神经网络领域中BP神经网络的特点及其算法原理,对BP网络权值的修正规则进行了推导,并对BP网络存在的问题提出了几点改进,在此基础上对一组非线性函数的采样数据进行拟合。
实验结果表明,BP神经网络能保证拟合误差在很小的范围之内,说明了其拟合的有效性。
关键词:BP神经网络;非线性函数;拟合;收敛中图分类号:TP18文献标识码:A文章编号:1009-3044(2012)27-6579-05Nonlinear Function Approximation Based on BP Neural NetworkZHANG Bao-kun1, ZHANG Bao-yi2(1.China Nuclear Control System Engineering Co.,Ltd, Beijing 100076, China; 2. Shenzhen Speedy-Tech Electronics Co., Ltd, Shenzhen 518004, China)Abstract: This paper introduces the features and algorithm theorem of BP neural network, and deduces the update rules of the network weight based on a given BP neural network. According to several problems of BP neural network, suggestions are pro? vided for these problems. Applicability of BP neural network for nonlinear function approximation is verified by simulations, and the accuracy can be guaranteed.Key words: BP neural network; nonlinear function; approximation; convergenceBP(Back Propagation)神经网络是1986年由Rumelhart和McCelland提出的,它是一种误差按反向传播的多层前馈网络,是目前应用最广泛的神经网络模型之一。
基于BP神经网络的非线性函数拟合——程序设计说明

基于BP神经网络的非线性函数拟合——程序设计说明程序设计说明:1.确定网络结构首先,需要确定BP神经网络的结构,包括输入层、隐藏层和输出层的节点数。
输入层的节点数由样本的特征数确定,隐藏层的节点数可以通过试验确定,输出层的节点数则由问题的要求确定。
2.初始化网络参数初始化网络的权值和偏置,可以使用随机数生成,初始值不能太大或太小。
权值和偏置的初始值会对模型的训练效果产生影响,一般可以根据问题的复杂程度来选择。
3.前向传播通过前向传播,将样本数据输入到神经网络中,并计算每个神经元的激活值。
激活函数可以选择Sigmoid函数或者ReLU函数等非线性函数。
4.计算误差5.反向传播通过反向传播,将误差从输出层向输入层传播,更新网络的权值和偏置。
反向传播的过程可以使用梯度下降法来更新网络参数。
6.训练网络7.测试网络使用未参与训练的样本数据测试网络的泛化能力,计算测试误差。
如果测试误差较小,说明网络能够较好地拟合非线性函数。
8.参数调优根据训练误差和测试误差结果,可以调整网络的参数,如学习率、隐藏层节点数等,以提高网络的训练效果和泛化能力。
9.反复训练和测试网络根据需要,反复进行训练和测试的过程,直至网络的训练误差和测试误差均满足要求。
这是一个基于BP神经网络的非线性函数拟合的程序设计说明,通过实现以上步骤,可以有效地进行非线性函数的拟合和预测。
在具体实现中,可以使用Python等编程语言和相应的神经网络框架,如TensorFlow、PyTorch等,来简化程序的编写和调试过程。
同时,为了提高程序的性能和效率,可以使用并行计算和GPU加速等技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BP神经网络的非线性函数拟合摘要:本文建立BP神经网络对一个多输入多输出系统的二元非线性函数进行拟合,仿真实验表明:在样本数据充足且不含噪声的情况下,训练的精度越高,逼近的效果越好;数据不充足且不含噪声时,训练精度的高低在一定范围内对于网络性能没有决定性的影响,网络性能主要取决于初始化;不管训练数据是否充足,若含有噪声,训练精度过高会使网络泛化能力降低。
0引言作为当前应用最为广泛的一种人工神经网络,BP网络在函数逼近、模式识别、数据压缩、智能控制等领域有着非常广泛的应用。
BP网络由大量简单处理单元广泛互联而成,是一种对非线性函数进行权值训练的多层映射网络,结构简单,工作状态稳定,具有优良的非线性映射能力,理论上它能够以任意精度逼近任意非线性函数。
BP神经网络通过学习能够存储大量输入输出样本中蕴含的映射关系,只需提供足够的样本模式对BP网络进行训练,而无需事先了解数学方程。
本文采用BP神经网络解决下列函数拟合问题。
函数逼近:设计一个神经网络拟合下列多输入多输出函数:y1=2+x11.5-1.5sin(3x2); y2=x2sin(x1)+x1cos(x2); 1< x1, x2<5 产生200个数据,其中100个用来训练网络,另外100个用于网络模型的测试。
1BP神经网络结构和算法一个典型的3层BP神经网络结构如图1所示,包括输入层、隐含层和输出层。
各层神经元之间无反馈连接,各层内神经元之间无任何连接。
其中隐含层的状态影响输入输出之间的关系,及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。
BP 神经网络的学习过程由正向传播和反向传播组成。
在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。
在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。
反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精度要求。
BP 算法的实质是求取误差函数最小值问题,通过多个样本的反复训练,一般采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。
隐含节点图1 典型3层BP神经网络结构图2用于函数拟合的BP神经网络模型的建立为建立函数拟合的BP神经网络模型,一般要考虑以下几步:(1) 样本数据的产生为简单起见,在x1,x2均属于[1,5]区间内选择均匀分布的200个数据点分别作为训练和测试样本。
如图2所示。
x1x 2图2 数据样本(2) 数据预处理通常需要将样本数据归一化,由于这里的数据变化范围不大,所以暂不考虑对数据的归一化。
(3) 网络结构的选择①网络层数:理论证明,在不限制隐层节点数目的情况下,单隐层BP 网络可以实现任意非线性映射。
但本题中,仿真表明采用两个隐层更为合适。
②输入输出层节点数:本题中,所拟合的函数为两个输入变量,两个输出变量。
所以BP 网络输入层设置两个节点,输出层也设置两个节点。
③隐层节点数:隐含层节点数目的选择是一个十分复杂的问题, 到目前为止, 还没有用数学公式来明确表示应该怎样确定隐含层的节点数目。
节点数目太少, 不能很好的表达样本数据种所蕴含的规律; 但隐含层节点太多又导致学习训练时间太长, 误差也不一定最佳,还可能出现“过度吻合”的问题,使得泛化能力降低。
本题中隐层节点的选取主要采用试凑的办法。
如前所述,这里设置两个隐层,第一层节点设置分为3和30两种,第二层节点设置分为2和20两种,以便于对比。
④神经元的传递函数:隐层采用单极性sigmoid函数“tansig”,输出层采用线性传递函数“purelin”。
(4) 训练及仿真采用批训练方法,一批数据即为全部100个训练样本。
输入x1,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.2 4.8;1.2 4.8],[3,2,2] , {'tansig', 'tansig', 'purelin'}, 'traingdx','learngdm' );待拟合的函数图形化结果如图3所示。
图3(a)为y1,y2的三维视图,图3(b)为y1的二维投影视图,图3(c)为y2的二维投影视图。
x1待拟合的曲面y1x2y 1x1待拟合的曲面y2x2y 2图 3(a) 待拟合函数的三维视图x1y 1平面x2=3截曲面y1所得的曲线在x1-y1面上的投影x2y 1平面x1=3截曲面y1所得的曲线在x2-y1面上的投影图 3(b) 待拟合函数y1的投影视图x1y 2x2y 2图 3(c) 待拟合函数y2的投影视图图 3 待拟合的函数图形化结果首先采用学习率可变的动量BP 算法(其训练函数为'traingdx'),取不同的隐含层得到的训练结果如图4,测试结果如图5:1) 隐含层为3,2,epochs=30000,goal=0.001;1234512345051015x1BP 网络训练输出曲面y1x2y 11234512345-10-55x1BP 网络训练输出曲面y2x2y 2图4(a) 网络训练输出曲面1234512345-0.1-0.0500.050.10.15x1网络训练误差曲面x2输出误差1234512345-0.2-0.100.10.2x1网络训练误差曲面x2输出误差图4(b) 网络训练输出误差曲面图4(c) 网络训练过程的误差曲线(goal=0.001,用时2分51秒且未达目标)以下为网络测试结果:1234512345051015x1BP 网络测试输出曲面y1x2y 11234512345-10-55x1BP 网络测试输出曲面y2x2y 2图5(a) 仿真测试输出曲面1234512345-1.5-1-0.500.51x1网络测试误差曲面x2输出误差1234512345-1.5-1-0.500.511.5x1网络测试误差曲面x2输出误差图5(b) 仿真测试输出误差曲面图5(c) 网络测试误差曲线(goal=0.001,耗时3分2秒)此时训练的收敛速度太慢,网络训练误差较大,函数逼近效果不是很好,有待改进。
2) 隐含层为30,20,epochs=30000,goal=0.001x1BP 网络训练输出曲面y1x2y 1x1BP 网络训练输出曲面y2x2y 2图6(a) 网络训练输出曲面x1网络训练误差曲面x2输出误差x1网络训练误差曲面x2输出误差图6(b) 网络训练输出误差曲面图6(c) 网络训练过程的误差曲线(goal=0.001,用时1秒)网络测试结果如下:234523405x1BP 网络测试输出曲面y1x2y 1123451234x1BP 网络测试输出曲面y2x2y 2图7(a) 网络测试输出曲面2345123401x1网络测试误差曲面x2输出误差23451234x1网络测试误差曲面x2输出误差图7(b) 网络测试输出曲面及误差图7(c) 网络测试过程的误差曲线(goal=0.001,用时4秒)对比可看出,虽然此时网络训练和测试速度提高很多,但网络性能并没有随着隐含层层数的增加而有显著改善,反而出现了“过适配”问题。
网络训练误差有所减小,但网络测试误差没有显著下降。
从误差曲面看,反而有局部的误差增大。
从前面的实验结果可以看出:并不是网络隐含层层数越多,函数逼近的效果就越好。
即使在相同的训练精度下,网络的性能也可能因初始化的不同而在性能上有很大差别。
4. 网络性能的改善为提高BP网络的泛化能力。
可以从几个方面考虑:一是网络结构参数,;二是该进训练方法;三是提高数据质量。
这里采用自动归一化法提高网络的泛化性能。
贝叶斯归一化法基于贝叶斯框架理论。
按照该理论,假定网络的权值和阀值是按照指定的分布随机可变的,归一化参数与这些分布的位置随机变量有关,于是可以用统计的方法估计出这些参数。
其实现函数是“trainbr”。
利用这个函数训练BP网络,可以使得网络响应更加平滑,提高泛化能力。
相应的网络训练语句为:net=newff([1.2 4.8;1.24.8],[3,2,10],{'tansig','tansig','purelin'},'trainbr','learngdm');1234512345051015x1x2y 11234512345-10-55x1x2y 2图8(a). 自动归一化后网络训练输出曲面1234512345-8-6-4-2024x 10-3x1网络训练误差曲面x2输出误差1234512345-0.01-0.00500.0050.01x1网络训练误差曲面x2输出误差图8(b). 自动归一化后网络训练误差曲面图8(c) 自动归一化后网络训练过程的误差曲线(goal=0.001,用时1秒)网络测试结果:1234512345051015x1x2y 11234512345-10-55x1x2y 2图9(a). 自动归一化后网络测试输出曲面1234512345-1-0.500.51x1网络测试误差曲面x2输出误差1234512345-1-0.500.511.5x1网络测试误差曲面x2输出误差图9(b). 自动归一化后网络测试的误差曲面图9(c) 自动归一化后网络测试的误差曲线(goal=0.001,用时1秒)采用这种方法训练出来的网络,注重泛化能力,不追求每一个数据点的精确逼近,使输出曲线比较平滑,而且很快就能达到训练目标。
不过测试显示,误差并没有急剧减小,而是存在相对稳定的误差。
5 结束语本文首先简单介绍了BP神经网络的原理,接着针对函数拟合的问题,建立了相应的BP神经网络模型,然后对建立的模型进行了仿真测试和验证,最后采用自动归一化法对网络进行了改进,以提高网络的泛化能力,使得函数逼近的效果更加显著。