您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 我的人工神经网络-8 自组织竞争人工神经网络
武汉工程大学计算机科学与工程学院第08讲自组织竞争人工神经网络计算机科学与工程学院在实际的神经网络中,比如人的视网膜中,存在着一种“侧抑制”现象,即一个神经细胞兴奋后,通过它的分支会对周围其他神经细胞产生抑制。自组织竞争人工神经网络正是基于上述生物结构和现象形成的。它能够对输入模式进行自组织训练和判断,并将其最终分为不同的类型。与BP网络相比,这种自组织自适应的学习能力进一步拓宽了人工神经网络在模式识别、分类方面的应用,另一方面,竞争学习网络的核心——竞争层,又是许多种其他神经网络模型的重要组成部分。计算机科学与工程学院8.1几种联想学习规则格劳斯贝格(S.Grossberg)提出了两种类型的神经元模型:内星与外星,用以来解释人类及动物的学习现象。内星可以被训练来识别矢量;外星可以被训练来产生矢量。计算机科学与工程学院图8.1格劳斯贝格内星模型图内星是通过联接权矢量W接受一组输入信号P计算机科学与工程学院图8.2格劳斯贝格外星模型图外星则是通过联接权矢量向外输出一组信号A。它们之所以被称为内星和外星,主要是因为其网络的结构像星形,且内星的信号流向星的内部;而外星的信号流向星的外部。计算机科学与工程学院8.1.1内星学习规则实现内星输入/输出转换的激活函数是硬限制函数。可以通过内星及其学习规则来训练某一神经元节点只响应特定的输入矢量P,它是借助于调节网络权矢量W近似于输入矢量P来实现的。单内星中对权值修正的格劳斯贝格内星学习规则为:(8.1)由(8.1)式可见,内星神经元联接强度的变化Δw1j是与输出成正比的。如果内星输出a被某一外部方式维护高值时,那么通过不断反复地学习,权值将能够逐渐趋近于输入矢量pj的值,并趋使Δw1j逐渐减少,直至最终达到w1j=pj,从而使内星权矢量学习了输入矢量P,达到了用内星来识别一个矢量的目的。另一方面,如果内星输出保持为低值时,网络权矢量被学习的可能性较小,甚至不能被学习。计算机科学与工程学院现在来考虑当不同的输入矢量p1和p2分别出现在同一内星时的情况。首先,为了训练的需要,必须将每一输入矢量都进行单位归一化处理。当第一个矢量p1输入给内星后,网络经过训练,最终达到W=(p1)T。此后,给内星输入另一个输入矢量p2,此时内星的加权输入和为新矢量p2与已学习过矢量p1的点积,即:因为输入矢量的模已被单位化为1,所以内星的加权输入和等于输入矢量p1和p2之间夹角的余弦。计算机科学与工程学院根据不同的情况,内星的加权输入和可分为如下几种情况:1)p2等于p1,即有θ12=0,此时,内星加权输入和为1;2)p2不等于p1,内星加权输入和为0;3)当p2=-p1,即θ12=180°时,内星加权输入和达到最小值-1。由此可见,对于一个已训练过的内星网络,当输入端再次出现该学习过的输入矢量时,内星产生1的加权输入和;而与学习过的矢量不相同的输入出现时,所产生的加权输入和总是小于1。当多个相似输入矢量输入内星,最终的训练结果是使网络的权矢量趋向于相似输入矢量的平均值。计算机科学与工程学院内星网络中的相似度是由偏差b来控制,由设计者在训练前选定,典型的相似度值为b=-0.95,这意味着输入矢量与权矢量之间的夹角小于18°48’。若选b=-0.9时,则其夹角扩大为25°48’。一层具有s个神经元的内星,可以用相似的方式进行训练,权值修正公式为:MATLAB神经网络工具箱中内星学习规则的执行是用函数learnis.m来完成上述权矢量的修正过程:dW=1earnis(W,P,A,lr);W=W十dW;计算机科学与工程学院[例8.1]设计内星网络进行以下矢量的分类辨识:初始化处理:[R,Q]=size(P);[S,Q]=size(T);W=zeros(S,R);B=-0.95*ones(S,1);max-epoch=10;lr=0.7;计算机科学与工程学院8.1.2外星学习规则外星网络的激活函数是线性函数,它被用来学习回忆一个矢量,其网络输入P也可以是另一个神经元模型的输出。外星被训练用来在一层s个线性神经元的输出端产生一个特别的矢量A。对于一个外星,其学习规则为:与内星不同,外星联接强度的变化Δw是与输入矢量P成正比的。这意味着当输入矢量被保持高值,比如接近1时,每个权值wij将趋于输出ai值,若pj=1,则外星使权值产生输出矢量。当输入矢量pj为0时,网络权值得不到任何学习与修正。计算机科学与工程学院当有r个外星相并联,每个外星与s个线性神经元相连组成一层外星时,其权值修正方式为:其中:W=s×r权值列矢量;lr=学习速率;A=s×q外星输出;P=r×q外星输入。MATLAB工具箱中实现外星学习与设计的函数为learnos.m,其调用过程如下:dW=learnos(W,A,P,lr);W=W十dW;计算机科学与工程学院思考:下面有两元素的输入矢量以及与它们相关的四元素目标矢量,试设计一个外星网络实现有效的矢量的获得,外星没有偏差。P=[10];T=[0.18260.6325;0.36510.3162;0.54770.3162;0.73030.6325];计算机科学与工程学院8.1.3科荷伦(Kohonen)学习规则科荷伦学习规则是由内星规则发展而来的。科荷伦规则为:科荷伦学习规则实际上是内星学习规则的一个特例,但它比采用内星规则进行网络设计要节省更多的学习,因而常常用来替代内星学习规则。计算机科学与工程学院在MATLAB工具箱中,在调用科荷伦学习规则函数learnk.m时,一般通过先寻找输出为1的行矢量i,然后仅对与i相连的权矩阵进行修正。使用方法如下:i=find(A==1);dW=learnk(W,P,i,1r);W=W十dW;一般情况下科荷伦学习规则比内星学习规则能够提高训练速度1到2个数量级。计算机科学与工程学院Kohonen学习规则通过输入向量进行神经元权值的调整,因此在模式识别中经常用到。通过学习,那些最靠近输入向量的神经元权值得到修正,使之更靠近输入向量,其结果是获胜的神经元在下一次相似的输入向量出现时,获胜的可能性更大;而对于那些与输入向量相差很远的神经元权值向量很快被调整为最接近某一类输入向量的值。结果是,如果神经元的数量足够多,则具有相似输入向量的各类模式作为输入向量时,其对应的神经元输出为1;而对于其他模式的输入向量,其对应的神经元输出为0。所以,竞争网络具有对输入向量进行夫恶习分类的能力。计算机科学与工程学院8.2自组织竞争网络8.2.1网络结构竞争网络由单层神经元网络组成,其输入节点与输出节点之间为全互联结。因为网络在学习中的竞争特性也表现在输出层上,所以在竞争网络中把输出层又称为竞争层,而与输入节点相连的权值及其输入合称为输入层。计算机科学与工程学院从网络的结构图中可以看出,自组织竞争网络的权值有两类:一类是输入节点j到i的权值wij(i=1,2…、s;j=1,2…、r),这些权值是通过训练可以被调整的;另一类是竞争层中互相抑制的权值wik(k=1,2…、s)。这类权值是固定不变的,且它满足一定的分布关系。它们是一种对称权值,即有wik=wki,同时相同神经元之间的权值起加强的作用,即满足w11=w11=…=wkk>0,而不同神经元之间的权值相互抑制,对于k≠i有wik<0。计算机科学与工程学院设网络的输入矢量为:P=[p1p2…pr]T;对应网络的输出矢量为:A=[a1a2…as]T。由于竞争网络中含有两种权值,所以其激活函数的加权输入和也分为两部分:来自输入节点的加权输入和N与来自竞争层内互相抑制的加权输入和G。对于第i个神经元有:1)来自输入节点的加权输入和为:2)来自竞争层内互相抑制的加权输入和为:计算机科学与工程学院a)如果在竞争后,第i个节点“赢”了,则有:而其他所有节点的输出均为零,即:此时b)如果在竞争后,第i个节点“输”了,而“赢”的节点为l,则有:此时计算机科学与工程学院所以对整个网络的加权输入总和有下式成立:sl=nl+wll对于“赢”的节点lsi=ni-|wii|对于所有”输“的节点i=1,2…s,i≠l由此可以看出,经过竞争后只有获胜的那个节点的加权输入总和为最大。竞争网络的输出为:在判断竞争网络节点胜负的结果时,可直接采用ni,即:计算机科学与工程学院取偏差B为零是判定竞争网络获胜节点时的典型情况,偶而也采用下式进行竞争结果的判定:通过上面分析,可以将竞争网络的工作原理总结如下:竞争网络的激活函数使加权输入和为最大的节点赢得输出为1,而其他神经元的输出皆为0。这个竞争过程可用MATLAB描述如下:计算机科学与工程学院n=W*P;[S,Q]=size(n);x=n+b*ones(1,Q);y=max(x);forq=1:Q%找出最大加权输入和y(q)所在的行;s=find(x(:,q)=y(q));%令元素a(z,q)=1,其他值为零;a(z(1),q)=1;end这个竞争过程的程序已被包含在竞争激活函数compet.m之中,A=compet(W*P,B);计算机科学与工程学院8.2.2竞争学习规则竞争网络在经过竞争而求得获胜节点后,则对与获胜节点相连的权值进行调整,调整权值的目的是为了使权值与其输入矢量之间的差别越来越小,从而使训练后的竞争网络的权值能够代表对应输入矢量的特征,把相似的输入矢量分成了同一类,并由输出来指示所代表的类别。竞争网络修正权值的公式为:式中lr为学习速率,且0<lr<1,一般的取值范围为0.01-0.3;pj为经过归一化处理后的输入。计算机科学与工程学院用MATLAB工具箱来实现上述公式的过程可以用内星学习规则:A=compet(W*P);dW=learnis(P,A,lr,W);W=W十dW;更省时地是采用科荷伦学习规则如下:A=compet(W*P);i=find(A==1);dW=learnis(P,i,lr,W);W=W十dW;不论采用哪种学习方法,层中每个最接近输入矢量的神经元,通过每次权值调整而使权值矢量逐渐趋于这些输入矢量。从而竞争网络通过学习而识别了在网络输入端所出现的矢量,并将其分为某一类。计算机科学与工程学院8.2.3竞争网络的训练过程竞争网络的学习和训练过程,实际上是对输入矢量的划分聚类过程,使得获胜节点与输入矢量之间的权矢量代表获胜输入矢量。这样,当达到最大循环的值后,网络已重复多次训练了P中的所有矢量,训练结束后,对于用于训练的模式P,其网络输出矢量中,其值为1的代表一种类型,而每类的典型模式值由该输出节点与输入节点相连的权矢量表示。竞争网络的输入层节点r是由已知输入矢量决定的,但竞争层的神经元数s是由设计者确定的,一般情况下,可以根据输入矢量的维数及其估计,再适当地增加些数目来确定。计算机科学与工程学院另外还要事先确定的参数有:学习速率和最大循环次数。竞争网络的训练是在达到最大循环次数后停止,这个数一般可取输入矢量数组的15—20倍,即使每组输入矢量能够在网络重复出现15~20次。竞争网络的权值要进行随机归一化的初始化处理,这个过程在MATLAB中用函数randnr.m实现:w=randnr(S,R);然后网络则可以进入竞争以及权值的调整阶段。网络的训练全过程完全由计算机去做,工具箱中的竞争网络训练函数为trainc.m,它的用法如下:计算机科学与工程学院竞争网络比较适合用于具有大批相似数组的分类问题。竞争学习网络的局限性:竞争网络适用于当具有典型聚类特性的大量数据的辨识,但当遇到大量的具有概率分布的输入矢量时,竞争网络就无能为力了,这时可以采用科荷伦网络来解决。计算机科学与工程学院8.3科荷伦自组织映射网络神经细胞模型中还存在着一种细胞聚类的功能柱。它是由多个细胞聚合而成的,在接受外界刺激后,它们会自动形成。一个功能柱中的细胞完成同一种功能。当外界输入不同的样本到科荷伦自组织映射网络中,一开始时输入样本引起输出兴奋的位置各不相同,但通过网络自组织后会形成一些输出群,它们分别代表了输入样本的分布,反映了输入样本的图形分布特征,所以科荷伦网络常常被称为特性图。计算机科学与工程学院科荷伦网
本文标题:我的人工神经网络-8 自组织竞争人工神经网络
链接地址:https://www.777doc.com/doc-3979655 .html