第08讲自组织竞争人工神经网络 在实际的神经网络中,比如人的视网膜中,存在着一种“侧抑制”现象,即一个神经细 胞兴奋后,通过它的分支会对周围其他神经细胞产生抑制。这种侧抑制使神经细胞之间出现 竞争,虽然开始阶段各个神经细胞都处于程度不同的兴奋状态,由于侧抑制的作用,各细胞 之间相互竞争的最终结果是:兴奋作用最强的神经细胞所产生的抑制作用战胜了它周围所有 其他细胞的抑制作用而“赢”了,其周围的其他神经细胞则全“输”了 自组织竞争人工神经网络正是基于上述生物结构和现象形成的。它能够对输入模式进行 自组织训练和判断,并将其最终分为不同的类型。与BP网络相比,这种自组织自适应的学 习能力进一步拓宽了人工神经网络在模式识别、分类方面的应用,另一方面,竞争学习网络 的核心—一竞争层,又是许多种其他神经网络模型的重要组成部分,例如科荷伦( Kohonen) 网络(又称特性图)、反传网络以及自适应共振理论网络等中均包含竞争层 8.1几种联想学习规则 格劳斯贝格(S. Grossberg)提出了两种类型的神经元模型:内星与外星,用以来解释人 类及动物的学习现象。一个内星可以被训练来识别一个矢量;而外星可以被训练来产生矢量 由r个输入构成的格劳斯贝格内星模型如图8.1所示 y P 2 3 pr o 图8.1格劳斯贝格内星模型图 由r个输出节点构成的格劳斯贝格外星模型如图8.2所示。 从图8.1和图8.2中可以清楚地看出,内星是通过联接权矢量W接受一组输入信号
1 第 08 讲 自组织竞争人工神经网络 在实际的神经网络中,比如人的视网膜中,存在着一种“侧抑制”现象,即一个神经细 胞兴奋后,通过它的分支会对周围其他神经细胞产生抑制。这种侧抑制使神经细胞之间出现 竞争,虽然开始阶段各个神经细胞都处于程度不同的兴奋状态,由于侧抑制的作用,各细胞 之间相互竞争的最终结果是:兴奋作用最强的神经细胞所产生的抑制作用战胜了它周围所有 其他细胞的抑制作用而“赢”了,其周围的其他神经细胞则全“输”了。 自组织竞争人工神经网络正是基于上述生物结构和现象形成的。它能够对输入模式进行 自组织训练和判断,并将其最终分为不同的类型。与 BP 网络相比,这种自组织自适应的学 习能力进一步拓宽了人工神经网络在模式识别、分类方面的应用,另一方面,竞争学习网络 的核心——竞争层,又是许多种其他神经网络模型的重要组成部分,例如科荷伦(Kohonen) 网络(又称特性图)、反传网络以及自适应共振理论网络等中均包含竞争层。 8.1 几种联想学习规则 格劳斯贝格(S.Grossberg)提出了两种类型的神经元模型:内星与外星,用以来解释人 类及动物的学习现象。一个内星可以被训练来识别一个矢量;而外星可以被训练来产生矢量。 由 r 个输入构成的格劳斯贝格内星模型如图 8.1 所示。 图 8.1 格劳斯贝格内星模型图 由 r 个输出节点构成的格劳斯贝格外星模型如图 8.2 所示。 从图 8.1 和图 8.2 中可以清楚地看出,内星是通过联接权矢量 W 接受一组输入信号
P:而外星则是通过联接权矢量向外输出一组信号A。它们之所以被称为内星和外星,主要 是因为其网络的结构像星形,且内星的信号流向星的内部:而外星的信号流向星的外部。下 面分别详细讨论两种神经元模型的学习规则及其功效。 d2 2 3 图8.2格劳斯贝格外星模型图 8.1.1内星学习规则 实现内星输入/输出转换的激活函数是硬限制函数。可以通过内星及其学习规则来训练 某一神经元节点只响应特定的输入矢量P,它是借助于调节网络权矢量W近似于输入矢量P 来实现的 在图8.1所示的单内星中对权值修正的格劳斯贝格内星学习规则为 Aw1j=p(pj-wnj)·a,j=l,2,…r 由(8.1)式可见,内星神经元联接强度的变化Δwj是与输出成正比的。如果内星输出a 被某一外部方式而维护高值时,那么通过不断反复地学习,权值将能够逐渐趋近于输入矢量 p的值,并趋使Δwj逐渐减少,直至最终达到wj=p,从而使内星权矢量学习了输入矢量 P,达到了用内星来识别一个矢量的目的。另一方面,如果内星输出保持为低值时,网络权 矢量被学习的可能性较小,甚至不能被学习 现在来考虑当不同的输入矢量p和p2分别出现在同一内星时的情况。首先,为了训练 的需要,必须将每一输入矢量都进行单位归一化处理,即对每一个输入矢量p(q=1,2), ∑(p)2 去乘以每一个输入元素,因此所得的用来进行网络训练的新输入矢量具有单位 1的模值 2
2 P;而外星则是通过联接权矢量向外输出一组信号 A。它们之所以被称为内星和外星,主要 是因为其网络的结构像星形,且内星的信号流向星的内部;而外星的信号流向星的外部。下 面分别详细讨论两种神经元模型的学习规则及其功效。 图 8.2 格劳斯贝格外星模型图 8.1.1 内星学习规则 实现内星输入/输出转换的激活函数是硬限制函数。可以通过内星及其学习规则来训练 某一神经元节点只响应特定的输入矢量 P,它是借助于调节网络权矢量 W 近似于输入矢量 P 来实现的。 在图 8.1 所示的单内星中对权值修正的格劳斯贝格内星学习规则为: (8.1) 由(8.1)式可见,内星神经元联接强度的变化Δw1j 是与输出成正比的。如果内星输出 a 被某一外部方式而维护高值时,那么通过不断反复地学习,权值将能够逐渐趋近于输入矢量 pj 的值,并趋使Δw1j 逐渐减少,直至最终达到 w1j=pj,从而使内星权矢量学习了输入矢量 P,达到了用内星来识别一个矢量的目的。另一方面,如果内星输出保持为低值时,网络权 矢量被学习的可能性较小,甚至不能被学习。 现在来考虑当不同的输入矢量 p 1 和 p 2 分别出现在同一内星时的情况。首先,为了训练 的需要,必须将每一输入矢量都进行单位归一化处理,即对每一个输入矢量 p q (q=1,2), 用 去乘以每一个输入元素,因此所得的用来进行网络训练的新输入矢量具有单位 1 的模值
当第一个矢量p输入给内星后,网络经过训练,最终达到W=(p2)。此后,给内星输 入另一个输入矢量p2,此时内星的加权输入和为新矢量p2与已学习过矢量p的点积,即 N=W. P2=(Py. P2=I PllP-llcos 012=cos 012 因为输入矢量的模已被单位化为1,所以内星的加权输入和等于输入矢量p和p2之间 夹角的余弦。 根据不同的情况,内星的加权输入和可分为如下几种情况: 1)p2等于p,即有θ1=0,此时,内星加权输入和为1; 2)p2不等于p,随着p向着p离开方向的移动,内星加权输入和将逐渐减少直到p2 与p垂直,即12=90°时,内星加权输入和为0; 3)当p2=p,即012=180°时,内星加权输入和达到最小值-1。 由此可见,对于一个已训练过的内星网络,当输入端再次出现该学习过的输入矢量时, 内星产生1的加权输入和;而与学习过的矢量不相同的输入出现时,所产生的加权输入和总 是小于1。如果将内星的加权输入和送入到一个具有略大于-1偏差的二值型激活函数时,对 于一个已学习过或接近于已学习过的矢量输入时,同样能够使内星的输出为1,而其他情况 下的输出均为0。所以在求内星加权输入和公式中的权值W与输入矢量P的点积,反映了 输入矢量与网络权矢量之间的相似度,当相似度接近1时,表明输入矢量P与权矢量相似, 并通过进一步学习,能够使权矢量对其输入矢量具有更大的相似度,当多个相似输入矢量输 入内星,最终的训练结果是使网络的权矢量趋向于相似输入矢量的平均值 内星网络中的相似度是由偏差b来控制,由设计者在训练前选定,典型的相似度值为b 0.95,这意味着输入矢量与权矢量之间的夹角小于18°48°。若选b=-0.9时,则其夹角 扩大为25°48 一层具有s个神经元的内星,可以用相似的方式进行训练,权值修正公式为: △w;=lr·(Pj-wi) MATLAB神经网络工具箱中内星学习规则的执行是用函数 learnis.m来完成上述权矢量 的修正过程: dw=learnis(W, P, A, Ir): 一层s个内星神经元可以作为一个r到1的解码器。另外,内星通常被嵌在具有外星或
3 当第一个矢量 p 1 输入给内星后,网络经过训练,最终达到 W=(p1 ) T。此后,给内星输 入另一个输入矢量 p 2,此时内星的加权输入和为新矢量 p 2 与已学习过矢量 p 1 的点积,即: (8.2) 因为输入矢量的模已被单位化为 1,所以内星的加权输入和等于输入矢量 p 1 和 p 2 之间 夹角的余弦。 根据不同的情况,内星的加权输入和可分为如下几种情况: 1) p2 等于 p 1,即有θ12=0,此时,内星加权输入和为 1; 2) p2 不等于 p 1,随着 p 2 向着 p 1 离开方向的移动,内星加权输入和将逐渐减少直到 p 2 与 p 1 垂直,即θ12=90°时,内星加权输入和为 0; 3)当 p 2=-p 1,即θ12=180°时,内星加权输入和达到最小值-1。 由此可见,对于一个已训练过的内星网络,当输入端再次出现该学习过的输入矢量时, 内星产生 1 的加权输入和;而与学习过的矢量不相同的输入出现时,所产生的加权输入和总 是小于 1。如果将内星的加权输入和送入到一个具有略大于-1 偏差的二值型激活函数时,对 于一个已学习过或接近于已学习过的矢量输入时,同样能够使内星的输出为 1,而其他情况 下的输出均为 0。所以在求内星加权输入和公式中的权值 W 与输入矢量 P 的点积,反映了 输入矢量与网络权矢量之间的相似度,当相似度接近 l 时,表明输入矢量 P 与权矢量相似, 并通过进一步学习,能够使权矢量对其输入矢量具有更大的相似度,当多个相似输入矢量输 入内星,最终的训练结果是使网络的权矢量趋向于相似输入矢量的平均值。 内星网络中的相似度是由偏差 b 来控制,由设计者在训练前选定,典型的相似度值为 b =-0.95,这意味着输入矢量与权矢量之间的夹角小于 18°48’。若选 b=-0.9 时,则其夹角 扩大为 25°48’。 一层具有 s 个神经元的内星,可以用相似的方式进行训练,权值修正公式为: (8.3) MATLAB 神经网络工具箱中内星学习规则的执行是用函数 learnis.m 来完成上述权矢量 的修正过程: dW=1earnis(W,P,A,lr); W=W 十 dW; 一层 s 个内星神经元可以作为一个 r 到 1 的解码器。另外,内星通常被嵌在具有外星或
其他元件构成的大规模网络中以达到某种特殊的目的。 下面给出有关训练内星网络例子。 「例8.1设计内星网络进行以下矢量的分类辨识 P=[0.18260.6325; 0.36510.3162 054770.3162; 0.730306325]; T=[101 与感知器分类功能不同,内星是根据期望输出值,在本例题中是通过迫使网络在第一个 输入矢量出现时,输出为1,同时迫使网络在第二个输入矢量出现时,输出为0,而使网络 的权矢量逼近期望输出为1的第一个输入矢量 我们首先对网络进行初始化处理 R, Q=size(P) S, Q=size(D): W=zeros(s, R) B=-0.95*ones(S,1) max-epoch=10 r=0.7 注意权矢量在此是进行了零初始化,这里的学习速率的选择也具有任意性,当输入矢量 较少时,学习速率可以选择较大以加快学习收敛速度。另外,因为所给例题中所给输入矢量 已是归一化后的值,所以不用再作处理。下面是设计训练内星网络的程序: for epoch=1: max-epoch A=T(:,q): dw=learnis(W, P(:,q),A, Ir) W=W十dW 经过10次循环以及480次计算后,得到的权矢量为:
4 其他元件构成的大规模网络中以达到某种特殊的目的。 下面给出有关训练内星网络例子。 [例 8.1]设计内星网络进行以下矢量的分类辨识: 与感知器分类功能不同,内星是根据期望输出值,在本例题中是通过迫使网络在第一个 输入矢量出现时,输出为 1,同时迫使网络在第二个输入矢量出现时,输出为 0,而使网络 的权矢量逼近期望输出为 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; 注意权矢量在此是进行了零初始化,这里的学习速率的选择也具有任意性,当输入矢量 较少时,学习速率可以选择较大以加快学习收敛速度。另外,因为所给例题中所给输入矢量 已是归一化后的值,所以不用再作处理。下面是设计训练内星网络的程序: for epoch=1:max-epoch for q=1:Q A=T(:,q); dW=1earnis(W,P(:,q),A,lr); W=W 十 dW; end end 经过 10 次循环以及 480 次计算后,得到的权矢量为:
W=[0.18260.36510.54770.7303] 而当lr=0.3时,其结果为 w=0.18050.36090.54140.7219 由此可见,学习速率较低时,在相同循环次数下,其学习精度较低。但当输入矢量较多 时,较大的学习速度可能产生波动,所以要根据具体情况来确定参数值 在此例题中,因为只有一个输入矢量被置为1,所以实际上,所设置的偏差B=0.95没 有起到作用。内星网络常用在竞争网络以及后面所要介绍的自适应共振理论ART网络中 在那里,其网络的期望输出是通过竞争网络的竞争而得到的。在ART网络中,竞争获胜节 点的有效性是通过所给的相似度B值来决定的 8.1.2外星学习规则 外星网络的激活函数是线性函数,它被用来学习回忆一个矢量,其网络输入P也可以 是另一个神经元模型的输出。外星被训练来在一层s个线性神经元的输出端产生一个特别的 矢量A。所采用的方法与内星识别矢量时的方法极其相似。 对于一个外星,其学习规则为 △wa1=lr(ai-wn)·pj 与内星不同,外星联接强度的变化△w是与输入矢量P成正比的。这意味着当输入矢量 被保持高值,比如接近1时,每个权值w将趋于输出a值,若p=1,则外星使权值产生输 出矢量 当输入矢量p为0时,网络权值得不到任何学习与修正。 当有r个外星相并联,每个外星与s个线性神经元相连组成一层外星时,每当某个外星 的输入节点被置为1时,与其相连的权值到矢量w就会被训练成对应的线性神经元的输出 矢量A,其权值修正方式为 △W=lr·(A-W)·P (8.5) 其中 W=sXr权值列矢量 r=学习速率 A=s×q外星输出
5 W=[0.1826 0.3651 0.5477 0.7303] 而当 lr=0.3 时,其结果为: W=[0.1805 0.3609 0.5414 0.7219] 由此可见,学习速率较低时,在相同循环次数下,其学习精度较低。但当输入矢量较多 时,较大的学习速度可能产生波动,所以要根据具体情况来确定参数值。 在此例题中,因为只有一个输入矢量被置为 l,所以实际上,所设置的偏差 B=-0.95 没 有起到作用。内星网络常用在竞争网络以及后面所要介绍的自适应共振理论 ART 网络中。 在那里,其网络的期望输出是通过竞争网络的竞争而得到的。在 ART 网络中,竞争获胜节 点的有效性是通过所给的相似度 B 值来决定的。 8.1.2 外星学习规则 外星网络的激活函数是线性函数,它被用来学习回忆一个矢量,其网络输入 P 也可以 是另一个神经元模型的输出。外星被训练来在一层 s 个线性神经元的输出端产生一个特别的 矢量 A。所采用的方法与内星识别矢量时的方法极其相似。 对于一个外星,其学习规则为: (8.4) 与内星不同,外星联接强度的变化Δw 是与输入矢量 P 成正比的。这意味着当输入矢量 被保持高值,比如接近 1 时,每个权值 wij 将趋于输出 ai 值,若 pj=1,则外星使权值产生输 出矢量。 当输入矢量 pj 为 0 时,网络权值得不到任何学习与修正。 当有 r 个外星相并联,每个外星与 s 个线性神经元相连组成一层外星时,每当某个外星 的输入节点被置为 1 时,与其相连的权值到矢量 wij 就会被训练成对应的线性神经元的输出 矢量 A,其权值修正方式为: (8.5) 其中: W=s×r 权值列矢量; lr=学习速率; A=s×q 外星输出;