人工神经网络及其应用_第1页
人工神经网络及其应用_第2页
人工神经网络及其应用_第3页
人工神经网络及其应用_第4页
人工神经网络及其应用_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工神经网络

及其应用1、神经网络概念2、感知器模型3、BP神经网络4、神经网络应用实例1神经网络概念2.1生物神经元模型脑神经元由细胞体、树突和轴突构成。细胞体是神经元的中心,它一般又由细胞核、细胞膜和细胞质组成。树突胞体上短而多分支的突起,相当于神经元的输入端,是神经元的主要接受器,它主要用来接受信息。轴突是胞体上最长枝的突起,也称神经纤维。它的端部有很多神经末梢,传出神经冲动。轴突的作用主要是传导信息,它将信息从轴突起点传到轴突末梢(精神末梢)。轴突末梢与另一个神经元的树突或胞体构成一种突触的机构。通过突触实现神经元之间的信息传递。突触是神经元之间的连接接口,每一个神经元约有104~105个突触。一个神经元,通过其轴突的神经末梢,经突触,与另一个神经元的树突连接,以实现信息的传递。由于突触的信息传递特性是可变的,随着神经冲动传递方式的变化,传递作用强弱不同,形成了神经元之间连接的柔性,称为结构的可塑性。1.2生物神经元工作状态神经元具有两种常规工作状态:兴奋与抑制。当传入的神经冲动经整合后使细胞膜电位升高,超过动作电位的阈值时,细胞进入兴奋状态,产生神经冲动并由轴突经神经末梢传出;当传入的神经冲动经整合后使膜电位下降低于阈值时,细胞进入抑制状态,不产生神经冲动。由于神经元结构的可塑性,突触的传递作用可增强与减弱,因此神经元具有学习与遗忘的功能。

1.3人工神经元模型(MP模型)1943年,美国心理学家McCulloch和数学家Pitts共同提出“模拟生物神经元”的被称为MP的人工神经元模型。它是一个多输入/多输出的非线性信息处理单元。1人工神经元的输入与输出关系:其中:

为阈值为连接权值为激活函数2.常用的作用函数神经元模型的作用函数,用以模拟神经细胞的兴奋、抑制以及阈值等非线性特性。

