BP神经网络在非线性函数逼近中的应用

BP神经网络在非线性函数逼近中的应用
BP神经网络在非线性函数逼近中的应用

BP神经网络在非线性函数逼近中的应用

摘要:人工神经网络(Artificial Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学习能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、微电子学、心理学、光计算、分子生物学等有关,是一门新兴的边缘交叉学科。BP神经网络有很强的映射能力,主要用于模式识别分类、函数逼近、函数压缩等。下面将介绍来说明BP神经网络在函数逼近方面的应用。

一、前言

人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。人工神经网络就是模拟人思维的一种方式,是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。

近年来通过对人工神经网络的研究,可以看出神经网络的研究目的和意义有以下三点:

1、通过揭示物理平面与认知平面之间的映射,了解它们相互联系和相互作用的机理,从而揭示思维的本质,探索智能的本源。

2、争取构造出尽可能与人脑具有相似功能的计算机,即神经网络计算机。

3、研究仿照脑神经系统的人工神经网络,将在模式识别、组合优化和决策判断等方面取得传统计算机所难以达到的效果。

人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。人工神经网络与其它传统方法相结合,将推动人工智能和信息处理技术不断发展。近年来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个

重要方向,将在实际应用中得到发展。将信息几何应用于人工神经网络的研究,为人工神经网络的理论研究开辟了新的途径。神经计算机的研究发展很快,已有产品进入市场。光电结合的神经计算机为人工神经网络的发展提供了良好条件。

神经网络理论的应用取得了令人瞩目的发展,特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、CAD/CAM等方面都有重大的应用实例。下面列出一些主要应用领域:

1、模式识别和图像处理。印刷体和手写字符识别、语音识别、签字识别、指纹识别、人体病理分析、目标检测与识别、图像压缩和图像复制等。

2、控制和优化。化工过程控制、机器人运动控制、家电控制、半导体生产中掺杂控制、石油精炼优化控制和超大规模集成电路布线设计等。

3、预报和智能信息管理。股票市场预测、地震预报、有价证券管理、借贷风险分析、IC卡管理和交通管理。

4、通信。自适应均衡、回波抵消、路由选择和ATM网络中的呼叫接纳识别和控制。

5、空间科学。空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。

二、问题描述

BP神经网络最强大的应用之一就是函数逼近,即从训练样本出发,对未知函数进行非线性逼近。而网络的拓扑结构直接影响网络对函数的逼近能力和效果。因此,在实际应用中,应根据具体问题,选择一个合适的网络结构。应用BP神经网络进行函数逼近,不仅在纯数学和应用数学领域有意义,而且在工程和物理学领域也非常有用。这种逼近方式已被广泛地应用于系统辨识与建模、信号处理及模式识别等多个方面。对于BP神经网络关于非线性函数逼近问题的仿真及分析,会在第五章的内容中具体描述。

三、人工神经网络控制系统

人工神经网络(artificial neural network,ANN)是模仿生物神经网络功能的一种经验模型。生物神经元受到传入的刺激,其反应又从输出端传到相联的其它神经元,输入和输出之间的变换关系一般是非线性的。神经网络是由若干简单(通常是自适应的)元件及其层次组织,以大规模并行连接方式构造而成的网络,按照生物神经网络类似的方式处理输入的信

息。模仿生物神经网络而建立的人工神经网络,对输入信号有功能强大的反应和处理能力。

神经网络是由大量的处理单元(神经元)互相连接而成的网络。为了模拟大脑的基本特性,在神经科学研究的基础上,提出了神经网络的模型。但是,实际上神经网络并没有完全反映大脑的功能,只是对生物神经网络进行了某种抽象、简化和模拟。神经网络的信息处理通过神经元的互相作用来实现,知识与信息的存储表现为网络元件互相分布式的物理联系。神经网络的学习和识别取决于各种神经元连接权系数的动态演化过程。

若干神经元连接成网络,其中的一个神经元可以接受多个输入信号,按照一定的规则转换为输出信号。由于神经网络中神经元间复杂的连接关系和各神经元传递信号的非线性方式,输入和输出信号间可以构建出各种各样的关系,因此可以用来作为黑箱模型,表达那些用机理模型还无法精确描述、但输入和输出之间确实有客观的、确定性的或模糊性的规律。因此,人工神经网络作为经验模型的一种,在化工生产、研究和开发中得到了越来越多的用途。

3.1人工神经元

常用的人工神经元模型可用图1模拟。

图1

当神经元j 有多个输入x i (i=1,2,…,m )和单个输出y j 时,输入和输出的关系可表示为:

?????=-=∑=)(1j j j m i i ij j s f y x w s θ

其中j 为阈值,w ij 为从神经元i 到神经元j 的连接权重因子,f ()为传递函数,或称激励函数。

3.2人工神经网络的构成

神经元的模型确定之后,一个神经网络的特性及能力主要取决于网络的拓扑结构及学习方法。神经网络连接的几种基本形式:

1、前向网络

前向网络结构如图2所示,网络中的神经元是分层排列的,每个神经元只与前一层的神经元相连接。神经元分层排列,分别组成输入层、中间层(也称为隐含层,可以由若干层组成)和输出层。每一层的神经元只接受来自前一层神经元的输入,后面的层对前面的层没有信号反馈。输入模式经过各层次的顺序传播,最后在输出层上得到输出。感知器网络和BP 网络均属于前向网络。

图2

2、从输出到输入有反馈的前向

其结构如图3所示,输出层对输入层有信息反馈,这种网络可用于存储某种模式序列,如神经认知机和回归BP网络都属于这种类型。

图3

3、层内互连前向网络

其结构如图4所示,通过层内神经元的相互结合,可以实现同一层神经元之间的横向抑制或兴奋机制。这样可以限制每层内可以同时动作的神经元素,或者把每层内的神经元分为若干组,让每一组作为一个整体进行运作。例如,可利用横向抑制机理把某层内的具有最大输出的神经元挑选出来,从而抑制其他神经元,使之处于无输出状态。

图4

4、互相结合型网络

相互结合型网络结构如图5所示,这种网络在任意两个神经元之间都可能有连接。Hopfield 网络和Boltzmann 机均属于这种类型。在无反馈的前向网络中,信号一旦通过某神经元,该神经元的处理就结束了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断变化状态的动态之中。信号从某初始状态开始,经过若干次变化,才会达到某种平衡状态。根据网络的结构和神经元的特性,网络的运行还有可能进入周期振荡或其他如混沌平衡状态。

图5

综上,可知神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络、互连网络等四种结构,其神经网络模型有感知器网络,线性神经网络,BP神经网络,径向基函数网络,反馈神经网络等。本文中,主要介绍的是BP神经网络在函数逼近这一问题中的应用分析。

四、BP神经网络以及其原理

BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输

(采用BP神经网络完成非线性函数的逼近)神经网络

控制系统仿真与模型处理设计报告 (采用BP神经网络完成非线性函数的逼近)

1、题目要求: (1)确定一种神经网络、网络结构参数和学习算法。 (2)选择适当的训练样本和检验样本,给出选取方法。 (3)训练网络使学习目标误差函数达到0.01,写出学习结束后的网络各参数,并绘制学习之前、第100次学习和学习结束后各期望输出曲线、实际输出曲线。绘制网络训练过程的目标误差函数曲线。 (4)验证网络的泛化能力,给出网络的泛化误差。绘制网络检验样本的期望输出曲线和网络输出曲线。 (5)分别改变神经网络的中间节点个数、改变网络的层数、改变学习算法进行比较实验,讨论系统的逼近情况,给出你自己的结论和看法。 2、设计方案: 在MATLAB中建立M文件下输入如下命令: x=[0:0.01:1]; y=2.2*power(x-0.25,2)+sin(5*pi*x); plot(x,y) xlabel('x'); ylabel('y'); title('非线性函数'); 得到如下图形,即所给的非线性函数曲线图:

构造一个1-7-1的BP神经网络,第一层为输入层,节点个数为1;第二层为隐层,节点个数为7;变换函数选正切s型函数(tansig);第三层为输出层,节点个数为1,输出层神经元传递函数为purelin函数。并且选Levenberg-Marquardt算法(trainlm)为BP网络的学习算法。对于该初始网络,我们选用sim()函数观察网络输出。继续在M函数中如下输入。 net=newff(minmax(x),[1,7,1],{'tansig','tansig','purelin'},'trainlm'); y1=sim(net,x); figure; plot(x,y,'b',x,y1,'r') title('期望输出与实际输出比较'); xlabel('t'); 则得到以下所示训练的BP网络期望输出与实际输出曲线比较: 应用函数train()对网络进行训练之前,需要预先设置训练参数。将最大训练次数为100次,训练精度设置为0.01,学习速度为0.01。 net.trainParam.epochs=100; net.trainParam.goal=0.001; net.trainParam.lr=0.01; net=train(net,x,y); y2=sim(net,x);

BP神经网络逼近非线性函数

BP神经网络逼近非线性函数3、试用BP神经网络逼近非线性函数 f(u) = )5.0 u(9.1 e+ - sin(10u) 其中,u∈[-0.5,0.5] 解题步骤: ①网络建立:使用“net=newff(minmax(x), [20, 1], {'tansig’,’ purelin' });,语句建立个前馈BP神经网络。该BP神经网络只含个隐含层,且神经元的个数为20。隐含层和输出层神经元的传递函数分别为tansig和pure-lin。其他参数默认。 ②网络训练:使用“net=train (net, x , y) ;”语句训练建立好的BP神经网络。当然在网络训练之前必须设置好训练参数。如设定训练时间为50个单位时间,训练目标的误差小于0.01,用“net.trainParam.epochs=50; net.train-Param.goal=0.01;”,语句实现。其他参数默认。 ③网络仿真:使用“y1=sim(net, x); y2=sim(net, x};”语句仿真训练前后的BP神经网络。 (2)程序如下: clear all; x=[-0.5:0.01:0.5]; y=exp(-1.9*(0.5+x)).*sin(10*x); net=newff(minmax(x),[20,1],{'tansig' 'purelin'}); y1=sim(net,x); %未训练网络的仿真结果net.trainParam.epochs=50; net.trainParam.goal=0.01; net=train(net,x,y); y2=sim(net,x); %训练后网络的仿真结果figure;

BP神经网络在Matlab函数逼近中的应用

燕山大学 模式识别与智能系统导论 题目:BP网络在函数逼近中的应用 专业:控制工程 姓名: X X X 学号:

一BP神经网络及其原理............................................................ - 1 - 1.1 BP神经网络定义............................................................. - 1 - 1.2 BP神经网络模型及其基本原理..................................... - 1 - 1.3 BP神经网络的主要功能................................................. - 3 - 1.4 BP网络的优点以及局限性............................................. - 3 - 二基于MATLAB的BP神经网络工具箱函数 ........................ - 6 - 2.1 BP网络创建函数............................................................. - 7 - 2.2 神经元上的传递函数...................................................... - 7 - 2.3 BP网络学习函数............................................................. - 8 - 2.4 BP网络训练函数............................................................. - 9 - 三BP网络在函数逼近中的应用.............................................. - 10 - 3.1 问题的提出.................................................................... - 10 - 3.2 基于BP神经网络逼近函数......................................... - 10 - 3.3 不同频率下的逼近效果................................................ - 14 - 3.4 讨论................................................................................ - 17 -

神经网络作业(函数逼近)

智能控制理论及应用作业 1资料查询 BP 神经网络的主要应用: 人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等 Rbf神经网络的主要应用: 函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测 Hopfield网络应用: 车牌识别、图像识别、遥感影像分类、字母识别、交通标志识别、优化计算中的应用、联想记忆存储器的实现、 2 BP编程算法: 2.1 利用样本训练一个BP网络 注:此程序自李国勇书中学习而来 程序部分: function [ output_args ] = bp( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here %此设计为两层BP神经网络,3输入,3隐含层节点,两个输出 %初始化部分: lr=0.05; %%需要给定学习速率 error_goal=0.001; %期望的误差 max_epoch=100000; %训练的最大步长 a=0.9; %惯性系数 Oi=0; Ok=0; %给两组输入,以及目标输出: X=[1 1 1;-1 -1 1;1 -1 1;]; %随便给一组输入输入,训练BP网络

T=[1 1 1 ;1 1 1]; %X=-1:0.1:1; %输入范围 %T=sin(pi*X); %X=[] q=3; %隐含层的节点数自己定义,在此给3个 %初始化 [M,N]=size(X); %输入节点个数为M,N为样本数 [L,N]=size(T); %输出节点个数为L wij=rand(q,M); %先给定加权系数一组随机值 wki=rand(L,q); wij0=zeros(size(wij)); %加权系数矩阵的初始值 wki0=zeros(size(wki)); for epoch=1:max_epoch %计算开始 NETi=wij*X; %各个隐含层的净输入 for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; %再输入作用下,隐含层的输出 end end NETk=wki*Oi; %各个输出层的净输入 for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; %在输入作用下,输出层的输出end end E=((T-Ok)'*(T-Ok))/2; %性能指标函数,就是误差 if(E

BP神经网络实现函数逼近python实现

机器学习作业一BP神经网络实现函数逼近 一.算法描述 BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。 二.数据描述 逼近函数y = sin(x) 三.算法参数 输入学习率,迭代次数,逼近函数,神经网络规模 输出逼近的函数 四.实验流程 反向传播算法(Back Propagation)分二步进行,即正向传播和反向传播。 这两个过程简述如下: 1.正向传播 输入的样本从输入层经过隐单元一层一层进行处理,传向输出层;在逐层处理的过程中。在输出层把当前输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。 2.反向传播 反向传播时,把误差信号按原来正向传播的通路反向传回,逐层修改连接权值,以望代价函数趋向最小。 输入层输入向量(n维):X=(x1,x2,…,xi,…,xn)T 隐层输出向量(隐层有m个结点):Y=(y1,y2,…,yj,…,ym)T 输出层输出向量(l维):O=(o1,o2,…,ok,…,ol)T 期望输出向量:d=(d1, d2,…,dk,…,dl)T 输入层到隐层之间的权值矩阵:V=(V1,V2,…,Vj,…,Vm) 隐层到输出层之间的权值矩阵用:W=(W1,W2,…,Wk,…,Wl) 对输出层第k个结点和隐含层的第j个结点有如下关系:

神经网络作业(函数逼近)

神经网络作业(函数逼近)

智能控制理论及应用作业 1资料查询 BP 神经网络的主要应用: 人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等 Rbf神经网络的主要应用: 函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测 Hopfield网络应用: 车牌识别、图像识别、遥感影像分类、字母识别、交通标志识别、优化计算中的应用、联想记忆存储器的实现、 2 BP编程算法:

T=[1 1 1 ;1 1 1]; %X=-1:0.1:1; %输入范围 %T=sin(pi*X); %X=[] q=3; %隐含层的节点数自己定义,在此给3个 %初始化 [M,N]=size(X); %输入节点个数为M,N为样本数 [L,N]=size(T); %输出节点个数为L wij=rand(q,M); %先给定加权系数一组随机值 wki=rand(L,q); wij0=zeros(size(wij)); %加权系数矩阵的初始值 wki0=zeros(size(wki)); for epoch=1:max_epoch %计算开始 NETi=wij*X; %各个隐含层的净输入

for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; %再输入作用下,隐含层的输出 end end NETk=wki*Oi; %各个输出层的净输入 for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; %在输入作用下,输出层的输出 end end E=((T-Ok)'*(T-Ok))/2; %性能指标函数,就是误差 if(E

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 )n j ij i i H f x ω==-∑ j=1,2,…,l 式中,l 为隐含层节点数,f 为隐含层激励函数,该函数有多种形式,一般选取为1 (x)1x f e -=+ 步骤3:输出层输出计算。根据隐含层输出H ,连接权值ωjk 和阈值b ,计算BP 神经 网络预测输出O 。 1 l k j jk k j O H b ω==-∑ k=1,2,…,m 步骤4:误差计算。根据网络预测输出O 和期望输出Y ,计算网络预测误差e 。 k k k e Y O =- k=1,2,…,m 步骤5:权值更新。根据网络预测误差e 更新网络连接权值ωij ,ωjk 1 (1)x(i)m ij ij j j jk k k H H e ωωηω==+-∑ i=1,2,…,n j=1,2,…,l jk jk j k H e ωωη=+ j=1,2,…,l k=1,2,…,m 步骤6:阈值更新。根据网络预测误差e 更新网络节点阈值a ,b 。 1 (1)m j j j j jk k k a a H H e ηω==+-∑ j=1,2,…,l k k k b b e =+ k=1,2,…,m 步骤7:判断算法迭代是否结束,若没有结束,返回步骤2。 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。

神经网络逼近函数

神经网络近似函数 题目: 采用神经网络逼近下列函数: 双极值型算例 9655 .0,537.0] 3,0[2/)3)(89.22.3()(max max 2==∈-+--=f x x x x x x x f 最优值 解: )(x f 的实际图如下: 神经网络训练前: 应用newff()函数建立BP 网络结构。隐层神经元数目n 可以改变,暂设为n=5,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig 函数和purelin 函数,网络训练的算

法采用Levenberg – Marquardt算法trainlm。 因为使用newff( )函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也不同。 神经网络训练后 应用train()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为500,训练精度设置为0.001,其余参数使用缺省值。训练后得到的误差变化过程如下所示。 由上图可知,逼近结果未达到目标,为此我们增加神经元数目n=20; 仿真结果如下:

至此,神经网络逼近结果符合要求。 下图是训练时间图: 从以上结果可以看出,网络训练速度很快,很快就达到了要求的精度0.001。 结论: 1.n 取不同的值对函数逼近的效果有很大的影响。改变BP 网络隐层神经元的数目,可以改变BP 神经网络对于函数的逼近效果。隐层神经元数目越多,则BP 网络逼近非线性函数的能力越强。(左边n=3,右边n=20)

2.不同的精度要求,对函数的逼近效果也不同。精度要求越高,逼近效果越好。 (左边精度为0.01,右边为0.001) 程序文本: clear all; x=[0:0.001:3]; y=-x.*(x.*x-3.2*x+2.89).*(x-3)/2.0; net=newff(minmax(x),[5,1],{'tansig''purelin'},'trainlm'); y1=sim(net,x); %神经网络训练前 net.trainParam.epochs=500; net.trainParam.goal=0.001; net=train(net,x,y);

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 。 H j n f( i1 ij x i a j ) j=1,2 ,?, l 式中,l 为隐含层节点数, f 为隐含层激励函数, 该函数有多种形式, 一般选取为 f(x) 1 x 1e 步骤 3 : 输出层输出计算。根据隐含层输出 H ,连接权值ω jk 和阈值 b ,计算 BP 神经 网络预测输出 O 。 l O k H j j1 jk b k k=1,2 ,?, m 步骤 4: 误差计算。 根据网络预测输出 和期望输出 Y ,计算网络预测误差 e 。 e k Y k O k k=1,2 ,?, m 步骤 5: 权值更新。 根据网络预测误差 e 更新网络连接权值ω ij ,ω jk ij ij H j (1 H j )x(i) jk e k i=1,2, ?,n j=1,2, ?,l jk jk H j e k j=1,2, ?,l k=1,2, ?,m 步骤 6: 阈值更新。 根据网络预测误差 e 更新网络节点阈值 a ,b 。 步骤 7: a j a j H j (1 m H j ) jk e k k1 j=1,2, ?,l b k b k e k k=1,2, ?,m 判断算法迭代是否结束,若没有结束,返回步骤 2。

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

基于BP神经网络的函数拟合 摘要:随着科学技术的飞速发展,人工神经网络也迅速发展,它更是智能领域中的重要组成部分,现在它已经被广泛的应用到了数据处理、模式识别、机器控制、专家系统等多个领域之中,并且在预测领域得到了更深入的发展。BP神经网络是人工智能网络中的一个典型算法,而且它本身具有很强的非线性映射能力,解决一些非线性问题更是它最突出的一环。BP神经网络不止这-个优点,它的网络拓扑结构简单,而且具有较高的误差精度,并且它易于用编权实现,而它还具有很强的可操作性,等等。因此,BP神经网络的应用更加广泛,成为智能领域中的最重要的算法之一。 本文就BP神经网络的基本原理进行论述,并且利用BP神经网络进行二元函数拟合,对相关数据误差进行分析,并讨论如何在拟合过程中选择合适的激励函数,以使得拟合函数逼近真实函数,最后,对函数拟合的相关知识进行总结。 关键词:模式识别;BP神经网络;函数拟合;激励函数

第一章绪论 1.1 人工神经网络研究意义 人工神经网络[1]是为了进行信息处理而建立的一种数学模型,它之所以被称为神经网络是因为这一数学模型所应用的结构是一种类似大脑神经突触的联接结构。在很多领域,例如工程界、学术界等,通常称其为类神经网络,在更多的时候他们也简称其为“神经网络”。神经网络这一数学模型是由数据庞大的“神经”节点进行互联形成的一个结构,它也是一种运算模型。在这个模型中的每一个神经元节点都代表了一种特定的输出函数我们把这个特定的函数称作激励函数(activation function)[2],有时也称之为转换函数。每两个人工神经元节点之间的连接都会对通过的信息进行加权处理,对于这种加权处现,我们称它们为连接权系数或直接称它为权重(weight),这一操作间接的模拟了神经网络的记忆功能。网络的输出并不是固定不变的,它会根据网络的连接权系数、连接方式以及激励函数的不同而发生变化。 它的理念是受到了一定的启发而形成的,生物的动作、思想是在生物(人或其他动物)神经网络的运作下产生的,这也为人工神经网络的产生提供了支持。一般来讲,人工神经网络是对学习方法(Leaning Method)进行优化的算法,在网络中应用的学习方法一般均是基于数学统计学建立起来的,也就是说,它的优化有很大-部分来自于数学统计学,因此我们可以把人工神经网络看作是数学统计学的一个实际应用。一方面我们可以通过统计学的一些标准的数学方法来得到大量的局部结构空间,这些空间均能用函数来表达;在另一个方面,特别是在人工感知领域,它是人工智能学的一个分支,我们可以为其做一系列的决策方面的问题,它是通过数学统计学的方法来完成这一任务的。综上所述,人工神经网络在应用了数学统计学方面的一些方法后,它便有了一定的判断能力和决定能力,这一现象与人的思维很是相似,它的优势明显强于正式的逻辑学推理演算。 人工神经网络具有很多分支,比如BP (Back Propagation)神经网络[3]、遗传算法等,其中最为典型的神经网络是BP神经网络,BP神经网络的优点非常多其中最为重要的优点是它具有自学习和自适应的特性,而且BP网络还具有鲁棒

基于BP神经网络算法的正余弦函数逼近

实验二 基于BP 神经网络算法的正余弦函数逼近 班级: 学号: 姓名: 1. 实验目的 (1) 掌握MATLAB 子函数编写与调用。 (2) 理解BP 神经元网络算法的原理,并利用程序实现通过BP 算法逼近任意非线性函数。 2. 实验内容与实验要求 (1) 掌握BP 神经网络算法的原理。 (2) 掌握MATLAB 子函数的编写方法及调用方法。 (3) 根据BP 神经网络算法的原理,编写MA TLAB 程序,逼近非线性函数。 3. 实验原理 一个2×3×1的神经网络即输入层有两个节点,隐层含三个节点,输出层有一个节点, 图1 神经网络结构图 图中ij w )5,4,3;2,1(==j i 为输入层与隐层的权值,jk w )6;5,4,3(==k j 为隐层与输出层的权值,1x 、2x 是神经网络的输入值,y 是网络的输出值,p y 为教师信号,e 为神经网络的实际输出与期望输出的误差。在这个神经网络中,节点1,2是输入层, 节点3,4,5是隐层,节点6是输出层;输入层和隐层之间的权值依次 252423151413,,,,,w w w w w w ,隐层和输出层间的权值为564636,,w w w ,下角标为节点的编号;隐层和输出层节点的阈值依次为3θ,4θ,5θ,6θ。

①前馈计算 设隐层的第j 个节点的输入和输出分别为: ∑=?=N i i ij j O w I 1 )(j j I f O = 其中)(j I f 为激励函数 j I j e I f -+=11 )( 由于隐层的输出就是输出层的输入,则输出层第k 个节点的总输入和输出分别为: ∑=?=H j j jk k O w I 1 )(k k k I f O y == 若网络输出与实际输出存在误差,则将误差信号反向传播,并不断地修正权值,直至误差达到要求为止。 ②权值调整 设误差函数定义为: ∑=-=M k k k p y d E 1 2)(21 为了简便,以下计算都是针对每个节点而言,误差函数p E 记作E 。 输出层权值的调整 权值修正公式为: jk jk w E w ??-=?η jk k k w I I E ????-=η 定义反传误差信号k δ为:k k k k k I O O E I E ????-=??- =δ 式中 )(k k k O d O E --=?? )()(k k k k k I f I I f I O '=??=?? )1()](1)[()(k k k k k O O I f I f I f -=-='

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

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

及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。 BP神经网络的学习过程由正向传播和反向传播组成。在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精 度要求。BP算法的实质是求取误差函数最小值问题,通过多个样本的反复训练,一般采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。 隐含节点 图1典型3层BP神经网络结构图 2用于函数拟合的BP神经网络模型的建立 为建立函数拟合的BP神经网络模型,一般要考虑以下几步: (1) 样本数据的产生 为简单起见,在X1,X2均属于[1,5]区间内选择均匀分布的200个数据点分别作为训练和测试样本。如图2所示。 训练和测试数据 5 ------ ?1 D r―-- —1—t~~r--H 训练数据 测试数据 4.5 + +■*4-*+■★*-+ 弓T 4

神经网络实验报告——BP网络实现对Hermit函数逼近

实验报告 ——基于BP网络的多层感知器 电气工程及其自动化四班20080240402 曹建20080240406 邓宏

一、神经网络结构图 O 输出层 隐层 输入层 X0 X 二、程序 1.单样本程序: function main() clc close all p=1;Pmax=100 ; q=1;Qmax=30000; n=0.005;l=5; Emin=0.1; Erme=[]; rand('state',sum(100*clock)); w=rand(1,l);w0=0.5; v=rand(1,l ); v0=rand(1,l); y0=-1;x0=-1; for p=1:Pmax interrupt(p)=normrnd(0,0.1); x(p)=8*(rand()-0.5); d(p)=1.1*(1-x(p)+2*x(p)^2)*exp((-x(p)^2)/2); end while(q<=Qmax) for p=1:Pmax

y(p,:)=logsig(v*x(p)+v0*x0); o1(p)=w*y(p,:)'+y0*w0; o(p)=o1(p)+interrupt(p); ek=d(p)-o(p); for i=1:l ej(i)=w(i)*(d(p)-o(p))*y(p,i)*(1-y(p,i)); end wc=n*ek*y(p,:);w0c=n*ek*y0;vc=n*ej*x(p);v0c=n*ej*x0; w=w+wc;w0=w0+w0c;v=v+vc;v0=v0+v0c; E(p)=d(p)-o(p); end s2=0; for p=1:Pmax s2=E(p)^2+s2; end e=(s2/Pmax)^0.5; Erme=[Erme e]; if e<=Emin break; end q=q+1; end Erme; q x=linspace(-4,4); for p=1:100 d(p)=1.1*(1-x(p)+2*x(p)^2)*exp((-x(p)^2)/2); end for p=1:100 y(p,:)=logsig(v*x(p)+v0*x0); o1(p)=w*y(p,:)'+y0*w0; end plot(Erme); xlabel('误差的收敛曲线') figure; plot(x,d,'-r'); hold on; plot(x,o1,'-.b'); xlabel('Hermit多项式曲线与所构建BP网络输出曲线') 最好的一次运行结果:学习率=0.01,隐节点数=5

神经网络实现函数逼近的影响因素分析

Advances in Applied Mathematics 应用数学进展, 2019, 8(8), 1453-1456 Published Online August 2019 in Hans. https://www.360docs.net/doc/e77385136.html,/journal/aam https://https://www.360docs.net/doc/e77385136.html,/10.12677/aam.2019.88169 Analysis of the Effect of BP Neural Network on Function Approximation Jiabo She, Yanxiang Tan School of Mathematics and Statistics, Changsha University of Science and Technology, Changsha Hunan Received: July 31st, 2019; accepted: August 15th, 2019; published: August 22nd, 2019 Abstract The multi-layer network based on backward propagation algorithm is also called BP network. Be-cause it is easy to implement, it is the most widely used neural network. This paper mainly studies the application of BP network based on MATLAB in function approximation, and analyzes the in-fluencing factors of its function approximation effect. The research results show that the artificial neural network increases with the number of hidden layers, and the function approximation error decreases. As the number of hidden layer elements increases, the function approximation error decreases, and the error reduction rate gradually decreases. As the training accuracy decreases, the function approximation error decreases, the decrease rate gradually decreases, and the num-ber of convergence steps increases. Keywords BP Neural Network, Function Approximation, MATLAB 神经网络实现函数逼近的影响因素分析 佘嘉博,谭艳祥 长沙理工大学数学与统计学院,湖南长沙 收稿日期:2019年7月31日;录用日期:2019年8月15日;发布日期:2019年8月22日 摘要 基于向后传播算法的多层网络又称BP网络,因其易于实现,是目前应用最广的一种神经网络。本文主要研究基于MATLAB的BP网络在函数逼近的应用,分析其函数逼近效果的影响因素。经本文研究表明,人

基于BP神经网络算法的函数逼近

实验二基于BP神经网络算法的函数逼近 自动化实验班 沈俊鹏 1、实验目的 1)掌握M a t l a b子函数的编写与调用。 2)理解B P神经网络算法的原理,并利用程序实现利用B P算法逼近任意非线 性函数。 2、实验内容与实验要求 1)掌握B P神经网络算法的原理。 2)掌握m a t l a b子函数的编写方法及调用方法。 3)根据B P神经网络算法的原理,编写M a t l a b程序,逼近非线性函数。 3、实验要求 1)自己编写Matlab函数。 2)书写实验报告。 3)分析实验结果,用图描述出非线性函数的真实曲线以及B P算法逼近的曲线。 4、实验设备 1)计算机 2)Matlab软件 5、实验原理及步骤 1)BP神经网络算法: 神经网络由神经元和权重构成,神经元即为:输入节点,输出节点和隐层结点三部分;权重是各个神经元相互连接的强度。神经网络通过训练,从样本中学习知识,并且将知识以数值的形式存储于连接权中。神经网络的分类过程分成

