文档库 最新最全的文档下载
当前位置:文档库 › BP神经网络的应用设计

BP神经网络的应用设计

第27卷第6期2003年6月

信息技术

I NFO RM A TI ON T ECHN OL OG Y

V OL.27NO.6

Jun.2003 B P神经网络的应用设计

尹念东

(黄石高等专科学校机械系,黄石435003)

摘要:就B P神经网络应用设计中的网络隐层数、神经元个数、算法等具体设计问题进行了探讨,并给出了一个BP神经网络在智能汽车驾驶员模型研究中的应用实例。

关键词:BP神经网络;设计;应用

中图分类号:TP393.02文献标识码:B文章编号:1009-2552(2003)06-0018-03 Design of BP neural network in engineering application

YIN Nian2dong

(Ma chine Engineer ing Depar tment of Huangshi Polytechnic College,Huang shi435003,China)

Abstr act:In this paper,it is discussed that the B P neural network design issue about the selection of implicit layers,implicit layer nodes and arithmetic in application design.The application exa mple of BP neural net2 w ork in researching intelligent driver model is also given.

Key wor ds:BP neural-netw ork,design,application

0引言

人工神经网络(Artificial Neural Netw orks)被越来越多地应用在工程技术领域,而B P神经网络是目前应用最多的神经网络,占整个神经网络应用的80%左右。BP神经网络又称反向传播(Back Propa2 gation)网络,这是因为该神经网络的连接权的调整采用的是反向传播的学习算法。BP神经网络是一种前馈(向)网络,采用最小均方差学习方式。BP前向网络的主要作用是函数映射,用于模式识别和函数逼近,具体可用于语言综合、识别和自动控制等用途。其主要优点是:只要有足够的隐层和隐结点, BP网络可以逼近任意的非线性映射关系;B P网络的学习算法属于全局逼近的方法,因而它具有较好的泛化能力;BP网络有较好的容错性。其主要缺点是收敛速度慢,局部极小。针对这些缺点,人们又提出了BP算法的一些改进算法,如加入动量项、学习率自适应、L)M等算法。

1BP神经网络的设计

要确定一个神经网络,必须设计出网络的隐层数、每层的神经元个数和算法(BP算法也有许多改进的算法)。由于人工神经网络尚处于学科发展初期,其理论还没有完善到能提供一套赖以遵循的设计方法,所以B P人工神经网络设计既要以网络理论为依据,又要以试验进行验证。

1.1BP神经网络隐层数的确定

我们知道,只要有足够的隐层和隐结点,BP网络可以逼近任意的非线性映射关系。那么,怎样的隐层数和隐结点数可以称之为足够呢?神经网络的隐层数应该怎样确定呢?

许多人[1]证明了,一个隐层的网络,如果隐层的作用函数是连续函数(如Sigmoid函数),则网络输出可以逼近一个连续函数。具体说,设网络有p个输入,q个输出,则其作用可看作是有p维欧氏空间到q 维欧氏空间的一个非线性映射,此结论可叙述如下:令<(#)为有界、非常量的单调增连续函数,I p 代表p维单位超立方体[0,1]p,C(I p)表示定义在I p上的连续函数构成的集合,则给定任何函数f I

收稿日期:2003-02-25

作者简介:尹念东(1963-),副教授,研究方向:汽车操纵稳定性、汽车动物学及计算机仿真。

)

18

)

C (I p )和E >0,存在整数M 和一组实常数A i ,H i 和X ij ,其中,i=1,,M,j=1,2,,,p,使得网络输出

F (x 1,+,x p )=

E M

i =1

A i

<(E p

j =1

w ij

X j

-H i )

可任意逼近f (#),即

|F (x 1,x 2,+x p )-f (x 1,x 2,+x p )|

P (x 1,x 2,+x p )I I p

这个结论说明含一个隐层的B P 前馈网络是一种通用的函数逼近器,为逼近一个连续函数,一个隐层是足够的。当要学习不连续函数时,则需要两个隐层,即隐层数最多两层即可。

上述结论只是理论上的结论,实际上到目前为止,还没有很快确定网络参数(指隐层数和隐层神经元数)的固定方法可循,但通常设计多层前馈网络时,可按下列步骤进行:

(1)对任何实际问题都只选用1个隐层;(2)使用较少的隐层神经元数;

(3)增加隐层神经元个数,直到获得满意的性能为止,否则,再采用2个隐层。1.2 各层神经元个数的确定

对多层前馈网络而言,隐层神经元数的确定是设计网络的关键之一。因此,选择隐层神经元数是很重要的问题。隐层神经元个数太少,则网络所能获取的用以解决问题的信息太少;个数太多,不仅增加训练的时间,难以在人们能够接受的时间内完成训练,更重要的是过多的隐节点,还可能引起所谓的/过度吻合0(over-fitting)问题,即把网络训练集里的一些无关紧要的,非本质的东西也学得惟妙惟肖。值得注意的是,增加隐层结点可以减少训练误差,但超过某一隐结点数后,测试误差反而增大,即泛化能力下降。训练误差小并不意味着网络的泛化能力就强。

实际上,隐层神经元数取决于训练样本数的多少,噪声量的大小及网络学习的输入)))输出函数关系或分类关系的复杂程度。就像在函数逼近时,要使用高阶多项式才能获得函数的/起伏0一样,用神经网络作函数映射时,也只有使用较多的隐结点数才能得到波动次数较多、幅度变化较大的映射关系。

对许多应用场合均适用的一条有关确定隐结点数的规则[2]

是所谓的几何金字塔规则(geometric pyr 2amid rule):从输入层到输出层,结点数不断减少,其形好似金字塔,见图1。当然,这个规则介绍的确定

