Backpropagation 过程推导

BackPropagation 过程推导

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

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

1. 前向传播

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

3. 具体实例


前向传播

首先我们定义如下的神经网络:

图1 神经网络结构(三层)

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

前向传播的运算:

根据图1,输入的样本为:

第一层的网络参数为:
这里写图片描述
第二层的网络参数为:
这里写图片描述
第三层的网络参数为:
这里写图片描述

1. 第一层隐藏层的计算:
这里写图片描述

这里写图片描述

2. 第二,三层隐藏层的计算:
这里写图片描述


反向传播(BP)

这里写图片描述
因此,我们如果想要计算上述两个等式左边的结果,要先解决等式右边每一项的结果。
首先我们先计算,然后计算,最后计算.

计算

首先先补充雅克比矩阵的知识:
这里写图片描述
因此:
这里写图片描述
因此我们很容易得到:这里写图片描述
其他各层的都是单位矩阵。

扫描二维码关注公众号,回复: 2837984 查看本文章

计算

这里写图片描述
这里写图片描述

计算

根据式子这里写图片描述
很容易可以得到.
这里写图片描述

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


具体实例

这里写图片描述
这里写图片描述
这里写图片描述

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

猜你喜欢

转载自blog.csdn.net/weixin_42278173/article/details/81508040
今日推荐