摘要:BP算法是非循环多级网络的训练算法,对人工神经网络的发展起到了重大的推动作用,该文介绍了BP算法的基本原理及其缺陷,并提出了改进BP算法的方法。
关键词:BP算法;人工神经网络;改进的BP算法
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]。
小编推荐同类优秀的电子类期刊 《系统管理学报》期刊论文
《系统管理学报》杂志1994年起被列为“中国科技论文统计与分析”刊源,是管理科学重要期刊。系统科学、系统工程与管理科学等学科在理论上,方法上的最新研究成果,以及实际案例分析。