1、2019/4/15,第5章 对传网,5.1 网络结构 5.2 网络的运行 5.3 Kohonen层的训练 5.4 Kohonen层联接权的初始化方法 5.5 Grossberg层的训练 5.6 补充说明,2019/4/15,第5章 对传网,Robert Hecht-Nielson 在1987年提出了对向传播神经网络(Counter propagation Networks,CPN),简称对传网。 CPN为异构网: Kohonen1981年提出的自组织映射(Self-organization map,SOM)算法Kohonen层; Grossberg1969年提出的散射星(Outstar)算法G
2、rossberg层。,2019/4/15,第5章 对传网,Kohonen层无导师学习算法,解决网络隐含层的理想输出未知问题; Grossberg层有导师学习算法,解决输出层按系统要求给出指定输出结果的问题。 训练时间短:BP的1%; 应用面:比较窄。 让网络的隐藏层执行无导师学习,是解决多级网络训练的另一个思路。,2019/4/15,5.1 网络结构,2019/4/15,5.1 网络结构,以Kohonen层的神经元为“中心”讨论问题 K1 W1=(w11,w21,wn1)T V1=(v11,v12,v1m) K2 W2=(w12,w22,wn2)T V2=(v21,v22,v2m) Kh Wh
3、=(w1h,w2h,wnh)T Vh=(vh1,vh2,vhm),2019/4/15,5.2 网络的运行,除拓扑结构外,网络的运行机制也是确定网络结构(同构、异构)和性能的重要因素 。 CPN是采用竞争型网络学习规则的异构网。 竞争学习:同一层次的神经元相互竞争,胜利的神经元修改与其连接的权值模式分类。,2019/4/15,5.2 网络的运行,5.2.1 Kohonen层 “强者占先、弱者退出” (the winner takes all ) knetj=XWj= (x1,x2,xn)(w1j,w2j,wnj) T= w1j x1+w2j x2+wnj xn 向量形式KNET=(knet1,k
4、net2,kneth),2019/4/15,5.2.1 Kohonen层,K1,K2,Kh的输出k1,k2,kh构成向量 K=(k1,k2,kh) 1jh1 knetj=Max knet1,knet2,kneth kj=0 其它,2019/4/15,上式等价于几何意义:学习目的:寻找与输入向量X最大相似度(最接近)的Wo,2019/4/15,5.2.2 Grossberg层,Grossberg层的每个神经元Gj (1jm) gnetj= K (v1j,v2j,vhj)T= (k1,k2,kh) (v1j,v2j,vhj)T=k1v1j+ k2v2j+ kh vhj 唯一输出1的神经元为Ko g
5、netj= k1v1j+ k2v2j+ kh vhj= voj,2019/4/15,5.2.2 Grossberg层,GNET=( gnet1 ,gnet2 ,gnetm)=(vo1,vo2,vom)=Vo 散射星:Vo的各个分量是从Ko到Grossberg层各神经元的联接权,2019/4/15,5.2.2 Grossberg层,CPN用于模式的完善,此时n=m:接受含有噪音的输入模式(x1,x2,xn),而输出去掉噪音后的模式(vo1,vo2,vom) 对训练启示 W1,W2,Wh,各类X的共同特征 V1,V2,Vh,X对应的理想输出Y的共同特征,2019/4/15,5.3 Kohonen层
6、的训练,5.3.1 输入向量的预处理 单位化处理 X= (x1,x2,xn) X= (x1,x2,xn)= (x1/X,x2/X,xn/X) 即:xj xj/X,2019/4/15,算法 5-1 Kohonen层训练算法,对所有的输入向量,进行单位化处理; 对每个样本(X,Y)执行下列过程 2.1 for j=1 to h do 根据相应式子计算knetj;2.2 求出最大的kneto:2.2.1 max=knet1;o=1 2.2.2 for j=1 to h do if knetjmax then max=knetj;o=j;,2019/4/15,算法 5-1 Kohonen层训练算法,2
7、.3 计算K 2.3.1 for j=1 to h do kj=0; 2.3.2 ko=1; 2.4 使Wo更接近X:Wo(new)=Wo(old)+(X- Wo(old); 2.5 对Wo(new)进行单位化处理,2019/4/15,Wo(new)=Wo(old)+(X- Wo(old),(0,1)Wo(new)=Wo(old)+(X- Wo(old)= Wo(old)+X-Wo(old) X-Wo(new)=X-Wo(old)+(X- Wo(old)=X-Wo(old)-X+Wo(old)= X(1-) -Wo(old)(1-)=(1-)(X-Wo(old) 由0(1-)1,Wo(new)
8、比Wo(old)更接近X,2019/4/15,Wo(new)=Wo(old)+(X- Wo(old),Wo(old),2019/4/15,学习率,训练初期,一般取0.7左右,它将随着训练进展不断变小,一个典型的调整公式为a(t)=a(0)*(1-t/Num)其中,a(0)为初始学习速率,t为学习次数,Num是终止的迭代次数。显然,a(t)是关于学习次数t的单调下降函数。如果单一,会过大而导致有的X被放入错误的类中;使训练陷入抖动。,2019/4/15,5.4 Kohonen层联接权初始化,事先给问题一个粗略分类,并从这个分类中提取一个较有代表性的向量构成样本集。 根据X的分布决定W的初值,防止
9、类过小和过大。 启发我们采用训练和直接设定权向量的方式来完成该层的训练。,2019/4/15,5.4 Kohonen层联接权初始化,理想情况下,W1,W2,Wh的初值应该依照样本集中的输入向量的分布来确定; 但实际中样本集中的输入向量的分布往往并不是均匀的随机产生的权值存在问题。 一般来说,一个类含有许多向量。这个类对应的Wj应该是样本集中这一类向量(输入向量部分)的平均值。,2019/4/15,Xi的非均匀分布要求Wi非均匀分布,2019/4/15,凸状组合法,取 wij=,将输入向量 X= (x1,x2,xn) 变换为 X= (x1,x2,xn) 其中,2019/4/15,凸状组合法,随着
10、训练的进行,趋近于1,从而使X趋近于X,进而Wj趋近于一组X的平均值。,在训练的初期阶段,的值非常小,使得,W需要追踪一个变化的目标,2019/4/15,添加噪音法,在输入向量中加进适当的随机噪音,使输入向量的分布均匀。训练中逐渐去掉噪音 Wj不断地调整自己的“运动方向”,去追踪其不断变化的目标。试验表明,这种方法的收敛速度比凸状组合法更慢。,W也需要追踪一个变化的目标,2019/4/15,X在加噪音后变成均匀分布的,2019/4/15,初期全调法,Kohonen层训练的初期,对应一个输入向量,允许多个神经元同时处于激发状态。逐渐减少被激发的神经元的最大个数或者逐渐提高阈值,最后达到对一个输入
11、向量,只有一个神经元激发 要解决的问题 问题调整的范围的度量。,2019/4/15,初期全调法,另一种实现 在训练的初期,算法不仅调整“获胜”的神经元对应的权向量,而且对其它的权向量也作适当的调整。随着训练的推进,被调整的范围逐渐缩小,直到最终只有“获胜”的神经元对应的权向量才被调整 要解决的问题 问题调整的范围的度量。 其它的权向量的“适当调整”,2019/4/15,DeSieno法,当某一个权向量所获得的匹配向量超过给定的数(1/h)后,它的阈值就被临时提高 问题:当最应该被某个神经元对应的权向量匹配的输入向量在较后的时候被输入时,它可能被拒绝,从而造成网络精度的损失 Kohonen 19
12、88:在一个被完全训练过的网中,随机选取的输入向量与任何给定权向量是最接近的概率是1/h 按均匀分布初始化的权向量具有相同被匹配概率,2019/4/15,5.5 Grossberg层的训练,训练 标量形式voj= voj+(yj- voj) 向量形式Vo(new)= Vo(old)+(Y- Vo(old) 比较Wo(new)=Wo(old)+(X- Wo(old),Kohonen层,2019/4/15,算法5-2 CPN训练算法一,0 对W、V进行初始化; 1 对所有的输入向量,进行单位化处理; 2 对每个样本(X,Y)执行下列过程2.1 for j=1 to h do 根据knetj=XWj
13、计算knetj;2.2 求出最大的kneto:2.2.1 max=knet1;o=1;2.2.2 for j=1 to h do 2.2.2.1 if knetjmax then max=knetj;o=j;,2019/4/15,算法5-2 CPN训练算法一,2.3 计算K:2.3.1 for j=1 to h do kj=0;2.3.2 ko=1; 2.4 使Wo更接近X:Wo(new)=Wo(old)+(X- Wo(old); 2.5 对Wo(new)进行单位化处理; 2.6 使Vo更接近Y:Vo(new)= Vo(old)+(Y- Vo(old)。,2019/4/15,算法5-3 CPN
14、训练算法二,对应Kohonen的每一个Ki,它将代表一组输入向量,所以希望这个Ki对应的Vi能代表这组输入向量对应的输出向量的平均值。 0 对W、V进行初始化; 0清空Kohonen层各神经元对应的纪录表:for j=1 to h do SKj=; 1 对所有的输入向量,进行单位化处理;,2019/4/15,算法5-3 CPN训练算法二,2 对每个样本(Xs,Ys)执行下列过程2.1 for j=1 to h do2.1.1 根据相应式子计算knetj;2.2 求出最大的kneto:2.2.1 max=knet1;o=1;2.2.2 for j=1 to h do 2.2.2.1 if kne
15、tjmax then max=knetj;o=j;,2019/4/15,算法5-3 CPN训练算法二,2.3 计算K:2.3.1 for j=1 to h do kj=0;2.3.2 ko=1;2.4 使Wo更接近Xs:Wo(new)=Wo(old)+(Xs- Wo(old);2.5 对Wo(new)进行单位化处理;2.6 将Ys放入SKo:SKo=SKoYs; 3 for j=1 to h doVj= SKj中各向量的平均值,2019/4/15,算法的进一步优化,集合变量SK1, SK2 ,SKh改为其它存储量更小,而且更容易实现的变量 在Xs激发Ko时,Ys被放入到SKo中 会出现一个向量被放入多个SK中的问题,2019/4/15,5.6 补充说明 1、全对传网,2019/4/15,2、非简单工作方式,对给定的输入向量,Kohonen层各神经元可以给出不同的输出 输出作为修改因子 对应神经元Kohonen层、Grossberg层的权向量 输出值较大的,表明该输入向量与该神经元对应的类较接近,它对应的权向量的修改量就大 输出值较小的,表明该输入向量与该神经元对应的类较远,它对应的权向量的修改量就小。,