您好,欢迎访问三七文档
人工神经网络及其应用第三讲前馈网络主讲人:方涛第三讲前馈网络主讲内容◆§3.1BP网络模型及原理◆§3.2前馈网络的隐含层设计◆§3.3初始连接权的设置及影响◆§3.4Questions◆§3.5Homework§3.1BP网络模型及原理3.1.1神经网络信息处理的数学过程3.1.2BP网络算法概述3.1.3BP网络算法的原理3.1.4BP网络算法中常用的激励函数3.1.5BP网络算法的若干改进3.1.1神经网络信息处理的数学过程3.1.1.1执行过程(阶段)神经网络对输入信息进行处理,并产生对应的输出,在这个阶段网络的连接结构和权系数已不再变化。3.1.1.2学习过程(阶段)实际上是神经网络的自我完善阶段,即网络按照一定的学习规则修正连接权,使得给定的测度函数E(最小方差等)达到最小。测度函数学习训练公式的一般形式§3.1BP网络模型及原理()iijjyfwx(,)EEyg=(1)()()()[(),,]()nnijijijEtwtwtwt比如剃度学习算法神经网络对信息处理过程一般都要经过执行阶段和学习阶段的反复迭代过程。学习过程是为了取得对信息的适应特性,执行过程是对信息的检索或者分类,这是神经网络中两个不可分割的阶段。通过学习阶段,将神经网络训练成对某类信息模式特别敏感,或者具有某种特征的动力学系统。通过执行阶段,使得网络能够识别有关的信息模式或者特征。§3.1BP网络模型及原理(1)()()()()()nnijijijEtwtwtwt3.1.2BP网络算法概述3.1.2.1BP算法概述最初由Werbos开发的反向传播训练算法,是一种迭代梯度算法,用于求解前馈网络的实际输出与期望输出间的最小均方差值。BP网是一种反向传递并能修正误差的多层映射网络。当参数适当时,此网络能够收敛到较小的均方差。BP网的短处是训练时间较长,且易陷于局部极小。3.1.2.2BP神经网络的几个基本概念①学习速率参数②振荡§3.1BP网络模型及原理3.1.3BP网络算法的原理BP网络算法是为解决多层前馈网络连接权优化才提出的,是一种无反馈的多层前馈网络。以Rumelhart和McClelland为首的并行分布处理(PDP)的研究小组1986年提出,BP算法是应用最广泛的学习算法之一。感知器的学习算法是一种单层网络的学习算法,不能用于多层网络的学习算法。BP算法解决了多层网络的学习问题,并不象Minsky等人预料的那样弱的学习能力,相反它可以完成许多学习任务,解决许多实际问题,也因此推动了前馈式神经网络的研究。BP算法目前已成为迄今为止应用最普遍的神经网络学习算法。§3.1BP网络模型及原理3.1.3.1BP算法原理对隐含层虽然与I/O层外界单元不发生直接联系,但隐含层连接权的修正可以改变整个多层网络的性能。§3.1BP网络模型及原理输入层隐含层输出层层k1k+层连接权修正连接权修正误差信号Ä期望信号_网络学习结构对第k+1层,第i个神经元I/O的关系:实线:工作信号,是输入信号逐层向前传送产生输出;虚线:误差信号,是网络实际输出与期望输出之差,并由输出端逐层向后传播。BP反向传播算法分为正向传播与反向传播。§3.1BP网络模型及原理(1),(1),()()kiijkjkiijkjyfwxxfwx①正向传播与工作信号输入样本从输入层经过隐含单元一层层进行处理,传向输出层,这种逐层处理的过程,每层神经元的状态只对下一层神经元的状态产生影响。在输出层将当前的输出与期望的输出进行比较,如果当前的输出不等于期望输出,则进行反向传播。②反向传播与误差信号将误差信号按正向传播的通路反向传回,对隐含层的各个神经元的连接权进行修正,以使误差信号最小。§3.1BP网络模型及原理3.1.3.2BP算法的数学表达常用激励函数Sigmoid型函数BP算法采用非线性规划中的最速下降方法,按照误差函数的负剃度方向修正连接权。BP算法的实质就是使误差最小化的求解问题:平方型误差函数:表示第j个神经元第k次迭代。§3.1BP网络模型及原理1()1xfxe-=+21()2jkjkEyy(l-1)层和l层的I/O以及连接权对应的误差函数:设注意:(l-1)层第j个神经元的输出即为l层神经元的输入,k为迭代次数。§3.1BP网络模型及原理21()2kjkjkEyy1()llljkijjklljkjknetwOOfnet1ljkkklllijjkijlkjkljknetEEwnetwEOnetlkjkljkEnet可以令局部剃度①当节点j为输出单元时②当节点j不为输出单元(隐含单元)时§3.1BP网络模型及原理()()ljkjkjklkjkljkjklkkjkOyyEynetyyfnet()1ljklkjklljkjklkjkljkOEOnetEfnetlO要从()层往回算11111)()()llllllkmkmjjkmkmkjklmmjklmEwwfnetO对于(层第个单元总结:可以按照从(l+1)层(或者输出层)一步步往回推求。有§3.1BP网络模型及原理1()llljkijjklljkjknetwOOfnet111()()()()llkjkjkljklkkjklllljkmkmkjkmEOwyyfnetjwfnetj神经元为输出单元时其中神经元为隐含单元时3.1.3.3BP算法的执行步骤对连接权进行递归计算。每层有n个神经元,即i=1,2,…,n;j=1,2,…,n。对第k层的第i个神经元,则有n个连接权。输入样本,并设共有m层。以s型函数为例,,有步骤:①对权系数置初始值;②输入样本X,以及期望输出③计算各层的输出(正向过程计算)对第k层第i个神经元的输出§3.1BP网络模型及原理ijwinii12(,,,)TnXxxx=1()1xfxe-=+()()(1())fxfxfxijw12(,,,)TnYyyy=kix1()kkiijjkkiinetwxxfnet④求各层的学习误差(反向过程)误差函数的求取是从输出层开始到输入层反向传播的,这种误差的递归求法,使误差逐渐减小,以修正连接权。⑤连接权修正⑥求出各层的各个连接权后,如满足要求,则结束迭代,否则,返回③继续。如果网络层数较多,计算量大,收敛速度很慢。§3.1BP网络模型及原理klijkdd=1,(1)()(1)mmmmiiiiikkkkiiiliilkmdxxxydxxwd输出层,有其它层,1(1)()kkijijjjwtwtdxh-+=-3.1.4BP网络计算中常用的激励函数①S型及双曲正切函数②周期性函数比S型函数收敛速度快。③非线性误差函数④组合激励函数§3.1BP网络模型及原理1()1xfxe-=+1()1xxefxe---=+神经细胞激励状态的数学模型3.1.5BP算法的若干改进3.1.5.1BP算法存在的几个问题①已学习的网络是否具有预测能力(即对未经学习的输入的样本能否正确处理)②学习训练收敛速度漫③网络隐含节点个数确定?④对初始值选择可能会出现局部最小?⑤权值调节路径常常呈现锯齿型⑥初始值比较敏感§3.1BP网络模型及原理3.1.5.2提高学习训练速度方法①全局学习速率的自适应(对恒定的学习速率参数修正)对每个连接权采用同样的学习速率来调整。⊙加入动量项连接权与其误差的导数成正比,学习速率增大可加快收敛速度,但又不要引起震荡,因此在当前的连接权的调整中加入上次连接权的修正量:即等效地改变了原来恒定的学习速率,可以加快收敛速度,但是确定比较麻烦。§3.1BP网络模型及原理(1)()Ewtwtw⊙学习速率渐小法学习速率在迭代开始时大,有利于加快学习训练速度,但是到了极值点时,减少学习速率可有利于收敛:⊙学习速率的经验公式⊙渐进自适应学习速率采用进化策略来调节学习速率。§3.1BP网络模型及原理(0)()(1)nhhghg=+为常数②局部学习速率的自适应实质为:对每个连接权采用不同的学习速率进行局部自适应调整,比如⊙基于符号变换的学习速率自适应对每个连接权选其初始值;修正学习速率连接权更新§3.1BP网络模型及原理)0(ij()(1)()(1)0()(1)ijijijijijijEEnnnnwwnnd否则()((1))ijijijEwnwnw动量项§3.2前馈网络(BP)的隐含层设计3.2.1I/O层设计3.2.2隐含层的设计3.2.3几个重要的前馈网络定理3.2.1I/O层设计3.2.1.1对输入层①对输入的数据进行预处理确定输入数据源;编码(ANN只能处理数值型输入);剔除无效的、不可靠的数据。②确定输入节点数目和输入节点表示方法输入层数据可以是二进制输入,也可以是任意实数输入。§3.2前馈网络(BP)的隐含层设计隐含层白0黑1小1大0属性二进制0.5-伏电压隐含层电压伏1电流安0.10.6+安电流属性实数3.2.1.2对输出层根据网络处理的功能和处理的规模来确定输出节点数目。比如,用作分类器的网络,要进行m类别分类,则要求①m个输出节点;②每个类别有足够的训练样本;③当输入样本为第i类时,其输出应为注意:输入/输出层节点数目设计不宜过多,否则整个系统训练和处理复杂。§3.2前馈网络(BP)的隐含层设计001100yi第个3.2.2隐含层的设计隐含层的规模是利用前馈网络解决实际问题时最重要的问题之一,隐含层的设计都是依据网络的用途来决定的,但并不是唯一的,目前主要还是以经验来确定。3.2.2.1隐含层数的选择①从多层前馈网络的I/O关系来看,这实际上是一种高度非线性的映射关系。也就是,任何连续函数都是可以用带有隐含层的网络来逼近。②对于线性可区分的映射,不需要隐含层(简单感知器)③增加隐含层,可增加网络的处理能力,但会使网络的训练变得复杂,网络性能不一定为最优。比如,两个隐含层的网络可解决任意判决边界的分类问题,但是并不一定比单一隐含层更优越。§3.2前馈网络(BP)的隐含层设计3.2.2.1隐含层内节点数目的确定①隐含层节点的功能可以提取输入的特征;也可完成某些特殊的功能。②隐含层节点数目多少的确定过少,会产生过多的局部极小,即容错性差;过多,学习训练时间太长,也不一定为最佳。确定隐含层节点数目的几种经验方法:⊙对于具有m个输入节点的单一隐含层BP网络,隐含层的节点数目可达到2m+1。⊙对于多层隐含层来讲,设计变得复杂的多§3.2前馈网络(BP)的隐含层设计以二层隐含层为例,比如,第一隐含层的节点确定一个判决面,将n维输入分为两部分;第二隐含层的节点又将前一层形成的多个判决面组合成为凸域空间或者判决域;输出节点又将多个凸域组合成为任意形状的判决空间或判决边界。(复杂的非线性映射关系)对二隐含层的BP网络,其中第二层隐含节点数为输出节点的2倍,对第一隐含层节点是第二隐含层节点数目的3倍。隐含节点数目决定了多层前馈网络的可区分性能力(非线性可区分性),计算的复杂性也由隐含节点数决定。§3.2前馈网络(BP)的隐含层设计⊙隐含节点数目可变两种方式:其一,学习训练时,使隐含节点数目足够多,学习训练后,删除不起作用的隐含节点;其二,学习训练时,用很少隐含节点,边学习边增加新的隐含节点。隐含层内节点数目确定小结:①当有较多隐含节点时,出现局部极小就少;②当有较少隐含节点时,出现局部极小就多;③增加隐含节点,可提高网络的匹配精度,但是网络学习训练复杂。因此,对于特定应用,要综合考虑。§3.2前馈网络(BP)的隐含层设计3.2.3几个重要的前馈网络定理定理①:当输入模式线性可分时,利用误差对连接权修正过程一定在有限次数内收敛。由此得到的各
本文标题:前馈神经网络
链接地址:https://www.777doc.com/doc-4513757 .html