反向传播公式推导与计算图表示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a940902940902/article/details/81952223

计算图模型与反向传播

前向传导与反向传导的区别是前向传导是计算每一个输入对于每一个节点的影响(计算∂/∂X,其中X表示输入),反向传导计算每一个节点对于每一个输出的影响(∂Y/∂,Y表示每一个输出)之所以反向传播比前向传播计算效率要高的多,是因为在神经网络中一般而言输入节点个数远远要大于输出节点个数(当然 如果是输出节点个数远远大于输入节点的时候 前向传导效率要高于反向传导 但是基本不存在这样的情形 ),在神经网络中把损失看做是权重的函数,需要计算损失关于权重的偏导,而权重的个数百万,千万甚至过亿级别 ,这时使用反向传播可以大大减少运算量。
通过计算图模型说明前向传播与反向传播的性能区别,例如 F=Q*Z Q=x+y X=2 Y=5 Z=-4 ,输入节点为X,Y,Z 输出节点为F。
其反向传播计算图模型如下:
这里写图片描述
只需进行一遍偏导计算,就可以根据链式法则得到F关于X,Y,Z的全部偏导数
如果采用前向传播
则需要分别对于X,Y, Z进行偏导运算 ,这里以X举例
这里写图片描述
采用链式法则将三个支路相加得到F对于X的偏导,同理对于Y和Z也是这样,因此 对于该情形要求得F分别对于X,Y,Z的偏导需要进行三次运算 当输入参数大时,前向传播效率远远小于反向传播

计算图模型进一步解释

计算图模型使用方法一般如下
1.确认中间函数
2.计算局部梯度
3.使用链式法则 结合上游梯度 求得全局梯度
接下来以一个更为复杂的方程为例 解释计算图模型
这里写图片描述
对于中间函数的确认环节并不是唯一的 选择计算简单且自己习惯的中间函数就好
这里写图片描述
利用链式法则可求得f对于输入各个参数的偏导(使用链式法则的时候要注意 求某一个节点的偏导时 如果该节点的出度大于1 即向外发射的射线个数多于1 则需要将各个出度在该节点之前的上游梯度求和)

利用计算图模型表示反向传播

Wj,kL表示的是从L-1层中第k个神经元到L层中第j个神经元之间的连接权值
这里写图片描述

这里写图片描述

写成向量表示为:
这里写图片描述
同时定义了中间量
这里写图片描述
将其称为l层的带权输入,在反向传播的计算图模型中该中间量起到了非常重要的作用
反向传播的目的是计算输出节点(代价函数可以写成神经网络的输出函数 这里即为cost function C)对于w和b的偏导数
这里写图片描述

当输入样本x固定的时候 y也是固定的,所以C只是关于aL的函数 同时可以通过计算图 利用z这一中间量将其转化为关于w和b的函数
为了表达更为简洁 在这里定义残差δjl 即损失函数对于L层第j个神经元带权输入的偏导,

这里写图片描述

也是一个重要的中间量,该残差表明了该节点对于最终输出损失的影响 ,可以这么理解 如果l层的a节点通过w参数对l+1层的b节点产生了影响 那么在反向传播的过程中梯度通过权值w从b节点传回到a节点,同样的与收敛态相比(训练结束之后的状态) 在训练中间过程中 l层的j节点的带权输入存在着一个▽zjl,对最终的损失产生 ∂C/∂zjl▽zjl的影响,当∂C/∂zjl接近0的时候通过更改▽zjl则不会对该神经元对最终结果产生什么影响,即该神经元已经接近最优。

在这里借用 晓雷机器学习笔记 中的计算图
这里写图片描述

上述计算图每个节点关于前一节点的导数都是可求的,因此要想求C对于某一节点的偏导数 只需要把该节点的反向路径上的所有的偏导数做乘积再求和即可。
要求C对于每个节点的w和b的偏导 可以通过求得C对于残差δ的偏导 再求得残差对于w和b的偏导,反向传播基于四个基本公式如下:
这里写图片描述

  1. 输出层误差方程
    这里写图片描述
    这里写图片描述
    进行向量化表示为
    这里写图片描述

  2. 后一层传播到前一层
    根据计算图利用链式法则求解
    这里写图片描述
    将L-1替换成l可得上述BP2
    3.代价函数关于偏置和权重的改变率
    这里写图片描述

反向传播算法流程

  1. 输入x:为输入层设置对应的激活值a1
  2. 前向传播:对每一个l=2,3,4,…..L计算相应的 zl=wlal-1+bl 以及al=σ(zl
  3. 输出层误差:计算上述BP1
  4. 反向传播误差:对于每个L-1,L-2……,2,计算BP2
  5. 输出:代价函数关于w和b的梯度通过BP3和BP4计算可得

结合梯度下降:
这里写图片描述

Reference

  1. https://zhuanlan.zhihu.com/p/25081671
  2. https://zhuanlan.zhihu.com/p/25416673
  3. ufldl

猜你喜欢

转载自blog.csdn.net/a940902940902/article/details/81952223