1.什么是Backpropagation(反向传播)?
Backpropagation是一种有效计算Gradient(梯度),即微分(偏微分)的方法。
在推导Backpropagation的过程前首先需要介绍一下计算微分的链式规则
2.Chain Rule链式规则
这是计算偏微分的基本功
3.Backpropagation的推导
下图中,是指在train的过程中output的y与实际的y之间的距离Function(类似cross entropy),这个距离越小表示output的结果越好。
L()则是所有样本数据的距离之和,以此作为Loss Function。
上图中将计算L()对于参数w的微分转换成另外一种形式。
进一步地,利用chain rule将进一步转换,并将转换后的微分分为Forward pass和Backward pass。
之所以称之为Forward pass和Backward pass,是因为计算这两个微分的顺序一个是从前面往后计算,一个是后面往前计算。
3.1计算
的方法
很简单吧
具体的展示如下
其实就是输入的x
难点在下面的计算,这部分才是体现出反向传播的精髓。
3.2计算![\partial C/\partial z](https://i-blog.csdnimg.cn/blog_migrate/21191cda5895bfdcef16fb305f29f8df.gif)
下图中的a就是sigmod函数
知道如何计算,下面就根据chain rule计算
这里又搞出一个问题,就是如何计算上图中?的东西,乍一看可以发现求与求下一层neural network的输入z有关.
下面就是求的直观的流程图,体现了“反向”
下面根据z所处层的下一层在整个neural network中属于哪个层级,分为output layer和not output layer计算
output layer:C即为输出结果y和真实结果y之间的距离关系,求出C对于输出结果y的微分就很简单了。
如果是not output layer,就采用反向计算的方式一步步返回计算。
4.总结