3.学习规则MP模型在发表时并没有给出一个学习算法来调整神经元之间的来连接权值。但是,我们可以根据需要,采用一些常见的算法来调整神经元连接权,以达到学习的目的。下面介绍的Hebb学习规则就是一个常见学习算法。Hebb学习规则:神经网络具有学习功能。对于人工神经网络而言,这种学习归结为:若第i个和第j个神经元同时处于兴奋状态,则它们之间的连接应当加强,即:这一规则与”条件反射“学说一致,并已得到神经细胞学说的证实。α是表示学习速率的比例常数。1.4神经网络的互联模式根据连接方式的不同,神经网络的神经元之间的连接有如下几种形式。1)前向网络前向网络结构如下图。神经元分层排列,分别组成输入层、中间层(也称为隐含层,可以由若干层组成)和输出层。每一层的神经元只接受来自前一层神经元的输入,后面的层对前面的层没有信号反馈。输入模式经过各层次的顺序传播,最后在输出层上得到输出。感知器网络和BP网络均属于前向网络。2)有反馈的前向网路其结构如下图。输出层对输入层有信息反馈,这种网络可用于存储某种模式序列。如神经认知机和回归BP网络都属于这种类型。3)层内有相互结合的前向网络其结构如下图。通过层内神经元的相互结合,可以实现同一层内神经元之间的横向抑制或兴奋抑制。这样可以限制每层内可以同时动作的神经元素,或者把每层内的神经元分为若干组,让每一组作为一个整体进行运作。例如,可以利用横向抑制机理把某层内具有最大输出的神经元挑选出来,从而抑制其他神经元,使之处于无输出的状态。4)相互结合型网络(全互联或部分互联)相互结合型网络结构如下图。这种网络在任意两个神经元之间都可能有连接。在无反馈的前向网络中,信号一旦通过,某神经元,该神经元的处理就结束了。而在相互结合的网络中,信号要在神经元之间反复传递,网络处于一种不断改变状态的动态之中。信号从某初始状态开始,经过若干次变化,才会达到某种平衡状态。根据网络的结构和神经元的特性,网络的运行还有可能进入周期震荡或其他如混沌等平衡状态。1.5神经网络的学习方式神经网络的学习也成为训练,指的是通过神经网络所在环境的刺激作用调整神经网络的参数(权值和域值),使神经网络以一种新的方式对外部环境做出反应的一个过程。能够从环境中学习和在学习中提高自身性能是神经网络的最有意义的性质。根据学习过程的组织方式不同,学习方式分为两类:有监督学习和无监督学习。1)有监督学习:对于监督学习,网络训练往往要基于一定数量的训练样本。训练样本通常由输入矢量和目标矢量组成。在学习和训练过程中,网络根据实际输出与期望输出的比较,进行连接权值和域值的调节。通过将期望输出成为导师信号,它是评价学习的标准。最典型的有监督学习算法是BP算法,即误差反向传播算法。2)无监督学习:对于无监督学习,则无教师信号提供给网络,网络能够根据其特有的结构和学习规则,进行连接权值和域值的调整。此时,网络的学习评价标准隐含于其内部。1.6神经网络的特性神经网络的全称是人工神经网络,它采用物理上可实现的器件或采用计算机来模拟生物体中神经网络的某些结构和功能,并应用于工程领域。神经网络的着眼点不在于利用物理器件完整地复制生物体中的神经细胞网络,而是抽取其中可利用的部分来克服目前计算机或其他系统不能解决的问题,如学习、控制、识别和专家系统等。随着生物和认知科学的发展,人们对大脑的认识和了解越来越深入,神经网络必然会获得更加广阔的发展空间和应用范围。虽然ANN与真正的生物神经网络有差别,但由于它汲取了生物神经网络的部分有点,因此具有一些固有的特性。1、ANN在结构上与目前的计算机本质不同,它是由很多小得处理单元互相连接而成的,每个处理单元的功能简单,但大量简单的处理单元集体的、并行的活动得到预期的识别、计算的结果,具有较快的速度。2、ANN具有非常强的容错性,即局部的或部分的神经元损坏后,不会对全局的活动造成很大的影响。3、ANN记忆的信息存储在神经元之间的连接权值上,从单个权值中看不出存储信息的内容,因而是分布式的存储方式。4、ANN的学习能力十分强大,它的连接权值和连接的结构都可以通过学习得到。1.7神经网络在控制领域取得的进展1、基于神经网络的系统辨识基于神经网络的系统辨识,就是将神经网络作为被辨识系统P的模型,逆模型。(1)可在已知常规模型结构的情况下,估计模型的参数。(2)利用神经网络的线性、非线性,可建立线性、非线性系统的静态、动态、逆动态和预测模型,重点在于非线性系统的建模与辨识。2、神经网络控制器神经网络作为实时控制系统的控制器,对于不确定、不确知系统及扰动进行有效的控制,使控制系统达到所要求的动态、静态特性。3、神经网络与其它算法相结合神经网络与专家系统、模糊逻辑、遗传算法、小波理论等相结合由于控制系统,可为系统提供参数和非参数模控制器模型。4、优化计算在常规控制系统的设计中,常遇到求解约束优化问题,神经网络为这类问题提供了有效的途径。5、控制系统的故障诊断随着对控制系统安全性、可靠性、可维护性要求的提高,对系统的故障检测与诊断问题的研究不断深入。近年来,神经网络在这方面的应用研究取得了相应的进展。2感知器模型感知器是一种早期的神经网络模型,由美国学者F.Rosenblatt于1957年提出。感知器中第一次引入了学习的概念,使人脑所具备的学习功能在一定的程度上得到了模拟,所以引起了广泛的关注。下面介绍一下单层感知器单层感知器分为:单层单神经元感知器和单层多神经元感知器。我们在这里只介绍前者。单神经元感知器具有一个处理单元,非线性作用函数f(·)是非对称型阶跃函数,见下式:其结构如下图所示:设感知器的权系W,输入向量u为感知器的输出为(uj:感知器的第j个输入;w0=-θ;u0=1)f(x)xyu1ujun

