您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > BP(BackPropagation)反向传播神经网络介绍及公式推导
1神经网络中的反向传播(BackPropagation)1.神经网络结构说明:l:层,第0层为输入层,最后一层为输出层L,中间为隐藏层(大于等于0)。w:权重,lijw表示连接第l-1层第i个与第l层第j个神经元的权重值,其中Ll1。b:偏置/截距,主要是起修正作用。2.前向传播对一组输入数据从输入层传入,经过隐藏层,得到输出层的预测值。(1)ljklklkjljklklkjljbxfwbywx)(11,例:211121110201211002120011100010010bywywxbywywywx01x02x110x11x20x21x)()()(0lxy0lxfy0i0ilili10y20y0l1l0t1t111y21y200w201w211w210w20b00x100w101w110w120w10b111w121w11b21b00y01y02y2Ll2(2))(lilixfy即激活函数,其作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。这两个计算公式非常重要,它表达了输入数据在神经网络中前向传播的过程,每一层的ljx结果都由前一层的输出及权重根据公式ljklklkjbxfw)(1计算出来,对于lijw及ljb的取值将影响输出结果。因此神经网络就是要通过训练去修正各层权重lijw及偏置ljb,进而将预测输出与目标输出的误差控制在可接受的范围内。3.激活函数激活函数的作用是给神经网络加入非线性因素,使得神经网络可以更好地解决较为复杂的问题,神经网络中最常用的两个激活函数Sigmoid和TanH。Sigmoid函数函数:xexfy11)(导数:))(1)(()('xfxfxfTanH函数函数:xxxeeexxfy22211112)tanh()(导数:2')(1)(xfxf4.代价函数代价函数本质上是一种计算误差的算法,有效的代价函数在误差计算中可以快速调节权重及偏置,下面介绍常用的代价函数。二次代价函数(QuadraticCost)整个神经网络的输出误差用标准方差表示,称为二次代价函数。其中当l=L3表示为输出层,kt为目标输出值,Lky为神经元预测输出值。(3)kLkkytE2)(21(4)iLiLiiLikLkkLiLityytyytyyE))(21())(21(22交叉熵代价函数(Cross-entropyCost)整个神经网络的输出误差用交叉熵表示,称为交叉熵代价函数。其中当l=L表示为输出层,kt为目标输出值,Lky为神经元预测输出值。(5)kLkkLkkylntylntE)]1()1([其中Lky值域[0,1](6))])1()1([(LiiLiiLiLiylntylntyyE)1()11(LiLiiLiLiiLiiyytyytyt5.链式法则如果函数)(tu及)(tv都在t点可导,复合函数),(vufz在对应点),(vu具有连续偏导数,z在对应t点可导,则其导数可用下列公式计算:dtdvvzdtduuzdtdz6.神经元误差定义l层的第i个神经元上的误差为li即:(7)lilixE整个神经网络的输出总误差可以由任意一层的每个神经元的lix建立复合函4数:)...,(11110lnllxxxfE,因函数中出现了l+1,所以仅当Ll时有意义,根据链式法则误差li(Ll)计算如下:1111ljjliljjliljljlilixxxxxExE,其中Ll将公式(1)11111)(ljklklkjljklklkjljbxfwbywx,对lix的求导可计算出上式中的)())(('1111lilijljklklkjlililjxfwbxfwxxx,代入得:(8)jljlijliljjliljliwxfxx11'11)(,其中Ll通过公式(8)我们发现误差li可由下一层误差1li反向计算出来,也就是说只要我们算出输出层的误差Li,就能反向算出前面各层神经元的误差li,这就是神经网络BP反向传播模型(BackPropagation)的理论基础。下面来推导当Ll时输出层的误差Li:(9))('LiLiLiLiLikliLkLkLiLixfyExyyExyyExE可见输出层的误差是由代价函数算法决定的,参见公式(4)(6)计算如下:二次代价函数时:)()()(''LiiLiLiLiLixftyxfyE交叉熵代价函数时:)()1()(''LiLiLiiLiLiLiLixfyytyxfyE7.反向传播(BackPropagation)通过公式(8)我们知道误差li可由下一层误差1li反向计算出来,进而根据神经元误差反向传导的特点我们称之为反向传播。根据对每层神经元误差的计算5结果,结合应用广泛的梯度下降算法,通过训练反复调节每层的权重及偏置,进而将预测输出与目标输出误差控制在可接受的范围内。梯度下降算法公式如下,其中为学习率参数。(a)lijlijlijlijlijwE,即修正后的新权重(b)ljljljljljbEbbbb,即修正后的新偏置其中:1liljlijljljklijlklklijywxxEwxxEwEljljljljkljlklkljbxxEbxxEbE分别代入(a)(b)得如下公式:(10)1liljlijlijlijlijywwEww,(Ll1)(11)ljljljljljbbEbb,(Ll1)王伟东532873584@qq.com2017-12-206附:激活函数非线性:当激活函数是线性的时候,一个两层的神经网络就可以逼近基本上所有的函数了。但是,如果激活函数是恒等激活函数的时候(即f(x)=x),就不满足这个性质了,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的。可微性:当优化方法是基于梯度的时候,这个性质是必须的。单调性:当激活函数是单调的时候,单层网络能够保证是凸函数。f(x)≈x:当激活函数满足这个性质的时候,如果参数的初始化是random的很小的值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要很用心的去设置初始值。输出值的范围:当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learningrate.
本文标题:BP(BackPropagation)反向传播神经网络介绍及公式推导
链接地址:https://www.777doc.com/doc-5028376 .html