基于BP神经网络的非线性函数拟合——技术报告

合集下载

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神经网络的非线性函数拟合系统实验分析与结果

基于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神经网络算法的简单实现[参照]

人工神经网络是一种模仿人脑结构及其功能的信息处理系统,能提高人们对信息处理的智能化水平。

它是一门新兴的边缘和交叉学科,它在理论、模型、算法等方面比起以前有了较大的发展,但至今无根本性的突破,还有很多空白点需要努力探索和研究。

1人工神经网络研究背景神经网络的研究包括神经网络基本理论、网络学习算法、网络模型以及网络应用等方面。

其中比较热门的一个课题就是神经网络学习算法的研究。

近年来己研究出许多与神经网络模型相对应的神经网络学习算法,这些算法大致可以分为三类:有监督学习、无监督学习和增强学习。

在理论上和实际应用中都比较成熟的算法有以下三种:(1) 误差反向传播算法(Back Propagation,简称BP 算法);(2) 模拟退火算法;(3) 竞争学习算法。

目前为止,在训练多层前向神经网络的算法中,BP 算法是最有影响的算法之一。

但这种算法存在不少缺点,诸如收敛速度比较慢,或者只求得了局部极小点等等。

因此,近年来,国外许多专家对网络算法进行深入研究,提出了许多改进的方法。

主要有:(1) 增加动量法:在网络权值的调整公式中增加一动量项,该动量项对某一时刻的调整起阻尼作用。

它可以在误差曲面出现骤然起伏时,减小振荡的趋势,提高网络训练速度;(2) 自适应调节学习率:在训练中自适应地改变学习率,使其该大时增大,该小时减小。

使用动态学习率,从而加快算法的收敛速度;(3) 引入陡度因子:为了提高BP 算法的收敛速度,在权值调整进入误差曲面的平坦区时,引入陡度因子,设法压缩神经元的净输入,使权值调整脱离平坦区。

此外,很多国内的学者也做了不少有关网络算法改进方面的研究,并把改进的算法运用到实际中,取得了一定的成果:(1) 王晓敏等提出了一种基于改进的差分进化算法,利用差分进化算法的全局寻优能力,能够快速地得到BP 神经网络的权值,提高算法的速度;(2) 董国君等提出了一种基于随机退火机制的竞争层神经网络学习算法,该算法将竞争层神经网络的串行迭代模式改为随机优化模式,通过采用退火技术避免网络收敛到能量函数的局部极小点,从而得到全局最优值;(3) 赵青提出一种分层遗传算法与BP 算法相结合的前馈神经网络学习算法。

基于BP神经网络的函数拟合算法研究

基于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神经网络的非线性函数拟合张宝堃;张宝一【期刊名称】《电脑知识与技术》【年(卷),期】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神经网络的非线性函数拟合——程序设计说明

基于BP神经网络的非线性函数拟合——程序设计说明程序设计说明:1.确定网络结构首先,需要确定BP神经网络的结构,包括输入层、隐藏层和输出层的节点数。

输入层的节点数由样本的特征数确定,隐藏层的节点数可以通过试验确定,输出层的节点数则由问题的要求确定。

2.初始化网络参数初始化网络的权值和偏置,可以使用随机数生成,初始值不能太大或太小。

权值和偏置的初始值会对模型的训练效果产生影响,一般可以根据问题的复杂程度来选择。

3.前向传播通过前向传播,将样本数据输入到神经网络中,并计算每个神经元的激活值。

激活函数可以选择Sigmoid函数或者ReLU函数等非线性函数。

4.计算误差5.反向传播通过反向传播,将误差从输出层向输入层传播,更新网络的权值和偏置。

反向传播的过程可以使用梯度下降法来更新网络参数。

6.训练网络7.测试网络使用未参与训练的样本数据测试网络的泛化能力,计算测试误差。

如果测试误差较小,说明网络能够较好地拟合非线性函数。

8.参数调优根据训练误差和测试误差结果,可以调整网络的参数,如学习率、隐藏层节点数等,以提高网络的训练效果和泛化能力。

9.反复训练和测试网络根据需要,反复进行训练和测试的过程,直至网络的训练误差和测试误差均满足要求。

这是一个基于BP神经网络的非线性函数拟合的程序设计说明,通过实现以上步骤,可以有效地进行非线性函数的拟合和预测。

在具体实现中,可以使用Python等编程语言和相应的神经网络框架,如TensorFlow、PyTorch等,来简化程序的编写和调试过程。

同时,为了提高程序的性能和效率,可以使用并行计算和GPU加速等技术。

BP神经网络的非线性系统建模

BP神经网络的非线性系统建模

BP神经网络的非线性系统建模BP神经网络的非线性系统建模一、题目拟合的非线性函数为:y=x12+x22二、模型建立BP神经网络构建根据拟合非线性函数特点确定BP神经网络结构,由于该非线性函数有两个输入参数,一个输出参数,所以BP神经网络结构为2—5—1,即输入层有2个节点,隐含层有5个节点,输出层有1个节点。

从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据,用于测试网络的拟合性能。

利用Matlab中工具箱函数。

三、Matlab实现3.1数据选择和归一化从输入输出数据中随机选取1900组数据作为网络训练数据,100组数据作为网络测试数据,并对训练数据进行归一化处理。

%%清空环境变量clcclear%%训练数据预测数据提取及归一化%下载输入输出数据load data input output%从1到2000间随机排序k=rand(1,2000);[m,n]=sort(k);%找出训练数据和预测数据input_train=input(n(1:1900),:)';output_train=output(n(1:1900));input_test=input(n(1901:2000),:)';output_test=output(n(1901:2000));%选连样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);3.2BP神经网络训练用训练数据训练BP神经网络,使网络对非线性函数输出具有预测能力。

