提高BP神经网络学习速率的算法研究
2016-12-16李志伟
李志伟
摘要:BP(BackPropagation)神经网络是一种按误差逆传播算法训练的多层前馈网络。本文针对BP神经网络学习速率低、收敛速度慢的问题进行研究,介绍了标准的BP算法和提高收敛速度的动量因子法和变步长法,对比实验结果明显,旨在为研究BP神经网络学习速率提供参考。
关键词:BP神经网络 动量因子法 变步长法 学习速率
1.引言
人工神经网络(Artificial Neural Networks,ANN)是通过对人脑神经元建模、联结模拟生物脑或世界系统的网络模型,是一种具有学习、记忆和模式识别等智能信息处理功能的人工系统。通常研究和使用的十种神经网络模型中,人们较多用的是Hopfield网络、BP网络、Kohonen网络和ART网络模型。其中的BP神经网络是基于反向传播(BackPropagation)的网络,也是神经网络领域中研究最多、应用最广的网络模型。它采用最小均方差的学习方式,可用于函数逼近及语言综合、识别和自适应控制等。
2.标准BP神经网络算法
BP算法作为前馈网络的主要学习算法,对神经网络的推广应用起了举足轻重的促进作用。标准的BP网络,优化计算的方法很多,比较典型的是采用一阶梯度法,即最速下降法。在BP神经网络训练中,主要是针对一定的输入,所得到的输出是否与期望输出接近,即误差的代价函数达到最小。其简单的实现步骤为:(1)通过网络输入反向传播;(2)通过网络将敏感性反向传播;(3)使用近似均方误差的BP算法更新权值和偏置值。
标准的BP算法因具有简单、易行、计算量小及并行性强等优点,是目前神经网络训练采用最多、最成熟的训练算法。由于BP网络中待寻优的参数太多,往往导致算法收敛速度慢。对于复杂问题,训练过程需迭代几千、几万次才能收敛到期望的精度。因此,标准的BP网络在很大程度上实用性不强,尤其对于实时性很强的系统而言。
3.BP算法的改进
BP多层前馈网络已成为神经网络的重要模型之一,但实际上的BP多层前馈网络并不是利用标准的BP算法对网络进行训练的,而是对BP算法进行了启发式改进。
(1)增加动量因子法
BP算法的神经网络的误差曲面具有不同的区域有不同的误差改变率的特点。假若开始训练的学习速率较高,那么算法的收敛速度可能很快。但当迭代进入的区域包含极小点时,此时算法发散,来回振荡,收敛不到极小值点。如果用平均改变参数的方法进行轨迹的过滤,就可以对震荡进行平滑并可产生稳定的轨迹。当动量滤波器的参数得到了改变,获取反向传播的动量,使用了动量项,可以在保证算法较为稳定的前提下,在网络训练进入局部最小值时产生一个继续向前的正向斜率运动,使得搜索能够跳出较浅的峰值;当网络搜索位于误差曲面平坦区的区域时,该方法能够较快地提高训练速度。
(2)变步长法
变步长法通过调整网络训练的学习率,故也称为可变学习速率的方法。BP算法中对连接权值的调整,取决于两个因子,即学习速率和梯度。其中通过调整学习速率提高算法收敛收率的方法,是当前认为最简单、有效的方法。学习率不能随意选取,选得太小,收敛会变慢;选得太大,可能调整过多,使得算法振荡或发散。所以,在对学习率进行调整时,一般遵循的准则是:首先检查修正值,看该值是否明显降低了误差。如果降低了,则学习率的值选取偏小,可以作为对学习率调整的参考;否则,学习率值调整过大,就应该对该值进行减小。增加可变速率参数后,得到改进的BP算法如下:
①如果整个训练集上的均方误差权值在更新后增加的,且该值超过了预设的某个百分数,如:1%~5%,则不对权值进行更新。学习速率被乘以一个大于零且小于1的因子,并且动量系数被设置为0。
②如果均方误差在权值更新后变小了,则接受权值更新。学习速度将被乘以一个大于1的因子。假若学习率被设置为0,则恢复之原来的值。
③如果均方误差的增长变小,则权值更新被接受,但学习速度保持不变。如果学习率过去被设置为0,则恢复到以前的值。
4.实验结果
分别对目标误差为0.001的网络训练。实验结果如下:
(1)采用标准BP网对样本进行训练,迭代次数近5000次尚未收敛。
(2)采用增加动量法,迭代375次,学习过程收敛。
(3)采用变步长法,迭代1728次收敛。
由此可见,未改进的标准BP学习算法存在收敛速度慢的缺陷;改进后的BP学习算法都从不同程度上提高了算法的收敛速度,训练的次数大大减小了。对BP算法采用启发式改进措施后,明显提高了学习速度。
5.结语
BP神经网络最强大的应用之一就是函数逼近,即从训练样本出发,对未知函数进行非线性逼近。由于网络的拓扑结构直接影响网络对函数的逼近能力和效果,因此,在实际应用中,应根据具体问题,选择一个合适的网络结构。BP网络的学习算法属于全局逼近的算法,具有较强的泛化能力,它的主要应用问题是隐层数及隐层节点个数的确定。这个问题有待进一步研究和讨论。