当前位置:首页 > 第08讲 自组织竞争人工神经网络 - 图文
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外星输出;
5
P=r×q外星输入。
MATLAB工具箱中实现外星学习与设计的函数为learnos.m,其调用过程如下: dW=learnos(W,A,P,lr); W=W十dW;
下面给出外星的一个例题。
[例8.2]下面有两元素的输入矢量以及与它们相关的四元素目标矢量,试设计一个外星网络实现有效的矢量的获得,外星没有偏差。
P=[1 0];
T=[0.1826 0.6325; 0.3651 0.3162; 0.5477 0.3162; 0.7303 0.6325];
很显然,此例题为内星[例8.1]的反定义。
该网络的每个目标矢量强迫为网络的输出,而输入只有0或1。网络训练的结果是使其权矩阵趋于所对应的输入为1时的目标矢量。
同样网络被零权值初始化: [R,Q]=size(P); [S,Q]=size(T); W=zeros(S,R); max_epoch=10; 1r=0.3;
下面根据外星学习规则进行训练 for epoch=1:max_epoch
for q=1:Q
A=T(:,q);
dW=learnos(W,P(:,q),A,lr); W=W十dW; end end
一旦训练完成,当外星工作时,对设置于输入为1的矢量,将能够回忆起被记忆在网络
6
中的第一个目标矢量的近似值: 》Ptest=[1]; 》A=pureline(W*Ptest) A=
0.1774 0.3548 0.5322 0.7097
由此可见,此外星已被学习来回忆起了第一个矢量。事实上,它被学习来回亿出在[例8.1]中学习识别出的那个矢量。即上述外星的权值非常接近于[例8.1]中已被识别的矢量。
内星与外星之间的对称性是非常有用的。对一组输入和目标来训练一个内星层与将其输入与目标相对换,来训练一个外星层的结果是相同的,即它们之间的权矩阵的结果是相互转置的。这一事实,被后来应用到了ARTl网络中。
8.1.3科荷伦学习规则
科荷伦学习规则是由内星规则发展而来的。对于其值为0或1的内星输出,当只对输出为1的内星权矩阵进行修正,即学习规则只应用于输出为1的内星上,将内星学习规则中的ai取值1,则可导出科荷伦规则为:
(6.6)
科荷伦学习规则实际上是内星学习规则的一个特例,但它比采用内星规则进行网络设计要节省更多的学习,因而常常用来替代内星学习规则。
在MATLAB工具箱中,在调用科荷伦学习规则函数learnk.m时,一般通过先寻找输出为1的行矢量i,然后仅对与i相连的权矩阵进行修正。使用方法如下: i=find(A==1);
dW=learnk(W,P,i,1r); W=W十dW;
一般情况下科荷伦学习规则比内星学习规则能够提高训练速度1到2个数量级。
7
8.2自组织竞争网络 8.2.1网络结构
竞争网络由单层神经元网络组成,其输入节点与输出节点之间为全互联结。因为网络在学习中的竞争特性也表现在输出层上,所以在竞争网络中把输出层又称为竞争层,而与输入节点相连的权值及其输入合称为输入层。实际上,在竞争网络中,输入层和竞争层的加权输入和共用同一个激活函数,如图8.3所示。
竞争网络的激活函数为二值型{0,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有wij<0。
图8.3竞争网络结构图
下面来具体分析竞争网络的输出情况。 设网络的输入矢量为:P=[ p1 p2 … pr]T; 对应网络的输出矢量为:A=[a1 a2 … as]T。
由于竞争网络中含有两种权值,所以其激活函数的加权输入和也分为两部分:来自输入节点的加权输入和N与来自竞争层内互相抑制的加权输入和G。具体地说,对于第i个神经元有:
8
共分享92篇相关文档