人工智能
收藏本页
设为首页
网站地图
联系我们
代写论文网:www.daixie.org.cn

混沌在BP神经网络中的应用

来源: 作者: 时间:2012-02-02 点击:

摘要:为了提高误差反向传播算法的网络泛化能力,针对BP网络中所存在网络泛化能力差的缺点,结合混沌优化的优点,提出了一种改进的算法。将网络中的少数神经元的激励函数改变为具有混沌特性的激励函数,这些神经元不存在饱和区,从而可以加快学习速度,克服假饱和现象,并且神经元的输出具有一定的随机性,类似于噪声的作用,可在一定程度上提高网络的泛化能力。针对字符识别的仿真效果进行分析,证明网络的容错能力较好,网络的泛化能力得到了改善。

关键词:误差反向传播算法;假饱和;泛化能力;混沌

1 引言

人工神经网络是模拟人脑神经的网络,而实际上,人脑各个神经元的特性并不是都一样的,有些神经元甚至处于异常状态。例如,人们早已发现,在动物的神经元中存在着混沌现象。例如, Freeman[1]等报道:在兔子嗅觉球中,准极限环活动使兔子想起可感觉到的特定气味,混沌活动使它想起新的气味,然而这种混沌动力并不被认为是杂乱的随机的,而是具有自发搜索机理的一种新的信息处理方法。这就说明,神经网络的各个神经元的特性不可能都是完全一样的。目前最常用的BP神经网络的各个神经元一般都是相同的,同时他也存在着大量的需要改进的缺点[2-7]。最突出的两点就是如何克服影响学习收敛速度的假饱和现象以及如何提高网络的泛化能力。本文讨论了一种多激励函数的神经网络结构,将混沌特性引入到普通的BP神经网络中,从而有效地克服了神经网络的假饱和现象,并提高了泛化能力。

2 神经网络的假饱和现象

从本质上看,前向型人工神经网络的学习过程,就是通过各层连接权的调整和组合,以达到一种满意的拓扑结构,这种拓扑结构能将学习样本的给定输入矢量空间,映射到给定的输出矢量空间。从理论上讲,误差函数E(w)是连结权ω的非线性可微函数,BP算法是可行的,但由于误差函数的复杂结构以及参数量极大,再加上训练数据的多样性,使得学习时间冗长甚至出现无法继续计算的局面。造成BP网络学习时间过长的一个重要原因就是网络的假饱和现象。算法中最常用的激励函数f(x)一般是式(1)的sigmoid函数。f(x) =Sc(x) =11+e-cx(1)其导数形式为:dfdx=ddxSc(x) =ce-cx(1+e-cx)2= cSc(x)(1-sc(x)) (2)有时工作于[-1, 1]的对称型激励函数较为适用,就可以采用式(3)的Sigmoid函数:f(x) =S(x) =tanh(x2) =2S(x) -1=1-e-x1+e-x(3)其导数形式为:dfdx=ddxS(x) =2e-x(1+e-x)2(4)但无论采用那种函数,随着学习算法的进行,当x的绝对值较大时,就会落入f(x)的饱和区,从而使得f(x)的导数f’(x)接近于0,这样网络的权值修正量Δw≈0,因此,权值的修正速度就会很慢,结果使得学习时间过长。这就是BP神经网络中的假饱和现象。

3 噪声对神经网络泛化能力的影响

多层前向网络的泛化能力是指学习后的神经网络对测试样本或工作样本作出正确反应的能力。所以没有泛化能力的神经网络没有任何使用价值。正因为其重要性,泛化问题已成为近年来国际上十分关注的理论问题。在神经网络的泛化方法研究中,在样本输入中添加随机噪声是一种改善神经网络泛化能力的一种有效方法[2]。在噪声方差较小时,Bishop[3]已经证明,在样本中添加噪声,等价与神经网络机构设计的正则化方法,而正则化系数则与噪声方差有关。同时,KiyotoshiMatsuoka[4]也用数学方法说明了噪声是如何改善网络的泛化能力。事实上,当训练数据被循环地作为网络的输入时,由于每次添加的噪声不同,结果是一方面增加了训练样本的数量,另一方面迫使神经网络不能精确地拟合训练数据,从而使噪声起到了平滑作用[5],防止了过拟合。

4 改进的BP算法

BP网络具有自适应性,也就是说,它主要是根据所提供的数据,通过学习和训练,找出输入和输出之间的内在联系,从而求得问题的解答,而不是依靠对问题的先验知识和规则,因而它具有很好的自适应性。因此,当个别神经元出现异常情况时,神经网络自身并不会受到很大的影响,仍然可以正常工作。

由此,在神经网络的隐层中,如果将其中的少数激励函数改为不会出现饱和现象的发散函数,通过利用代写论文该函数的发散作用的调节使得整个神经网络都不处于饱和状态,从而就可以提高网络的学习速度。同时,根据神经网络的自适应性的能力,神经网络自身不会因为个别的神经元的激励函数不是S型函数而导致算法发散或网络不能正常工作。

