日期:2023-01-24 阅读量:0次 所属栏目:软件技术
1 概述
人工神经网络(Artificial Neural Networks,ANN),是基于人类大脑的生物活动所提出的,是一个数学模型。它由众多节点通过一定的方式互联组成,是一个规模巨大、自适应的系统。其中有一种学习算法是误差传递学习算法即BP算法。BP算法是人工智能最常用到的学习方法,从一定意义上来讲,BP算法的提出,终结了多层网络在学习训练算法上的空白史,是在实际应用中最有效的网络训练方法,对ANN的应用和发展起到了决定性的作用。
BP算法是使用从输出层得到的误差来估算前一层的误差,再利用该误差估算更前一层的误差。依次进行,就会获得其他所有各层的估算误差。这样就实现了将从输出层的得到误差沿着与输入信号传送相反的方向逐级向网络的输入端传递的过程[1]。但是,BP算法也存在着不可忽视的缺陷。基于此,该文总结介绍了BP的改进方法。
2 BP算法的基本思想
2.1 BP算法的基本原理
BP算法是有监督指导的算法,它的学习训练过程一般分为两步:首先是输入样本的正向传递;第二步误差的反向传递;其中信号正向传递,基本思想是样本值从输入层输入,经输入层传入隐藏层,最后通过输出层输出,中间层对样本数据进行处理操作,利用各层的权值和激活函数对数据进行操作然后在输出层获得输出[2];接下来就是反向传递,算法得到的实际输出值与期望目标输出之间必然会有误差,根据误差的大小来决定下一步的工作。如果误差值较小满足训练的精度要求,则认为在输出层得到的值满足要求,停止训练;反之,则将该误差传递给隐藏层进行训练,按照梯度下降的方式,对权值和阈值进行调整,接着进行循环,直到误差值满足精度要求停止训练[3]。
3 BP算法的缺陷
尽管BP算法有着显著的优点,但是在实际应用过程中,BP算法会出现很多问题。尤其是下面的问题,对BP神经网络更好的发展有很大影响。有的甚至会导致算法崩溃。
3.1 收敛速度的问题
BP算法在进行训练学习时,收敛速度慢,特别是在网络训练达到一定的精度时,BP算法就会出现一个长时间的误差“平原”,算法的收敛速度会下降到极慢[4]。如果盲目的加快收敛速度,则会使算法产生震荡现象。
3.2 局部极小点问题
在一些初始权值的条件下,BP算法在训练过程中会陷入局部极值。这是由于BP网络采用最速下降法,误差曲面非常复杂且分布着许多局部极值点,一旦陷入,BP算法就很难逃脱,进而会使BP网络的训练停止。算法可以在某处得到一个收敛值,但是并不能确定取到了误差曲面的最小值。这样就会使网络难以达到事先规定的误差精度[5]。
3.3 网络瘫痪问题
在算法的学习训练过程中,网络的权值会变得很大,从而使得节点的输入变大,这就会导致其激活函数的导函数在改点取得的值很小,接着会导致算法的训练速度变得极低,最终会导致BP网络停止收敛,网络瘫痪。
3.4 步长问题
BP的收敛是建立在无穷小权修改量的基础上,而这就意味着网络所需要的训练时间是无穷的,这显然是不可取的。因此,要限定权值修改量的值。这主要是因为,如果步长太小,那么网络的收敛速度就会下降,如果步长太大,就会使BP神经网络产生瘫痪和振荡。学者们经过研究提出一个较好的方法,就是用自适应的步长代替原来的定值步长,以使权值修改量随着BP网络的训练而不断变化[6]。
4 改进BP算法的方法
BP算法应用广泛,但它又存在很多缺陷,针对BP算法的问题,国内外许多学者提出各种改进方法,主要的改进方法分为两类:一是启发式改进,如附加动量法和自适应学习率等;二是结合新理论的改进。这些方法在不同程度上提高了网络的收敛速度,避免了局部最小问题。
4.1 启发式改进方法
启发式改进方法是建立在BP网络梯度下降规则的基础上,通过对BP神经网络的权值和学习率的改进,从而解决BP网络在学习训练过程中遇到的问题。它的核心思想是:使权重的调整量最大限度的适应误差下降的要求。该文主要介绍了附加动量法。
传统的BP算法实际上是运用最速下降规则来搜索最优点的算法,该规则是顺着梯度的反方向进行权值的修正,并不将前一阶段积累的经验考虑进来。因此会在训练过程中发生震荡,导致收敛速度缓慢。但是将动量项引入到BP网络中后,当输入样本依照顺序输入时,则可以将权值的修正公式看作为以t为变量的时间序列,那么权值的修改公式就改变为如下所示:
加入动量项以后若本次。
4.2 BP网络结构的优化
在BP算法中,输入和输出节点的个数由实际问题确定,网络结构的优化主要是针对隐藏层的节点数和层数。许多研究表明,一个隐藏层就可以解决各种分类问题。那么对于隐藏层节点的个数的确定,有的学者给出了公式[NH=NI+NO+L](其中[NH]表示隐藏层节点数,[NI]表示输入层节点数,[NO]表示输出层节点数),但是公式缺乏一定的理论支持,所以目前最好的方法是通过经验和在学习训练过程中不断的调整隐藏层节点数,最后得到一个合适的网络结构。
4.3 基于新理论的算法改进
随着对BP网络结构知识的研究,能够更加深刻的理解BP算法误差传递的本质。出现了许多基于新兴理论的BP算法的改进,这种改进方式是结合了其它领域比较成功的优化算法和理论,比如将遗传算法与BP算法相结合,将遗传算法高效的全局寻优能力引入进来,利用GA算法来优化BP算法的权值和阈值,解决BP神经网络存在容易陷入局部极值和收敛速度慢的问题,两种算法的结合实现了各自优势的互补,取得了良好的效果[8];将粒子群优化算法用于BP神经网络的学习训练,使算法更容易找到全局最优解,具有更好的收敛性[9]。很多研究者还将BP算法与模糊数学理论、小波理论、混沌算法等相结合。这些改进使得BP神经网络得到更进一步的应用。
5 小结
BP算法是目前在神经网络学习算法中得到最广泛应用的。该文总结了BP算法的原理,针对BP算法中出现的问题,虽然给出了BP算法的改进方法,但还是有很多不足之处。随着科学日新月异的发展,各种新的优化算法
不断的提出,BP算法也会得到更广泛的发展。
参考文献:
[1] 胡彩萍.基于BP神经网络的排序评价算法研究及应用[D].南昌:江西师范大学硕士学位论文,2009.
[2] 刘翔.BP算法的改进及其应用[D].太原:太原理工大学硕士学位论文,2012.
[3] 张璐璐.基于遗传神经网络的人民币识别方法研究[D].长春:吉林大学硕士学位论文,2009.
[4] 张波.DRP决策支持系统及小波网络在其中的应用[D].成都:四川大学硕士学位论文,2006.
[5]付海兵,曾黄麟.BP神经网络的算法及改进[J].中国西部科技,2012,11(8):1671-6396.
[6] 周羽.红外图像人脸识别研究[D].大连:大连理工大学硕士学位论文,2007.
[7] 杨赛.BP神经网络学习问题的分析研究[D].赣州:江西理工大学硕士学位论文,2009.
[8] 杨珍.基于遗传神经网络的铁路危险货物运输风险评价分析与应用研究[D].北京:北京交通大学硕士学位论文,2011.