BP算法和LMBP算法

BP算法

反向传播算法(BP算法)是一种监督学习算法,常被用来训练多层感知机。BP算法由两个环节(激励传播、权重更新)反复循环迭代,直到网络对输入的响应大到预定的目标范围为止。
激励传播包含:(向前传播阶段)将训练输入送入网络以获得激励响应啊;(反向传播阶段)将激励响应同训练输入对应的目标输入求差(t-a),从而获得隐层和输出层的响应误差。
权重更新包括:首先将输入激励和响应误差相乘(sm*(a(m-1))),从而获得权重的梯度;然后,将这个梯度乘上一个比例(∂*sm*(a(m-1)))并去反后加到权重上。
BP算法和LMBP算法_第1张图片

LMBP算法

Levenberg-Marquardt算法是牛顿法的一种变形,用于最小化非线性函数的平方和。也可以看成是最速下降法和高斯牛顿法的结合(通过调节阻尼μ切换),当解距离最优解较远时,算法更接近最速下降法,慢却保证下降;当解接近最优解,算法接近高斯牛顿法,快速收敛。非常适用于采用均方误差为性能指标的神经网络的训练。
核心思想:用雅可比矩阵(易计算)代替Hessian矩阵的计算,使得优化效率得到提升。
LMBP是加速收敛BP算法的其中一种标准的数值优化方法。
优点:由于需要求解矩阵的逆,所以在每次迭代中需要更多的计算。但是既便如此,在网络参数个数适中的情况下,LMBP算法依然是最快的神经网络训练算法。
缺点:存储需求大。所需存储近似Hessian矩阵JTJ(n*n的矩阵,其中n是神经网络中参数(权值与偏置值)的个数)。因此当参数的数量非常大时,LMBP算法是不实用的。
Levenberg-Marquardt反向传播算法迭代总结:
1、将所有的输入传入网络,并计算网络对应的输出及误差 。计算所有输入的平方误差之和F(X)。
2、计算Jacobian矩阵。通过初始化之后,使用回复关系来计算这些敏感度。增广个体矩阵到Levenberg-Marquardt敏感度。计算Jacobian矩阵中的元素。
3、求解获得
4、使用来再次计算平方误差的和。如果新的平方和小于第1步中计算的结果,将μ除以 ,令 并回到第1步。如果平方和没有减小,那么使用 乘以μ,并回到第3步。
当这个梯度的范数小于某一个先前设定值时,或者当平方和减小到某个目标误差时,此算法被认为是已经收敛的。

你可能感兴趣的:(神经网络设计,神经网络,算法)