您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 人工神经网络BP神经网络课件
武汉科技大学人工神经网络(ArtificalNeuralNetwork)张凯副教授武汉科技大学计算机学院2第五章BP神经网络1.研究背景2.学习规则3.感知机结构4.感知机学习规则研究背景罗斯布莱特的感知机学习规则和伯纳德和玛西娅的LMS算法是设计用来训练单层的类似感知器的网络的。如前面几章所述,这些单层网络的缺点是只能解线性可分的分类问题。罗斯布莱特和伯纳德均意识到这些限制并且都提出了克服此类问题的方法:多层网络。但他们未将这类算法推广到用来训练功能更强的网络。研究背景韦伯斯(Werbos)在他1974年博士的论文中第一次描述了训练多层神经网络的一个算法,论文中的算法是在一般网络的情况中描述的,而将神经网络作为一个特例。论文没有在神经网络研究圈子内传播。研究背景直到20世纪80年代中期,反向传播算法才重新被发现并广泛地宣扬,这个算法因被包括在《并行分布式处理》(ParallelDistributedProcessing)[RuMc86]一书中而得到普及,才使之成为迄今为止最著名的多层网络学习算法—BP算法,由此算法训练的神经网络,称之为BP神经网络。研究背景DavidRumelhartJ.McClelland研究背景BP网络广泛应用于函数逼近、模式识别/分类、数据压缩等,80%-90%的人工神经网络模型是采用BP网络或它的变化形式,它也是前馈网络的核心部分,体现了人工神经网络最精彩的部分。异或问题x1x2y000110110110多层网络求解异或问题1,01,0xfxx输出函数:用一个简单的三层感知器就可得到解决多层网络求解异或问题x1+x2+0.5=0x1+x2-1.5=00.7*y1-0.4y2-1=0多层网络求解异或问题BP神经元及BP网络模型BP神经元及BP网络模型BP神经元与其他神经元类似,不同的是BP神经元的传输函数为非线性函数,最常用的函数是logsig和tansig函数,其输出为:BP神经元及BP网络模型BP神经元及BP网络模型BP网络一般为多层神经网络。由BP神经元构成的二层网络如图所示,BP网络的信息从输入层流向输出层,因此是一种多层前馈神经网络。BP神经元及BP网络模型如果多层BP网络的输出层采用S形传输函数(如logsig),其输出值将会限制在较小的范围内(0,l);用线性传输函数则可以取任意值。BP神经元及BP网络模型1111(),0,1,...,1mmmmmafWabmM0ap前一层的输出是后一层的输入网络的输入Maa网络的输出BP神经元及BP网络模型BP网络的学习在确定了BP网络的结构后,要通过输入和输出样本集对网络进行训练,亦即对网络的阈值和权值进行学习和修正,以使网络实现给定的输入/输出映射关系。BP网络的学习BP网络的学习过程分为两个阶段:第一个阶段是输入已知学习样本,通过设置的网络结构和前一次迭代的权值和阈值,从网络的第一层向后计算各神经元的输出。第二个阶段是对权值和阈值进行修改,从最后一层向前计算各权值和阈值对总误差的影响(梯度),据此对各权值和阈值进行修改。BP网络的学习以上两个过程反复交替,直到达到收敛为止。由于误差逐层往回传递,以修正层与层间的权值和阈值,所以称该算法为误差反向专播(errorbackpropagation)算法,这种误差反传学习算法可以推广到有若干个中间层的多层网络,因此该多层网络常称之为BP网络。BP网络的学习标准的BP算法也是一种梯度下降学习算法,其权值的修正是沿着误差性能函数梯度的反方向进行的。针对标准BP算法存在的一些不足,出现了几种基于标准BP算法的改进算法,如变梯度算法、牛顿算法等。函数逼近直到现在为止,在本书中看到的神经网络的应用多是在模式分类方面。神经网络在本质上也可被看作是函数逼近器。例如,在控制系统中,目标是要找到一个合适的反馈函数。应用举例求解函数逼近问题有21组单输入矢量和相对应的目标矢量,试设计神经网络来实现这对数组的函数关系2020/6/2923函数逼近它能将测量到的输出映射为控制输入。考虑图中的两层的1-2-1网络。函数逼近此例中,第一层的传输函数是logsig函数第二层的是线性函数。11()1nfne2()fnn函数逼近注意网络的响应包括两步,每一步对第一层中的一个logsig形神经元的响应。通过调整网络的参数,每一步的曲线形状和位置都可以发生改变,如在下面讨论中将会见到的那样。函数逼近目标矢量相对于输入矢量的图形初始网络的输出曲线2020/6/2927函数逼近2020/6/2928训练1000次训练2000次函数逼近2020/6/2929训练3000次训练5000次函数逼近从这个例子中,可以看到多层网络的灵活性。看起来,只要在隐层中有足够数量的神经元,我们可以用这样的网络来逼近几乎任何一个函数。事实上,研究已表明两层网络在其隐层中使用S形传输函数,在输出层中使用线性传输函数,就几乎可以以任意精度逼近任何感兴趣的函数,只要隐层中有足够的单元可用([Host89])。函数逼近我们已经有了对多层感知机网络在模式识别和函数逼近中的能力一些概念,下一步是要设计一个算法来训练这样的网络。反向传播算法反向传播算法如前所述,多层网络中某一层的输出成为下一层的输入。描述此操作的等式为:这里,M是网络的层数。第一层的神经元从外部接收输入:它是等式的起点。最后一层神经元的输出是网络的输出:1111(),0,1,,1mmmmmmMafWab0a=pMa=a多层网络的BP算法是LMS算法的推广。两个算法均使用相同的性能指数:均方误差。算法的输入是一个网络正确行为的样本集合:1,12,2,{},{},,{}QQptptpt221111()()()QQkkmseektkakQQ这里是网络的输入,是对应的目标输出。每输入一个样本,便将网络输出与目标输出相比较。算法将调整网络参数以使均方误差最小化:性能指数近似误差的最速下降法为,这里是学习速度。22()()()()Fxektkak,,,(1)()mmijijmijFwkwkw(1)()mmiimiFbkbkb性能指数这里,x是网络权值和偏置值的向量。若网络有多个输出,则上式的一种形式为:这里,均方误差的期望值被第k次迭代时的均方误差所代替。敏感性的反向传播现在还需要计算敏感性,正是这个过程给出了反向传播这个词,因为它描述了第m层的敏感性通过第m+1层的敏感性来计算的递推关系。,,,(1)()mmijijmijFwkwkw误差不是隐层中的权值的显式函数偏导数不易求得22()()()()Fxektkak1111(),0,1,...,1mmmmmafWabmM链法则链法则计算隐层偏导数(())()()dfnwdfndnwdwdndw设有一个函数f,它是变量n的显示函数。函数n是w的显示函数。现在球f关于第三个变量w的导数。若(())()()(2)ndfnwdfndnwedwdndw(),2nfnenw链法则,,mimmmijiijnFFwnwmimmmiiinFFbnb11,1mSmmmmiijjijnwab1,mmijmijnaw1miminb梯度计算,,mimmmijiijnFFwnwmimmmiiinFFbnb11,1mSmmmmiijjijnwab1,mmijmijnaw1miminbmimiFsn1,mmijmijFsawmimiFsb梯度计算敏感性梯度1,,(1)()mmmmijijijwkwksa(1)()mmmiiibkbks1w(1)w()s(a)mmmmTkkb(1)b()smmmkk12smmmmimsFnFFnnFn最速下降1111111211122211211112nnmmmmmmSmmmmmmmSmmmmssSmmmSnnnnnnnnnnnnnnnnnnJacobian矩阵111,11,11,,()()()mSmmmmmijjijmiiijmmmjjjmmjmmmmijijjmjwabanwnnnfnwwfnn11nw()nmmmmmFnJacobian矩阵11nw()nmmmmmFn12()000()0()00()mmmmmmmmSfnfnFnfnJacobian矩阵111111n()(w)nnnn()(w)TmmmmmTmmmmmmmTmFFFsFnFns121mmssss反向传播(敏感性)现在我们可以看到反向传播算法得名的原因了。敏感性从最后一层通过网络被反向传播到第一层:211()2()mSjjjmiijjmmmiiitaaFstannn1,()()mmjmmmiijjmmjjfnawfnnn2()()mmmijjjstafns2(n)(ta)mmmF初始化(最后一层)第一步,通过网络将输入向前传播1111(w),0,1,...,1mmmmmafabmM0apmaaBP算法总结下一步,通过网络将敏感性反向传播s2(n)(ta)mmmF11()(w)mmmmTmsFnsBP算法总结最后,使用最速下降法更新权值和偏置值1w(1)w()s(a)mmmmTkkb(1)b()smmmkkBP算法总结BP算法总结1-2-1Network+-taep例子:函数逼近网络1-2-1Networkap初始条件下一步定义网络要解决的问题。假定我们用此网络来逼近函数训练集可以通过计算函数在几个p值上的函数值来得到。1sin,224gppp初始条件在开始BP算法前,需要选择网络权值和偏置值的初始值。通常选择较小的随机值。下一章将讨论为什么要这样做。现在,选择的值网络对这些初始值的响应如图所示,图中还包括要逼近的正弦函数的曲线。11220.270.480,0,00.090.17,00.480.410.13WbWb初始条件NetworkResponseSineWave-2-1012-10123现在可以开始执行算法了。对初始输入,我们选择p=1:第一层的输出为0a=p=11010.750.540.270.480.75flog1log0.410.130.5410.321110.3681sigsigee1aWab前向传播第二层的输出为误差将为22120.3210.09-0.170.480.4460.368fpurelin2aWab21sin1sin10.4461.26144e=t-apa前向传播算法的下一阶段是反向传播敏感性值。在开始反向传播前需要先求传输函数的导数和。对第一层:1fn2fn1211111111defdeeeen11nnnnn1-aan反向传播对第二层:下面可以执行反向传播了。起始点在第二层。21dfdnnn222
本文标题:人工神经网络BP神经网络课件
链接地址:https://www.777doc.com/doc-6200095 .html