%%BP网络训练%%初始化网络结构net=newff(inputn,outputn,5);net.trainParam.epochs=100;net.trainParam.lr=0.1;net.trainParam.goal=0.00004;%网络训练net=train(net,inputn,outputn);3.3BP神经网络预测%%BP网络预测%预测数据归一化inputn_test=mapminmax('apply',input_test,inputps); %网络预测输出an=sim(net,inputn_test);%网络输出反归一化BPoutput=mapminmax('reverse',an,outputps); %%结果分析figure(1)plot(BPoutput,':og')hold onplot(output_test,'-*');legend('预测输出','期望输出')title('BP网络预测输出','fontsize',12)ylabel('函数输出','fontsize',12)xlabel('样本','fontsize',12)%预测误差error=BPoutput-output_test;figure(2)plot(error,'-*')title('BP网络预测误差','fontsize',12)ylabel('误差','fontsize',12)xlabel('样本','fontsize',12)figure(3)plot((output_test-BPoutput)./BPoutput,'-*');title('神经网络预测误差百分比')errorsum=sum(abs(error))四、结果分析用训练好的BP 神经网络预测函数输出,预测结果如图1所示。

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

基于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神经网络逼近非线性函数

应用BP神经网络逼近非线性函一、实验要求1、逼近的非线性函数选取为y=sin(x1)+cos(x2),其中有两个自变量即x1,x2,一个因变量即y。

2、逼近误差<5%,即:应用测试数据对网络进行测试时,神经网络的输出与期望值的最大误差的绝对值小于期望值的5%。

3、学习方法为经典的BP算法或改进形式的BP算法,鼓励采用改进形式的BP算法。

4、不允许采用matlab中现有的关于神经网络建立、学习、仿真的任何函数及命令。

二、实验基本原理2.1 神经网络概述BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传播,误差反向传播。

在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。

每一层的神经元状态只影响下一层神经元状态。

如果输出层得不到期望输出,则转入反向传播,根据预判误差调整网络权值和阈值,从而使BP神经网络预测输出不断逼近期望输出。

BP神经网络的拓扑结构如图所示。

2.2 BP神经网络训练步骤BP神经网络预测前首先要训练网络,通过训练使网络具有联想记忆和预测能力。

BP神经网络的训练过程包括以下几个步骤。

步骤1:网络初始化。

根据系统输入输出序列(X,Y)确定网络输入层节点数n、隐含层节点数l、输出层节点数m,初始化输入层、隐含层和输出层神经元之间的连接权值ωij,ωjk,初始化隐含层阈值a,输出层阈值b,给定学习速率和神经元激励函数。

步骤2:隐含层输出计算。

根据输入变量X,输入层和隐含层间连接权值ωij以及隐含层阈值a,计算隐含层输出H。

j 1(a )nj ij i i H f x ω==-∑ j=1,2,…,l式中,l 为隐含层节点数,f 为隐含层激励函数,该函数有多种形式,一般选取为1(x)1xf e-=+步骤3:输出层输出计算。

根据隐含层输出H ,连接权值ωjk 和阈值b ,计算BP 神经网络预测输出O 。

1lk j jk k j O H b ω==-∑ k=1,2,…,m步骤4:误差计算。

基于BP神经网络的非线性函数拟合——程序设计说明

基于BP神经网络的非线性函数拟合——程序设计说明
1
//存储 Y、X1 和 X2 分别对应的数据最小最大值,用于数据归一化和反归一化处 理 const CString FileNameMaxMin="\\data\\MaxMin.txt"; //归一化的训练数据和验证数据文件,用于直观感觉归一化结果 const CString FileNameNLearning="\\data\\NLearning.txt"; const CString FileNameNExaming="\\data\\NExaming.txt"; //反归一化的训练数据和验证数据文件,用于直观感觉反归一化数据和未处理数 据的差别 const CString FileNameRNLearning="\\data\\RNLearning.txt"; const CString FileNameRNExaming="\\data\\RNExaming.txt"; //BP 网络学习完成后,用验证数据验证生成的验证报告文件 const CString FileNameBPExamingResult="\\data\\BPExamingResult.txt";// 梯度下 降 BP 网络验证结果报告 const CString FileNameGABPExamingResult="\\data\\GABPExamingResult.txt";// 遗传算法优化 BP 网络验证结果报告 const CString FileNamePSOBPExamingResult="\\data\\PSOBPExamingResult.txt";// 粒子群算法有虎 BP 网络验证结果报告
(3)遗传优化算法参数

智能计算bp网络设计基于bp网络的分类和非线性函数逼近

智能计算bp网络设计基于bp网络的分类和非线性函数逼近

1、基于BP网络的分类(1)问题的提出:在平直直角坐标系A 区域中 = x,y :x∈−4 ,0 ,y∈−4 ,0随机生成1000个点,令B 区域中的点为一类:B= x,y :x∈(−2.5 ,1) ,y∈(−2.5 ,1)A 区域的其他点为一类,现在利用BP神经网络学习这个分类,并用测试集C 中的点C= x k,y k: x k=−4+0.05k ,y k=−4+0.05k ,k=0,1,…,80测试C 中位于B 区域中的点能否被识别。

(2)网络的结构:net=newff([-4 0;-4 0],[n 2],{'logsig' 'logsig'},'trainlm','learngdm');(3)网络训练(采用不同的隐单元个数,使用常数及自适应学习率,加动量项,数值优化算法)采用不同的隐单元个数:隐层节点个数为n,本次实验取n=8和n=14并对其进行比较。

使用常数及自适应学习率:常数:net.trainParam.lr=0.1。