4. 1 具有混沌特性的迭代函数

混沌是一种普遍的非线性现象,其行为复杂且类似随机,但存在着内在规律性,混沌的发现,对科学的发展具有空前而深远的影响。混沌具有独特的性质: 1)随机性,即混沌具有类似随机变量的杂乱表现; 2)遍历性,即混沌能够不重复地历经一定范围内的所有状态; 3)规律性,即混沌是由确定性的迭代式产生的。介于确定性和随机性之间,混沌具有丰富的时空动态,系统动态的演变可导致吸引子的转移。最重要的是,混沌的随机性和遍历性特点可作为搜索过程中避免陷入局部极小的一种优化机制。

一维迭代函数xn+1=sinaxn就是一个具有混沌特性的映射。利用wolf算法绘出该函数的Lyapunov指数随参数a变化的图像如图1所示。

由图1可见,随着a的增大,迭代函数xn+1=sinaxn的Lyapunov指数不断增加,当a>2·74时,该映射的Lyapunov指数为正值,由于正的Lyapunov指数是混沌的主要特征,因此,该迭代映射在a>2·74时就表现出混沌特性,而且随着a的增加,函数的混沌度也在不断增加。

4. 2 BP算法的改进

由于混沌具有上述特性,因此将混沌应用到BP算法中,就可以提高BP算法的原有性能。为了避免BP网络中的假饱和现象和提高网络的泛化能力,可以将BP网络隐层中的少数神经元的激励函数改用上述函数,即将少数神经元的激励函数f(x)改为fc(x)=sinax。其中a>2·74,使得激励函数具有混沌特性。

4. 2·1 改进算法对假饱和的克服

由于改进算法的少数激励函数具有混沌特性,也就是说,该函数对其某一初值x0和它的近邻x0+δx,经过迭代后,它们会呈指数级发散分离。这样,在网络权值的学习过程中,当x的绝对值较大时,由于该函数及其导数不存在饱和区,因此经过该激励函数作用后,仍然可以产生出很强的权值调节作用,从而使得Δw不会趋近于零。因此,即使网络中其他神经元的S型激励函数或其导数处于饱和区,由于fc的存在,仍然可以使得整个网络具有很强的权值调节能力,从而也就使得整个神经网络可以脱离假饱和现象。同时,由于该函数的随机遍历性的特点,也就是学习过程中产生了一定的随机搜索能力,从而也可以使网络在权值学习过程中具有一定的克服局部极小的能力。又因为BP网络本身具有很好的自适应性,因此,虽然极少数神经网络的激励函数不是S型函数,但仍然可以保持学习过程中的收敛性。而fc本身的取值范围与双曲函数相同,都是在+1和-1之间,因此选择fc作为发散的激励函数是比较合适的。

4. 2·2 改进算法对泛化能力提高