隐结点数的规则只是一个粗略的估值。

图1 几何金字塔规则

1.3 BP 神经网络的改进算法

具有相同拓扑结构(隐层数和各层神经元个数相同)的B P 神经网络,如果其算法不相同,其网络的性质是不相同的。针对BP 神经网络收敛速度较慢,局部容易产生极小的缺点,人们又提出了B P 算法的一些改进算法,如加入动量项、学习率自适应、L )M 等算法。

学习率G 自适应法。BP 算法的有效性和收敛性在很大程度上取决于学习率G 。学习率G 的最优值与具体问题有关,没有对任何问题都适合的学习率G 。即使对一特定问题,也很难找到一个自始自终都适合的学习率G 值,训练开始时比较适合的学习率G 后来就不一定适合。为了解决这个问题,采用了自适应学习率算法,其目的是在收敛的前提下尽量缩短训练过程。

动量法的目的也在于加速BP 算法的收敛过程。具体做法是将上一次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,以作为本次的实际权值调整量,即

$W (n )=-G yE (n )+A $W (n -1),式中的第二项便是动量项。动量法降低了网络对于误差曲面局部细节的敏感性,有效地抑制了网络陷于局部极小。

另外还有L-M(L evenberg-Marquardt)算法等改进算法。

设计一个BP 神经网络必须考虑于网络隐层数、神经元个数、算法,一旦于BP 神经网络隐层数、神经元个数、算法确定下来了,这个网络也就设计完成了,当然,所设计的网络还必须通过实际的检验。

2 BP 神经网络的设计实例

设计一个B P 神经网络用于智能汽车驾驶员模型研究中的汽车横摆角速度X 的学习和映射。网络的输入变量为汽车横摆角速度X ,输出变量有7个:即汽车横摆角速度X 的7个模糊语言变量值。汽车横摆角速度X 的模糊变量采用三角形隶属度函数来描述。

)

19)

(1)网络层数的确定

本例中所设计的B P 神经网络要映射的函数是三角形隶属度函数,是不连续的函数,BP 网络映射一个连续函数,一个隐层是足够的,但当要学习不连续函数时,则需要两个隐层,所以采用2隐层。

另外还需要输入层1层,输出层1层。因此,设计的为4层的BP 神经网络。

(2)每层的神经元的个数

输入的变量只有1个,所以输入层只有1个神经元;

输出的变量有7个,所以输出层有7个神经元;为模糊化节点,考虑到把X 归一化到[0,1],它们模糊化后的语言变量论域元素为{0.1,0.2,0.3,,,1.0},用10个神经元来实现其模糊化,所以第1隐层采用10个神经元,第2隐层为了与输出层对应,采用7个神经元。

(3)采用的算法

采用BP 算法、L )M 算法、动量算法和学习率自适应算法,进行比较。(4)计算机仿真

仿真平台是M AT LAB 软件的神经网络(neural netw ork)工具箱[3]

在仿真工作开始时,设计的X 网络第1隐层的神经元个数取为10,采用BP 算法、L )M 算法、动量算法和学习自适应算法,在工作站上训练1000000次均不收敛。依据神经网络的设计原则,不断的调整,最后确定为神经元个数20个,网络的收敛速度较为理想。

图2,图3

是计算机仿真的结果。

图2 X 变量隶属度函数映射B P

网络的训练误差

图3 X 变量隶属度函数映射BP 网络学习训练后对隶属度函数的映射

(注:/)0为理想隶属度函数,/+0为学习训练后对隶属函数的映射)

从图中可以知道所设计的B P 网络能非常好的映射横摆角速度X 变量的隶属度函数,学习的误差较小,收敛速度很快。同时,又发现在两个语言变量相交点的附近,映射有些干涉,这说明BP 网络区分训练点属于语言模糊集,有些/模糊0。

3 结束语

本文从理论和实践的角度对BP 神经网络应用设计中的关于网络隐层数、神经元个数、算法等具体问题进行了探讨,为BP 神经网络在汽车工程领域中的应用设计提供了有用的参考。参考文献:

[1] 张立明.人工神经网络的模型及应用.上海:复旦大学出版社.

1992.

[2] 王文成.神经网络及其在汽车工程中的应用.北京理工大学出

版社.1998.7.

[3] 楼顺天,施阳.基于MATLAB 的系统分析与设计)神经网络.西

安:西安电子科技大学出版社.1999.4.

责任编辑:张棣

(上接第17页)

的格式,渲染成640@480的Flc 文件即可。

(5)配音

由于这个项目主要是模拟环天线的工作原理,因此,除了背景音乐外,应按脚本仔细录制并合成解说词。

录制的声音可能存在各种问题,还需要对录制的声音进行编辑处理和合成。这要使用能够很好处理声音的编辑软件。环天线动态模拟中使用的是AnimatorSoundL ab 。

(6)编辑合成

动态模拟的最后一步要将前面形成的动画和音频素材编辑合成,并配以文字说明,形成一个有丰富控制结构和优美界面的动态模拟软件。环天线的动态模拟系统使用的是AuthorWare 多媒体编辑软件,系统的控制结构是通过AuthorWare 提供的编程语言实现的。

3 结束语

动态模拟涉及到的技术问题很多,本文仅介绍了基本的过程。并以环天线为例,完成了一个动态模拟系统。参考文献:

[1] 黄心渊,戈建涛,古梅.大功率回转窑的动态模拟.有色金属学

报,1998,(9).

[2] 齐东旭,马华东,黄心渊,徐迎庆,李华山.计算机动画原理与应

用.北京:科学出版社,1998.

[3] 黄心渊.计算机动画与影像起步及应用实例.北京:电子工业出

版社,1998.

责任编辑:张棣

)

20)

相关文档