自适应学习率:'trainlm' 这个位置替换为'traingda' (在分类中并不能换)加动量项:'trainlm' 这个位置替换为'traingdm'(在分类中并不能换)数值优化算法:'trainlm' 这个位置替换为'traingdx'(在分类中并不能换)(4)网络测试与结果分析:①条件:隐层节点个数n=8 + 学习率常数net.trainParam.lr=0.1 + 梯度下降训练'trainglm'clear all;clc%给定训练点及目标值x=(rand(1,1000)*(-0.4))*10;y=(rand(1,1000)*(-0.4))*10;x=[x;y];T=zeros(2,size(x,2));for i=1:size(x,2);if abs(x(1,i)) < 2.5 && abs(x(1,i)) > 1 && abs(x(2,i)) < 2.5 && abs(x(2,i)) > 1 T(1,i)=1;endendfor i = 1:size(x,2);if T(1,i) == 1T(2,i) = 0;else T(2,i) = 1;endendinputs = x;targets = T;% 创建网络n = 8;net=newff([-4 0;-4 0],[n 2],{'logsig' 'logsig'},'trainlm','learngdm'); %Levenberg-Marquardtnet.inputs{1}.processFcns = {'removeconstantrows','mapminmax'}; %数据归一化net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'}; %数据归一化%% 训练参数net.trainParam.epochs = 2000;net.trainParam.goal = 1e-4;net.trainParam.lr = 0.1;% 训练网络[net,tr] = train(net,inputs,targets);% 测试网络outputs = net(inputs);errors = gsubtract(targets,outputs); performance = perform(net,targets,outputs);%% 训练集合绘图figure(1);hold onfor i=1:size(x,2)if T(1,i)==1plot(x(1,i),x(2,i),'b*');endif T(2,i)==1plot(x(1,i),x(2,i),'r*');endend%% 模拟绘图figure(2);test=-4:0.05:0;output=[];[A,B]=meshgrid(test,test);C=[];v=size(test,2);for i=1:vC(1,1+(i-1)*v:i*v)=A(i,:);C(2,1+(i-1)*v:i*v)=B(i,:);endoutput=abs(net(C));N=zeros(1,v*v);for i=1:v*vif output(1,i)>=output(2,i)N(1,i)=1;endendplot3(C(1,:),C(2,:),N,'o');结果分析:说明8个隐藏层节点太少了,没有达到精度就到了最大迭代次数。

思维进化算法在BP神经网络拟合非线性函数中的应用研究

思维进化算法在BP神经网络拟合非线性函数中的应用研究

思维进化算法在BP神经网络拟合非线性函数中的应用研究刘俊【摘要】直接使用BP神经网络拟合非线性函数,具有预测精度差、收敛速度慢等缺点。

该文提出利用极强全局搜索能力的思维进化算法来优化BP神经网络。

首先根据BP神经网络拓扑结构构建思维进化算法模型,然后用思维进化算法得到的最优解作为BP神经网络的初始权值和阈值,最后利用MATLAB软件对多个非线性函数进行拟合仿真实验,比较思维进化算法优化BP神经网络和单纯使用BP神经网络的预测结果。

数据表明,优化后的BP神经网络具有更高的拟合精度和更短的网络训练时间。

