1 链式求导

想要弄懂反向传播算法,就必须弄懂链式求导(高数的多元微分)。这里简单地提两种链式求导的规则。
第一种:
反向传播算法及数学例子
第二种:
反向传播算法及数学例子

2 前向传播

前向传播是神经网络的基础,直观上来说就是每一层的输入和这一层权重W做矩阵相乘,然后加上偏置b,经过**函数计算之后作为输出。
反向传播算法及数学例子
反向传播算法及数学例子
其中f就是**函数,可以是sigmoid、relu、tanh等等函数。

3 反向传播

直接上一道数学题目,方便理解:
反向传播算法及数学例子
这道题简化了**函数和损失函数的表达方式,在实际上的模型中,只是稍微复杂一些,但是原理都一样。

要做反向传播之前,先要做一次前向传播。如图所示,先计算第一个隐藏层z1的结果和经过**函数后a1的输出,然后经过第二个隐藏层输出a2,最后计算此时的误差为J=2y-2=6

接下来进行第一次反向传播
反向传播算法及数学例子
反向传播因为是反方向进行的,所以需要从后往前求导!
第一行的公式是先计算下第二三行公式需要用到的中间结果;
第二行是使用损失函数对第二个隐藏层θ2进行求导,可以看出经过链式求导后变成三个部分相乘;
第三行是使用损失函数对第一个隐藏层θ1进行求导,可以看出经过链式求导后变成五个部分相乘;
最后做一次权重更新,得到第一次反向传播后的结果。
此时再计算一次损失值,就会发现损失值变小了。

相关文章:

  • 2021-09-14
猜你喜欢
  • 2021-12-19
  • 2021-08-27
  • 2021-05-12
  • 2021-10-16
相关资源
相似解决方案