竞争型神经网络要点
这样,当经过越来越多的训练样本学习后,每一个网
络层中的神经元的权值向量很快被调整为最接近某一类输
入向量的值。最终的结果是,如果神经元的数量足够多, 则具有相似输入向量的各类模式作为输入向量时,其对应
的神经元输出为 1;而对于其它模式的输入向量,其对应
的神经元输出为 0。所以,竞争型网络具有对输入向量进 行学习分类的能力。
在 MATLAB 工具箱中,创建竞争型神经网络的函数是 newc。
采用newc创建竞争型神经网络,其权值的初始化函数 为midpoint,阈值的初始化函数为initcon。
竞争型神经网络的学习
竞争型神经网络按 Kohonen 学习规则对获胜神经元的权
(1)Kohonen权值学习规则
值进行调整。假若第i个神经元获胜,则输入权值向量的第i
解:图中的两类模式单单从它 们在二维平面上的位置特征看,没 1 有明显的分类特征,所以以竞争型 神经网络进行分类,其模式输入向 0 -1 1 p 量仅仅靠二维平面上的位置信息是 -1 不够的。但两类模式的形状特征不 一样,于是在输入向量中可增加一 CNN训练:Example71Tr 维表示形状的特征值,我们假设三 角形的特征值为 0 ,而矩形的特征 CNN仿真 :Example71Sim 值为 1 ,于是,一个训练样本的输 入向量是三维的。
行元素(即获胜神经元的各连接权)按下式进行调整:
i
IW(k ) i IW(k 1) p(k ) i IW(k 1)
而其它神经元的权值不变。 Kohonen学习规则通过输入向量进行神经元权值的调整, 因此在模式识别的应用中是很有用的。通过学习,那些最 靠近输入向量的神经元权值向量被修正,使之更靠近,其 结果是获胜的神经元在下一次相似的输入向量出现时,获 胜的可能性会更大;而对于那些相差很远的输入向量,获 胜的可能性将变得很小。
n1为竞争层传输函数的输入,其值为输入向量p和输入 权值向量IW距离的负数与阈值 b1 之和。如果所有的阈值向 量为0,则当输入向量 p和输入权值向量 IW相等时, n1 为最 大值0。 对于n1中最大的元素,竞争层传输函数输出1(即竞争的 “获胜者”输出为 1),而其它元素均输出 0 。如果所有的 阈值向量为0,则当神经元的权值向量最接近输入向量时, 它在n1各元素中的负值最小,而值最大,从而赢得竞争,对 应的输出为1。
进行阈值修正时,神经元输出向量的平均值越大,
其“良心”值越大,所以凭“良心”获得的阈值就小,而 让那些不经常获胜的神经元的阈值逐渐变大。其算法如下: c (k)= (1-lr)*c(k-1) + lr*a(k-1)
b (k)= exp(1-log(c (k))) – b (k-1)
式中,c 为“良心”值;a为神经元输出的平均值;lr为学习率。
p2
1
例7.2 以竞争型神经网络完成图示三类模式的分类。
y 第1类 1 模式 第2类 1 模式 x
,
0.1961 p1 0 . 9806
0.1961 p2 0 . 9806
,
-1 第3类 模式
0 -1
0.9806 p3 0.1961 ,
在 MATLAB 工具箱中,learncon 函数用于进行阈值的修正。
竞争型神经网络存在的问题
对于模式样本本身具有较明显的分类特征,竞争型神 经网络可以对其进行正确的分类,网络对同一类或相似 的输入模式具有较稳定的输出响应。但也存在一些问题: (1)当学习模式样本本身杂乱无章,没有明显的分类 特征时,网络对输入模式的响应呈现振荡的现象,即对 同一类输入模式的响应可能激活不同的输出神经元,从 而不能实现正确的分类。当各类模式的特征相近时,也 会出现同样的状况。 (2)在权值和阈值的调整过程中,学习率的选择在学 习速率和稳定性之间存在矛盾,而不象前面我们介绍的 其它学习算法,可以在刚开始时采用较大的学习率,而 在权值和阈值趋于稳定时,采用较小的学习率。而竞争 型神经网络当增加新的学习样本时,权值和阈值可能需 要比前一次更大的调整。
竞争型神经网络的MATLAB仿真程序设计
竞争型神经网络适于具有明显分类特征的模式分类。其 MATLAB仿真程序设计,主要包括: (1)创建竞争型神经网络。首先根据给定的问题确定训 练样本的输入向量,当不足以区分各类模式时,应想办法增 加特征值;其次,根据模式分类数,确定神经元的数目。
(2)训练网络。训练最大次数的默认值为 100,当训练 结果不能满足分类的要求时,尝试增加训练的最大次数。 (3)以测试样本进行仿真。 例7.1 以竞争型神经网络完成图示两类模式的分类。
在 MATLAB 工具箱中,learnk 函数用于实现 Kohonen 学习规则。
(2)阈值学习规则
竞争型神经网络的一个局限性是,某些神经元可能 永远也派不上用场,换句话说,某些神经元的权值向量从 一开始就远离所有的输入向量,从而使得该神经元不管进 行多长的训练,也永远不会赢得竞争。这些神经元称之为 “死神经元”,实现不了任何有用的函数。 为了避免这一现象的发生,对那些很少获胜(甚至 从来不曾获胜)的神经元赋以较大的阈值,而对那些经常 获胜的神经元赋以较小的阈值。正的阈值与距离的负值相 加,使很少获胜的神经元竞争层传输函数的输入就象获胜 的神经元一样。这一过程就象人们“同情”弱者一样,表 现出一个人的“良心”。 这一过程的实现,需要用到神经元输出向量的平均 值,它等价于每个神经元输出为1的百分比,显然,经常获 胜的神经元,其输出为1的百分比大。
7 竞争型神经网络
Competitive Neural Network
竞争型神经网络是基于无监督学习(Unsupervised learning)方 法的神经网络的一种重要类型,它经常作为基本的网络形式,构成 其它一些具有自组织能力的网络,如自组织映射网络、自适应共振 理论网络、学习向量量化网络等。 生物神经网络存在一种侧抑制的现象,即一个神经细胞兴奋后, 通过它的分支会对周围其他神经细脑产生抑制,这种抑制使神经细 胞之间出现竞争:在开始阶段,各神经元对相同的输入具有相同的 响应机会,但产生的兴奋程度不同,其中兴奋最强的一个神经细胞 对周围神经细胞的抑制作用也最强,从而使其它神经元的兴奋得到 最大程度的抑制,而兴奋最强的神经细胞却“战胜”了其它神经元 的抑制作用脱颖而出,成为竞争的胜利者,并因为获胜其兴奋的程 度得到进一步加强,正所谓“成者为王,败者为寇”。
竞争型神经网络在学习算法上,它模拟了生物神经网络中神 经元之间的兴奋、抑制与竞争的机制,进行网络的学习与训练。
竞争型神经网络模型
输入向量 竞争层
1 IW S R
p R1
1 ||ndist||
S 1
1
a1 n1 S11
C
S1
S11 1
1 R
b1
S11
可以看出竞争型神经网络为单层网络。||ndist|| 的输入为输入向 量p和输入权值向量IW,其输出为S11的列向量,列向量中的每个 元素为输入向量 p 和输入权值向量 IW 距离的负数( negative ),在 神经网络工具箱中以距离函数negdist进行计算。
0.5812 p5 0 . 8137
0.9806 p4 0 . 1961
0.8137 p6 0 . 5812
,
CNple72Sim
(3)网络的分类性能与权值和阈值的初始值、学习率、 训练样本的顺序、训练时间的长短(训练次数)等都有 关系,而又没有有效的方法对各种因素的影响加以评判。 ( 4 )在 MATLAB 神经网络工具箱中,以 trainr 函数进行 竞争型神经网络的训练,用户只能限定训练的最长时间 或训练的最大次数,以此终止训练,但终止训练时网络 的分类性能究竟如何,没有明确的指标进行评判。
结果那些不经常产生响应的神经元的阈值相对于那些
经常产生响应的神经元,其阈值不断增大,使其产生响应的 输入空间也逐渐增大,即对更多的输入向量产生响应,最终,
各神经元对输入向量产生响应的数目大致相等。
这样做有两点好处: 其一,如果某个神经元因为远离所有的输入向量而始 终不能在竞争中获胜时,其阈值将会变得越来越大,使其终 究可以获胜。当这一情况出现后,它将逐渐向输入向量的某 一类聚集,一旦神经元的权值靠近输入向量的某一类模式, 该神经元将经常获胜,其阈值将逐渐减小到 0,这样就解决 了“死神经元”的问题。 其二,它强迫每个神经元对输入向量的分类的百分比大 致相同,所以,如果输入空间的某个区域比另外一个区域聚 集了更多的输入向量,那么输入向量密度大的区域将吸引更 多的神经元,从而获得更细的分类。