BP神经网络在Matlab函数逼近中的应用.docx
- 文档编号:2060981
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:13
- 大小:452.43KB
BP神经网络在Matlab函数逼近中的应用.docx
《BP神经网络在Matlab函数逼近中的应用.docx》由会员分享,可在线阅读,更多相关《BP神经网络在Matlab函数逼近中的应用.docx(13页珍藏版)》请在冰豆网上搜索。
BP神经网络在Matlab函数逼近中的应用
燕山大学
模式识别与智能系统导论
题目:
BP网络在函数逼近中的应用
专业:
控制工程
姓名:
XXX
学号:
一BP神经网络及其原理
1.1BP神经网络定义
BP(BackPropagation)神经网络是一种神经网络学习算法。
其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。
相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。
然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。
此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。
1.2BP神经网络模型及其基本原理
BP网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。
图7为一个典型的三层BP网络的拓扑结构,层与层之间采用全互连方式,同一层之间不存在相互连接,隐层可以有一层或多层。
层与层之间有两种信号在流通:
一种是工作信号(用实线表示),它是施加输入信号后向前传播直到在输出端产生实际输出的信号,是输入和权值的函数。
另一种是误差信号(用虚线表示),网络实际输出与期望输出间的差值即为误差,它由输出端开始逐层向后传播。
BP网络的学习过程程由前向计算过程和误差反向传播过程组成。
在前向计算过程中,输入量从输入层经隐层逐层计算,并传向输出层,每层神经元的状态只影响下一层神经元的状态。
如输出层不能得到期望的输出,则转入误差反向传播过程,误差信号沿原来的连接通路返回,逐次调整网络各层的权值和阈值,直至到达输入层,再重复向计算。
这两个过程一次反复进行,不断调整各层的权值和阈值,使得网络误差最小或达到人们所期望的要求时,学习过程结束。
图1 典型BP神经网络模型
生物神经元信号的传递是通过突触进行的一个复杂的电化学等过程,在人工神经网络中是将其简化模拟成一组数字信号通过一定的学习规则而不断变动更新的过程,这组数字储存在神经元之间的连接权重。
网络的输入层模拟的是神经系统中的感觉神经元,它接收输入样本信号。
输入信号经输入层输入,通过隐含层的复杂计算由输出层输出,输出信号与期望输出相比较,若有误差,再将误差信号反向由输出层通过隐含层处理后向输入层传播。
在这个过程中,误差通过梯度下降算法,分摊给各层的所有单元,从而获得各单元的误差信号,以此误差信号为依据修正各单元权值,网络权值因此被重新分布。
此过程完成后,输入信号再次由输入层输入网络,重复上述过程。
这种信号正向传播与误差反向传播的各层权值调整过程周而复始地进行着,直到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。
权值不断调整的过程就是网络的学习训练过程。
BP神经网络的信息处理方式具有如下特点:
1)信息分布存储。
人脑存储信息的特点是利用突触效能的变化来调整存储内容,即信息存储在神经元之间的连接强度的分布上,BP神经网络模拟人脑的这一特点,使信息以连接权值的形式分布于整个网络。
2)信息并行处理。
人脑神经元之间传递脉冲信号的速度远低于冯·诺依曼计算机的工作速度,但是在很多问题上却可以做出快速的判断、决策和处理,这是由于人脑是一个大规模并行与串行组合的处理系统。
BP神经网络的基本结构模仿人脑,具有并行处理的特征,大大提高了网络功能。
3)具有容错性。
生物神经系统部分不严重损伤并不影响整体功能,BP神经网络也具有这种特性,网络的高度连接意味着少量的误差可能不会产生严重的后果,部分神经元的损伤不破坏整体,它可以自动修正误差。
这与现代计算机的脆弱性形成鲜明对比。
4)具有自学习、自组织、自适应的能力。
BP神经网络具有初步的自适应与自组织能力,在学习或训练中改变突触权值以适应环境,可以在使用过程中不断学习完善自己的功能,并且同一网络因学习方式的不同可以具有不同的功能,它甚至具有创新能力,可以发展知识,以至超过设计者原有的知识水平。
1.3BP神经网络的主要功能
目前,在人工神经网络的实际应用中。
绝大部分的神经网络模型都采用BP神经网络及其变化形式。
它也是前向网络的核心部分,体现了人工神经网络的精华。
BP网络主要用于以下四方面。
(1)函数逼近:
用输入向量和相应的输出向量训练一个网络以逼近一个函数。
(2)模式识别:
用一个待定的输出向量将它与输入向量联系起来。
(3)分类:
把输入向量所定义的合适方式进行分类。
(4)数据压缩:
减少输出向量维数以便传输或存储。
1.4BP网络的优点以及局限性
BP神经网络最主要的优点是具有极强的非线性映射能力。
理论上,对于一个三层和三层以上的BP网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。
其次,BP神经网络具有对外界刺激和输入信息进行联想记忆的能力。
这是因为它采用了分布并行的信息处理方式,对信息的提取必须采用联想的方式,才能将相关神经元全部调动起来。
BP神经网络通过预先存储信息和学习机制进行自适应训练,可以从不完整的信息和噪声干扰中恢复原始的完整信息。
这种能力使其在图像复原、语言处理、模式识别等方面具有重要应用。
再次,BP神经网络对外界输入样本有很强的识别与分类能力。
由于它具有强大的非线性处理能力,因此可以较好地进行非线性分类,解决了神经网络发展史上的非线性分类难题。
另外,BP神经网络具有优化计算能力。
BP神经网络本质上是一个非线性优化问题,它可以在已知的约束条件下,寻找一组参数组合,使该组合确定的目标函数达到最小。
不过,其优化计算存在局部极小问题,必须通过改进完善。
由于BP网络训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。
动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。
多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼近。
当然,感知器和线性神经网络能够解决这类网络问题。
但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。
对于非线性系统,选择合适的学习率是一个重要的问题。
在线性网络中,学习率过大会导致训练过程不稳定。
相反,学习率过小又会造成训练时间过长。
和线性网络不同,对于非线性多层网络很难选择很好的学习率。
对那些快速训练算法,缺省参数值基本上都是最有效的设置。
非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。
寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。
为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。
网络隐层神经元的数目也对网络有一定的影响。
神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。
二基于MATLAB的BP神经网络工具箱函数
快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手段。
Matlab神经网络工具箱的出现,更加拓宽了神经网络的应用空间。
神经网络工具箱将很多原本需要手动计算的工作交给计算机,一方面提高了工作效率,另一方面,还提高了计算的准确度和精度,减轻了工程人员的负担。
神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一。
它以人工神经网络理论为基础,利用MATLAB编程语言构造出许多典型神经网络的框架和相关的函数。
这些工具箱函数主要为两大部分。
一部分函数特别针对某一种类型的神经网络的,如感知器的创建函数、BP网络的训练函数等。
而另外一部分函数则是通用的,几乎可以用于所有类型的神经网络,如神经网络仿真函数、初始化函数和训练函数等。
这些函数的MATLAB实现,使得设计者对所选定网络进行计算过程,转变为对函数的调用和参数的选择,这样一来,网络设计人员可以根据自己的的需要去调用工具箱中有关的设计和训练程序,从烦琐的编程中解脱出来,集中精力解决其他问题,从而提高工作效率。
神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。
对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。
Matlab7.0神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表1所示。
表1BP网络的常用函数表
函数类型
函数名称
函数用途
前向网络创建函数
newcf
创建级联前向网络
Newff
创建前向BP网络
传递函数
logsig
S型的对数函数
tansig
S型的正切函数
purelin
纯线性函数
学习函数
learngd
基于梯度下降法的学习函数
learngdm
梯度下降动量学习函数
性能函数
mse
均方误差函数
msereg
均方误差规范化函数
显示函数
plotperf
绘制网络的性能
plotes
绘制一个单独神经元的误差曲面
plotep
绘制权值和阈值在误差曲面上的位置
errsurf
计算单个神经元的误差曲面
2.1BP网络创建函数
1)newff
该函数用于创建一个BP网络。
调用格式为:
net=newff
net=newff(PR,[S1S2..SN1],{TF1TF2..TFN1},BTF,BLF,PF)
net=newff;用于在对话框中创建一个BP网络。
net为创建的新BP神经网络;
PR为网络输入向量取值范围的矩阵;
[S1S2…SNl]表示网络隐含层和输出层神经元的个数;
{TFlTF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;
BTF表示网络的训练函数,默认为‘trainlm’;
BLF表示网络的权值学习函数,默认为‘learngdm’;
PF表示性能数,默认为‘mse’。
2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。
2.2神经元上的传递函数
传递函数是BP网络的重要组成部分。
传递函数又称为激活函数,必须是连续可微的。
BP网络经常采用S型的对数或正切函数和线性函数。
1)logsig
该传递函数为S型的对数函数。
调用格式为:
A=logsig(N)
info=logsig(code)
其中,
N:
Q个S维的输入列向量;
A:
函数返回值,位于区间(0,1)中;
2)tansig
该函数为双曲正切S型传递函数。
调用格式为:
A=tansig(N)
info=tansig(code)
其中,
N:
Q个S维的输入列向量;
A:
函数返回值,位于区间(-1,1)之间。
3)purelin
该函数为线性传递函数。
调用格式为:
A=purelin(N)
info=purelin(code)
其中,
N:
Q个S维的输入列向量;
A:
函数返回值,A=N。
2.3BP网络学习函数
1)learngd
该函数为梯度下降权值/阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。
调用格式为:
[dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
[db,ls]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
info=learngd(code)
2)learngdm函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。
2.4BP网络训练函数
1)train
神经网络训练函数,调用其他训练函数,对网络进行训练。
该函数的调用格式为:
[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP 神经网络 Matlab 函数 逼近 中的 应用