1、BP神经网络与神经网络与RBF神经网络神经网络主要内容n一:神经网络的背景知识n二:BP神经网络n三:RBF神经网络n四:两种神经网络的比较人工神经网络简介n人工神经网络(ArtificialNeuralNetwork)是基于仿生学理论上的对人脑某些已知结构的模仿。它将人脑的神经元连接方式加以抽象。用大量的神经元节点组成一个庞大的神经网络,从而实现数据的非线性处理,以及复杂的逻辑运算。正因为人工神经网络是对生物神经网络的模仿,它具有一些传统逻辑运算不具有的优点。主要包括:n一、非线性非线性是自然界的普遍特性。人脑的思考过程就是非线性的。人工神经网络通过模仿人脑神经元结构的信息传递过程
2、,可以进行线性或者非线性的运算,这是人工神经网络的最特出的特性。n二、自适应性神经网络的结构中设置了权值和阈值参数。网络能够随着输入输出端的环境变化,自动调节神经节点上的权值和阈值。因此,神经网络对在一定范围变化的环境有很强的适应能力。适用于完成信号处理、模式识别、自动控制等任务。系统运行起来也相当稳定。n三、较强的容错性由若干个小的神经元组成的网络十分庞大。信息存储在神经元之间的连接权值上,采用的是分布式的存储方式。局部的或部分的神经元损坏后,不会对全局的活动造成大的影响。神经网络的应用前景n目前,神经网络主要应用于:信息领域、自动化领域、医学领域等。n信息领域:主要包括信号处理
3、和模式识别。目前神经网络被广泛的用于自适应信号处理和非线性信号处理。在这些方面已经有很多成功的例子。例如信号传递的去噪声和运动目标的速度估计。在模式识别方面,神经网络不仅可以完成如图像的特征检测,边缘提取等任务还可以进行如目标跟踪,语音识别等动态识别。神经网络模型包括:n一、神经元n二、网络拓扑n三、学习算法神经元在介绍人工神经网络之前,首先简单了解一下实际的生物神经元的基本情况。一个生物神经元有两种状态,即兴奋状态和抑制状态。平时处于抑制状态的生物神经元,会收到多个其他生物神经元传来的兴奋电位,并且这多个输入电位在该神经元中以代数和的形式叠加,如果输入的兴奋总量超过某个阈值,该生物神经
4、元就会被激发进入兴奋状态,发出输出脉冲并传给其他神经元。人工神经元模型其中xj(j=1,2n)为神经元i的输入信号,wij为连接权,ui是由输入信号线性组合后的输出,i为神经元的阀值。Njjijixwu1iiiuvNjjijixwu1iiiuvNjjijixwu1iiiuvNjjijixwu1iiiuvNjjijixwu1iiiuvf()称为神经元的传递函数(活化函数或激活函数)。对于基本的感知器神经元,工作方式是将加权总和与神经元的阈值进行比较,若大于阈值,神经元被激活。信号被传送到与其相连的更高一层神经元。)(1ijjijixwfy常见的传递函数有三类硬阈值型函数)0(0)0(1)
5、(tttf分段线性函数)1(1)11()1(1)(tttttfsigmoid函数eetttf11)(nSigmoid函数是最常用的传递函数之一,这是由于sigmoid函数具有以下特点:n非线性和单调性n无限次可微n当权值很大时可近似阶跃函数n当权值很小时可近似线性函数网络拓扑n网络拓扑是指网络的结构以及神经元之间的连接方式。根据连接方式的不同,可分为反馈型人工神经网络和非反馈型人工神经网络。前者神经元之间存在反馈的环路,后者神经元之间不存在反馈回路。n对于非反馈神经网络,若结构是分层的,每一层神经元只与上一层神经元相连,同层之间互不相连,则称该网络为前馈型人工神经网络。网络的学习算法n网络的学
6、习算法是以满足网络所需的性能为目标,决定连接各神经元的初始权值及在训练时调整权值的方法。学习方法可分为监督学习和非监督学习。前者为有导师学习,训练时,同时向网络提供输入模式以及输出的样板模式,在不断输入不同训练模式的同时调整权值,从而使输出尽量接近样板模式。后者是无导师学习,它是一种自动的聚类过程。三种用于模式识别的网络结构和算法三种用于模式识别的网络结构和算法n单层感知器单层感知器(SingleLayerPereceptronSingleLayerPereceptron,简称为,简称为SLPSLP)可作为分类器。单输出的可作为分类器。单输出的SLPSLP,其结构就是单个人工神,其
7、结构就是单个人工神经元。输入的经元。输入的NN个元可为连续的或二进制的标量信号。个元可为连续的或二进制的标量信号。表示一个维空间的超平面。图表示一个维空间的超平面。图6-36-3表示表示可由这个超平面对可由这个超平面对AA、BB类进行分类。类进行分类。SLPSLP结构的前部分结构的前部分为一线性加权装置为一线性加权装置((权为权为,附有阀值,附有阀值)),其输出经,其输出经一个性能函数为一个性能函数为的硬限幅非线性装置,然后输出到判的硬限幅非线性装置,然后输出到判决器。按当其输入为决器。按当其输入为+1+1时判属时判属AA类;当其输入为类;当其输入为-1-1时判时判属属B
8、B类的准则来判类。类的准则来判类。0)()(1txtwNiiiiwf两类分类处理训练步骤第一步:设置初始权值及阈值。置初始的权值及阈值为一个小的随机数。第二步:启用新的输入信号x1,x2,xn及给定相应的理想输出信号d(t),其中d(t)=+1(若实际属于A类)d(t)=-1(若实际属于B类)第三步:计算实际输出)(1ijjijixwfy第四步:调整权值式中的为小于1的正的增益因子。由上式可见,只是在出现判决误差时权值才变动。第五步:转到第二步重复进行。)()()()()1(ttytdttxwwiii双层感知器双层感知器n实际上实用的最简单的实际上实用的最简单的MM类分类的感知
9、器(类分类的感知器(PereceptronPereceptron)也应该是一)也应该是一种双层神经网络模型。它是一个两层前馈神经网络,一层为输入层,另种双层神经网络模型。它是一个两层前馈神经网络,一层为输入层,另一层具有计算单元,可以通过监督学习建立模式判别的能力,如图所示。一层具有计算单元,可以通过监督学习建立模式判别的能力,如图所示。x2xNx1yMy1y2n学习的目标是通过改变权值使神经网络由给定的输入得到给定的输出。作为分学习的目标是通过改变权值使神经网络由给定的输入得到给定的输出。作为分类器,可以用已知类别的模式向量(向量维数等于输入节点数)作为训练集,类器,可以用已知类别的模式向量
10、(向量维数等于输入节点数)作为训练集,当输入为属于第当输入为属于第jj类的特征向量类的特征向量时,应使对应于该类的输出神经元的输出为时,应使对应于该类的输出神经元的输出为11,而其它输出神经元的输出则为而其它输出神经元的输出则为00(或(或11)。应使对应于该类的输出神经元的输)。应使对应于该类的输出神经元的输出为出为11,而其它输出神经元的输出则为,而其它输出神经元的输出则为00(或(或11)。)。n设理想的输出为:设理想的输出为:实际的输出为:实际的输出为:为了使实际的输出逼近理想输出,可以反复依次输入训练集中的输入向为了使实际的输出逼近理想输出,可以反复依次输入训练集
11、中的输入向量量,然后计算出实际的输出,然后计算出实际的输出,再对权值,再对权值作如下的修改作如下的修改双层感知器的学习过程与求取线性判别函数的过程是等价的,它只能用于解双层感知器的学习过程与求取线性判别函数的过程是等价的,它只能用于解决线性可分问题。它的特点是学习过程收敛很快,且与初始值无关。决线性可分问题。它的特点是学习过程收敛很快,且与初始值无关。XTmdddD),(2112(,.,)TmYyyyXYijw)()()()()1(txtytdtwtwijjijij多层感知器多层感知器n当类别不能用一超平面完善分割时,需用更复杂结构的当类别不能用一超平面完善分割时,需用更复杂结构的
12、感知器,即所谓的感知器,即所谓的“多层感知器多层感知器”。(。(Multi-LayerMulti-LayerPerceptronPerceptron,简称为,简称为MLPMLP)如果感知器的传递函数具有)如果感知器的传递函数具有非线性,则这种网络具有较强的分类能力。多层感知器非线性,则这种网络具有较强的分类能力。多层感知器网是由若干层感知器以及可修正的权连接而构成的多层网是由若干层感知器以及可修正的权连接而构成的多层前馈网络。前馈网络。n多层感知器的结构由一个输入层,一个以上隐藏层和一个输出层组成。多层感知器的结构由一个输入层,一个以上隐藏层和一个输出层组成。所有的连接均为相邻层之间的节
13、点的连接,同层之间不连接。输入层不所有的连接均为相邻层之间的节点的连接,同层之间不连接。输入层不作任何运算,它只是将每个输入量分配到各个输入节点。图作任何运算,它只是将每个输入量分配到各个输入节点。图6-56-5是一是一个三层个三层MLPMLP神经网络。神经网络。x2xNy1yMn对于多层感知器,对于多层感知器,WerbosWerbos曾于曾于19741974年提出,并且年提出,并且由由RumelhartRumelhart等人的工作而得到完善和推广的一种等人的工作而得到完善和推广的一种学习算法,即著名的学习算法,即著名的BPBP(BackPropagationBackPropagati
14、on)算)算法,它是一种修正连接权的算法。所以法,它是一种修正连接权的算法。所以MLPMLP的训练的训练大都采用这种反向传播算法。大都采用这种反向传播算法。BP神经网络BP(BackPropagation)神经网络,即误差反向传播算法的学神经网络,即误差反向传播算法的学习过程,习过程,由由信息的正向传播信息的正向传播和和误差的反向传播误差的反向传播两个过程组成两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据层各神经元;中间层是内部信息处理层,负责信息变换,根据信
15、息变化能力的需求,中间层可以设计为单隐层或者多隐层结信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。出信息处理结果。当实际输出与期望输出不符时,进入误差的当实际输出与期望输出不符时,进入误差的反向传播反向传播阶阶段。误差通过输出层,按误差梯度下降的方式修正各层段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。权值,向隐层、输入层逐
16、层反传。周而复始的信息正向传播和误差反向传播过程,是各层周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。度,或者预先设定的学习次数为止。BP神经网络结构神经网络结构2.1输入输入/输出变量的确定输出变量的确定若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。输出变量可以是一个,也可以是多个。
17、一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。Hornik等早已证明:若输入层和输出层采用线性传递函数,隐层采用Sigmoid传递函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即有1个隐含层)。在BP网络中,隐层节点数的选择非常重要,它对建立的神经网络模型的性能影响很大,但是目前理论上还没有一种科学的和普遍的确定方法。隐含层数和节点数隐含层数和节点数n一些文献中提到的一种隐含层节点数选择的经验公式:其中N为隐含层神经元个数,m为输入神经元个数,n为输出
18、神经元个数,为110之间的一个整数。BP神经网络的学习算法n为说明算法,假定BP网络中只有一个隐层,也就是三层BP网络。n上标h表示隐层,上标o表示输出层,下标p表示p次训练向量ipihjihpjxwS)(hpjhjhpjSfOjhpjokjopkOwS)(opkokopkSfO隐层节点j输出和输入节点的关系:输出节点k和隐层输出节点的关系:)(opkpkpkOt学习过程:定义输出误差pkkopkpkmkpkpOtE212)(2121学习的目的是要使以下定义的误差平方和最小:因此,要求以下的偏导,okjopkopkokokjpwSSfwE和需要式中1/2是为了计算方便,不影响推导过程。
19、为了决定权值改变的方向和大小,必须计算EP对wkj的负梯度然后调节权值,使总的误差减小opkokopkokhpjopkokopkpkokjphpjhpjLJokjokjokjopkokjopkopkokopkpkokjpSfSfOSfOtELOOSSSfOtE)()()()()(1其中所以为隐层节点数所以输出权值的更新:所以输出权值的更新:hpjopkokjokjopkokpkopkokopkpkopkhpjopkokopkpkokjpokjpokjokjOttjSfSfOtOSfOttttt)()1()()()(10)()()()()()1(则:无关的量是一个与令其中对隐层权值
20、的更新n隐层的权值更新采用与输出层相仿的方法n问题:我们知道这些节点的实际输出,确无法提前知道正确的输出是什么n解决方法:直接把总的误差和隐层的权值联系起来n我们要计算EP对隐层权值的梯度)()()()()()()(212hjihpjhpjhPjhPjopkopkopkkopkpkopkpkkhkjhkjpSSOOSSOOtOtEkjhpjokjokpkkopkokpkkopkpkmkpkpOftSftOtE22212)(21)(21)(2121ipihjihpjxwS)(hpjhjhpjSfO而:所以:jhpjokjopkOwS)(opkokopkSfOn注意:隐层的权值更新取决于输出层的所
21、有的误差根据相应的公式可以求出各个偏微分okjkopkpihpjhjhpjpopkokjopkokkopkpkpihpjhjhpjppihpjhjokjopkokkopkpkhkjpxSfSfOtxSfxSfSfOtE)()()()()()()(的定义利用比于上式的负值:所以隐层数值的改变正定义一个隐层误差项:pjhpjhkjhkjokjopkhpjhjhpkxttSf)()1()(则:令n计算全局误差m是样本数据个数,q是输出节点个数n判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出继续训练网络。2111()
22、())2qmookoEdkykmBP网络主要用途网络主要用途BP网络作为一种很重要的神经网络模型在许多领域都得到了应用(图像压缩编码、人脸识别、故障诊断、最优预测、分类)。1、函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。2、模式识别:用一个特定的输出向量将它与输入向量联系起来。3、分类:把输入向量以所定义的合适方式进行分类。4、数据压缩:减少输出向量维数以便于传输或存储。标准标准BP算法的缺陷算法的缺陷标准的标准的BP算法在应用中暴露出不少内在的缺陷:算法在应用中暴露出不少内在的缺陷:易形成局部极小而得不到全局最优;易形成局部极小而得不到全局最优;训练次数多使得学
23、习效率低,收敛速度慢;训练次数多使得学习效率低,收敛速度慢;隐节点的选取缺乏理论指导;隐节点的选取缺乏理论指导;训练时学习新样本有遗忘旧样本的趋势。训练时学习新样本有遗忘旧样本的趋势。目前有效改进方法:目前有效改进方法:增加动量项增加动量项一些学者指出,标准BP算法在调整权值时,只按t时刻误差的梯度降方向调整,而没有考虑t时刻前的梯度方向,从而常使训练过程发生震荡,收敛缓慢。为了提高网络的训练速度,可以在权值调整公式中增加一动量项。自适应调节学习率自适应调节学习率学习率也称为步长,在标准的BP算法定为常数,然而在实际应用中,很难确定一个从始至终都合适的最佳学习率。从误差曲面可以看出,在平坦
24、区域内学习率太小会使训练次数增加,因而希望增大学习率;而在误差变化剧烈的区域,学习率太大会因调整量过大而跨过较窄的“坑凹”处,使训练出现震荡,反而使迭代次数增加。为了加速收敛过程,一个较好的思想是自适应改变学习率,使其该大时增大,该小时减小。引入陡度因子引入陡度因子误差曲面上存在着平坦区域。权值调整进入平坦区的原因是神经元输出进入了转移函数的饱和区。如果在调整进入平坦区域后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,就可以改变误差函数的形状,从而使调整脱离平坦区。实现这一思路的具体作法是在原转移函数中引入一个陡度因子。BP神经网络示例n要求建立一个BP神经网络来逼近正选函数。输入
25、矢量P=0:0.1:2.*pi;期望输出矢量T=sin(P);使用三层BP神经网络,输入和输出节点都为1,,隐含层神经元数目取5。RBF神经网络n1985年,Powell提出了多变量插值的径向基函数(RadicalBasisFunction,RBF)方法。1988年,Moody和Darken提出了一种神经网络结构,即RBF神经网络,它属于前向神经网络类型,能够以任意精度逼近任意连续函数,特别适合于解决分类问题。nRBF网络的结构与多层前向网络类似,它是一种三层前向网络。输入层由信号源结点组成;第二层为隐含层,隐单元数视所描述问题的需要而定,隐单元的变换函数RBF()是对中心点径向对称且
26、衰减的非负非线性函数;第三层为输出层,它对输入模式的作用作出响应。从输入空间到隐含层空间的变换是非线性的,而从隐含层空间到输出层空间变换是线性的。nRBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接(即不需要通过权接)映射到隐空间。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和。此处的权即为网络可调参数。由此可见,从总体上看,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程直接解出,从而大大加快学习速度并避免局部极小问题。RBF
27、神经元模型n径向基神经网络的激活函数采用径向基函数,通常定义为空间任一点到某一中心之间欧氏距离的单调函数。由图1所示的径向基神经元结构可以看出,径向基神经网络的激活函数是以输入向量和权值向量之间的距离作为自变量的。径向基神经网络的激活函数的一般表达式为2distdisteRn随着权值和输入向量之间距离的减少,网络输出是递增的,当输入向量和权值向量一致时,神经元输出1。在图中的b为偏差,用于调整神经元的灵敏度。径向基神经网络结构n在RBF网络中,输入层仅仅起到传输信号的作用。输出层和隐含层所完成的任务是不同的,因而它们的学习策略也不相同。输出层是对线性权进行调整,采用的是线性优化策略。
28、因而学习速度较快。而隐含层是对激活函数(一般取高斯函数)的参数进行调整,采用的是非线性优化策略,因而学习速度较慢。RBF网络的学习算法nRBF神经网络学习算法需要求解的参数有3个:基函数的中心、方差以及隐含层到输出层的权值。n根据径向基函数中心选取方法的不同,RBF网络有多种学习方法,如随机选取中心法、自组织选取中心法、有监督选取中心法和正交最小二乘法等,下面将介绍自组织选取中心的RBF神经网络学习法。自组织选取中心法n此方法由两个阶段组成:n一是自组织学习阶段,此阶段为无导师学习过程,求解隐含层基函数的中心与方差。n二是有导师学习阶段,此阶段求解隐含层到输出层之间的权值。n径向基神经网络
29、中常用的径向基函数是高斯函数,因此径向基神经网络的激活函数可表示为n式中欧式范数。n高斯函数的中心。n高斯函数的方差。2p2p21expiicxcxRicpxcn由图中径向基神经网络的结构可得到网络的输出为:n式中第p个输入样本。nP表示样本总数。n网络隐含层结点的中心。n隐含层到输出层的连接权值。n隐含层的节点数。n与输入样本对应的网络的第j个输出结点的实际输出。hiipijjcxy12221exppmpppxxxx,21Pp,2,1icijhi,2,1jyn设d是样本的期望输出值,那么基函数的方差可表示为:21mjijjcydp学习算法具体步骤如下:n1.基于K-
30、均值聚类方法求解基函数中心(1)网络初始化:随机选取个训练样本作为聚类中心(2)将输入的训练样本集合按最近邻规则分组:按照与中心之间的欧式距离将分配到输入样本的各个聚类集合中。hici,2,1pxicpxPpp,2,1hn(3)重新调整聚类中心:计算各个聚类集合中训练样本的平均值,即新的聚类中心,如果新的聚类中心不再发生变化,则所得到的即为RBF神经网络最终的基函数中心,否则返回2),进入下一轮的中心求解。pn2.求解方差n该RBF神经网络的基函数为高斯函数,因此方差可由下式求解:n式中所选取中心与其他中心之间的最大距离。hci2maxhi.2,1maxcn3.计算隐含层和输出层之间的权值隐含层至输出层之间神经元的连接权值可以用最小二乘法直接计算得到,计算公式如下:22maxexpipcxchhiPp.2,1;,2,1BP神经网络与RBF神经网络的比较n从网络结构上看BP神经网络隐层单元的传递函数一般选择非线性函数(如反正切函数),RBF神经网络隐层单元的传递函数是关于中心对称的RBF(如高斯函数)。n从训练算法上看BP神经网络需要确定的参数是连接权值和阈值,主要的训练算法为BP算法。但BP算法存在许