θw1ujwn它与MP模型不同之处是,权值可以进行调整,学习是采用有导师的学习算法。基本学习算法步骤如下:(1)设置权系的初值,为较小的随机非零值。(2)给定输入/输出样本对,即导师信号,(3)求感知器的输出(4)权值调整式中,t:第t次调整向量。(5)若,则学习结束;否则,返回(3)。可见,学习算法结束后,将样本模式,以连接权值和阈值的形式,分布记忆(存储)与感知器中。单层感知器(单、多神经元)的局限性:只能解决简单的分类问题,也就是只有在输入矢量是线性可分时,单层感知器才对输入模式进行有效的分类有效。线性不可分问题只能用多层感知器来解决。3线性神经网络自适应线性神经元,是由美国Standford大学Widrow教授于20世纪60年代初提出的。与感知器不同的是主要在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不仅仅只是像感知器中那样只能取0或1。学习算法为δ规则。δ规则也称为最小方差法,其算法步骤如下:(1)设置初始权系W(0)。(2)给定输入/输出样本对,即导师信号(3)计算网络的目标函数J:神经元在第p组样本输入下的输出yp为(4)δ规则:用于权值调整的自适应学习算法为将代入上式可得式中,α为常值,0<α<2,可使算法收敛。

η随着输入样本up自适应地调整。(5)当时,算法结束。线性神经网络的结构如下(m个线性神经元):网络的输出为y=Wu-θ权值系数调整算法为∑f(x)∑f(x)w11-θ1-θmx1xmy1ymwmnu1unujW-θm×1m×nm×1xn×1u1m×1y3BP神经网络3.1BP神经网路简介反向传播网络(Back-PropagationNetwork,简称BP网络)是将W-H学习规则一般化,对非线性可微分函数进行权值训练的多层网络。权值的调整采用反向传播(Back-propagation)的学习算法。它是一种多层前向反馈神经网络,其神经元的变换函数是S型函数。输出量为0到1之间的连续量,它可实现从输入到输出的任意的非线性映射。BP网络主要用于下述方面:函数逼近:用输入矢量和相应的输出矢量训练一个网络来逼近一个函数。模式识别和分类:用一个特定的输出矢量将它与输入矢量联系起来;把输入矢量以所定义的合适方式进行分类。数据压缩:减少输出矢量维数以便于数据传输或存储。具有较强的泛化性能:使网络平滑的学习函数,使网络能够合理地响应被训练以外的输入。泛化性能只对被训练的输入/输出对最大值范围内的数据有效,即网络具有内插值特性,不具有外插值特性。超出最大训练值的输入必将产生较大的输出误差。3.2BP神经网络模型前、后层之间各神经元实现全联接;每层各神经元之间无联接。············uy输入层节点隐层节点输出层节点BP网络与感知器和自适应线性神经网络的比较:感知器和自适应线性元件的主要差别在激活函数上:前者是二值型的,后者是线性的BP网络具有一层或多层隐含层,除了在多层网络上与前面已介绍过的模型有不同外,其主要差别也表现在激活函数上。BP网络的激活函数必须是处处可微的,因此它不能采用二值型的阀值函数{0,1}或符号函数

