BackPropagation 过程推导
注:本文是作者在借鉴其他前辈的推导过程的基础上,加入了一些自己的理解,便于新手入门,无商业用途。
反向传播算法(Backpropagation Algorithm,简称BP算法)是深度学习的重要思想基础,对于初学者来说也是必须要掌握的基础知识!本文希望以一个清晰的脉络和详细的说明,来让读者彻底明白BP算法的原理和计算过程。本文主要由以下部分组成:
1. 前向传播
2. 反向传播(矩阵化表示)
3. 具体实例
前向传播
首先我们定义如下的神经网络:
图1 神经网络结构(三层)
图1所示是一个简单的三层(两个隐藏层,一个输出层)神经网络结构,假设我们使用这个神经网络来解决二分类问题,我们给这个网络一个输入样本 ,通过前向运算得到输出 。输出值 的值域为 ,例如 的值越接近0,代表该样本是“0”类的可能性越大,反之是“1”类的可能性大。
前向传播的运算:
根据图1,输入的样本为:
第一层的网络参数为:
第二层的网络参数为:
第三层的网络参数为:
1. 第一层隐藏层的计算:
2. 第二,三层隐藏层的计算:
反向传播(BP)
因此,我们如果想要计算上述两个等式左边的结果,要先解决等式右边每一项的结果。
首先我们先计算,然后计算
,最后计算
.
计算
:
首先先补充雅克比矩阵的知识:
因此:
因此我们很容易得到:
其他各层的都是单位矩阵。
计算
:
计算
:
可以不停地通过迭代一直到最后一层(迭代公式上面已给出),这也就是从一个一般性的例子来表现反向传播(Backpropagation)的含义。
具体实例