两部分,首先学习网络的权重,利用一些已知的数据训练网络得到该类数据模型的权重;接着根据现有的网络结构和权重等参数得到未知样本的类别。BP 算法被称作反向传播算法,主要思想是从前向后(正向)逐层传播信息;从后向前(反向)逐层传播输出层的误差,间接算出隐层误差。 算法分为两个阶段: 第一阶段(正向过程)输入信息从输入层经隐层逐层计算各单元的输出值;根据下式计算每层的输出值。 第二阶段(反向传播过程)输出误差逐层向前算出隐层各个单元的误差,并用此误差修正前层的值。在BP 算法中常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid 函数作为输出函数。 (1) 计算误差: (2) 其中 的计算公式为 (3) (4) 重复上述过程直到算法收敛,即误差小于给定的阈值。 2) 实验程序 w10=[0.1 0.2;0.3 0.15;0.2 0.4]; w11=[0.2 0.1;0.25 0.2;0.3 0.35]; w20=[0.2;0.25;0.3]; w21=[0.15;0.2;0.4]; q0=[0.1 0.2 0.3]; q1=[0.2 0.15 0.25]; ) (j j i i ij j net f O O w net ==∑)()()1(t w t w t w ij ij ij ?+=+

基于BP神经网络的函数逼近的MATLAB实现_冯蓉

收稿日期:2006-09-04 作者简介:冯 蓉(1985 ),女,陕西延川人,西安创新学院理工系05级本科生。 基于BP 神经网络的函数逼近的MATLAB 实现 冯 蓉1 ,杨建华 2 (1.延安大学西安创新学院,陕西西安710100;2.长安大学信息工程学院,陕西西安710064)摘 要:BP 神经网络由于它的学习能力和非线性特性,使其能够对非线性函数进行很好的逼近。通过对BP 神经网络结构和MATLAB 软件及其BP 神经网络工具箱的应用研究,利用BP 神经网络工具箱设计BP 神经网络,用于对非线性函数的逼近,通过网络的训练、测试达到了预期的效果。关键词:BP 神经网络;神经网络工具箱;函数逼近;MATLAB 软件 中图分类号:TP183 文献标识码:A 文章编号:1008-3871(2007)02-0020-03 以神经网络研究为开端,整个学术界对计算的概念和作用有了新的认识和提高。计算并不局限于数学中,并不仅仅采取逻辑的、离散的形式,而且大量的运算表现在对模糊的低精度的模拟量的并行计算。对于后一类计算,传统的计算机无法施展其威力。神经网络的数学理论本质上是非线性的数学理论,因此,现代非线性科学方面的进展必将推动神经网络的研究。同时,神经网络理论也会对非线性科学提出新课题。神经网络研究的对象是神经系统,这是高度进化的复杂系统,也是系统科学中一个重要的领域。神经网络尤其是BP 神经网络由于它的学习能力和非线性特性,使其能够对任意非线性函数进行很好的逼近。BP 网络的模型的实现需要掌握计算机编程语言及较高的编程能力,这在一定程度上不利于神经网络技术的推广和使用。而MAT -LAB 软件提供了一个现成的神经网络工具箱,为解决这个难题提供了条件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。目前,利用神经网络以及神经网络与其它方法结合对非线性函数进行逼近的文章也不少,理论及实现方法,各有千秋[1-3] 。鉴于函数逼近及BP 神经网络的这些特点,本文提出了基于BP 神经网络的函数逼近方法,利用BP 神经网络工具箱设计了BP 神经网络,用于对非线性函数的逼近。通过网络的训练、测试达到了预期的效果。 1 BP 神经网络的结构 [4] BP 神经网络是一个具有三层或三层以上的阶层神经网络,上下层之间各种神经元实行权连接,而 各层之间神经元无连接。最基本的BP 网络是三层前馈网络,即输入层,隐含层和输出层。 1.1BP 神经网络层数的选取 具有偏差和至少一个S i g m o id 型隐含层加上一个线性输出层的网络,能够逼近任何有理函数。增加层数主要可以更进一步的降低误差,提高精度,但是同时也会增加网络的复杂性,从而增加网络权值的训练时间。增加隐含层中的神经元节点数目也可以提高误差精度,其训练效果也比增加层数更容易观察和调整,所以通常状况下,应该优先考虑增加隐含层中的神经元节点的数目。 1.2网络输入层和输出层的设计 输入层起缓冲器的作用,把数据源加到网络上。其节点数目取决于数据源的维数。基于BP 算法的神经元网络输出层神经元可以根据需要求解的问题和数据表示的方式而定。在设计输入层和输出层时,应该尽可能的减小系统规模,使系统的学习时间和复杂性减小。1.3BP 神经网络隐含层节点的选择 基于BP 算法的神经元网络中各层节点数目的选择对于网络性能的影响很大,过多的隐含节点对网络的概括能力产生不利影响,既影响网络对于新输入的适应性。而过少的隐含层节点数目会影响网络学习的精度,并且是网络学习出现局部极小的情况增多,所以节点的数目要选择恰当。常用的解决办法就是使隐含层数目可变。一种是开始放入足够的隐含单元,然后把学习后的那些不起作用的隐含层单元逐步去掉,一直减少到不可收缩为止。另一种是开始放入比较少的隐含层单元,学习一些次数后,还不成功就要增 2007年3月第17卷 第2期榆林学院学报J O URNAL OF Y UL I N COLLEGE M ar .2007 Vo.l 17No .2

相关文档
最新文档