《前向多层神经网络PPT课件》由会员分享,可在线阅读,更多相关《前向多层神经网络PPT课件(32页珍藏版)》请在金锄头文库上搜索。
1、第2章 前向多层神经网络、BP算法及计算机实现 综述综述推导前向多层神经网络的推导前向多层神经网络的学习算法学习算法 BP学习算法中几个值得学习算法中几个值得注意的问题注意的问题 设计网络学习设计网络学习过程的步骤过程的步骤网络学习过程网络学习过程程序流程图程序流程图对本课程的对本课程的基本要求基本要求 基于前面介绍的神经元结构,人们又提出了很多种神经网络结构模型,如Hopfield网络、Boltzmann机、ART网络和BAM网络等。在各领域中用法最多也最有成效的是前向多层神经网络,由于该网络在学习(训练)过程中采用了BP(Error Back-propagation)算法,故又称为BP网络
2、。标准的BP网络由三层神经元组成,其结构如图21所示。最下面为输入层,中间为隐含层,最上面为输出层,网络中相邻层采取全互连方式连接,同层各神经元之间没有任何连接,输出层与输入层之间也没有直接的联系。为方便讨论,在此设输入层、隐含层及输出层神经元的个数分别为L,M,N。可以证明:在隐含层节点可以根据需要自由设置的情况下,用三层前向神经网络可以实现以任意精度逼近任意连续函数。输输 出出 模模 式式输输 入入 模模 式式输出层隐含层输入层输出层神经元 (L=2)隐含层神经元 (L=1)输入层神经元 (L=0)图2-1前向多层神经网络(BP网络)模型BP神经网络中的动力学过程有两点: 一类是学习过程,
3、 在这类过程中,神经元之间的连接权将得到调整,使之与环境信息相符合,连接权的调整方法称为学习算法。另一类过程是指神经网络的计算过程,在该过程中将实现神经网络的活跃状态的模式变换,与学习过程相比,计算过程的速度要快得多,因而,计算过程又称为快过程,学习过程称为慢过程。如图22示,设从第L层神经元j到第L-1层神经元i的连接权值为Wji,P为当前学习样本,Opi为在P样本下第L层第i个神经元的输出,变换函数f(x)取为Sigmoid函数,即 图图2-2 BP2-2 BP神经网络的通用结构神经网络的通用结构 对于第P个样本,网络的输出误差EP用下式表示 (21)式中tpj为输入第P个样本时第j个神经
4、元的理想输出, Opj是它的实际输出,假设第L层有J个神经元,第L-1有I个神经元。为了使网络的实际输出与理想输出相接近(使EP下降),根据梯度算法,可以对L层按下式进行调整: L=1,2 (22) 对于非输入层的神经元具有下面的操作特性: 任一神经元的净输入 (23) 任一神经元的输出 (24) 在式(23)中,如果将 代入 ,则(23)式可改写为 (25) 又 (26) (27) 定义: 为输出误差系数 综合式(22)(23)(25)(27)得出 (28) i =0,1,2,I, j=0,1,2,J-1, L=1,2 由上式可见,为求出调整值,必须先求 出 。 (29) 由式(24)得到:
5、 现在分两种情况来讨论: (1)如果所讨论的神经元为输出层神经元,则由式(21)可得: (从输出层开始) 代入(29)式得到 (2.10) L=2, j=0,1,2,N-1 (2)如果所讨论的神经元为隐层神经元,则有: (向输出层反向传播,参见(25)式) = = = 将此结果代入式(29)得到 (211) L=1, j=0,1,2,M-1 从上式可以看出,为求出隐含层的输出误差系数 ,必须用到输出层的 ,所以这个过程被称为误差反向传播过程(EBP,error back-propagation)。现在来讨论 项中的 ,由于f采用Sigmoid函数。由此可以得到 (212) 将式(212)代入式
6、(210)和式(211)得到 (213) L=2, j=0,1,2,N-1 (对输出层) (214) L=1, i=0,1,2,M-1 (对隐层) 将式(213)和式(214)代入式(28)得到 当L=2(输出层)时 (215) I=0,1,2 ,N-1; j=0,1,2,M 当L=1(隐含层)时 (216) ,I=0,1,2 ,M-1, j=0,1,2,L 至此,推导完了BP学习算法,式(215)与式(216)为推导的最后结果。 (1)神经网络输入层,输出层的神经元个数可以根据研究对象的输入,输出信息来确定,如何合适选取隐含层神经元的数目无规律可循,然而隐含神经元的数目是否合适对整个网络能否
7、正常工作具有重要意义,一般情况下可按下式给出: (217) nH为隐含层神经元数目 nI 为输入层神经元数目 nO为输出层神经元数目 L 为110之间的整数(2)学习算法中的表示学习速率,或称为步幅,较大时,数值的修改量就较大,学习速率比较快,但有时会导致振荡,值较小时,学习速率慢,然而学习过程平稳,值的具体选取方案有很多种,但没有一种是令人信服的,在一些简单的问题中,可取为一常数,满足01,如。在权值的修改公式中,往往还加入一个惯性项(或称为动量项) 即 (218) 式中 表示第L层第i个神经元与上一层第j个神经元之间的连接权的当前修改值, 表示上一个学习周期对同一个学习样本的权值修改值。
8、惯性项修正系数应与协调选取,较大的可以改善网络的收敛速度,但对提高网络的收敛精度没有积极的作用,对于简单的情况,。 (4)在 设 置 各 训 练 样 本 的 理 想 输 出 分 量 时 , 有时 可取为接近1,0的数等而不直接取为1.0,因为单个神经元的转换函数大都是采用Sigmoid函数,因而输出层各神经元的实际输出值,只能接近于1或者0,而不能达到1或者0。(5)在学习开始时,必须给每个连接权赋初值。在实际的网络训练过程中,通常的处理方法是给每一个连接权赋以-1至1之间的随机数。BP算 法 学 习 的 目 的 是 为 了 寻 找 连 接 权 , 使 得 趋于全局最小,然而在实际操作时而只能
9、使之趋于一个相对大一点的E值,称为局部最优,如何避免在学习过程中陷入局部最小是BP算法的一大难题。 当出现局部最优的情况下,表现出来的特征是:各数值收敛到某一稳定值,而误差值却不是最小,这时可以按下式判定: j=0,1,2,N-1 式中1,为一小数,通常00.2。如符合上式,则认为此时BP网络陷入局部极小点。(1)网络结构及学习参数的确定 (2)网络状态初始化 (3)提供学习样本 (4)学习开始 (5)是否满足 ?满足执行第(6)步,否则返回(4)步(6)是否满足 ?若是则执行第(7)步,否则返回第(2)步(7)停止 输入输入层,隐含层,输出层的神经元数目,步长以及惯性校正系数,数值收敛因子及误差收敛因子。用较小的(绝对值为1以内)随机数对网络权值,阈值置初值。 输入向量xp(p=1,2,P)和目标向量tp(p=1,2,P) 对每一个样本进行如下操作: a、计算网络隐含层及输出层各神经元的输出 b、计算训练误差 (输出层) (隐含层) c、修改权值和阈值 (递推公式) 1、要求掌握常用神经网络(BP、ART、Hopbield、BAM)的结构,算法,特点,应用。 2、能在MATLAB软件上完成BP、ART网络的设计 3、了解BP、ART网络在自动控制,模式识别,故障诊断中的应用。此讲结束,欢迎听讲! 下节课再见!