{-1,1}。BP网络经常使用的是S型的对数或正切激活函数和线性函数。BP网络特点:输入和输出是并行的模拟量;网络的输入输出关系是各层连接的权因子决定,没有固定的算法;权因子通过学习信号调节。学习越多,网络越聪明;隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响;只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数;在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数。S型激活函数:S型函数具有非线性放大系数功能,可以把输入从负无穷大到正无穷大的信号,变换成-1到l之间输出。对较大的输入信号,放大系数较小;而对较小的输入信号,放大系数则较大。采用S型激活函数可以处理和逼近非线性输入/输出关系。3.3BP学习规则BP算法属于δ算法,是一种监督式的学习算法。BP算法是由两部分组成,信息的正向传递与误差的反向传播正向传播过程中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态如果在输出层未得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标3.4BP网络训练训练BP网络,需要计算网络加权输入矢量以及网络输出和误差矢量,然后求误差平方和。当所训练矢量的误差平方和小于误差目标,训练停止;否则在输出层计算误差变化,且采用反向传播学习规则来调整权值,然后重复此过程。网络完成训练后,对网络输入一个不是训练集合中的矢量,网络将以泛化方式给出输出结果。3.5BP网络设计1、输入和输出层的设计输入的神经元可以根据要求求解的问题和数据表示方式确定。如果输入的是模拟信号波形,那么输入层可以根据波形的采样点数目决定输入单元的维数,也可以用一个单元输入,这时输入样本为采样的时间序列;如果输入为图像,则输入单元可以为图像的像素,也可以是经过处理的图像特征。输出层的维数可根据使用者的要求确定。如果将BP网络用作分类器,类别模式一共有m个,那么输出层神经元的个数为m或log2m。2、隐含层的设计对于BP网络,有一个非常重要的定理。即对于任何在闭区间的一个连续函数都可以用单隐层的BP网络逼近,因而一个三层BP网络就可以完成任意的n维到m维德映射。隐层的神经元数目选择是一个十分复杂的问题,往往需要根据设计者的经验和多次试验来确定,因而不存在一个理想的解析式来表示。隐单元的数目与问题的要求、输入/输出单元的数目都有着直接关系。隐单元数目太多会导致学习时间过长、误差不一定最佳,也会导致容错性差、不能识别以前看到的样本,因此一定存在一个最佳的隐单元数。以下3个公式可用于选择最佳隐单元时的参考公式:(1),其中,k为样本数,n1为隐单元数,n为输入单元数。如果i>n1,(2),其中,m为输出神经元数,n为输入神经元数,a为[0,10]之间的常数。(3),其中,n为输入单元数。还有一种途径可用于确定隐单元的数目。首先使隐单元的数目可变,或者放入足够多的隐单元,通过学习将那些不起作用的隐单元剔除,直到不可收缩为止。同样,也可以在开始时放入比较少的神经元,学习到一定次数后,如果不成功的话则增加隐单元的数目,直到达到比较合理的隐单元数目为止。3.6初始值的选取由于系统是非线性的,初始值对于学习能否达到局部最小和是否能够收敛的结果关系很大。一个重要的要求是:初始权值在输入累加时使每个神经元的状态值接近零,权值一般取随机数,数值要比较小。输入样本也同样希望进行归一化处理,使那些较大的输入仍落在传递函数梯度大的地方。一般取初始权值在(-1,1)之间的随机数3.7期望误差的选取在设计网络的训练过程中,期望误差值也应当通过对比训练后确定一个合适的值。这个所谓的“合适”,是相对于所需要的隐含层的节点数来确定,因为较小的期望误差值是要靠增加隐含层的节点,以及训练时间来获得的。一般情况下,作为对比,可以同时对两个不同期望误差值的网络进行训练,最后通过综合因素的考虑来确定采用哪一个网络。3.8应用举例例1:求解函数逼近问题有21组单输入矢量和相对应的目标矢量,试设计神经网络来实现这对数组的函数关系。P=-2:0.2:2;T=[1.00001.76002.44003.04003.56004.00004.36004.64004.84004.96005.00004.96004.84004.64004.36004.00003.56003.04002.44001.76001.0000];测试集P—test=-2:0.1:2;T—test=[1.3900

2.1100

2.7500

3.3100

3.7900

4.1900

4.5100

4.7500

4.9100

4.9900

4.9900

4.9100

4.7500

4.5100

4.1900

3.7900

3.31002.7500

2.1100

1.3900];目标矢量相对于输入矢量的图形如下:测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,8,1,训练目标为0.01,训练次数为4,网络误差为0.3847目标矢量与实际目标矢量的误差图形如下:

测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,8,1训练目标为0.001训练次数为6网络误差为0.1281目标矢量与实际目标矢量的误差图形如下:

测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,8,1训练目标为0.0001训练次数为9网络误差为0.0207目标矢量与实际目标矢量的误差图形如下:

