您好,欢迎访问三七文档
BP算法及其优缺点--误差反传(ErrorBackPropagation)算法的改进与BP网络设计基于BP算法的多层感知器的模型三层BP网络o1…ok…olW1○Wk○Wl○y1○y2○…○yj…○ymV1Vm○○○○○x1x2…xi…xn-1xn输入层隐层输出层模型的数学表达输入向量:X=(x1,x2,…,xi,…,xn)T隐层输出向量:Y=(y1,y2,…,yj,…,ym)T输出层输出向量:O=(o1,o2,…,ok,…,ol)T期望输出向量:d=(d1,d2,…,dk,…,dl)T输入层到隐层之间的权值矩阵:V=(V1,V2,…,Vj,…,Vm)隐层到输出层之间的权值矩阵:W=(W1,W2,…,Wk,…,Wl)各个变量之间如何建立联系,来描述整个网络?神经网络的学习学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。学习的本质:对可变权值的动态调整学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。BP算法是一种学习规则)()]()()([ttd,t,trjjjXXWWBP算法的基本思想学习的类型:有导师学习核心思想:将输出误差以某种形式通过隐层向输入层逐层反传学习的过程:信号的正向传播误差的反向传播将误差分摊给各层的所有单元---各层单元的误差信号修正各单元权值BP算法的学习过程正向传播:输入样本---输入层---各隐层---输出层判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符误差反传误差以某种形式在各层表示----修正各层单元的权值网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止建立权值变化量与误差之间的关系输出层与隐层之间的连接权值调整隐层和输入层之间的连接权值调整jkjkwEwj=0,1,2,…,m;k=1,2,…,l(3.4.9a)ijijvEvi=0,1,2,…,n;j=1,2,…,m(3.4.9b)式中负号表示梯度下降,常数η∈(0,1)表示比例系数,反映了训练速率。可以看出BP算法属于δ学习规则类,这类算法常被称为误差的梯度下降(GradientDescent)算法。初始化V、W、Emin,、ηq=1,p=1,E=0输入样本,计算各层输出:m21jfyTjj,...,,),(XVl21kfoTjk,...,,),(YW计算误差:P1pl1k2kkod21E)(计算各层误差信号:l21koo1odkkkk,...,,,))((δokm21jyy1wjjl1kjkokyj,...,,))((调整各层权值:m10jl21kjyokjkwjkw,...,,,...,,,,n10xm21jxvviyjijij,...,,,...,,,Yp增1,q增1pP?NNE=0,p=1EEminY结束BP算法的程序实现(1)初始化;PppPRMEEE11(4)计算各层误差信号;(5)调整各层权值;(6)检查是否对所有样本完成一次轮训;(7)检查网络总误差是否达到精度要求。(2)输入训练样本对XXp、ddp计算各层输出;(3)计算网络输出误差;BP算法的程序实现初始化V、W计数器q=1,p=1输入第一对样本计算各层输出计算误差:P1pl1k2kkod21E)(Yp增1pP?N用E计算各层误差信号调整各层权值q增1NErmsEminE=0,p=1Y结束然后根据总误差计算各层的误差信号并调整权值。P1pl1k2pkpkod21E)(总另一种方法是在所有样本输入之后,计算网络的总误差:BP网络的主要功能(1)非线性映射能力多层前馈网能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供BP网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。多层前馈网的主要能力(2)泛化能力当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为多层前馈网的泛化能力。(3)容错能力输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。误差曲面与BP算法的局限性误差函数的可调整参数的个数nw等于各层权值数加上阈值数,即:)1()1(mlnmnw误差E是nw+1维空间中一个形状极为复杂的曲面,该曲面上的每个点的“高度”对应于一个误差值,每个点的坐标向量对应着nw个权值,因此称这样的空间为误差的权空间。误差曲面的分布--BP算法的局限性曲面的分布特点--------算法的局限性(1)存在平坦区域--------误差下降缓慢,影响收敛速度(2)存在多个极小点------易陷入局部最小点曲面分布特点1:存在平坦区域平坦--误差的梯度变化小--接近于零okjokikywE存在平坦区域的原因分析接近于零的情况分析造成平坦区的原因:各节点的净输入过大f(x)1.00.5x0)1()(kkkkokoood30mjjjkywok对应着误差的某个谷点平坦区曲面分布特点2:存在多个极小点误差梯度为零多数极小点都是局部极小,即使是全局极小往往也不是唯一的。单权值双权值曲面分布特点2:存在多个极小点BP算法---以误差梯度下降为权值调整原则误差曲面的这一特点---使之无法辨别极小点的性质导致的结果:因而训练经常陷入某个局部极小点而不能自拔,从而使训练无法收敛于给定误差。标准BP算法的改进--引言误差曲面的形状--固有的算法的作用是什么?调整权值,找到最优点那么如何更好地调整权值?利用算法使得权值在更新的过程中,‘走’合适的路径,比如跳出平坦区来提高收敛速度,跳出局部最小点等等如何操作?需要在进入平坦区或局部最小点时进行一些判断,通过改变某些参数来使得权值的调整更为合理。标准的BP算法内在的缺陷:⑴易形成局部极小而得不到全局最优;⑵训练次数多使得学习效率低,收敛速度慢;⑶隐节点的选取缺乏理论指导;⑷训练时学习新样本有遗忘旧样本的趋势。针对上述问题,国内外已提出不少有效的改进算法,下面仅介绍其中3种较常用的方法。3.5标准BP算法的改进改进1:增加动量项改进2:自适应调节学习率改进3:引入陡度因子改进1:增加动量项提出的原因:标准BP算法只按t时刻误差的梯度降方向调整,而没有考虑t时刻以前的梯度方向---从而常使训练过程发生振荡,收敛缓慢。方法:)1(δ)(ttWXWα为动量系数,一般有α∈(0,1)改进1:增加动量项实质:从前一次权值调整量中取出一部分迭加到本次权值调整量中作用:动量项反映了以前积累的调整经验,对于t时刻的调整起阻尼作用。当误差曲面出现骤然起伏时,可减小振荡趋势,提高训练速度。改进2:自适应调节学习率提出的原因:标准BP算法中,学习率η也称为步长,确定一个从始至终都合适的最佳学习率很难。平坦区域内,η太小会使训练次数增加;在误差变化剧烈的区域,η太大会因调整量过大而跨过较窄的“坑凹”处,使训练出现振荡,反而使迭代次数增加。改进2:自适应调节学习率基本思想:自适应改变学习率,使其根据环境变化增大或减小。基本方法:设一初始学习率,若经过一批次权值调整后使总误差↑,则本次调整无效,且=β(β1);若经过一批次权值调整后使总误差↓,则本次调整有效,且=θ(θ1)。改进3:引入陡度因子提出的原因:误差曲面上存在着平坦区域。权值调整进入平坦区的原因是神经元输出进入了转移函数的饱和区。基本思想:如果在调整进入平坦区后,设法压缩神经元的净输入,使其输出退出转移函数的不饱和区,就可以改变误差函数的形状,从而使调整脱离平坦区。改进3:引入陡度因子基本方法:在原转移函数中引入一个陡度因子λ当发现ΔE接近零而d-o仍较大时,可判断已进入平坦区,此时令λ1;当退出平坦区后,再令λ=1。/11neteoo1=1121net0改进3:引入陡度因子作用分析:λ1:net坐标压缩了λ倍,神经元的转移函数曲线的敏感区段变长,从而可使绝对值较大的net退出饱和值。λ=1:转移函数恢复原状,对绝对值较小的net具有较高的灵敏度。应用结果表明该方法对于提高BP算法的收敛速度十分有效。o1=1121net0总结基于BP算法的多层前馈网络模型BP算法的实现基本思想推导过程程序实现BP学习算法的功能BP学习算法的局限性BP学习算法的改进3.6BP网络设计基础一、训练样本集的准备1.输入输出量的选择2.输入量的提取与表示3.输出量的表示二、输入输出数据的归一化三、网络训练与测试1输出量的选择输出量:代表系统要实现的功能目标系统的性能指标分类问题的类别归属非线性函数的函数值一、训练样本集的准备输入量的选择输入量选择的两条基本原则必须选择那些对输出影响大且能够检测或提取的变量各输入变量之间互不相关或相关性很小一、训练样本集的准备输入输出量的性质从输入、输出量的性质来看,可分为两类:一类是数值变量,一类是语言变量。数值变量的值是数值确定的连续量或离散量。语言变量是用自然语言表示的概念,其“语言值”是用自然语言表示的事物的各种属性。当选用语言变量作为网络的输入或输出变量时,需将其语言值转换为离散的数值量。一、训练样本集的准备2.输入量的提取与表示XC=(111100111)TXI=(111100111)TXT=(111100111)T(1)文字符号输入一、训练样本集的准备x(t)xnx1t012345n(2)曲线输入TpnpipppxxxxX),...,,...,,(21p=1,2,…,P一、训练样本集的准备(3)函数自变量输入一般有几个输入量就设几个分量,1个输入分量对应1个输入层节点。(4)图象输入在这类应用中,一般先根据识别的具体目的从图象中提取一些有用的特征参数,再根据这些参数对输入的贡献进行筛选,这种特征提取属于图象处理的范畴。一、训练样本集的准备3.输出量的表示(1)“n中取1”表示法“n中取1”是令输出向量的分量数等于类别数,输入样本被判为哪一类,对应的输出分量取1,其余n-1个分量全取0。例如,用0001、0010、0100和1000可分别表示优、良、中、差4个类别。(2)“n-1”表示法如果用n-1个全为0的输出向量表示某个类别,则可以节省一个输出节点。例如,用000、001、010和100也可表示优、良、中、差4个类别。(3)数值表示法对于渐进式的分类,可以将语言值转化为二值之间的数值表示。数值的选择要注意保持由小到大的渐进关系,并要根据实际意义拉开距离。一、训练样本集的准备二、输入输出数据的归一化归一化也称为或标准化,是指通过变换处理将网络的输入、输出数据限制在[0,1]或[-1,1]区间内。进行归一化的主要原因:归一化的方法:进行归一化的主要原因:①网络的各个输入数据常常具有不同的物理意义和不同的量纲,归一化给各输入分量以同等重要的地位;②BP网的神经元均采用Sigmoid转移函数,变换后可防止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误差曲面的平坦区;③Sigmoid转移函数的输出在0~1或-1~1之间。教师信号如不进行归一化处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小。二、输入输出数据的归一化归一化的方法:将输入输出数据变换为[0,1]区间的值常用以下变换式minmaxminxxxxxii其中,xI代表输入或输出数据,xmin代表数据变化的最小值,xman代表数据的最大值。将输入输出数据变换为[-1,1]区间的值常用以下变换式2minmaxxxxmid)(minmax21xxxxxmidii其中,xmid代表数据变化范围的中间值
本文标题:BP算法及其优缺点
链接地址:https://www.777doc.com/doc-3275178 .html