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

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

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

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第1张图片

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

2.Chain Rule链式规则

这是计算偏微分的基本功

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第2张图片

3.Backpropagation的推导

下图中,C^{n}是指在train的过程中output的y与实际的y之间的距离Function(类似cross entropy),这个距离越小表示output的结果越好。

L(\theta)则是所有样本数据的距离之和,以此作为Loss Function。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第3张图片

上图中将计算L(\theta)对于参数w的微分转换成另外一种形式。

进一步地,利用chain rule将\partial C/\partial w进一步转换,并将转换后的微分分为Forward pass和Backward pass。

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第4张图片

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

3.1计算\partial z/\partial w的方法

很简单吧

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第5张图片

具体的展示如下

\partial z/\partial w其实就是输入的x

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第6张图片

难点在下面的计算\partial C/\partial z,这部分才是体现出反向传播的精髓。

3.2计算\partial C/\partial z

下图中的a就是sigmod函数\sigma (z)

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第7张图片

知道如何计算\partial a/\partial z,下面就根据chain rule计算\partial C/\partial a

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第8张图片

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第9张图片

这里又搞出一个问题,就是如何计算上图中?的东西,乍一看可以发现求\partial C/\partial a与求下一层neural network的输入z有关.

下面就是求\partial C/\partial z的直观的流程图,体现了“反向”

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第10张图片

下面根据z所处层的下一层在整个neural network中属于哪个层级,分为output layer和not output layer计算\partial C/\partial z

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

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第11张图片

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

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第12张图片

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第13张图片

4.总结

李宏毅机器学习三天速成~~~第八课~~~Backprapagation_第14张图片

 

你可能感兴趣的:(机器学习)