基于BP模型神经网络的研究综述

(整期优先)网络出版时间:2018-05-15
/ 2

基于BP模型神经网络的研究综述

何弦

(广西电网有限责任公司柳州供电局,广西柳州545006)

摘要:基于BP模型的神经网络是一种用于前向多层神经网络的反传学习算法,目前为止应用最为广泛且最重要的一种训练前向神经网络的学习算法。本文详细介绍BP算法原理并剖析其性能不足的几个方面,简要介绍优化算法,对模型未来的发展方向进行展望。

关键词:BP模型;神经网络;梯度下降法

1.BP神经网络模型

BP网络是一种用于前向多层神经网络的反传学习算法,是目前应用最广泛的神经网络模型之一。它是由鲁梅尔哈特提出后受到广泛重视[1]。BP网络由输入层、隐层和输出层三部分构成,每层由许多并行运算的简单神经元组成,网络的层与层之间的神经元采用全互连方式,但同层神经元之间并无相互连接。

2.BP网络学习算法

2.1基于ep的BP算法的学习过程

学习的最终结果是通过一系列的训练过程不断调整连接权值,使得对任一输入都能得到所期望的输出。学习的方法是需要用一组训练样例对神经网络进行训练,每个样例都包含样例的输入及期望的输出两部分。样例训练就是首先将样例通过BP神经网络正向的进行计算,通过输入层经各隐层逐层处理并计算每个单元的实际输出值;然后计算实际输出与期望输出之间的差值,如果该误差不能达到预定的要求,则沿着原来的连接通路逐层返回,利用两者的误差按照一定的原则对各层节点的权值进行相应的调整,使得最后得到的误差逐渐减小,满足要求即可停止

2.2基于E的BP算法的学习过程

2.3BP神经网络模型的性能分析

BP网络的理论依据坚实,推导过程严谨,物理概念清楚,通用性强。但是,人们在使用过程中发现BP网络也存在许多不足之处,主要包括以下几个方面:

2.3.1收敛速度慢

由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,误差曲面存在平坦区域[2]。在这些区域中,误差梯度变化较小,即使权值的调整量很大,误差依然下降缓慢,使训练过程几乎停顿。

2.3.2易陷入局部极小

BP网络的训练是从某一起始点开始的斜面逐渐达到误差的最小值。对于复杂的网络,其误差函数为多维空间的曲面,就像一个碗,其碗底是最小点。但是这个碗底表面是凹凸不平的,因而在其训练过程中,可能陷入某一小谷区,而这小谷区产生的是一个局部极小值,由此点向各方向变化均使误差增加,以至于使训练无法跳出这一局部极小值[3]。

2.4BP算法的改进方向

正是因为BP网络自身的缺陷使得其在应用过程中存在一些棘手的问题,从而极大地影响了BP网络的进一步发展和应用。主要对BP模型算法的以下几个方面进行性能改善:

2.4.1神经网络的层数

Robert给出了如果神经网络的隐层中有足够多的神经元节点,那么该网络只需要一个隐层即可实现对所有有理数函数的逼近理论的证明。由此一个只包含一个隐层的三层BP神经网络便可以完成任意的非线性映射,这个非线性映射可以是n维到m维的映射[4]。然而,增加隐层的层数可以提高辨识精度、降低误差,但同时也会使网络复杂化,增加网络连接权系数的训练时间。

2.4.2隐层的节点数

目前,关于隐层的节点个数主要是根据大量实验和经验人为的进行设定的[5]。一般来说,影响隐层节点数有两个方面,一是实际问题的需要,二是输入和输出的单元数。隐层数目的选取只需要能够正确反映出输入和输出的关系即可。隐层的节点数目越多,网络获取信息的能力就越强,但隐层的节点数目过多,不但会增加训练的复杂度,还会使网络在训练过程中出现一些非相干的因素影响整个网络,造成一种“过度吻合”的现象。

2.4.3学习速率

学习速率在BP神经网络的学习中起着至关重要的作用,它能够决定连接权系数在每一次循环中产生的变化量的大小。当学习速率取值过大时,系统有可能会变得稳记,甚至导致系统瘫疾;当学习速率取值过小时,系统的训练时间必定会变长,导致系统的收敛速度变慢[6]。

2.5BP算法的改进方法

2.5.1附加动量法

2.5.2自适应学习速率

BP算法中的学习速率是恒定的,在输入样例计算之前就已经设定好的。若学习速率值偏大,则在计算过程中就容易出现震荡现象而无法获得好的效果[8];若习速率值偏小,则虽不会出现震荡现象,但收敛速度过慢,影响算法复杂度。于是,有学者就提出讲学习速率值进行自适应调节,而不再采取恒定值的方式,根据计算出的误差值来自适应调整值,这样即可提高收敛速度。

2.5.3弹性BP算法

Martin在他的论文提出弹性BP方法[8]。这个算法主要是为了消除目标函数及激励函数的偏导数对连接权系数的修正产生的影响,因此它采用的方法是只根据梯度下降算法的偏倒数的方向进行调整,而不取它的值。

3.总结与展望

在BP神经网络方面,需要根据实际问题的情况来控制隐层的节点和层数,初始权值,学习速率,期望误差,激励函数参数等方面,我们很难找到一个通用的方法来解决所有问题。因此就需要进一步探讨出哪些BP优化算法适合哪一类的问题。目前,神经网络已被应用到许多方面,例如模式识别,图像识别,动态系统的控制和语言学习等,相信BP神经网络的应用会更加广泛,且能够取得更多的成果。

参考文献

[1]王永庆.人工智能原理与方法[M].西安:西安交通大学出版社,1998.5:423-424.

[2]孙娓娓.BP神经网络的算法改进及应用研究[D].重庆:重庆大学,2009:19-20.

[3]孙德保,高超.一种实用的克服局部极小的BP算法的研究[J].信息与控测,1995,24(5):283-287.