BP人工神经网络模型初探摘要:本文阐述了人工神经网络基本原理,研究分析了BP神经网络模型的数学模型、学习结构以及缺陷在此基础上,探讨了部分优化策略。关键词:人工神经网络;BP算法Abstract:Thispaperdescribesthebasicprinciplesofartificialneuralnetworks,researchandanalysisofamathematicalmodeloftheBPneuralnetworkmodel,learningstructureanddefectsonthisbasis,toexploresomeoptimizationstrategies。Keywords:artificialneuralnetwork;BPalgorithm1.引言人工神经网络是由大量简单的基本元件-神经元相互联结,模拟人的大脑神经处理信息的方式,进行信息并行处理和非线形转换的复杂网络系统。人工神经网络处理信息是通过信息样本对神经网络的训练,使其具有人的大脑的记忆、辨识能力,完成各种信息处理功能。人工神经网络具有良好的自学习、自适应、联想记忆、并行处理和非线形转换的能力,避免了复杂数学推导,在样本缺损和参数漂移的情况下,仍能保证稳定的输出。人工神经网络这种模拟人脑智力的特性,受到学术界的高度重视和广泛研究,20世纪80年代在国际上迅速发展成一个前沿研究领域。近年来,更是掀起了一股人工神经网络研究、开发应用的热潮。其应用已渗透到各个领域,并在智能控制、模式识别、计算机视觉、故障检测、适时语言翻译、神经生理学和生物医学工程等方面取得了显著成效。人工神经网络在国民经济和国防科技现代化建设中具有广阔的应用前景。由Rumelhart提出的多层前馈神经网络模型,由于采用误差反传的BP学习算法,被称为BP网络[1]。因其高度非线性映射能力,BP网络的应用极广,但BP网络存在的缺点至今仍未被完全克服。到目前为止,对BP网络的改进主要包括两方面:一是算法的改进(包括学习参数的选取及多种提高收敛速度的算法的运用等),二是BP网络的设计(包括输入与输出层节点数的确定,隐层数、隐节点数和初始权值的选取等)。1989年,RobertHecht-Nielsen[2]证明了对于任何在闭区间内的一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映射,于是近期的BP网络多用一个隐单元层。另外,BP网络的输入、输出层维数一般是根据实际应用问题来确定,因而,历来BP网络的研究工作中输入、输出层的维数是预先给定的。除上述工作外,许多学者提出了不少的改进方法。2.BP神经网络基本原理2.1BP网络的数学模型BP算法采用广义的学习规则,是一种有导师的学习算法。它是一种无反馈的前向网络,由输入层、输出层、隐层构成,如图1所示。它分两个阶段:正向传播阶段和反向传播阶段。正向传播阶段,将学习样本的输入信息输入前馈网络的输入层,输入层单元接受到输入信号,计算权重合,然后根据神经元的激活函数将信息传到隐含层(1层或2层),同样根据隐含层的输出计算输出层的输出。反向传播阶段,将网络的实际输出与期望输出相比较,如果误差不满足要求,将误差向后传播,即从输出层到输入层逐层求其误差(实际上是等效误差),然后相应地修改权值。图表1典型的三层BP网络结构图误差反向传播算法简称BP算法,现在成为人工神经网络中最引人注意应用最广泛的算法之一。该算法是一种有教师示教的训练算法,它通过对P个输入输出对(即样本)的学习训练,得到神经元之间的连接权和阈值,使n维空间对m维空间的映射获得成功训练后得到的连接权和阈值,对其它不属于P的X子集进行测试,其结果仍能满足正确的映射。其中,输入层节点数为n,隐层节点数为r,输出层节点数为m,第i个输入节点与第j个隐节点的连接权值为wji,第j个隐节点与第k个输出节点的连接权值为vkj,隐节点阀值为θj,输出节点的阀值为θ′k,并设有N个学习样本(Xp,Yp)(p=1,2,…,n),其中Xp=(xp0,xp1,…,xpn-1)T为第p个学习样本的输入向量,Yp=(yp0,yp1,…,ypm-1)T为第p个学习样本的理想输出向量。对于输入层节点,取其输入输出相同,即隐层节点操作特性为:输出节点操作特性为:其中,Opi、Opj、Opk分别为输入层、隐层及输出层节点的输出,netpj、netpk分别为隐层和输出层节点的输入,传递函数f(·)用sigmoid函数:为方便起见,在方程(2.2),(2.3)中,令:则方程变为及2.2BP网络的学习结构在神经网络中,对外部环境提供的模式样本进行学习训练,并能存储这种模式,则称为感知器;对外部环境有适用能力,能自动提取外部环境变化特征,则称为认知器。一个有教师的学习系统分成三个部分:输入部、训练部和输出部。如图2所示:输入部接收外来样本X,由训练部进行网络的权系数W调整,然后输出部输出结果。多层神经网络1-4-6-4-1的学习机构用图2表示:X是输入样本信号,可取任意值。输入样本信号通过每一层的权系数作用,最终在输出部产生结果:y=e-x²图表21-4-6-4-1的学习机构再把期望输出信号y与u进行比较,从而产生误差e。权值调整机构根据误差e对学习系统的各层权系数进行修改,修改方向使用负梯度方向,即达到最速下降法,不断进行下去,使误差e满足给定精度要求0。003,这时实际输出值u和期望输出值y的误差符合要求,则学习过程结束。3.BP神经网络模型的缺陷分析传统BP网络具有思路清晰,结构严谨,工作状态稳定,可操作性强等特点,并且由于隐节点的引入,使得一个三层的非线性网络可以以任意精度逼近一个连续函数,从而在模式识别、复杂系统仿真等许多领域得到广泛应用,但存在以下几个缺陷:1)由于BP算法是一个非线性优化问题,就不可避免地存在局部极小问题,常得到局部最优点,这跟初始权值的选取有一定的关系。因此,在文[3]中采用统计学上随机抽取的思想,多次随机产生初始权值,逐次进行迭代最终优化,这样误差函数E取得全局最优的概率将大大提高。2)BP网络学习过程缓慢,易出现平台,这与学习参数b的选取有很大关系。当b较大时,权值修改量大,学习速率也快,但可能产生振荡;当b较小时,虽然学习比较平稳,但速度十分缓慢。因此,希望E较小(即W,V靠近学习要达到的目标点)时,b取较小值;而E较大(即W,V远离学习要达到的目标点)时,b取较大值。3)BP人工神经网络的结构难以确定,存在一个结构优化的问题。在BP网络的拓扑结构中,输入输出节点数目是由具体问题决定的,而隐节点数的选取却很困难,隐节点少了,学习过程不可能收敛;隐节点多了,网络性能下降,节点冗余。要找到合适的隐节点数,最好是在网络的学习过程中,根据环境要求,自组织地学习,调整自己的结构,得到一个大小合适的神经网络模型。4.BP神经网络模型优化策略针对BP神经网络模型的缺陷,在使用BP模型的时候,我们需要对其进行针对性的优化,尤其是对学习方法的选择、隐层数和隐层单元数的选择、学习步长的选择、避免局部最小的方法、学习样本的选择、激活函数的选择等方面,本文进行简单的探讨。4.1学习方法的选择1)单样本学习法根据每一个学习样本的误差,求权值修正值,更新权值;成批学习法根据所有学习样本的总误差,求权值修正值,更新权值。一般来说,学习样本中噪声较小时,用单样本学习法较合适,否则用成批学习法较合适。2)单样本学习法的缺点是每次迭代的梯度值受学习样本中的噪声影响较大,而成批学习法的缺点是忽略了学习样本的个体差异而降低学习的灵敏度。通常,可以将上述两种方法进行折衷,即将学习样本集分成若干个子块分别进行以子块为单位的成批学习,当误差收敛到一预定数值,再以此时权值为初值,转入下一个子块进行学习,在所有的子块学习完后,如果总的误差满足要求,学习结束。否则,转入下一个循环继续学习。3)规模较大的BP网络,学习时,可以将它以一定的比例缩小成较小的BP网络,先训练这个较小的BP网络,将学习的结果以同样的比例提升到原来较大规模的网络,再训练较大规模的网络。实验证明对于大规模BP网络这种学习方法速度快,特征抽取能力强。4.2隐层数和隐层单元数的选择1)一般总是先选择一个隐层的BP网络,但如果选择一个隐层时,隐层单元数目较大,可以考虑选用两个隐层,而每个隐层的单元数取较小值。2)隐层单元数目r的选择是否合适是应用BP网络成功与失败的关键因素之一,r值太小,学习过程可能不收敛;r值越大,网络映射能力越强,局部最小点越少,越容收敛到全局最小点。但r过大,不但使学习时间过长,而且网络容易训练过渡,这时网络不但记住了学习样本的一般特征,而且记住了学习样本中的个别特征(包括随机噪声)。这样也会使网络的容错性降低。因为如果网络对学习样本的学习太“精确”,即使检测样本与学习样本之间有很小的畸变,网络也会判为非。目前,最佳隐层单元数的选择尚无理论指导。实际应用中,可以先取较小的r,训练并检验网络的性能。然后稍增大r,再重试。试验确定合适的r。4.3学习步长的选择学习步长(或称学习速率)的取值较大时,学习速度快,但会引起权值振荡,太大将引起权值发散;η的取值较小时,网络学习速度慢,训练时间长。步长η的取值应在学习速度与权值的稳定性之间折衷选择,但最好是用变步长的方法。讨论变步长方法的文献很多,文[4]给出一种方法,先设一初始步长,若一次迭代后误差增大,则将步长乘以小于1的正数,否则步长乘以大于1的正数。令步长随学习的进展而逐步减小。文[5]根据连续两次迭代时,梯度方向的相似或相反,来增加或减小步长。应该注意的是,学习步长的选择与动量因子的选择不是孤立的,它们之间有一定的等效性。4.4避免局部最小的方法1)增加动量项(或称惯性项、矩项等)并适当选择动量因子(或称惯性系数),可以抑制学习过程中的振荡和有助于摆脱局部最小。动量因子一般选在0。9左右。根据连续两次迭代时,梯度方向的相似或相反,来增加或减小动量因子(与学习步长同时考虑)。2)给权值加小的随机扰动,有助于网络摆脱局部最小。3)将BP算法与模拟退火算法或遗传算法结合起来,可以避免陷入局部最小,但要影响学习速度。4.5学习样本的选择1)选择学习样本时,不仅要包括所有的模式类别,而且每种类别所具有的学习样本数要平衡,不能偏重某一类型。但如果事先明确类型A出现的机会比类型B大一倍,这时可以选择类型A的学习样本比类型B的学习样本多一倍。2)学习时,在学习样本中适当加些噪声,可以提高网络的抗噪声能力。3)学习样本应尽可能相互独立而没有相关关系,尽可能用正交设计方法来获得足够多的学习样本。4.6激活函数的选择BP算法的激活函数一般采用S型函数:()1/(1)xfxe/()1/(1)xfxe,可用带形状因子θ的S型函数/()1/(1)xfxe来代替。θ大,S型函数的形状平坦,识别率高,但学习速度下降;θ小,网络收敛快,但识别率降低。θ可以在开始学习时取较小值,以后逐渐增大。文[5]用()xfxe作为激活函数,实验证明可以提高学习速度。参考文献:[1]RumelhartDE,McClellandJL。ParallelDistributedProcessing[M]。Vol。1—2MITPress,Cambridge,1986。[2]Hecht-NielsenR。Theoryofthebackpropagationneuralnetwork[C]。Proc,ofIJCNN,1989,1:593—603。[3]王文剑1一种输入驱动的BP网络高效学习算法[J]。系统工程理论与实践,2000,11[4]黄凤岗,宋克鸥编著。模式识别[M]。哈尔滨:哈尔滨工程大学出版社。1998。65,68,69。[5]扬葳,韩春成。BP网络接点作用函数的改进及算法在汉字字库学习中的应用[J]。