SOM自组织神经网络

SOM自组织神经网络


自组织神经网络竞争学习规则:winner take all。

how to find the winner?首先,对网络当前输入模式向量X和竞争层中的个神经元对应的权重向量Wj(对应j神经元)全部进行归一化,使得X和Wj的模为1;当前网络得到一个输入模式向量X时,竞争层的所有神经元对应的权重向量均与其进行相似性比较,并将 最相似的权重向量判为竞争获胜神经元。最后进行神经元的输出和训练调整权重。

因此,总结来说,竞争学习的步骤是: 
(1)向量归一化 
(2)寻找获胜神经元 
(3)网络输出与权值调整 

步骤(3)完成后回到步骤1继续训练,直到学习率衰减到0。学习率处于(0,1],一般随着学习的进展而减小,即调整的程度越来越小,神经元(权重)趋于聚类中心。

SOM的特性(优缺点):

(1)最后只有一个神经元获胜

(2)神经元结构与结果有直接的关系

(3)神经元个数与结果也有很直接的关系

好像说了一些废话一样,但是在实际训练过程中也是和其他神经网络一样不断地调参寻优。

算法流程:



以下完全参考资料中所说:很详细,不在对此阐述。

SOM设计细节

输出层设计 
输出层神经元数量设定和训练集样本的类别数相关,但是实际中我们往往不能清除地知道有多少类。如果神经元节点数少于类别数,则不足以区分全部模式,训练的结果势必将相近的模式类合并为一类;相反,如果神经元节点数多于类别数,则有可能分的过细,或者是出现“死节点”,即在训练过程中,某个节点从未获胜过且远离其他获胜节点,因此它们的权值从未得到过更新。

不过一般来说,如果对类别数没有确定知识,宁可先设定较多的节点数,以便较好的映射样本的拓扑结构,如果分类过细再酌情减少输出节点。“死节点”问题一般可通过重新初始化权值得到解决。

输出层节点排列的设计 
输出层的节点排列成哪种形式取决于实际应用的需要,排列形式应尽量直观反映出实际问题的物理意义。例如,对于旅行路径类的问题,二维平面比较直观;
对于一般的分类问题,一个输出节点节能代表一个模式类,用一维线阵意义明确结构简单

权值初始化问题 
基本原则是尽量使权值的初始位置与输入样本的大概分布区域充分重合,不要出现大量的初始“死节点”。

  • 一种简单易行的方法是从训练集中随机抽取m个输入样本作为初始权值
  • 另一种可行的办法是先计算出全体样本的中心向量,在该中心向量基础上迭加小随机数作为权向量初始值,也可将权向量的初始位置确定在样本群中(找离中心近的点)。

优胜邻域的设计 
优胜领域设计原则是使领域不断缩小,这样输出平面上相邻神经元对应的权向量之间既有区别又有相当的相似性,从而保证当获胜节点对某一类模式产生最大响应时,其领域节点也能产生较大响应。领域的形状可以是正方形、六边形或者菱形。优势领域的大小用领域的半径表示,r(t)r(t)的设计目前没有一般化的数学方法,通常凭借经验来选择。下面是两种典型形式: 

r(t)=C1(1tT)r(t)=C1eB1t/Tr(t)=C1(1−tT)r(t)=C1e−B1t/T

C1C1 为于输出层节点数有关的正常数,  B1B1 为大于1的常数,T为预先选定的最大训练次数。

学习率的设计 
在训练开始时,学习率可以选取较大的值,之后以较快的速度下降,这样有利于很快捕捉到输入向量的大致结构,然后学习率在较小的值上缓降至0值,这样可以精细地调整权值使之符合输入空间的样本分布结构。在上一篇中,我们提到最终的学习率是由学习率*优胜领域的影响,也有一些资料是把两者分开的,学习率就是一个递减的函数(学习率可以参考上面优胜邻域半径的设定形式,可选形式类似),而优胜邻域也是t的递减函数,只不过我们队优胜邻域内的点进行更新罢了。



参考资料

https://blog.csdn.net/xbinworld/article/details/50818803

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值