1.什么是Backpropagation(反向传播)?

Backpropagation是一种有效计算Gradient(梯度),即微分(偏微分)的方法。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

在推导Backpropagation的过程前首先需要介绍一下计算微分的链式规则

2.Chain Rule链式规则

这是计算偏微分的基本功

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

3.Backpropagation的推导

下图中,李宏毅机器学习三天速成~~~第八课~~~Backprapagation是指在train的过程中output的y与实际的y之间的距离Function(类似cross entropy),这个距离越小表示output的结果越好。

L(李宏毅机器学习三天速成~~~第八课~~~Backprapagation)则是所有样本数据的距离之和,以此作为Loss Function。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

上图中将计算L(李宏毅机器学习三天速成~~~第八课~~~Backprapagation)对于参数w的微分转换成另外一种形式。

进一步地,利用chain rule将李宏毅机器学习三天速成~~~第八课~~~Backprapagation进一步转换,并将转换后的微分分为Forward pass和Backward pass。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

之所以称之为Forward pass和Backward pass,是因为计算这两个微分的顺序一个是从前面往后计算,一个是后面往前计算。

3.1计算李宏毅机器学习三天速成~~~第八课~~~Backprapagation的方法

很简单吧

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

具体的展示如下

李宏毅机器学习三天速成~~~第八课~~~Backprapagation其实就是输入的x

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

难点在下面的计算李宏毅机器学习三天速成~~~第八课~~~Backprapagation,这部分才是体现出反向传播的精髓。

3.2计算李宏毅机器学习三天速成~~~第八课~~~Backprapagation

下图中的a就是sigmod函数李宏毅机器学习三天速成~~~第八课~~~Backprapagation

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

知道如何计算李宏毅机器学习三天速成~~~第八课~~~Backprapagation,下面就根据chain rule计算李宏毅机器学习三天速成~~~第八课~~~Backprapagation

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

这里又搞出一个问题,就是如何计算上图中?的东西,乍一看可以发现求李宏毅机器学习三天速成~~~第八课~~~Backprapagation与求下一层neural network的输入z有关.

下面就是求李宏毅机器学习三天速成~~~第八课~~~Backprapagation的直观的流程图,体现了“反向”

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

下面根据z所处层的下一层在整个neural network中属于哪个层级,分为output layer和not output layer计算李宏毅机器学习三天速成~~~第八课~~~Backprapagation

output layer:C即为输出结果y和真实结果y之间的距离关系,求出C对于输出结果y的微分就很简单了。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

如果是not output layer,就采用反向计算的方式一步步返回计算。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

4.总结

李宏毅机器学习三天速成~~~第八课~~~Backprapagation

 

相关文章: