深度学习——P13 Backpropagation

Backpropagation(反向传播)

为什么引入反向传播算法?

因为在神经网络中用gradient descent太复杂
在这里插入图片描述

Chain rule

因为反向传播算法主要是链式法则的应用,所以补充链式法则
两个例子:
在这里插入图片描述

Example

以每一层都是两个神经元的全连接神经网络为例:
在神经网络中计算Loss的时候,是先求出来每一个outputC,再对这些C求和
在这里插入图片描述
损失函数和对损失函数求偏微分如下:
在这里插入图片描述
那这个式子就可以转化成对nC分别求偏微分,那也就是单独计算出每一个C,求偏微分,在得到Loss,假设先考虑一个neuron
在这里插入图片描述
所以根据链式法则,要分别计算出zw的偏微分,cz的偏微分
先求z对w的偏微分
根据函数z的表达式可知,zw的偏微分有两部分,zw1的微分和对w2的微分,很好算,分别是x1x2,可以发现,这两个微分的结果就是这一个neuroninput,而且w1对应的是x1w2对应的是x2
在这里插入图片描述
根据上面的规律,不难发现,如果给出一个神经网络,知道inputweight,我们可以快速看出一个neuronzw的偏微分
在这里插入图片描述
再求C对z的偏微分,通过第一个neuron得到的结果是aa再结果一系列neuron等得到output C,所以由链式法则可知,只看第一个neuron那么 Cz的偏微分就是az的偏微分乘上Ca的偏微分
然后a假设是由sigmod函数得到,那么az的偏微分就是sigmodz的偏微分,记作σ'(z)
Ca的微分呢?可以发现,跟后面两个neuron有关,因为是全连接的神经网络,由链式法则就可以知道,Ca的偏微分等于z'a的偏微分乘上Cz'的偏微分加上z''a的偏微分乘上Cz''的偏微分z'a的偏微分由前面得到的规律可知,就等于w3,同理,z''a的偏微分是w4,然后又剩下了Cz'的偏微分,和Cz''的偏微分,又要往后看…
在这里插入图片描述
假设已经知道了Cz'的偏微分,和Cz''的偏微分,那么代入Cz的偏微分可得到
在这里插入图片描述
换一个角度,假设有一个神经网络是下面这样,并且可以表示成对应的公式
在这里插入图片描述
现在的问题就是Cz'的偏微分,和Cz''的偏微分我们并不知道
这两个呢又跟后面全连接的neuron有关,后面的一个又跟后面的后面有关,一直递推下去的话,我们直到output layer才能求出来前一层,再一直往前,就可以知道每一个neuronCz的偏微分了
所以,来再看一下我们要求的公式
在这里插入图片描述
那么,就和清楚的知道,我们
从前往后根据weightinput就知道每一个neuronzw的偏微分了
从后往前,就可以算出每一个neuronCz的偏微分了,最终Cw的偏微分就可以算出来啦,然后通过下面的式子就得到了Loss的偏微分
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值