BackPropagation 过程推导

注:本文是作者在借鉴其他前辈的推导过程的基础上,加入了一些自己的理解,便于新手入门,无商业用途。

反向传播算法(Backpropagation Algorithm,简称BP算法)是深度学习的重要思想基础,对于初学者来说也是必须要掌握的基础知识!本文希望以一个清晰的脉络和详细的说明,来让读者彻底明白BP算法的原理和计算过程。本文主要由以下部分组成:

1. 前向传播

2. 反向传播(矩阵化表示)

3. 具体实例


前向传播

首先我们定义如下的神经网络:
Backpropagation 过程推导
图1 神经网络结构(三层)

图1所示是一个简单的三层(两个隐藏层,一个输出层)神经网络结构,假设我们使用这个神经网络来解决二分类问题,我们给这个网络一个输入样本 ,通过前向运算得到输出 。输出值 的值域为 ,例如 的值越接近0,代表该样本是“0”类的可能性越大,反之是“1”类的可能性大。

前向传播的运算:

根据图1,输入的样本为:
Backpropagation 过程推导
第一层的网络参数为:
Backpropagation 过程推导
第二层的网络参数为:
Backpropagation 过程推导
第三层的网络参数为:
Backpropagation 过程推导

1. 第一层隐藏层的计算:
Backpropagation 过程推导

Backpropagation 过程推导

2. 第二,三层隐藏层的计算:
Backpropagation 过程推导


反向传播(BP)

Backpropagation 过程推导
因此,我们如果想要计算上述两个等式左边的结果,要先解决等式右边每一项的结果。
首先我们先计算Backpropagation 过程推导,然后计算Backpropagation 过程推导,最后计算Backpropagation 过程推导.

计算Backpropagation 过程推导

首先先补充雅克比矩阵的知识:
Backpropagation 过程推导
因此:
Backpropagation 过程推导
因此我们很容易得到:Backpropagation 过程推导
其他各层的Backpropagation 过程推导都是单位矩阵。

计算Backpropagation 过程推导

Backpropagation 过程推导
Backpropagation 过程推导

计算Backpropagation 过程推导

根据式子Backpropagation 过程推导
很容易可以得到Backpropagation 过程推导Backpropagation 过程推导.
Backpropagation 过程推导

Backpropagation 过程推导可以不停地通过迭代一直到最后一层(迭代公式上面已给出),这也就是从一个一般性的例子来表现反向传播(Backpropagation)的含义。


具体实例

Backpropagation 过程推导
Backpropagation 过程推导
Backpropagation 过程推导

因此,如果我们只是想要去更新某一个权值或者偏置,可以直接用链式法则求最后的Loss函数针对权值或者偏置的偏导数,然后设定合适的步长(太长容易失去收敛,太短效率过低),运用梯度下降法来进行更新。

相关文章:

  • 2021-09-22
  • 2022-12-23
  • 2021-10-17
  • 2021-06-13
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2019-10-25
  • 2021-05-09
  • 2021-07-22
  • 2021-10-15
  • 2021-09-30
  • 2021-08-29
相关资源
相似解决方案