博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反向传播(Back Propagation)
阅读量:6787 次
发布时间:2019-06-26

本文共 851 字,大约阅读时间需要 2 分钟。

反向传播(Back Propagation)

    通常在设计好一个神经网络后,参数的数量可能会达到百万级别。而我们利用梯度下降去跟新参数的过程如(1)。但是在计算百万级别的参数时,需要一种有效计算梯度的方法,这种方法就是反向传播(简称BP), 因此BP并不是一种新的算法,使用BP就是能够使计算梯度时更加有效率。

                                 

  其中θ为神经网络的参数,为梯度。

链式法则

   设有两个函数为y=g(x),z=h(y),那么要计算z对x导数,则计算过程如(2)

   

     设有三个函数为x=g(s),y=h(s),z=k(x,y),那么要计算z对x导数,则计算过程如(3)

   

BP计算过程

    假定我们设计的神经网络结构如图1-1所示,其中yj神经网络为输出值,dh为隐藏层神经元的输出值,xi为输入值,bj、mh分别是隐藏层和输出层神经元的偏置;

图1-1 神经网络结构

     设神经网络的损失函数为L(θ)(L(θ)具体的结构根据实际情况来确定,θ表示所有参数);wjh的更新形式为

      

   由于wjh是通过影响,继而影响yj,最终影响L(θ)。因此wjh的更新计算可以通过(2)的链式法则进行展开。

      

    其中,需要在确定激活函数和损失函数的具体结果后才就可以进行微分。而则可以在神经网络前向传播的过程中就可以计算,因此这一项的计算是自下向上,因此也称作forward pass

   类比于wjh的更新情况,bj的更新计算为

  再计算vhi的的更新情况,跟wjh的更新情况没有太大差别。vhi通过影响输入,继而影响dh,dh通过影响所有的输出层神经元的输入,继而影响输出值Y={y1,y2,...yl},最终影响L(θ),因此需要运用(3)进行链式法则展开

          

 

 其中(8)中的跟计算的部分项相同。因此,要计算下层参数的微积分,就需要计算上层参数的微积分。整个参数的更新计算自上向下,这个计算过程也称作backward pass

参考资料

[2]《机器学习》-周志华

转载于:https://www.cnblogs.com/MrPan/p/9502869.html

你可能感兴趣的文章
IT人 不能一辈子靠技术生存[转]
查看>>
WPF控件深拷贝:序列化/反序列化
查看>>
转换分配C++ explicit关键字
查看>>
0035算法笔记——【分支限界法】布线问题
查看>>
程序员编程艺术:三之三续、求数组中给定下标区间内的第K小(大)元素
查看>>
Android开源框架Afinal第一篇——揭开圣女的面纱
查看>>
ActionContextCleanUp作用
查看>>
java生成excel并可以导出
查看>>
php实战第二十四天
查看>>
N皇后问题
查看>>
英文版Ubuntu安装Fcitx输入法
查看>>
MySQL 常用语句
查看>>
MySql数据库恢复(*frm)文件
查看>>
初窥Linux 之 文件权限
查看>>
android手机自带浏览器无法识别apk文件
查看>>
HNCU1323:算法2-1:集合union (线性表)
查看>>
inpyt 按钮变透明 边框
查看>>
js 退后一步并刷新,window.history.back(-1);这个只能后退一步不能刷新,
查看>>
ArcGIS API for Silverlight学习笔记
查看>>
HDU 4465 Candy
查看>>