%Owing to the poor accuracy,slow convergence speed and other shortcomings after the direct appli-cation of BP neural network in the fitting of nonlinear functions,this paper proposed that BP neural network can be optimized by mind evolutionary algorithm,which enjoys strong global search ability. Firstly,the mind evolu-tionary algorithm model is constructed based on neural network topology;then,it is used to get the optimal solu-tions,which is served as initial weights and the threshold value of BP neural network;lastly,the MATLAB soft-ware is used to simulate multiple nonlinear function fitting,comparing the different results between optimized BP neural network and simply application of the BP neural network. Statistics indicate that the optimized BP neural network enjoys higher accuracy and shorter training time.【期刊名称】《绵阳师范学院学报》【年(卷),期】2015(000)002【总页数】5页(P79-83)【关键词】思维进化算法;BP神经网络;函数拟合【作者】刘俊【作者单位】商洛学院电子信息与电气工程学院,陕西商洛 726000【正文语种】中文【中图分类】TP183在工程应用领域中,经常需要对大量采集的历史数据进行函数拟合.然而这些数据常常是复杂、多元的非线性关系,传统的最小二乘、多项式回归等拟合方法无法满足拟合精度要求.人工神经网络具有良好的非线性并行处理能力,强大的学习和泛化能力,为非线性函数拟合提供了有效途径.张宝堃等[1]利用非线性映射能力较强的BP 神经网络拟合了一组单输入单输出非线性函数,但该方法存在局部最优问题等缺点[2,3].徐富强等[4]采用遗传算法优化BP 神经网络的初始权值和阈值,并用于非线性函数拟合,该方法全局搜索能力较强,但误差依然较大.沈学利等[5]将粒子群优化算法应用于BP神经网络的参数训练,对非线性函数拟合有一定的效果,但存在精度较差,容易陷入局部最优等[6]缺点.本文提出了思维进化算法与BP 神经网络结合的算法,利用思维进化算法优化BP 神经网络的初始权值和阈值,通过多个非线性函数拟合实验验证了该算法的强拟合能力和有效性.1 思维进化算法1.1 思维进化算法概述思维进化算法(Mind Evolutionary Algorithm,简称MEA)由孙承意等[7]研究者于1998年提出,该算法是针对遗传算法的缺陷[8]而提出的一种新型进化算法,其思想来源于模仿人类思维进化过程.思维进化算法继承了遗传算法的“群体”和“进化”的思想,提出了新的操作算子——“趋同”和“异化”,这两种操作相互协调,其中任一操作改进都可以提高算法的整体搜索效率.由于思维进化算法具有良好的扩充性、移植性和极强的全局优化能力,已经成功应用于图像处理、自动控制、经济预测等领域[9-13]1.2 思维进化算法基本思想思维进化算法是一种通过趋同、异化等操作,不断迭代进行优化学习的方法,基本的进化过程如下:(1)群体生成.在解空间中随机生成P 个个体,所有个体组成一个群体.根据适应度函数计算出每个个体的得分.(2)子群体生成.得分最高的前M 个个体作为优胜个体,前第M+1 到第M+N 共N 个个体作为临时个体.以所选优胜个体和临时个体为中心,生成M 个优胜子群体和N 个临时子群体,每个子群体的个体数目为P/(N+M).(3)趋同操作.各子群体内部个体为成为胜者而进行局部竞争,此过程为趋同过程.若一个子群体不在产生新的胜者(即子群体成熟),则竞争结束,该子群体的得分就是子群体中最优个体的得分,并把得分张贴在全局公告板上.直到所有子群体全部成熟,趋同过程结束.(4)异化操作.成熟后的子群体之间为成为胜者而进行全局竞争,不断探索新的解空间,此过程为异化操作.从全局公告板上,比较优胜子群体和临时子群体的得分高低,完成子群体间的替换、废弃、个体释放的过程,最后得到全局最优个体及其得分.(5)迭代操作.异化结束后,被释放的个体重新被新的临时子群体补充,重复(3)-(4)过程,直到最优个体的得分不再提高或迭代结束,则认为运算收敛,输出最优个体.思维进化算法框图如图1 所示:图1 思维进化算法框图Fig.1 Block diagram of mind evolutionary algorithm 2 BP 神经网络BP(Back Propagation)神经网络一种误差反向传播的多层前馈神经网络,由Rumelhart 和McCelland 等学者在1986年提出.BP 神经网络由三层网络--输入层、隐含层和输出层组成,隐含层可以有一层或多层.输入信号经输入层逐层传输到各隐含层,最后传向输出层.隐含层和输出层根据相应神经元的权值和阈值完成数据计算工作.若输出结果不满足期望值,误差信号反向逐层传到各隐含层和输入层,利用梯度最速下降法,调整各神经元的权值和阈值.输入正向传播和误差反向传播反复迭代,直到输出误差最小或输出达到期望值,计算结束.利用BP 神经网络拟合非线性函数的一般过程如下:(1)构建BP 神经网络.根据需要拟合的非线性函数特征,确定隐含层层数,选择各层网络节点数目和隐含层、输出层传输函数等.(2)训练BP 神经网络.初始化连接权值和阈值,设定学习速率和训练目标;依次计算隐含层输出、输出层输出和输出误差;根据误差信号,依次更新各层神经元间的权值和阈值;反复迭代,直到输出误差最小或满足期望值,训练结束.(3)BP 神经网络预测.用训练好的BP 网络预测非线性函数输出,然后分析预测结果. BP 神经网络具有较强的非线性映射能力,拟合函数具有一定的效果,但拟合精度较低,且容易陷入局部极值点.为了提高精度,实现全局优化,本文采用思维进化算法来优化BP 神经网络,实现非线性函数的高精度拟合.3 MEA-BP 神经网络拟合非线性函数的算法实现思维进化算法在BP 神经网络拟合非线性函数的算法实现,首先根据拟合函数的输入输出参数确定BP 神经网络拓扑结构,进而得到思维进化算法个体的编码长度,并构建优化算法模型.然后,用思维进化算法对BP 神经网络的初始权值和阈值进行优化,选取训练数据的均方误差的倒数作为各个种群和个体的得分函数,经过不断趋同、异化、迭代,输出最优个体.最后解析最优个体,得到BP 神经网络的初始权值和阈值,再利用训练数据样本训练BP 神经网络,利用测试数据样本预测网络性能.优化算法实现流程图如图2 所示.图2 算法流程图Fig.2 Flow chart of mind evolutionary algorithm4 仿真实验为了验证思维进化算法优化BP 神经网络后的预测精度,选择非线性函数式(1)进行拟合.采用MATLAB 软件编程实现BP 神经网络拟合算法和思维进化算法优化BP 神经网络拟合算法,并对这两种算法的预测精度进行比较.拟合的非线性函数如下:4.1 参数设置拟合函数为两个输入,一个输出,设定BP 网络拓扑结构为2-10-1,即输入层、隐含层和输出层的节点数分别为2个、10 个和1 个.网络学习速率为0.1,训练次数1000 次,训练目标10-6.隐含层和输出层的传输函数都选择S 型正切函数‘tansig’;网络训练函数选择L-M 算法函数‘trainlm’;权值学习函数选择梯度下降动量学习函数‘learngdm’.思维进化算法种群大小设定为400,优胜子种群和临时子种群个数全部为5,子种群大小为40,个体编码长度为21,迭代次数20,适应度函数为均方误差的倒数.根据式(1)随机产生2000 组数据,任取1950 组用于训练网络,其余50 组用于预测网络.4.2 结果分析为了清晰观察网络优化后的预测结果,首先利用1950 组数据分别训练BP 神经网络和思维进化算法优化后的BP 神经网络,然后利用训练后的两个网络预测其余50 组数据,最后分析比较这两种算法的预测误差和误差百分比参数.预测误差及误差百分比如图3 和图4 所示.图3 BP 神经网络与MEA-BP 神经网络预测误差比较Fig.3 Prediction errors between BP neural network and MEA-BP neural network图4 BP 神经网络与MEA-BP 神经网络预测误差百分比Fig.4 Percentage of prediction errors between BP neural network and MEA-BP neural network 从图3 和图4 可以清楚看到,对于非线性函数,BP 神经网络具有一定的拟合能力,但预测精度仍然较差,但是,经过思维进化算法优化后的BP 神经网络预测误差明显减小,且误差相对稳定.其他预测参数比较如表1 所示.表1 BP 神经网络与MEA-BP 神经网络预测结果比较Tab.1 Prediction results of BP neural network and MEA-BP neural network从表1 可以看到,MEA-BP 神经网络预测误差远小于BP 神经网络的预测误差,且网络训练时间也较短,可见MEA-BP 神经网络具有更高的拟合性能.4.3 其他函数的拟合按照同样的参数设定和拟合方法,对其他非线性函数进行拟合实验,实验函数如式(2)、(3)和(4).通过网络训练和预测,得到两种算法的实验结果,如表2 所示.表2 实验结果比较Tab.2 Comparison of experimental consequences从表2 中可以看出,对非线性函数拟合,经过思维进化算法优化后的BP 神经网络的预测精度高于直接使用BP 神经网络,且网络训练时间相对较短,也可以看出优化后的BP 神经网络泛化性能得到进一步提高.5 结语本文采用全局搜索能力极强的思维进化算法对BP 神经网络进行优化.该算法的基本思想是在训练BP 神经网络前,利用思维进化算法对BP 神经网络的初始权值和阈值进行优化,以提高网络的准确性.从多个非线性函数拟合实验结果分析比较得到,思维进化算法优化BP 神经网络的性能明显优于BP神经网络,非线性函数拟合精度更高.本文研究方法在工程和实验的数据拟合方面具有重要意义,也为研究和改进神经网络提供了一种新的思路,为解决其他实际问题提供了新的手段.参考文献:[1]张宝堃,张宝一.基于BP 神经网络的非线性函数拟合[J].电脑知识与技术,2012,8(27):6579-6583.[2]Li Song,Liu Lijun,Huo Man.Prediction for short-term traffic flow based on modified PSO optimized BP neural network[J].Systems Engineering-Theory & Practice,2012,32(9):2045-2049.[3]Xu Yishan,Zeng Bi,Yin Xiuwen,et al.BP neural network and its applications based on improved PSO[J].Computer Engineering and Applications,2009,45(35):233-235.[4]徐富强,钱云,刘相国.GA-BP 神经网络的非线性函数拟合[J].微计算机信息,2012,28(7):148-150.[5]沈学利,张红岩,张纪锁.改进粒子群算法对BP 神经网络的优化[J].计算机系统应用,2012,19(2):57-61.[6]乔冰琴,常晓明.改进粒子群算法在BP 神经网络拟合非线性函数方面的应用[J].太原理工大学学报,2012,43(5):558-559.[7]Chengyi Sun.Mind-Evolution-Based Machine Learning:Frameworkand the Implementation of Optimization[A].In:Proceedings of IEEE International Conference on Intelligent Engineering Systems[C].1998,355-359.[8]谢刚.免疫思维进化算法及其工程应用[D].太原:太原理工大学,2006,27-28.[9]Sun Yan,Sun Yu,Sun Chengyi.Clustering and Reconstruction of Color images Using MEBML[A].In:Proceedings of International Conference on Neural Networks & Brain[C].Beijing,China,1998,361-365.[10]Cheng Mingqi.Gray image segmentation on MEBML frame [J].Intelligent Control and Automation,2000,1:135-137.[11]Chengyi Sun,Yan Sun,Yu Sun.Economic prediction system using double models[J].Systems,Man,and Cyberntics,2000,3:1978-1983. [12]韩晓霞,谢克明.基于思维进化算法的模糊自寻优控制[J].太原理工大学学报,2004,35(5):523-525.[13]Keming Xie,Changhua Mou,Gang Xie.The multi-parameter combination mind-evolutionary-based machine learning and its application[J].Systems,Man,and Cybernetics,2000,1:183-187.。

