行敏锋—DLVQ应用.doc_第1页
行敏锋—DLVQ应用.doc_第2页
行敏锋—DLVQ应用.doc_第3页
行敏锋—DLVQ应用.doc_第4页
行敏锋—DLVQ应用.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

目录目录(1)摘要(2)引言(3)1 LVQ基本原理.(4)11 竞争学习网络及学习算法(4)12 学习向量量化(5)121 LVQ的学习(6) 122 改进的LVQ网络(9) 123 DLVQ网络.(9)2DLVQ应用(9)21 建立模型(10)22 训练模型(10)23 调用文件(13)24 观察容错性(15)3 结论(15)致谢(15)参考文献(15)附页(15)DLVQ模型应用研究(云南大学 物理系 电子科学与技术 行敏锋)摘要:人工神经网络是模拟人脑活动的一门新学科,它在信息处理等领域有相当广泛的应用。神经网络模式识别技术因具有很强的非线性处理能力和容错能力而得到广泛的应用。本文概括神经网络的应用。主要研究学习矢量量化网络的在实际中的一些应用效果,本文给出利用SNNS模拟器构造LVQ、训练LVQ神经网络的方法和详细步骤;将网络参数转化为子程序以供推广应用;总结了应用的实际效果。关键词:人工神经网络,学习矢量量化,学习算法Abstract:Artificial neural network is new technology developing from simulation of human brains activity, has extensive and practical application in information processing. The pattern recognition of artificial neural network is special application with strong capability of nonlinear approximation and correcting. In this paper, we introduce the algorithm and practical effect of the learning vector quantization (LVQ) neural network. The basic way and detail step of application in SNNS simulator, including constructing and training LVQ neural network, are presented. The learned parameters are converted into a subroutine for extensive application. The practical effect is summarized in application. Keywords:Artificial Neural Networks,Learning Vector Quantization,Learning Algorithm引言人工神经网络(Artificial Neural Networks,简称ANN)是模仿脑细胞结构和功能,脑神经结构以及思维处理问题等脑功能的新型信息处理系统。由于ANN具有复杂的动力学特性,并行处理机制,学习,联想和记忆等功能,以及它的高度自组织,自适应能力和灵活性而受自然科学领域学者的广泛重视。20世纪80年代中期与90年代初期,ANN的研究工作发展迅速,许多理论与应用方面都有突破性进展,也提出了一系列迫切需要解决的问题,形成多学科的交叉研究局面。就ANN应用的领域而言有计算机视觉,语言的识别,理解与合成,优化计算,智能控制及复杂系统分析,模式识别,神经计算机的研制,知识处理,专家系统与人工智能,涉及的学科有神经生理学,微电子学,光学,生物电子等。可以看出,在许多方面都取得了丰硕的成果, ANN的发展具有强大的生命力,将来一定会在科学领域发挥更大的作用。针对当前ANN存在的问题,今后的研究方向主要为理论研究和应用研究两个方面。在理论研究方面有:利用神经生理与认识科学研究多维及智能的机理;利用神经科学基础理论的研究成果,用数理方法探索智能水平更高的人工神经网络模型,深入研究网络的算法和性能。例如:稳定性,收敛性,容错性等,开发新的网络数理理论,例如神经网络动力学,非线性神经场等。在应用研究方面有:神经网络软件模拟和硬件实现的研究;神经网络在各个科学技术领域应用的研究,它涉及的领域很广,包括模式识别,信号处理,知识工程,专家系统,优化组合,智能控制等。在神经网络应用中很重要的一个环节是训练学习过程,通过该过程使网络能对外界有正确的响应。把要教给网络的信息(外部输入)和正确的结论(或期望值)作为网络的输入和要求的输出,使网络按某种规则(称训练算法)调节各处理单元间的连接权值,直到加上给定输入,网络就能产生给定输出为止。这时,各连接权已调节好,则网络的学习训练完成了。人工神经网络的学习方式分为三种:1监督学习(有教师学习):这种学习方式需要外界存在一个“教师”,他可以对一组给定输入提供应有的输出结果(正确答案)。2非监督学习(无教师学习):非监督学习时不存在外部教师,学习系统完全按照环境所提供数据的某些统计规律来调节自身参数或结构,以表示外部输入的某种固有特性(如聚类,或某种统计上的分布特征)。3二者结合:这种学习结合上述两种情况,在网络的局部如竞争层按无导师学习算法调整权值,而在输出层按监督学习算法调整权值。学习算法有以下几类:1误差纠正学习:令为输入时神经元k在n时刻的实际输出,表示相应的应有输出(可由训练样本给出),则误差信号可写为: =误差纠正学习的最终目的是使某一基于的目标函数达到最小,以使网络中的每一个输出单元的实际输出在某种统计意义上最逼近于应有输出。2Hebb学习:神经心理学家Hebb提出的学习规则可归结为:“当某一突触(连接)两端的神经元的激活同步(同为激活或同为抑制)时,该连接的强度应增加,反之则应减弱”,用数学方式可描述为: =F(,)式中,分别为两端神经元的状态,其中最常见的一种情况为: =由于与,的相关成比例,有时称之为相关学习规则。3竞争(Competitive)学习:顾名思义,在竞争学习时网络各输出单元互相竞争,最后达到只有一个最强者激活。最常见的一种情况是输出神经元之间有侧向抑制性连接,这样众多输出单元中如有某一单元比较强,则它将获胜并抑制其他单元,最后只有比较强者处于激活状态。其规则可写为: =ANN发展至今,已有数十种模型,它们从不同角度对人脑神经系统不同层次进行模拟,其中反馈传播神经网络(BP网络)应用最为广泛。在文中我们引进了以竞争神经网络为基础的LVQ网络,尝试用该方法在一些实际中的应用。本文中,我们主要介绍的是对手写体数字的识别。1 LVQ基本原理学习矢量量化(Learning Vector Quantization ,简称LVQ )是在监督状态下对竞争层进行训练的一种算法,而竞争层采用竞争学习算法。所以在介绍 LVQ 之前,我们有必要先了解竞争神经网络算法。1.1 竞争神经网络及学习算法实际的神经网络中, 存在着一种“侧抑制”现象。即一个神经细胞兴奋后, 通过它的分支会对周围其他神经细胞产生抑制作用。这种“侧抑制”使神经细胞之间出现了竞争, 当受到某种刺激时, 在开始阶段各个神经细胞都处于不同程度的兴奋状态, 但由于“侧抑制”作用, 其中兴奋最强的神经细胞对周围神经细胞产生的抑制作用也最强, 最后, 它战胜其他神经细胞“赢”了, 而其周围的其他神经细胞则全“输”了。竞争神经网络就是对实际神经细胞这种“侧抑制”现象的模拟。基本的竞争学习网络由两层组成: 即输入层和竞争层。输入层接收输入样本; 竞争层对输入样本进行分类。这两层神经元是全互联接的, 即每一层的每个神经元与另一层的每个神经元均联接(图1)。用于识别的竞争网络的学习规则是, 假设输出为a = F (|P W |)其中, P 是输入向量; W 是任一神经元的权向量; F 表示当P 与W 之间的距离最小时, 神经元的输出为1, 否则为0。训练开始时, 随机设置每一神经元的W , 当P 与W 之间的距离最小, 这一神经元激活, 其输出值为1, 其余神经元则被抑制, 输出值为0。权向量调整按下式W = lr . a .(P W ) 图1:竞争神经网络结构lr 是学习率。每进行一步竞争学习, 就是对竞争层中竞争获胜的神经元相联接的输入权值作一次调整, 只有竞争胜利的神经元才修改对应的权值。调整权植的目的是为了使权值与其输入矢量之间的差别越来越小, 从而使训练后的竞争网络的权值能够代表所对应输入矢量的特征, 把相似的输入矢量分成同一类, 并由输出来指示所代表的类别。1.2 学习向量量化如图2所示,LVQ神经网络是一种混合网络。通过有监督及无监督的学习来形成分类。 图2:LVQ网络在LVQ网络中,第一层的每个神经元都指定给某个类,常常几个神经元被指定给同一类。每类在被指定给第二层的一个神经元,第一层神经元的个数与第二层的神经元的个数至少相同,并且通常要大一些。和竞争网络一样,LVQ 网络的第一层的每个神经元学习原型向量,它可以对输入空间的区域分类。然而,不是通过计算内积得到输入和权值中最接近值,而是通过直接计算距离的方法来模拟LVQ网络。直接计算距离的一个优点是不必先规格化,当向量规格化了,无论是采取计算内积的方法还是直接计算距离,网络的响应是相同的。LVQ网络的第一层净输入是: =-|-p|或者,用向量形式: =-LVQ网络第一层的输出是: =compet(n)因此那种权值向量最为接近的神经元的输出为将为1,而其它神经元的输出为0。迄今,LVQ网络与竞争网络的特性几乎相同(至少对规格化向量)。然而,对其解释方面有区别。对于竞争网络,有非零输出的神经元表示输入向量属于那个类。而对与LVQ网络,竞争获胜的神经元表示的是一个子类,而不是一个类。一个类可能由几个不同的神经元(子类)组成。LVQ的第二层将子类组合成一个类。这是通过矩阵来实现的。矩阵的列代表子类,而行则代表类。的每列仅有1个1,其他元素都为0。1出现的行表明这个子类属于那个类。 (=1)子类i是类k的一部分。 这种将子类组合成为类的过程使得LVQ网络产生了复杂的类边界。一个标准的竞争层存在局限,即只能够创造凸的判定区域。LVQ网络克服了这个局限。1.2.1 LVQ的学习LVQ网络的学习结合了竞争学习和监督学习。正如所有的监督的学习算法一样,它需要一组正确网络行为的例子。,每个目标向量除了一个是1以外必须全是0。1出现的行表示输入向量属于那个类。例如,如果有这样一个问题,必须将一个特别的三元素向量归类入四个类中的第二类,我们可以这样表达: = , = 在学习能够进行之前,把第一层的每个神经元指定给一个输出神经元。这样就产生了矩阵。典型情况下,相同数量的隐藏神经元联结到每个输出神经元,因而每个类都能够由相同数量的凸区域组成。矩阵的所有元素都设置为0,除了如下情况:如果隐含神经元i是指定给类k,那么设=1。一旦定义了,它将不会再改变了。隐藏权值将用Kohonen规则的一个变化形式训练。LVQ学习规则以如下方式进行。在每次迭代过程,一个输入向量p被提供给网络,并且计算每个原型向量与p的距离。隐含的神经元进行竞争,神经元竞争获胜,的第i个,元素被设置为1。接着与相乘从而得到最终输出,也只是一个非零元素,表明p是指定给类的。Kohonen规则被用在两个方面以改进LVQ网络的隐含层。首先,如果p分类正确的话,那么获胜的话隐含神经元向p移动。(q)=(q-1)+a(p(q)- (q-1),如果=其次,如果p被不正确归类,那么我们知道错误的隐含层神经元获胜,因此,移动它的权值远离p:(q)=(q-1) -a(p(q)- (q-1),如果=1=0结果是每个隐含神经元移向那些落入形成子类的类中的向量,而远离那些落入其它类中的向量。让我们看一个LVQ训练的例子。我们训练LVQ网络来求解如下问题:类1:= , = 类2:= , =开始为每个输入指定目标向量: =,=, =, = =,=, =,=现在必须决定选择多少类来组成这个类中的每一类。如果让每个类是两个子类的联合,那么,隐含层中最终有四个神经元,输出层的权值矩阵是: =将隐含神经元1和2与输出神经元1连接起来。将隐含神经元3和4与输出神经元2相连。每个类都将由2个凸区域组成。的行向量最初被设置为随机值。这些权值是:= = =在训练过程中的每次迭代,我们提供一个输入向量,找出其响应,然后调节权值,在本例中我们将从提交开始。=compet()=compet() =compet() =compet() =第三个隐含神经元的权值向量与p最近。为了确定这个神经元属于哪个类,令与相乘: = 这个输出表明属于类2。这是正确的,于是被移向而更新。=+(-) =+0.5(-) =1.2.2 改进的LVQ网络(LVQ2)上面讨论的LVQ网络对许多问题都解决的比较好,但却存在两种局限。首先,与竞争层的情况一样,有时一个LVQ网络的隐含神经元可能有使其从竞争获胜停止下来的初始权值,结果就是造成了一个无用的死神经元。这个问题用“良心”机制解决。其次,由于有时初始向量的排列,在取某些初始向量的时候,一个神经元的权值向量不得不经过一个它不代表的类的区域以到达它所代表的区域。由于这样的神经元的权值将被它必须经过的区域内的向量排斥,它可能无法通过,以至可能对吸引它的区域不能进行正确分类。这个问题通常通过改变Kohonen规则来解决。如果隐含层中的获胜神经元对当前的输入不正确归类,我们将它的权值向量从输入向量移开,正如以前所做的那样。然而,我们也调整与输入向量最接近的回归类正确神经元的权值。这种第二个神经元的权值将向输入向量移近。当网络正确地分类一种输入向量时,只有一个神经元的权值被移向输入向量。然而如果输入向量被错误的归类,两个神经元的值都将被改变,一个权值向量被移开输入向量,另一个移向输入向量。 图3:改进的LVQ网络1.2.3 DLVQ网络动态学习矢量量化(Dynamic Learning Vector Quantization ,简称DLVQ)是在LVQ的基础上改进而成的。DLVQ是一个新的LVQ运算法则,它以最小的竞争层神经元的可能数字开始,只有当需要的时候才增加新的神经元单位。在学习开始以后竞争层神经元数目在学习期间是动态变化的,所以称为动态的学习矢量量化(DLVQ)。 2 DLVQ应用 在本文应用实例中,尝试网络对手写体数字1至9共九个数字进行识别。实现的方案为:首先对于每个样本(共100个)手写体数字按16X16取样,取样值与取样点颜色相关(见采用附页的取样值)。然后把样本的取样值和该样本实际对应的数字值作为网络的输入、输出训练DLVQ网络。最后检验网络识别其它手写体的能力及容错能力。在该过程中利用snns模拟器构造、训练DLVQ网络。2.1 建立LVQ网络由于竞争层神经元个数在网络学习过程中动态添加,故构造网络时只有输入层神经元16X16=256个及输出层神经元1个。如图所示。 图5:snns软件界面图形利用snns图形建立一个Kohonen的模型,如图6所示。 图6:建立Kohonen模型注意:先按下BIGNET按扭,选择Kohonen,就可以创建一个Kohonen模型。如图6所示: 图7:创建Kohonen模型的界面按下CREATE NET键,就创建了Kohonen模型。注意:在图7中分别标出了组成部分(Components),X轴大小(X-size)和Y轴大小(Y-size),然后按CREATE NET键,变可以创建一个Kohonen模型的网络。创建后,按DONE键,就可以退出这个界面了。然后按下图5中的DISPLAY键,便可以看到创建的神经网络的图形。2.2 训练网络装如pattern文件,选择学习算法和参数。如图8所示: 图8:载入Patterns文件而后调整学习参数过程如图9所示: 图9:训练Kohonen模型注意:(1)其中装入pattern是训练的样本文件。 (2)学习函数LEARN,其中的五个参数分别是:0.02,0.02,10.0,0.0,0.0。 (3)初始化函数INIT,其中的2个参数分别是:1.0,-1.0。 (4)SEL_FUNC的参数分别为:Dynamic_LVQ,Dynamic_LVQ,DLVQ_Weifhts,None。然后,就进行训练,训练时,会发现误差越来越小,最后直到接近为0(小于0.00001)。学习的结果如下图10所示,在图中网络的竞争层神经元10个,在竞争层中只有一个输出为1而其余输出全为0(竞争学习算法的结果);网络的输出层神经元为线性函数,输出值为对应的数字值。 图102.3 检验结果编写主程序如下,主程序中可以修改手写体(相对标准)对应的采样数据,调用子程序计算可检验其容错性如何。1的采样数据放在附页上(其他数字图案的采样数据略)。#include#include#define SIZE 256#include xing.h#include xing.cint main(void) int count,effect,m,n,s,k,i=0; in=input; out=output; float x,arraySIZE-1; FILE *fp; if(fp=fopen(00.txt,rw)=NULL) fprintf(stderr,Error opening file.); exit(0); for(count=0;count256;count+) fscanf(fp,%f,&arraycount); i+; for(count=0;counti;count+) inputcount=arraycount; effect=xing(in,out,init); fprintf(fp,%f,%f,%fn, ,*out); fclose(fp); while(1) puts(输入要改的行:); scanf(%d,&m); puts(输入要改的列:); scanf(%d,&n); puts(输入改为的值:); scanf(%f,&x); array16*(m-1)+(n-1)=x; if(fp=fopen(00.txt,w)=NULL) fprintf(stderr,Error opening file.); exit(0); for(count=0;counti;count+) fprintf(fp,%f,arraycount); puts(输入-1退出); scanf(%d,&s); if(s0) break; else continue; fclose(fp); return 0;24 观察容错性随便改变input 1 中的一些数据,调用子程序计算观察输出结果,发现只要改变的数据如果不是十分的多的话,输出结果仍然为1,但是如果改变的数据特别多的话,会发现数字的形状变形,而且输出结果有偏差。由此,我们可以得出这样的启发:其具有一定的容错性,但是容错性不是太大。3结论本文分析了LVQ的基本原理及其学习算法,分析了竞争学习算法。计算机模拟改进的DLVQ算法,并应用snns软件具体建立了Kohonen模型,对于广泛应用可变矢量量化算法,检验了其实用性,检验了其实际应用效果,具有应用参考价值。由实验过程可以看出来,实验结果是正确的,我们对实验结果的分析,表明了DLVQ网络是实用而有效的。 致谢在本次毕业设计中,我从指导老师杨先楚老师身上学到了很多有益东西。杨老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。无论在理论上还是在实践中,他都给与我很大的帮助,使我在学习方面得到不少的提高。这一切对我以后的工作和学习生活都有具有巨大的帮助和影响。特此感谢他细心的启发和帮助。此外,其他同学也给与我不少启示和帮助,这里一并表示感谢。参考文献:1. 吴简彤 王建华 神经网络技术及其应

温馨提示

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

评论

0/150

提交评论