由于网络中存在具有混沌特性的激励函数,因此,该激励函数的输出就具有一定的随机性。这种随机性相当于网络中存在内在的噪声机制。所以,这样网络的学习效果相当于在样本中添加了噪声的传统BP算法的学习效果。根据前面所述,噪声可以改善网络的泛化能力,因此本文提出的改进算法可以对网络的泛化能力进行改善。下面以单输入单输出的三层神经网络为例加以说明。网络结构如图2所示。其中图2(a)为普通的BP网络结构,图(b)为改进的BP网络结构,隐层共有m+n个神经元,其中n个神经元的激励函数为S型函数f,m个神经元的激励函数为混沌激励函数fc。xr为输入的训练样本,dr为小的随机数(噪声),对于样本加噪声的普通BP网络来说,各隐层的输出为hi=fi(ω1ixr+ω1idr)≈fi(ω1ixr)+ddxrfi(ω1ixr)≈fi(ω1ixr)+ω1i.f′i(ω1ixr) (5)则输出神经元的输入量为IO=∑ni=1hi=∑ni=1(fi(ω1ixr) +ω1i·f′i(ω1ixr)·dr) (6)  如果采用下列的折线函数近似Sigmoid函数,并设斜线段斜率为k,并假设n个隐层神经元中有l个神经元处于非饱和区,n-l个神经元处于饱和区。其中Rr=dr·k·∑li=1ω1i为输出神经元的随机输入项。对于图2(b)中的输出神经元的输入量为:IO=∑ni=1(fi(ω1ixr) +∑mj=1(fcj(ω1jxr))=∑ni=1(fi(ω1ixr) +∑mj=1gj) (8)其中gj为fcj()的输出量,由于fcj()输出具有混沌特性,因此可把gj看作是由混沌激励函数所产生的随机量。

对照(7)式和(8)式可以看出, (8)式相当于用随机量Σgj代替了(7)式中的随机量Rm。由此可见,在参数适合的情况下,本文算法与样本中添加噪声进行训练的BP网络具有相同的效果。另外,由于处于饱和状态的神经元的f i≈0,因此样本中添加的噪声对于处于饱和状态的神经元基本不起作用。也就是说,在网络学习的后期,由于大部分神经元处于饱和状态,噪声对网络泛化能力的保持作用就会降低。相反本文算法中,噪声项Σgj不会受到这些因素的干扰,因此在学习的全过程中都可以保持网络的泛化能力,防止过拟合现象的出现。

利用本文算法涉及到参数a和混沌激励函数占隐层激励函数比例kc这两个参数的选择问题,根据大量的仿真实验结果,本文认为参数a在[3·1,3·2]区间内取值, kc在[5%,7% ]内取值可使网络具有较好的性能。

5 仿真试验

5. 1 函数拟合

在[0,3]之间逼近函数y=sin(x),采用[0,3]间均匀分布的30个数据点作为学习样本,用[0,3]之间随机选取的100个数据点作为测试样本对网络进行测试。测试样本的误差平方和作为网络的泛化误差Ef。

网络的泛化误差Ef与混沌激励函数占隐层激励函数比例kc的关系如图4所示,其中a=3·14。

由图4可见,混沌激励函数占隐层激励函数总数的比例kc=6%左右的时候可以获得较小的泛化误差,此时网络具有较强的泛化能力。随着kc的增加,泛化误差增大,说明噪声过大,影响了网络对训练样本的正常学习,从而使得网络的性能降低,kc过小,则噪声的作用较小,使得网络出现一定的过拟和现象,从而网络的泛化能力也有所下降。

图5给出了a和Ef之间的关系曲线图,其中kc=0·0667,a越大,混沌度越大,函数fc的发散程度也越大,由图可见,在混沌激励函数比例固定情况下,适合的a可以使网络达到较好的泛化性能。改进算法与原算法的性能比较如表1所示。其中改进算法的隐层共有15个神经元,其中一个神经元的激励函数为混沌激励函数,a=3·14。  由表1可见,改进算法由于能够克服学习过程中的假饱和现象,因此能够减少学习的迭代次数,提高学习速度,同时,改进算法对网络的泛化能力也具有很好的改善作用,泛化误差较小。

5. 2 字符的识别

将英文字符A,B,C,D, E, F分别存储在10* 10的正方点阵中作为训练的输入样本,输出样本如表2所示。这里的“*”和“.”分别对应+1和-1。对训练样本的每个像素以概率p随机地取反(“*”取反为“.”,“.”取反为“*”),从而得到待识别的模式作为测试样本。测试样本的输出结果经过符号函数sign()的作用判断是否能够正确识别出测试样本。其中kc=0·05, a=3·14。

  仿真结果如表3所示。由表中可见,在相同的训练误差情况下,改进算法的学习迭代次数较少,说明网络的假饱和现象得到了一定的克服,从而加快了网络的学习速度。同时,改进算法的字母的识别率较高,说明网络的容错能力较好,网络的泛化能力得到了改善。

6 结论

本文将BP算法隐层的少量神经元的激励函数改为具有混沌特性的激励函数,利用这种激励函数及其导数不存在饱和区域的特点,可以克服假饱和现象,从而可以减少学习的迭代次数,提高学习速度,同时,由于混沌具有随机特性,因此网络的学习过程相当于样本中添加了少量的噪声,根据已有的结论,这种噪声可以改进网络的泛化能力,故本文提出的算法对网络的泛化能力能够起到很好的改善作用。仿真结果证明了该方法的有效性。

参考文献:

[1] Y Yao, W J Freeman. Model ofbiological pattern recognitionwithspatially chaotic dynamics[ J]. Neural Networks, 1990 (8 ): 85-86.

[2] J Sietsma, R JFDow. Creating artificialneuralnetworks thatgen-eralization[J]. NeuralNetworks, 1991, (4): 67-79.

[3] CM Bishop. Trainingwith noise is equivalent toTikhonov regulari-zation[J]. NeuralComputation, 1995, (7): 108-116.

[4] KiyotoshiMatsuoka. Noise injection into inputs in back-propaga-tion learning[J]. IEEE Transactions on Systems, Man, and Cy-bernetics, 1992, 22(3): 436-440.

[5] G An. The effects of adding noise during backpropagation trainingon a generalization performance[ J]. Neural Computation, 1996(8): 643-671.

[6] 史春朝,张国山.基于改进BP神经网络的PID控制方法研究[J].计算机仿真, 2006, (12): 84-87.

[7] 胡志坤,桂卫华,彭小奇.基于混沌提督的BP网络设计及应用[J].计算机工程与应用, 2003, (19): 29-30.


Copyright © 2007 - 2009 代写论文网 www.daixie.org.cn Inc. All Rights Reserved,浙ICP备07032918号
代写论文网专业代写自考、专科、本科论文,硕士论文,毕业论文,职称论文,发表论文——人工智能论文频道