CPN神经网络PPT推荐.pptx
《CPN神经网络PPT推荐.pptx》由会员分享,可在线阅读,更多相关《CPN神经网络PPT推荐.pptx(27页珍藏版)》请在冰豆网上搜索。
由竞争层到输出层,网络按照基本竞争型网络学习规则,得到各输出神经元的实际输出值,并按照有教师型的误差校正方法,修正由竞争层到输出层的连接权。
经过这样的反复学习,可以将任意的输入模式映射为输出模式。
二.CPN网络结构,三.CPN网络学习和工作规则,假定输入层有N个神经元,P个连续值的输入模式为,竞争层有Q个神经元,对应的二值输出向量为,输出层有M个神经元,其连续值的输出向量为,目标输出向量为,以上。
由输入层至竞争层的连接权值向量为;
由竞争层到输出层的连接权值向量为。
网络学习和工作规则如下所述:
(1)初始化。
将连接权向量和赋予区间0,1内的随机值。
将所有的输入模式进行归一化处理:
(2)将第k个输入模式提供给网络的输入层。
(3)将连接权值向量按照下式进行归一化处理:
(4)求竞争层中每个神经元的加权输入和:
三.CPN网络学习和工作规则,(5)求连接权向量中与距离最近的向量:
将神经元g的输出设定为1,其余竞争层神经元的输出设定为0:
(6)将连接权向量按照下式进行修正:
其中,为学习率。
(7)将连接权向量重新归一化,归一化算法同上。
三.CPN网络学习和工作规则,(8)按照下式修正竞争层到输出层的连接权向量:
由步骤(5)可将上式简化为:
由此可见,只需调整竞争层获胜神经元g到输出层神经元的连接权向量,其他连接权向量保持不变。
(9)求输出层各神经元的加权输入,并将其作为输出神经元的实际输出值,同理可将其简化为(10)返回步骤
(2),直到将p个输入模式全部提供给网络。
(11)令t=t+1,将输入模式重新提供给网络学习,直到t=T。
其中T为预先设定的学习总次数,一般取500T10000。
三.CPN网络学习和工作规则,CPN网络训练结束后,按照以下步骤进行网络回想:
(1)将输入模式A提供给网络的输入层。
(2)根据下式求出竞争层的获胜神经元g:
(3)令=1,其余的输出都等于0,按照下式求出输出层各神经元的输出:
由此产生了输出模式为,从而就得到了输入A得分类结果。
三.CPN网络学习和工作规则,四.CPN神经网络实例,本文以酒瓶三元色分类为例来介绍该算法的应用。
其中,前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:
UsersAdministratorDesktoplnSelfOrganizationtarget.dat);
T_out=T;
%设定学习步数为1000次epoch=1000;
%归一化输入向量Pfori=1:
29ifP(i,:
)=000P(i,:
)=P(i,:
);
elseP(i,:
)/norm(P(i,:
endend,四.CPN神经网络实例,%开始训练whileepoch0forj=1:
29%归一化正向权值wfori=1:
13w(i,:
)=w(i,:
)/norm(w(i,:
s(i)=P(j,:
)*w(i,:
end%求输出为最大的神经元,即获胜神经元temp=max(s);
fori=1:
13iftemp=s(i)count=i;
endend%将所有竞争层神经单元的输出置0fori=1:
13s(i)=0;
end,四.CPN神经网络实例,%将获胜的的神经元输出置1s(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%网络回想%网络的输入模式PcPc=importdata(C:
UsersAdministratorDesktoplnSelfOrganizationSimulation.dat);
四.CPN神经网络实例,%初始化Pcfori=1:
20ifPc(i,:
)=000Pc(i,:
)=Pc(i,:
elsePc(i,:
)/norm(Pc(i,:
endend%网络输出Outc=0;
0;
forj=1:
20fori=1:
13sc(i)=Pc(j,:
endtempc=max(sc);
13iftempc=sc(i)countp=i;
四.CPN神经网络实例,endsc(i)=0;
endsc(countp)=1;
Outc(j,:
countp);
end%回想结束Outc,四.CPN神经网络实例,运行上述程序,系统给出使用CPN神经网络训练的分类器对样本数据的分类结果:
2.00002.00001.00003.00002.00002.00003.00003.00002.00004.00002.00001.00003.00004.00004.00004.0000,T_out=3.00004.00003.00001.00004.00001.00003.00002.00004.00004.00003.00004.00004.0000,四.CPN神经网络实例,将系统的数出结果与目标结果对比,结果如下表所示。
四.CPN神经网络实例,将系统的数出结果与目标结果对比,结果如下表所示。
四.CPN神经网络实例,训练后的CPN网络对训练数据进行分类后的结果与目标结果完全吻合。
继续运行程序,系统给出训练后的CPN网络对待分类样本的分类结果:
3.00003.00003.00001.00002.00004.00002.00004.00003.00004.00002.0000,Outc=3.00003.00001.00003.00004.00002.00002.00003.00004.0000,四.CPN神经网络实例,多次运行程序,程序对待分类样本数据给出分类结果,如下表所示。
四.CPN神经网络实例,多次运行程序,程序对待分类样本数据给出分类结果,如下表所示。
从上表中可以看出,用CPN神经网络出现数据不稳定的原因主要是由于CPN算法设计的不完善所致。
但仔细观察序号为10的数据的3个特征值,特征值A为1494.63,与第三类中的序号为8的数据的特征值A(1507.13)极其相近,而且特征值B和C与第3类中样本的特征值也相差不远,这也是被CPN网络误判的一个原因。
四.CPN神经网络实例,五.小结,如果给出标准答案,则可经过对比分析,得出用CPN神经网络对测试样本的分类结果与标准答案有几个不同。
若有分类异常出现,这主要是由于CPN算法设计的不完善所致。
观察出现异常的那组数据,会发现这组数据会与表中误判类的某个数据相差不远或者极其相近,这也是这组数据被CPN网络误判的一个原因。
总的来说,由CPN神经网络的分类结果可知CPN神经网络在模式分类上有较高的准确率,能够正确、有效、快速地区分不同的特征点,学习时间较快,学习效率较高。
通过用实例学习CPN网络分类法,得出进行模式聚类时需要注意的几个问题:
(1)根据实际问题为竞争层选择合理的神经元个数,并进行恰当的排列。
一般来说,竞争层的神经元越多,结果越精确,但是竞争层的神经元过多会大大的加大训练时间,同时竞争层的神经元的增加会造成网络的容错能力下降,因此竞争层神经元的数目必须要适当的选取,不能太多,也不能太少,需要结合经验,经过多次试算来确定。
(2)一般来说,训练次数和训练速率都会影响到分类精度,综合考虑分类精度和运算时间来确定合适的训练次数和训练速率。
一般首先选择一个比较大的训练次数和比较小的训练速度,不断观察分类结果,当分类结果不再发生改变时,对应的训练次数就是合理的次数。
五.小结,