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计算
下图中的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.总结