使用BP神经网络模型编程实现非线性函数的非线性识别

使用BP神经网络模型编程实现非线性函数的非线性识别

动车组检测与故障检测技术期末大作业————使用BP神经网络模型编程实现非线性函数的非线性识别班级: XXXX级XXXXXXXXX班学号: XXXXXXXXXXX姓名: XXXXXXXXXXXX成绩:2013年12月18日目录第一章 BP 神经网络简介................................................... - 1 -第一节人工神经网络.................................................. - 1 -1.1.1 人工神经网络的结构....................................... - 1 -1.1.2 人工神经元的工作过程..................................... - 2 -第二节 BP 神经网络................................................... - 2 -1.2.1 BP 神经网络及其网络结构................................... - 2 -1.2.2 BP 神经网络的学习过程..................................... - 3 -第二章使用MATLAB程序编程实现........................................... - 4 -第一节 MATLAB程序................................................... - 4 -第二节输出结果...................................................... - 5 -参考文献................................................................. - 6 -第一章 BP 神经网络简介广义的说,神经网络包括生物神经网络和人工神经网络两种[2]。

BP神经网络在多维非线性函数拟合中的应用

BP神经网络在多维非线性函数拟合中的应用

BP神经网络在多维非线性函数拟合中的应用刘俊【摘要】为了解决常规方法拟合多维非线性函数的预测结果精度较低问题,采用非线性映射能力较强的BP神经网络进行多维非线性函数拟合.通过对BP神经网络结构及训练过程的分析,依据给定的两维非线性函数构建BP神经网络模型,并利用MATLAB软件对BP神经网络进行预测.仿真结果表明,BP神经网络对于两维非线性函数有良好的拟合能力,拟合误差小、收敛速度快,也使该方法具有较好的推广性.【期刊名称】《商洛学院学报》【年(卷),期】2014(028)006【总页数】4页(P19-22)【关键词】函数拟合;BP神经网络;多维非线性函数【作者】刘俊【作者单位】商洛学院电子信息与电气工程学院,陕西商洛726000【正文语种】中文【中图分类】TP183BP(Back Propagation)神经网络是一种误差反向传播的多层前馈神经网络,由Rumelhart和McCelland等学者在1986年提出的。

经过近30年的研究和改进,BP神经网络已经形成了一套完善的理论体系,同时在模式识别、数据压缩等领域有良好的应用[1-5],也是目前应用最广的人工神经网络模型之一。

在科学实验和工程应用中,常会遇到一些复杂的非线性系统,难以用准确的数学模型表示这些系统测试数据中自变量与应变量之间的函数关系。

邓晓敏等[6]把origin应用到处理非线性函数实验中,该方法适用于数据量较小、非线性程度较低的实验中。

唐佳德[7]介绍了MATLAB软件自带非线性拟合函数lsqcurvefit、lsqnonlin和非线性曲线图形窗口,该方法对于复杂映射和多维映射拟合精度较低。

李初晔等[8]采用多参数有限元技术拟合函数,该方法最终要找到具体的函数表达式,而对于非线性程度高的函数就无法精确表示。

董锐[9]把BP神经网络、RBF神经网络和样条神经网络应用到非线性函数逼近领域,取得了良好效果。

本文为了解决常规方法拟合多维非线性函数的预测结果精度较低问题,提出基于BP神经网络的多维非线性函数拟合,该方法能够快速学习和记忆大量的输入——输出之间的映射关系,不需要具体的映射关系数学方程,能够很好地表达这些复杂的非线性函数。

(完整word版)BP神经网络实验报告

(完整word版)BP神经网络实验报告