测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,2,1训练目标为0.001训练次数为29网络误差为0.1327目标矢量与实际目标矢量的误差图形如下:测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,5,1训练目标为0.001训练次数为7网络误差为0.0396目标矢量与实际目标矢量的误差图形如下:上表表明:在经过2000次训练后(训练函数为trainlm),隐含层神经元为5个的BP网络对函数的逼近效果最好,因为它的网络误差也比较小,而且网络经过7次训练就达到了目标误差。隐含层为3的网络误差也比较小,但他们所需要的训练时间比较长(10次)。考虑网络性能的训练速度,这里将网络隐含层的神经元数目设定为5。从上表还可以发现:就是并不是隐含层神经元的个数越多,网络的性能就越好神经元个数2345678网络误差0.13270.11790.14350.03960.14020.12380.1281网络的训练误差在上述的几种情况中,网络的隐含层神经元的传递函数为tansig,输出层神经元的传递函数为purelin,网络的训练函数为trainlm。下面我们研究一下不同训练函数对网络性能的影响,比如收敛速度和网络推广能力等。为了比较,下面采用不同的训练函数对网络进行训练,并观察结果。以上都是采用函数trainlm对网络进行训练,该函数的学习算法为Levenberg-Marquadt反传算法,该训练函数的优点在于收敛速度很快。当隐含层神经元数目为8,训练目标为0.001时,网络的逼近误差为0.1281,训练次数为6次。接下来我们采用traingdx函数对网络进行训练,该函数的学习算法是梯度下降动量法,而且学习速率是自适应的。此函数的训练结果如下图所示:测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,8,1训练目标为0.001训练次数为867网络误差为0.1449目标矢量与实际目标矢量的误差图形如下:由此可以看出此训练函数traingdx相对于训练函数trainlm来说,在同等条件下(隐含层神经元数目为8,训练目标为0.001时),它的网络的训练次数大大的增加了,而且网络误差也略有增大。最后,我们采用traingd训练函数来对网络进行训练,该函数所用的学习算法就是普通的梯度下降法。此函数的训练结果如下图所示:测试矢量与实际测试矢量的图形如下:目标矢量与实际目标矢量的图形如下:在上述图形中,BP网络取N1,8,1训练目标为0.001训练次数为2000网络误差为0.3005目标矢量与实际目标矢量的误差图形如下:由此可以看出此训练函数traingd相对于训练函数trainlgdx来说,在同等条件下(隐含层神经元数目为8,训练目标为0.001时),经过了2000次训练后,网络目标误差依然没有被满足,而且通过观察网络的训练曲线,它的收敛过程也非常缓慢。而且训练误差大大增加了(0.3005)。综合分析以上3种训练过程,我们认为,函数trainlm收敛速度最快,网路的训练误差也比较小。因此,这里采用trainlm训练函数对网络进行训练,通过训练好的网络对其它的测试数据进行仿真,得到网络对函数的逼近情况。4神经网络应用实例——地震预报的MATLAB实现地震预报是地理问题研究领域中的一个重要课题,准确的地震预报可以帮助人们及时采取有效措施,降低人员伤亡和经济损失。引发地震的相关性因素很多。在实际地震预报中,前兆与未来地震震级大小有一定关系。但是异常与地震之间有较强的不确定性,同样一种预报方法或前兆在一些地震前可能异常很突出,但在另一些地震前则可能表现得很不明显甚至根本不出现。这种孕育过程的非线性和认识问题的困难性使得人们很难建立较完善的物理理论模型,并通过某种解析表达式进行表达。而神经网络是一种高度自适应的非线性动力系统,通过BP神经网络学习可以得到输入与输出之间的高度非线性映射,因此使用神经网络可以建立起输入与输出之间的非线性关系。本节将根据某地的地震资料,研究如何利用神经网络工具箱,实现基于神经网络的地震预报。以我国西南某地震常发地区的地震资料作为样本来源,实现基于神经网络的地震预测。根据这些地震资料,提取出7个预报因子和实际发生的震级M作为输入和目标向量。预报因子为:(1)半年内M≥3的地震累计频度(2)半年内能量释放累计值(3)b值(4)异常地震群个数(5)地震条带数(6)是否处于活动区(7)相关地震区地震震级一共收集了10个学习样本,如下表:学习样本地震累计频度累计释放能量b值异常地震群个数地震条带个数活动周期相关区震级实际震级000.62000000.39150.47410.770.50.510.31580.53130.28350.54020.6800.510.31580.59380.62101.00000.6310.511.00000.93750.41850.41830.670.5010.73680.43750.21600.49480.710010.26320.50000.99900.03830.750.5110.94741.00000.58050.49250.710000.36840.37500.08100.06920.760000.05260.31250.39150.12300.980.5000.89740.6563上表中的前7项为学习样本的输入因子,输出因子为实际震级。利用上表中的学习样本对网络进行训练。在训练前,应该对数据进行归一化处理。上表已经是对已化后的数据了。BP网络的设计还是采用单隐层的BP网络进行地震预测。由于输入样本为7维的输入向量,因此,输入层一共有7个神经元,则中间层应该有15个神经元。网络只有1个输出数据,则输出层只有1个神经元。因此,网络结构应该为7×15×1的结构。按照BP网络的设计原则,中间层神经元的传递函数为S型正切函数。由于输出已被归一化到区间[0,1]中,因此,输出神经元的传递函数可以设定为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论