神经网络之BP反向传播算法

反向传播算法和BP网络简介

       误差反向传播算法简称反向传播算法BP算法)。使用反向传播算法的多层感知器又称为BP神经网络。BP算法是一个迭代算法,它的基本思想为:(1)先计算每一层的状态和**值,直到最后一层(即信号是前向传播的);(2)计算每一层的误差,误差的计算过程是从最后一层向前推进的(这就是反向传播算法名字的由来);(3)更新参数w和b(目标是误差变小)。迭代前面两个步骤,直到满足停止准则(比如相邻两次迭代的误差小于预定义的阙值)。

 

本文的记号说明(结合记号说明来理解下面的公式推导):

 神经网络之BP反向传播算法

本次讲解将以下图的三层感知器(即只含有一个隐藏层的多层感知器)为例,介绍“反向传播算法(BP 算法)”。

神经网络之BP反向传播算法

注:上图中Layer 1 中的 +1 代表 偏置项b

 

Step 1 前向传播

前向传播作用是参数w和偏置项b已知(一开始我们可以随机生成数据来赋值给w和b)。得到神经网络的输出。

1.输入层---->隐藏层:

                                                       神经网络之BP反向传播算法

 由z求出相对应的a的值需要利用**函数,详细了解请点击:**函数

                                                           神经网络之BP反向传播算法

类似的:

 2.隐含层---->输出层:

                                                              神经网络之BP反向传播算法

上述神经网络层数为三层,同理拓展到第L层: 

 

     神经网络之BP反向传播算法

 

Step 2 反向传播

反向传播功能是通过不断调整参数w和偏置b,使构造的代价函数并不断减小来达到优化模型的目的。

 1.构造代价函数

     神经网络之BP反向传播算法

    那么对于训练数据总体(平均) 代价可写为:

                                                         神经网络之BP反向传播算法 

 代价函数详细了解请参看:https://blog.****.net/HPU_FRDHR/article/details/88989088

 2.优化参数

优化参数最常用的方法就是梯度下降法。详细了解请点击:梯度下降算法讲解

神经网络之BP反向传播算法

神经网络之BP反向传播算法

3.输出层的权值更新:

神经网络之BP反向传播算法

神经网络之BP反向传播算法

神经网络之BP反向传播算法

4.隐藏层的权重更新

神经网络之BP反向传播算法

神经网络之BP反向传播算法

神经网络之BP反向传播算法

5.输出层和隐藏层的偏置参数更新

 

         神经网络之BP反向传播算法

神经网络之BP反向传播算法

BP算法四个核心公式总结:

神经网络之BP反向传播算法

BP算法具体应用步骤总结:

神经网络之BP反向传播算法

神经网络之BP反向传播算法

工程实现注意事项:

在前向传播过程中,我们已经计算出了算有的ai,反向传播过程可以直接利用这些ai来计算神经网络之BP反向传播算法

 

BP算法参数更新总结:

神经网络之BP反向传播算法

神经网络之BP反向传播算法

注:随机梯度下降法请参看:https://blog.****.net/HPU_FRDHR/article/details/88558255

 

 梯度消失问题及其解决办法

神经网络之BP反向传播算法

BP算法的优化:Rprop 算法

神经网络之BP反向传播算法

 

参考文献:

1.https://blog.****.net/qq_32865355/article/details/80260212 

2.https://www.cnblogs.com/charlotte77/p/5629865.html

3.https://blog.****.net/HPU_FRDHR/article/details/88558255