神经网络与神经网络集成

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

165神经网络与神经网络集成与神经网络相关的研究可以追溯到上世纪中期,然而对神经网络的深入研究和广泛应用是在上世纪八十年代末到九十年代初,标志是Hopfield网络结构和BP学习算法的相继提出。20世纪50年代,F.Rosenblatt提出了感知器模型,这是神经网络最初的雏形,由于它只有一层的权值可调,因此解决不了非线性可分问题。针对感知器在处理非线性问题中存在的不足,Minsky于1969年出版的专著《Perceptrons》一度使神经网络的研究沉寂近20年,同时该书也指出通过加入隐层神经元有可能解决非线性可分问题,但他对加入隐层神经元后能否给出一个有效算法持悲观态度。这一时期,相当一部分人工智能研究者的研究兴趣转向了专家系统这一领域。Hopfield网络的提出,使神经网络相关研究在70年代末期得到了复苏。但真正掀起神经网络研究高潮的是在80年代初期,D.Werbos,D.Rumelhart和D.Parker三人各自独立发明的误差反向传播算法(ErrorBack-Propagation,EBP),使多层前馈神经网络的实现成为可能,并使神经网络的研究前进了一大步。BP网络的提出,极大地激发了人工智能研究者的热情,此后,各种神经网络模型与相应算法纷纷提出,典型如BAM、径向基函数、自组织映射等。神经网络集成的提出主要是针对单个神经网络的不确定性而提出的。§8.1神经网络理论一、神经网络基本理论神经网络是对人脑神经系统的数学模拟,其目的是学习和模仿人脑的信息处理能力。撇开神经网络的具体结构形式和学习算法,一般地认为神经网络的信息处理过程包括学习和工作两个相互独立的阶段。在学习阶段,由学习样本集获得权值向量,权值向量中蕴涵学习样本所包含的知识。设X为输入向量,W为权值向量,B为输出向量,则对于监督学习,其过程可表为:),(YXfW(8.1.1)其中Y是教师信号,如BP网络等。对于非监督学习,其过程可表为:)(XfW(8.1.2)如用于主成分分析的PCA网络等。在工作阶段,由输入A和权值W获得输出B),(WAgB(8.1.3)二、人工神经元模型人们对神经系统的研究已经有了很长一段历史,早在19世纪末,人们就开始认识到,人脑包含着数量大约在1010~1012之间的神经元,这些神经元存在着复杂的联接,并形成一个整体,使得人脑具有各种智能行为。尽管在外观形状上,这些神经元各不相同,然而这些形形色色的神经元都由三个区组成:细胞体、树突、轴突。如图8.1所示。图8.1神经元结构图166从图中我们可以看出:一般的神经元有多个树突,它们起感受作用即接受外部(包括其它神经元)传递过来的信息。轴突只有一条,与树突相比它显得长而细,用于传递和输出信息。神经元之间通过突触联结,突触是一个神经元轴突的末梢与另一个神经元的细胞体或树突相接触的地方,每个神经元大约有103~104个突触,换句话说,每个神经元大约与103~104个其它神经元有连接,正是因为这些突触才使得全部大脑神经元形成一个复杂的网络结构。依据上述理论,可以画出神经元的等效模型图8.2。图8.2神经元等效模型从图8.2可以看出人脑神经系统的工作原理:外部刺激信号或上级神经元信号经合成后由树突传给神经元细胞体处理,最后由突触输出给下级神经元或作出响应。基于神经细胞的这种理论知识,自1943年McCulloch和Pitts提出的第一个人工神经元模型以来,人们相继提出了多种人工神经元模型,其中被人们广泛接受并普遍应用的是图8.3所示的模型。图8.3人工神经元模型图中的110,,,nxxx为实连续变量,是神经元的输入,称为阈值(也称为门限),110,,,n是本神经元与上级神经元的连接权值。神经元对输入信号的处理包括两个过程:第一个过程是对输入信号求加权和,然后减去阈值变量,得到神经元的净输入net,即10niiixwnet(8.1.4)上式表明,连接权大于0的输入对求和起着增强的作用,因而这种连接又称为兴奋连接,相反连接权小于0的连接称为抑制连接。第二个过程是对净输入net进行函数运算,得出神经元的输出y,即)(netfy(8.1.5)][f通常被称为变换函数(或特征函数),简单的变换函数有图8.4所示的几种。这几种变换函数分别满足如下关系:1)线性函数2)阶跃函数kxxf)(0001)(xxxf3)Sigmoid函数(S函数)4)双曲正切函数xexf11)()()(xthxf从生理学角度看,阶跃函数最符合人脑神经元的特点,事实上,人脑神经元正是通过电位的高低两种状态来反映该神经元的兴奋与抑止。然而,由于阶跃函数不可微,因此,实际上更多使用的是与之相仿的Sigmoid函数。有些情况下,也可以结合使用,如在后面介绍的前向多层神经网络中,可能采用的是:隐含层使用Sigmoid函数,输出层使用线性函数。167图8.4神经元的几种常用变换函数§8.2前向多层神经网络、BP算法一、前向多层神经网络基于上面介绍的神经元结构,人们又提出了很多种神经网络结构模型,如Hopfield网络、Boltzmann机、ART网络和BAM网络等。其中应用最为广泛的是前向多层神经网络。三层前向神经网络的结构如图8.5所示(有一种观点认为图示网络只有两层,其理由是输入层神经元只起数据传输作用,而没有进行任何计算,即不影响该网络的计算能力,因而在计算网络层数时不应该包括输入层)。最下面为输入层,中间为隐含层,最上面为输出层。网络中相邻层采取全互连方式连接,同层各神经元之间没有任何连接,输出层与输入层之间也没有直接的连系。为方便以后的讨论,在此假设输入层、隐含层及输出层神经元的个数分别为NML,,。图8.5前向多层神经网络模型168可以证明:在隐含层神经元可以根据需要自由设置的情况下,那么用三层前向神经网络可以实现以任意精度逼近任意连续函数。前向多层神经网络中的动力学过程有两类:一类是学习过程,在这类过程中,神经元之间的连接权将得到调整,使之与环境信息相符合。连接权的调整方法称为学习算法;另一类过程是指神经网络的计算过程(也称为工作过程),在该过程中将实现神经网络的活跃状态的模式变换。二、BP算法现在,我们来推导前向多层神经网络的学习算法。设从第l层神经元j到第1l层神经元i的连接权值为)(ljiw,p为当前学习样本,)(lpio为在p样本下第l层第i个神经元的输出,变换函数][f取为Sigmoid函数,即xexf11)(。对于第p个样本,网络的输出误差pE用下式表示102)2()(21NjpjpjpotE(8.2.1)上式中pjt为输入第p个样本时第j个神经元的理想输出即期望值,对应第p个样本的教师信号,)2(pjo是它的实际输出。考虑多层神经网络中的l层(隐含层或输出层,即2,1l),假设第l层有J个神经元,第1l层有I个神经元,具有如下的通用结构:图8.6BP神经网络的通用层结构为了使系统的实际输出与理想输出相接近,即使pE下降,根据梯度算法,我们可以对l层按下式进行调整:)()(ljipljipwEw,2,1l(8.2.2)对于非输入层神经元具有)(10)1()()(ljIilpiljilpjownet(8.2.3))()()(lpjjlpjnetfo(8.2.4)在式(8.2.3)中,如果将)(lj看作是第1l层的一个虚拟神经元的输出,即设1)1(lpIo,)()(ljljIw,则式(8.2.3)可改写为)(0)1()()(ljIilpiljilpjownet(8.2.5)又)()()()(ljilpjlpjpljipwnetnetEwE(8.2.6)由式(8.2.5)可以得到169)1(0)1()()()()(lpiIklpkljkljiljilpjoo(8.2.7)定义:)()(lpjplpjnetE,并综合式(8.2.2)、(8.2.3)、(8.2.5)和(8.2.7)得出)1()()(lpilpjljipow,Ii,,2,1,0,1,,2,1,0Jj,2,1l(8.2.8)可见,为求出调整值,必须先求出)(lpj。)()()()()(lpjlpjlpjplpjplpjnetooEnetE(8.2.9)由式(8.2.4)得到)()()()(lpjjlpjlpjnetfneto现在,我们分两种情况来讨论:1)如果所讨论的神经元为输出神经元,则由式(8.2.1)可得)()2()(pjpjlpjpotoE,代人式(8.2.9)得到)()()()2()(lpjjpjpjlpjnetfot,2l,1,,2,1,0Nj(8.2.10)2)如果所讨论的神经元为隐层神经元,则有)()1(10)1()(lpjlpkNklpkplpjponetnetEoE10)()1()(10)1(MilpilkilpjNklpkpowonetE10)1()1(NklpklkjpnetwE10)1()1(Nklkjlpkw将此结果代人式(8.2.9)得到10)1()1()()()(Nklkjlpklpjjlpjwnetf,1l,1,,2,1,0Mj(8.2.11)从上式可以看出,为求出隐含层的输出误差系数)1(pi,必须用到输出层的)2(pj,所以这个过程也称为误差反向传播过程。现在来讨论)(lpi中的)()(lpjjnetf,由于][f采用Sigmoid函数,即)()()(11)(lpjnetlpjjoenetflpj由此,我们可以得到)1()()()()(lpjlpjlpjjoonetf(8.2.12)将式(8.2.12)代入式(8.2.10)和(8.2.11)得到)1()()()()2()(lpilpipipjlpiooot,2l,1,,2,1,0Nj(8.2.13)和)1()()(10)1()1()(lpilpiNklkjlpklpioow,1l,1,,2,1,0Mj(8.2.14)将式(8.2.13)和式(8.2.14)代人式(8.2.8)得到当2l(输出层)时)1()2()2()2()2()1()(pjpipipipiijpooootw,1,,2,1,0Ni,Mj,,2,1,0(8.2.15)当1l(隐含层)时)0()1()1(10)2()2()1()1(pjpipiNkkipkijpoooww(8.2.16)pjpjxo)0(,1,,2,1,0Mi,Lj,,2,1,0170至此为止,推导完了BP学习算法,式(8.2.15)和式(8.2.16)为推导的最后结果。现在我们再来讨论BP学习算法中的几个值得注意的问题。1)神经网络输入层、输出层的神经元个数由研究对象的输入、输出信息确定,如何合适地选取隐含层神经元的个数无规律可循,然而隐含层神经元的数目是否合适对整个网络能否正常工作具有重要的意义。隐含层神经元数目如果太少,则网络可能难以收敛;如果隐含层神经元数目刚刚够,则网络鲁棒性差,无法辨识以前未见过的模式;如果隐含层神经元过多,则除了需要较多的学习样本外,还可能会建立一个“老祖母”式的网络:无误差地学习了所有训练样本模式,却无法准确判断测试样本的模式,此即机器学习中经常提及的所谓过学习问题。有文献给出隐含层神经元数目确定方法的经验公式lnnnOIH(8.2.17)式中OIHnnn,,分别为隐含层神经元数目、输入层神经元数目和输出层神经元数目。l为1~10之间的整数。2)学习算法中的表示学习速率,或称为步幅,较大时,权值的修改量就较大,学习速率比较快,但有时会导致振荡;值较小时,学习速率慢,然而学习过程

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功