【深度学习】前向传播和反向传播(四)

写在最前面的话:今天要梳理的知识点是深度学习中的前/反向传播的计算,所需要的知识点涉及高等数学中的导数运算。

在深度学习中,一个神经网络其实就是多个复合函数组成。函数的本质就是将输入x映射到输出y中,即 f ( x ) = y f(x)=y f(x)=y,而函数中的系数就是我们通过训练确定下来的,那么如何训练这些函数从而确定参数呢?这就涉及网络中的两个计算:前向传播和反向传播。

前向传播

前向传播(Forward Propagation)的理解较为简单,从输入经过一层层隐层计算得到输出的过程即为前向过程,也称前向传播。举个栗子,假设网络中只有一个神经元,
单个神经元网络
单个神经元网络中,正向传播是:(公式1)
y = W ∗ x + B y=W*x+B y=Wx+B
而反向传播则是根据(标签值Y-预测值y),来调整W和B。

反向传播

反向传播(Backward Propagation)则是与前向传播的计算方向相反,它是通过输出值与真实值之间的误差,来更新训练参数,具体来说反向传播是根据损失函数,通过网络反向流动来计算每一层参数的梯度(偏导数),从而更新参数。反向传播解决了神经网络中训练模型时参数的更新问题,所以理解反向传播较为重要!对于上面单个神经元网络的栗子,它的损失函数假设为(标签值Y-预测值y)不考虑正则化问题,即:
L = Y − ( W ∗ x + B ) L=Y-(W*x+B) L=Y(Wx+B)
如果我们想要知道参数W和B对y做了多少贡献(即当W和B改变时,y如何变化),分别对(公式1)中W和B求导。可得到W的贡献为x,而B的贡献为1,因此,我们可以得到 △ W = ϑ L ϑ W = x \bigtriangleup W=\frac{\vartheta L}{\vartheta W}=x W=ϑWϑL=x △ B = ϑ L ϑ B = 1 \bigtriangleup B=\frac{\vartheta L}{\vartheta B}=1 B=ϑBϑL=1,因此可得更新参数 W ′ = W + △ W , B ′ = B + △ B W'=W+\bigtriangleup W, B'=B+\bigtriangleup B W=W+W,B=B+B
最后通过观察W,B与loss之间的关系:

  • 如果正比关系,那么需要降低W/B值,来减少损失值loss
  • 如果反比关系,那么需要增大W/B值,来减少损失值loss

以上就是简单的单个神经元网络中的反向传播。如果神经网络较为复杂,我们需要用到链式法则: ϑ L ϑ x = ϑ L ϑ y ϑ y ϑ x \frac{\vartheta L}{\vartheta x}=\frac{\vartheta L}{\vartheta y}\frac{\vartheta y}{\vartheta x } ϑxϑL=ϑyϑLϑxϑy

太简单的例子相对比较好理解。为了加深上面的理解,我们再举一个多层神经网络,先借用一幅图:
多层
上图显示了多层网络中的L1、L2和L3层,经过L2层的输出为 a i ( 2 ) a_i^{(2)} ai(2),经过L3层后的输出为 h W , b h_{W,b} hW,b,其中每一层对应的表达式为:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值