1、由竞争层到输出层,网络按照基本竞争型网络学习规则,得到各输出神经元的实际输出值,并按照有教师型的误差校正方法,修正由竞争层到输出层的连接权。经过这样的反复学习,可以将任意的输入模式映射为输出模式。,二.CPN网络结构,三.CPN网络学习和工作规则,假定输入层有N个神经元,P个连续值的输入模式为,竞争层有Q个神经元,对应的二值输出向量为,输出层有M个神经元,其连续值的输出向量为,目标输出向量为,以上。由输入层至竞争层的连接权值向量为;由竞争层到输出层的连接权值向量为。网络学习和工作规则如下所述:,(1)初始化。将连接权向量 和 赋予区间0,1内的随机值。将所有的输入模式 进行归一化处理:(2)将
2、第k个输入模式 提供给网络的输入层。(3)将连接权值向量 按照下式进行归一化处理:(4)求竞争层中每个神经元的加权输入和:,三.CPN网络学习和工作规则,(5)求连接权向量 中与 距离最近的向量:将神经元g的输出设定为1,其余竞争层神经元的输出设定为0:(6)将连接权向量 按照下式进行修正:其中,为学习率。(7)将连接权向量 重新归一化,归一化算法同上。,三.CPN网络学习和工作规则,(8)按照下式修正竞争层到输出层的连接权向量:由步骤(5)可将上式简化为:由此可见,只需调整竞争层获胜神经元g到输出层神经元的连接权向量,其他连接权向量保持不变。(9)求输出层各神经元的加权输入,并将其作为输出神
3、经元的实际输出值,同理可将其简化为(10)返回步骤(2),直到将p个输入模式 全部提供给网络。(11)令t=t+1,将输入模式 重新提供给网络学习,直到t=T。其中T为预先设定的学习总次数,一般取500T10000。,三.CPN网络学习和工作规则,CPN网络训练结束后,按照以下步骤进行网络回想:(1)将输入模式A提供给网络的输入层。(2)根据下式求出竞争层的获胜神经元g:(3)令=1,其余的输出都等于0,按照下式求出输出层各神经元的输出:由此产生了输出模式为,从而就得到了输入A得分类结果。,三.CPN网络学习和工作规则,四.CPN神经网络实例,本文以酒瓶三元色分类为例来介绍该算法的应用。其中,
4、前29组数据已确定类别,后30组数据待确定类别。由分析知,该网络的输入层有3个神经元,输出层有4个神经元,为了更加精确地解决问题,将竞争层神经元设置为13个。下面对网络进行一个周期的学习。网络结构如下图所示:,四.CPN神经网络实例,四.CPN神经网络实例,程序代码如下:%初始化正向权值w和反向权值vw=rands(13,3)/2+0.5;v=rands(1,13)/2+0.5;%输入向量P和目标向量TP=importdata(C:UsersAdministratorDesktoplnSelfOrganizationtrain.dat);T=importdata(C:UsersAdminist
5、ratorDesktoplnSelfOrganizationtarget.dat);T_out=T;%设定学习步数为1000次epoch=1000;%归一化输入向量Pfor i=1:29 if P(i,:)=0 0 0 P(i,:)=P(i,:);else P(i,:)/norm(P(i,:endend,四.CPN神经网络实例,%开始训练while epoch0for j=1:29%归一化正向权值w for i=1:13 w(i,:)=w(i,:)/norm(w(i,:s(i)=P(j,:)*w(i,:end%求输出为最大的神经元,即获胜神经元 temp=max(s);for i=1:13 i
6、f temp=s(i)count=i;end end%将所有竞争层神经单元的输出置0 for i=1:13 s(i)=0;end,四.CPN神经网络实例,%将获胜的的神经元输出置1 s(count)=1;%权值调整 w(count,:)=w(count,:)+0.1*P(j,:)-w(count,:w(count,:)/norm(w(count,:v(:,count)=v(:,count)+0.1*(T(j,:)-T_out(j,:%计算网络输出 T_out(j,:)=v(:,count);end%训练次数递减epoch=epoch-1;end%训练结束T_out%网络回想%网络的输入模式Pc
7、Pc=importdata(C:UsersAdministratorDesktoplnSelfOrganizationSimulation.dat);,四.CPN神经网络实例,%初始化Pcfor i=1:20 if Pc(i,:)=0 0 0 Pc(i,:)=Pc(i,:else Pc(i,:)/norm(Pc(i,:endend%网络输出Outc=0;0;for j=1:20 for i=1:13 sc(i)=Pc(j,:end tempc=max(sc);13 if tempc=sc(i)countp=i;,四.CPN神经网络实例,end sc(i)=0;end sc(countp)=1;
8、Outc(j,:,countp);end%回想结束Outc,四.CPN神经网络实例,运行上述程序,系统给出使用CPN神经网络训练的分类器对样本数据的分类结果:,2.0000 2.0000 1.0000 3.0000 2.0000 2.0000 3.0000 3.0000 2.0000 4.0000 2.0000 1.0000 3.0000 4.0000 4.0000 4.0000,T_out=3.0000 4.0000 3.0000 1.0000 4.0000 1.0000 3.0000 2.0000 4.0000 4.0000 3.0000 4.0000 4.0000,四.CPN神经网络实例
9、,将系统的数出结果与目标结果对比,结果如下表所示。,四.CPN神经网络实例,将系统的数出结果与目标结果对比,结果如下表所示。,四.CPN神经网络实例,训练后的CPN网络对训练数据进行分类后的结果与目标结果完全吻合。继续运行程序,系统给出训练后的CPN网络对待分类样本的分类结果:,3.0000 3.0000 3.0000 1.0000 2.0000 4.0000 2.0000 4.0000 3.0000 4.0000 2.0000,Outc=3.0000 3.0000 1.0000 3.0000 4.0000 2.0000 2.0000 3.0000 4.0000,四.CPN神经网络实例,多次运
10、行程序,程序对待分类样本数据给出分类结果,如下表所示。,四.CPN神经网络实例,多次运行程序,程序对待分类样本数据给出分类结果,如下表所示。,从上表中可以看出,用CPN神经网络出现数据不稳定的原因主要是由于CPN算法设计的不完善所致。但仔细观察序号为10的数据的3个特征值,特征值A为1494.63,与第三类中的序号为8的数据的特征值A(1507.13)极其相近,而且特征值B和C与第3类中样本的特征值也相差不远,这也是被CPN网络误判的一个原因。,四.CPN神经网络实例,五.小结,如果给出标准答案,则可经过对比分析,得出用CPN神经网络对测试样本的分类结果与标准答案有几个不同。若有分类异常出现,
11、这主要是由于CPN算法设计的不完善所致。观察出现异常的那组数据,会发现这组数据会与表中误判类的某个数据相差不远或者极其相近,这也是这组数据被CPN网络误判的一个原因。总的来说,由CPN神经网络的分类结果可知CPN神经网络在模式分类上有较高的准确率,能够正确、有效、快速地区分不同的特征点,学习时间较快,学习效率较高。,通过用实例学习CPN网络分类法,得出进行模式聚类时需要注意的几个问题:(1)根据实际问题为竞争层选择合理的神经元个数,并进行恰当的排列。一般来说,竞争层的神经元越多,结果越精确,但是竞争层的神经元过多会大大的加大训练时间,同时竞争层的神经元的增加会造成网络的容错能力下降,因此竞争层神经元的数目必须要适当的选取,不能太多,也不能太少,需要结合经验,经过多次试算来确定。(2)一般来说,训练次数和训练速率都会影响到分类精度,综合考虑分类精度和运算时间来确定合适的训练次数和训练速率。一般首先选择一个比较大的训练次数和比较小的训练速度,不断观察分类结果,当分类结果不再发生改变时,对应的训练次数就是合理的次数。,五.小结,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1