BP 神经网络实验报告一、实验目的1、熟悉MATLAB中神经网络工具箱的使用方法;2、经过在MATLAB下面编程实现BP网络逼近标准正弦函数,来加深对BP网络的认识和认识,理解信号的正向流传和误差的反向传达过程。

二、实验原理由于传统的感知器和线性神经网络有自己无法战胜的弊端,它们都不能够解决线性不能分问题,因此在实质应用过程中碰到了限制。

而BP 网络却拥有优异的繁泛化能力、容错能力以及非线性照射能力。

因此成为应用最为广泛的一种神经网络。

BP 算法的根本思想是把学习过程分为两个阶段:第一阶段是信号的正向流传过程;输入信息经过输入层、隐层逐层办理并计算每个单元的实质输出值;第二阶段是误差的反向传达过程;假设在输入层未能获取希望的输出值,那么逐层递归的计算实质输出和希望输出的差值〔即误差〕,以便依照此差值调治权值。

这种过程不断迭代,最后使得信号误差到达赞同或规定的范围之内。

基于 BP 算法的多层前馈型网络模型的拓扑结构如上图所示。

BP 算法的数学描述:三层BP 前馈网络的数学模型如上图所示。

三层前馈网中,输入向量为: X ( x1 , x2 ,..., x i ,..., x n )T;隐层输入向量为:Y( y1 , y2 ,..., y j ,...y m ) T;输出层输出向量为: O (o1 , o2 ,..., o k ,...o l )T;希望输出向量为:d(d1 ,d 2 ,...d k ,...d l )T。

输入层到隐层之间的权值矩阵用 V 表示,V(v1 , v2 ,...v j ,...v m ) Y,其中列向量v j为隐层第 j 个神经元对应的权向量;隐层到输出层之间的权值矩阵用W 表示,W( w1 , w2 ,...w k ,...w l ) ,其中列向量 w k为输出层第k个神经元对应的权向量。

下面解析各层信号之间的数学关系。

对于输出层,有y j f (net j ), j1,2,..., mnet j v ij x i , j1,2,..., m对于隐层,有O k f (net k ), k1,2,...,lm net k wjkyi, k1,2,...,lj0以上两式中,转移函数 f(x) 均为单极性Sigmoid 函数:1f ( x)x1 ef(x) 拥有连续、可导的特点,且有 f ' (x) f ( x)[1 f ( x)]以上共同构成了三层前馈网了的数学模型。

基于BP神经网络的非线性函数拟合——技术报告

基于BP神经网络的非线性函数拟合——技术报告

基于BP神经网络的非线性函数拟合——技术报告技术报告:基于BP神经网络的非线性函数拟合1.引言非线性函数拟合是机器学习领域的重要研究内容之一,其在模式识别、图像处理、金融预测等领域有着广泛的应用。

传统的机器学习方法或者回归方法往往无法很好地拟合非线性函数,而BP神经网络作为一种强大的学习工具,可以有效地解决非线性函数拟合问题。

本报告主要介绍了基于BP神经网络的非线性函数拟合方法及其应用。

2.BP神经网络介绍BP神经网络是一种多层前馈神经网络,在模式识别和函数逼近中有着广泛的应用。

BP神经网络由输入层、隐层和输出层组成,其中输入层负责接收输入数据,隐层负责进行学习和特征提取,输出层负责输出结果。

BP神经网络通过正向传播和反向误差传播算法来进行训练,以提高网络的拟合能力。

3.非线性函数拟合方法在进行非线性函数拟合时,首先需要确定输入特征和输出结果。

然后将拟合问题转化为一个监督学习问题,将已知的样本数据输入BP神经网络进行训练。

具体步骤如下:(1)准备数据:收集与非线性函数相关的样本数据,并进行预处理,如归一化处理。

(2)设计网络结构:确定BP神经网络的输入层神经元个数、隐层神经元个数和输出层神经元个数。

(3)初始化网络参数:随机初始化BP神经网络的连权和阈值。

(4)正向传播:输入样本数据,通过正向传播计算网络的输出结果。

(5)反向传播:根据计算得到的输出结果,使用反向传播算法来更新网络的权值和阈值,以减小预测结果与实际结果之间的误差。

(6)训练网络:重复进行正向传播和反向传播,以提高网络的拟合能力,直到达到训练终止条件。

(7)测试网络:使用测试数据来评估已经训练好的BP神经网络的拟合能力。

4.实验结果与分析我们在实验中使用了多组非线性函数数据进行拟合,包括正弦函数、指数函数等。

通过对比实验结果和原始函数的对比图,我们可以发现BP 神经网络在非线性函数的拟合方面有着较好的效果。

拟合结果和原始函数之间的误差较小,拟合曲线能够较好地覆盖样本点。

BP神经网络 报告

BP神经网络 报告

作业二、BP神经网络的拟合能力一、实验目的学会使用BP神经网络拟合各种函数曲线,学会分析隐层神经元个数、步长训练精度的影响。

二、实验要求设x=0:0.01:3y=3*sin(x)+2*cos(x.^2)+0.3*rand(1,length(x))针对前述函数,建立一个单输入单输出的3层BP网络,并撰写报告,激励函数等可自行选择:要求:神经网络输出与函数输出的误差应小于某小值;报告内容包括:1.输入输出样本集的选取(x取值范围应该覆盖0度到360度,样本数目应该大于50)2.网络隐层节点数目、激励函数形式、所用学习算法;(若有不同选择,说明选择的过程与理由)3.学习步长、学习结束控制参数等参数设置4.学习过程中误差的变化曲线图5.学习前(选择初始权值时)神经网络的输出曲线与实际函数的曲线对比图6.学习后神经网络的输出曲线与实际函数的曲线对比图7.学习次数8.结论9.提供MATLAB源程序三、问题的提出由于所给函数x取值范围是[0 3],而题目要求输入输出样本集x取值范围应该覆盖0度到360度。

所以x在[3 2*pi]内,应观察已训练好的神经网络是否满足目标函数,以此检验训练完的网络。

