李宏毅深度学习笔记(八)BP(Back Propagation)神经网络

为了使得计算梯度下降时更加有效率,我们使用反向传播(backpropagation)
在这里插入图片描述

链式法则

在这里插入图片描述
我们使用链式法则对神经网络的损失函数求偏导然后就可以代入式子优化参数了:
在这里插入图片描述
其中 C ( y , y ^ ) = − ∑ i = 1 n y i l n y ^ i C(y,\hat y)=-\sum_{i=1}^ny_iln\hat y_i C(y,y^)=i=1nyilny^i y i y_i yi代表标签值, y ^ i \hat y_i y^i代表依据模型计算出来值。

我们先考虑其中的一个节点:
在这里插入图片描述
如图所示我们称 ∂ z ∂ w \frac{\partial z}{\partial w} wz为前向传播(Forward pass),称 ∂ C ∂ z \frac{\partial C}{\partial z} zC为反向传播(Backward pass)。

上式中 ∂ z ∂ w \frac{\partial z}{\partial w} wz比较好算:
在这里插入图片描述

计算前向传播(Forward pass)和反向传播(Backward pass)

下面来解释一下为什么称 ∂ z ∂ w \frac{\partial z}{\partial w} wz为前向传播(Forward pass)
在这里插入图片描述
如上图所示,因为 ∂ z ∂ w i = x i \frac{\partial z}{\partial w_i}=x_i wiz=xi所以看起来就像-1往前传了一步,0.12往前传了一步······也就是说计算 ∂ z ∂ w i \frac{\partial z}{\partial w_i} wiz时只要那个节点的输入往前传一步赋值给 ∂ z ∂ w i \frac{\partial z}{\partial w_i} wiz即可。

计算反向传播(Backward pass)
在这里插入图片描述
其中 a = σ ( z ) = 1 1 + e − z a=\sigma(z)=\frac{1}{1+e^{-z}} a=σ(z)=1+ez1
假设打红色问号的两项已知的话,整个式子就很容易算出来了,即:
在这里插入图片描述
其中 σ ′ ( z ) = ∂ a ∂ z \sigma'(z)=\frac{\partial a}{\partial z} σ(z)=za,因为在后传的时候 z z z已经是一个已知的常数了,所以 σ ′ ( z ) \sigma'(z) σ(z)就是一个常数了。
在这里插入图片描述
接下来我们解决上面留下来的一个问题,计算 ∂ C ∂ z ′ \frac{\partial C}{\partial z'} zC ∂ C ∂ z ′ ′ \frac{\partial C}{\partial z''} zC
我们分两种情况来计算:
情况一: C C C位于输出层
在这里插入图片描述
这种情况下比较好算,因为此时 y 1 = σ ( z ′ ) y_1=\sigma(z') y1=σ(z) C = − y ^ 1 l n y 1 − y ^ 2 l n y 2 C=-\hat y_1lny_1-\hat y_2lny_2 C=y^1lny1y^2lny2

情况二: C C C位于隐藏层

在这里插入图片描述
此时就用到了类似于递归的思想,一直往后推导输出层。但是这样一层一层往后推会很费劲,所以我们最好从最后一项开始一层一层往前推,如下图所示,先算出 ∂ C ∂ z 5 \frac{\partial C}{\partial z_5} z5C ∂ C ∂ z 6 \frac{\partial C}{\partial z_6} z6C再算 ∂ C ∂ z 4 \frac{\partial C}{\partial z_4} z4C ∂ C ∂ z 3 \frac{\partial C}{\partial z_3} z3C最后算 ∂ C ∂ z 2 \frac{\partial C}{\partial z_2} z2C ∂ C ∂ z 1 \frac{\partial C}{\partial z_1} z1C
在这里插入图片描述

总结

在这里插入图片描述总的来说我们只需要先对整个网络进行前向传播(Forward Pass)然后再对整个网络进行反向传播(Backward Pass)把二者的结果相乘就是我们所要求解的 ∂ C ∂ w \frac{\partial C}{\partial w} wC

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

comli_cn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值