BP神经网络以决策面为基础,采用反向传播监督学习算法,是遥感应用中最常用的一种模型,但是标准的BP算法很容易因为自身的限制,使其应用无法达到最优,主要表现在:①存在局部极小问题;②学习算法的收敛速度慢,且收敛速度与初始权的选择有关;③网络的结构设计,即隐层及节点数的选择,尚无明确理论指导;④新加入的样本会影响到已学好的样本。因此,人们希望对标准算法进行修改。BP算法的改进方案很多,其中有两种方法是变步长算法和加动量项法。本书提出的改进后的算法是基于两种典型的改进方法的综合,在加动量项的同时,让学习率作自适应调整。
1.引入动量项
标准BP算法实质上是一种简单的最速下降静态寻优算法,在修正网络连接权值w 时,只是按照当时的梯度反方向进行修正,而没有考虑以前积累的经验,即以前时刻的梯度方向,从而常使学习过程发生振荡,收敛缓慢。在网络权值修正量中考虑当前时刻和前一时刻的梯度,即:
式中:w(t)为第t次权值修正时网络的某单个连接权值或神经元阈值;
α为学习率,α>0;
η为动量项因子,0≤η<1。(www.xing528.com)
该方法加入的动量项相当于阻尼项,它减小了学习过程的振荡趋势,改善了收敛性。
2.变步长法
一阶梯度法寻优收敛速度慢的一个原因是学习率α 的选择不恰当。α 选得太小,则收敛速度慢;α选得太大,则有可能修正过头,导致震荡甚至发散。变步长法就是针对这一问题提出的。变步长法的权值修正量计算如下:
上述算法说明,当连续两次迭代梯度方向相同时,表明下降太慢,因而步长需要加倍;当连续两次迭代梯度方向相反时,表明下降过头,因而步长减半。当需要引入动量项时,上式可以修改为:
在使用该算法时,由于步长在迭代过程中自适应进行调整,因此对于不同的连接权值实际上采用了不同的学习率。也就是说,误差代价函数E 在超曲面上在不同方向按照各自比较合理的步长向极小点逼近。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。