神经网络之BP反向传播算法
反向传播算法和BP网络简介
误差反向传播算法简称反向传播算法(BP算法)。使用反向传播算法的多层感知器又称为BP神经网络。BP算法是一个迭代算法,它的基本思想为:(1)先计算每一层的状态和**值,直到最后一层(即信号是前向传播的);(2)计算每一层的误差,误差的计算过程是从最后一层向前推进的(这就是反向传播算法名字的由来);(3)更新参数w和b(目标是误差变小)。迭代前面两个步骤,直到满足停止准则(比如相邻两次迭代的误差小于预定义的阙值)。
本文的记号说明(结合记号说明来理解下面的公式推导):
本次讲解将以下图的三层感知器(即只含有一个隐藏层的多层感知器)为例,介绍“反向传播算法(BP 算法)”。
注:上图中Layer 1 中的 +1 代表 偏置项b
Step 1 前向传播
前向传播作用是参数w和偏置项b已知(一开始我们可以随机生成数据来赋值给w和b)。得到神经网络的输出。
1.输入层---->隐藏层:
由z求出相对应的a的值需要利用**函数,详细了解请点击:**函数。
类似的:
2.隐含层---->输出层:
上述神经网络层数为三层,同理拓展到第L层:
Step 2 反向传播
反向传播功能是通过不断调整参数w和偏置b,使构造的代价函数并不断减小来达到优化模型的目的。
1.构造代价函数
那么对于训练数据总体(平均) 代价可写为:
代价函数详细了解请参看:https://blog.****.net/HPU_FRDHR/article/details/88989088
2.优化参数
优化参数最常用的方法就是梯度下降法。详细了解请点击:梯度下降算法讲解
3.输出层的权值更新:
4.隐藏层的权重更新
5.输出层和隐藏层的偏置参数更新
BP算法四个核心公式总结:
BP算法具体应用步骤总结:
工程实现注意事项:
在前向传播过程中,我们已经计算出了算有的ai,反向传播过程可以直接利用这些ai来计算
BP算法参数更新总结:
注:随机梯度下降法请参看:https://blog.****.net/HPU_FRDHR/article/details/88558255
梯度消失问题及其解决办法
BP算法的优化:Rprop 算法
参考文献:
1.https://blog.****.net/qq_32865355/article/details/80260212