四、建立网络与参数设置4.1 首先分析几个常用的激励函数(1)logsig对数S型(sigmoid)传递函数,它可以将神经元的输入范围是(-∞,+∞)映射到(0,1)的区间上,它是可微函数,其表达式为:y=1/1+e-x。

(2)tansig双曲正切S型(sigmoid)传递函数,它可以将神经元的输入范围(-∞,+∞)映射到(-1,+1)的区间上,它是可微函数。

对logsig传递函数而言,输出范围是(0,1),对tansig传递函数而言,输出范围是(-1,1)。

如果是purelin型神经元,则整个网络的输出可以是任意值。

对三层BP网络而言,如果最后一层是sigmoid型神经元,那么整个网络的输出就限制在一个较小的范围内。

基于BP神经网络的非线性函数拟合——技术报告

基于BP神经网络的非线性函数拟合——技术报告

2
2.3MFC 编程实现
根据 BP 神经网络理论,在 Visual Studio 2008 开发软件中利用 C++编程语言实现基于 BP 神经网络的非线性拟合算法。
2.3.1BP 神经网络各项函数选择
隐含层和输出层函数的选择对 BP 神经网络预测精度有较大的影 响。在本报告所实现的 BP 网络中,除输入层神经元以外,其他层神 经元的整合函数均采用加权求和函数, 激活函数均为非线性可微函数 Logistic—S 型函数。 加和求和函数: g ( X ) wi xi
1
2.2 模型建立
基于梯度下降算法的 BP 神经网络的非线性函数拟合实现流程可 以分为 BP 神经网络构建、 BP 神经网络训练和 BP 神经网络预测三步, 如图 2-1 所示。
BP神经网络构建 系统建模 构建合适的 BP神经网络 BP神经网络训练 系统建模 构建合适的 BP神经网络 N
训练结束
BP神经网络预测 Y 测试数据 BP神经网络 预测
图 2-1 基于梯度下降算法的 BP 网络实现流程
BP 神经网络构建根据拟合非线性函数特点确定 BP 神经网络结 构。隐含层节点数的选择是关键,如果隐含层节点数太少,BP 神经 网络不能建立复杂的映射关系,网络预测误差较大。但是如果节点数 过多,网络学习时间增加,并且可能出现“过拟合”现象。可以根据 经验公式 C2 C1 C3 a (a 为 1~10 的常数)确定。 由于该非线性函数 有两个输入参数,一个输出参数,所以 BP 神经网络结构为 2—5—1, 即输入层有 2 个节点,隐含层有 5 个节点,输出层有 1 个节点。 BP 神经网络训练用非线性函数输入输出数据训练神经网络,使 训练后的网络能够预测非线性函数输出。本报告采集了 2000 组输入 输出数据,其中 1900 组作为训练数据,用于网络训练,100 组作为 测试数据,用于测试网络的拟合性能。 神经网络预测用训练好的网络预测函数输出, 并对预测结果进行 分析。

基于BP神经网络的函数拟合

基于BP神经网络的函数拟合

基于BP神经网络的函数拟合摘要:随着科学技术的飞速发展,人工神经网络也迅速发展,它更是智能领域中的重要组成部分,现在它已经被广泛的应用到了数据处理、模式识别、机器控制、专家系统等多个领域之中,并且在预测领域得到了更深入的发展。

BP神经网络是人工智能网络中的一个典型算法,而且它本身具有很强的非线性映射能力,解决一些非线性问题更是它最突出的一环。

BP神经网络不止这-个优点,它的网络拓扑结构简单,而且具有较高的误差精度,并且它易于用编权实现,而它还具有很强的可操作性,等等。

因此,BP神经网络的应用更加广泛,成为智能领域中的最重要的算法之一。

本文就BP神经网络的基本原理进行论述,并且利用BP神经网络进行二元函数拟合,对相关数据误差进行分析,并讨论如何在拟合过程中选择合适的激励函数,以使得拟合函数逼近真实函数,最后,对函数拟合的相关知识进行总结。

关键词:模式识别;BP神经网络;函数拟合;激励函数第一章绪论1.1 人工神经网络研究意义人工神经网络[1]是为了进行信息处理而建立的一种数学模型,它之所以被称为神经网络是因为这一数学模型所应用的结构是一种类似大脑神经突触的联接结构。

在很多领域,例如工程界、学术界等,通常称其为类神经网络,在更多的时候他们也简称其为“神经网络”。

神经网络这一数学模型是由数据庞大的“神经”节点进行互联形成的一个结构,它也是一种运算模型。

在这个模型中的每一个神经元节点都代表了一种特定的输出函数我们把这个特定的函数称作激励函数(activation function)[2],有时也称之为转换函数。

每两个人工神经元节点之间的连接都会对通过的信息进行加权处理,对于这种加权处现,我们称它们为连接权系数或直接称它为权重(weight),这一操作间接的模拟了神经网络的记忆功能。

网络的输出并不是固定不变的,它会根据网络的连接权系数、连接方式以及激励函数的不同而发生变化。

它的理念是受到了一定的启发而形成的,生物的动作、思想是在生物(人或其他动物)神经网络的运作下产生的,这也为人工神经网络的产生提供了支持。

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

基于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提出的,它是一种误差按反向传播的多层前馈网络,是目前应用最广泛的神经网络模型之一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 本报告拟合的非线性函数为 y x12 x2
2. 基于梯度下降算法的 BP 神经网络
2.1 技术现状
BP 神经网络即采用误差反向传播算法的网络,是一种至今仍然 最为流行的前馈型神经网络模型。BP 神经网络有很强的非线性映射 能力,它能学习和存贮大量输入-输出模式映射关系,而无需事先了 解描述这种映射关系的数学方程。 只要能提供足够多的样本模式对供 给网络进行学习训练,它便能完成由 n 维输入空间到 m 维输出空间 的非线性映射。 BP 学习算法属于误差修正型学习,其关键在于根据误差修正输 出层和隐含层的连接权值。 其学习的基本实现方法是基于最小平方误 差准则和梯度下降优化方法来确定权值调整法则。
图 2-1 基于梯度下降算法的 BP 网络实现流程
BP 神经网络构建根据拟合非线性函数特点确定 BP 神经网络结 构。隐含层节点数的选择是关键,如果隐含层节点数太少,BP 神经 网络不能建立复杂的映射关系,网络预测误差较大。但是如果节点数 过多,网络学习时间增加,并且可能出现“过拟合”现象。可以根据 经验公式 C2 C1 C3 a (a 为 1~10 的常数)确定。 由于该非线性函数 有两个输入参数,一个输出参数,所以 BP 神经网络结构为 2—5—1, 即输入层有 2 个节点,隐含层有 5 个节点,输出层有 1 个节点。 BP 神经网络训练用非线性函数输入输出数据训练神经网络,使 训练后的网络能够预测非线性函数输出。本报告采集了 2000 组输入 输出数据,其中 1900 组作为训练数据,用于网络训练,100 组作为 测试数据,用于测试网络的拟合性能。 神经网络预测用训练好的网络预测函数输出, 并对预测结果进行 分析。
I
1. 问题定义
在工程应用中经常会遇到一些复杂的非线性系统, 这些系统状态 方程复杂,难以用数学方法准确建模。在这种情况下,可以建立 BP (Back-Propagation)神经网络表达这些非线性系统。应用 BP 神经网 络解决非线性映射问题,把未知系统看成是一个黑箱,首先用系统输 入输出数据训练 BP 神经网络,使网络能够表达未知函数,然后就可 以用训练好的 BP 神经网络预测系统输出。
i 1 n
2.3.2 数据选择和归一化
根据非线性函数方程随机得到该函数 2000 组输入输出数据,将 其中 1900 组存储在 data\OLearning.txt 文件中作为网络训练数据, 100
3
组存储在 data\OExaming.txt 文件中作为网络测试数据。 由于 Logistic-S 型激活函数的输出为[0,1],所以需要对数据进行 归一化处理。 本报告中数据的归一化和反归一化采用最简单的线性函 数转换,表达式形式为 y=(x-MinValue)/(MaxValue-MinValue)。x、y 分别为转换前、后的值,MaxValue、MinValue 分别为样本的最大值 和最小值。
2
2.3MFC 编程实现
根据 BP 神经网络理论,在 Visual Studio 2008 开发软件中利用 C++编程语言实现基于 BP 神经网络的非线性拟合算法。
2.3.1BP 神经网络各项函数选择
隐含层和输出层函数的选择对 BP 神经网络预测精度有较大的影 响。在本报告所实现的 BP 网络中,除输入层神经元以外,其他层神 经元的整合函数均采用加权求和函数, 激活函数均为非线性可微函数 Logistic—S 型函数。 加和求和函数: g ( X ) wi xi
i 1 n
Logistic—S 型函数: f ( )
1 1 e
输出误差度量为平方误差,输出误差被认为是 w 以为自变量的函 数,单个输入数据对应的误差表示为 e( w)
1 n (di yi ) 2 2 i 1
根据梯度下降法确定的权值调整法则如下: 输出层的权值调整法则: wji wji x ji yi (1 yi )( yi di ) 隐含层的权值调整法则:wk j wk j xk j y 'j (1 y 'j ) w ji yi (1 yi )( yi di )
பைடு நூலகம்
1
2.2 模型建立
基于梯度下降算法的 BP 神经网络的非线性函数拟合实现流程可 以分为 BP 神经网络构建、 BP 神经网络训练和 BP 神经网络预测三步, 如图 2-1 所示。
BP神经网络构建 系统建模 构建合适的 BP神经网络 BP神经网络训练 系统建模 构建合适的 BP神经网络 N
训练结束
BP神经网络预测 Y 测试数据 BP神经网络 预测
4
训练目标 lacept=0.80 即当一次迭代训练中所有训练数据拟合 成功率达到 80%以上时停止学习,认为 BP 网络已达到训练 目标。
2.3.4 基于梯度下降算法的 BP 神经网络预测
BP 网络的学习过程需要正向传播和反向传播,但是网络经训练 以后用于实际计算时,则只需正向传播,不需要再进行反向传播。 依次读取测试数据文件 OExaming.txt 中每组数据, 输入训练好的 BP 神经网络预测非线性函数输出,并生成相应的测试报告文件
BPExamingResult.txt。
基于 BP 神经网络的非线性函数拟合
技术报告文档
学院:计算机学院 专业:计算机科学与技术专业 姓名:张王成 学号:2120111220 邮箱:zhangwagncheng0816@ 日期:2011 年 12 月 31 日
目录
1. 问题定义 ....................................................................................... 1 2. 基于梯度下降算法的 BP 神经网络 ............................................... 1 2.1 技术现状 ........................................................................................ 1 2.2 模型建立 ........................................................................................ 2 2.3MFC 编程实现 ................................................................................. 3 2.3.1BP 神经网络各项函数选择 ....................................................... 3 2.3.2 数据选择和归一化 ................................................................... 3 2.3.3 基于梯度下降算法的 BP 神经网络训练 ................................. 4 2.3.4 基于梯度下降算法的 BP 神经网络预测 ................................. 5 2.4 实验结果 ........................................................................................ 5 3. 基于遗传优化算法的 BP 神经网络 ............................................... 5 3.1 技术现状 ........................................................................................ 6 3.1.1 遗传算法原理 .......................................................................... 6 3.1.2 遗传算法的基本要素 ............................................................... 7 3.2 模型建立 ........................................................................................ 7 3.3 遗传优化算法编程实现 ................................................................. 9 3.3.1 遗传算法原理具体实现 ........................................................... 9 3.3.2 遗传算法编程实现 ................................................................. 11 3.4 实验结果 ...................................................................................... 12 4. 基于粒子群优化算法的 BP 神经网络 .......................................... 12 4.1 技术现状 ...................................................................................... 13 4.2 模型建立 ...................................................................................... 14 4.3PSO 算法编程实现 ........................................................................ 16 4.4 实验结果 ...................................................................................... 17 5. 结论 ............................................................................................. 18 6. 参考文献 ..................................................................................... 18
相关文档
最新文档