自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第二部分
上一篇介绍了一些自组织神经网络的基本概念,第一部分,这一篇讲下SOM的概念和原理,是本文的第二部分。
1、SOM背景
1981年芬兰Helsink大学的T.Kohonen教授提出一种自组织特征映射网,简称SOM网,又称Kohonen网。Kohonen认为:一个神经网络接受外界输入模式时,将会分为不同的对应区域,各区域对输入模式具有不同的响应特征,而且这个过程是自动完成的。自组织特征映射正是根据这一看法提出来的,其特点与人脑的自组织特性相类似。
2、SOM典型结构
典型SOM网共有两层,输入层模拟感知外界输入信息的视网膜,输出层模拟做出响应的大脑皮层。(讲之前再提醒一句,这里介绍的只是经典形式,但是希望读者和我自己不要被现有形式束缚了思维,当然初学者,包括我自己,先从基本形式开始理解吧)。 下图是1维和2维的两个SOM网络示意图。
SOM网的权值调整域
和上一节介绍的WTA策略不同,SOM网的获胜神经元对其邻近神经元的影响是由近及远,由兴奋逐渐转变为抑制,因此其学习算法中不仅获胜神经元本身要调整权向量,它周围的神经元在其影响下也要程度不同地调整权向量。这种调整可用三种函数表示,下图的bcd。
Kohonen算法:基本思想是获胜神经元对其邻近神经元的影响是由近及远,对附近神经元产生兴奋影响逐渐变为抑制。在SOM中,不仅获胜神经元要训练调整权值,它周围的神经元也要不同程度调整权向量。常见的调整方式有如下几种[2]:
- 墨西哥草帽函数:获胜节点有最大的权值调整量,临近的节点有稍小的调整量,离获胜节点距离越大,权值调整量越小,直到某一距离0d时,权值调整量为零;当距离再远一些时,权值调整量稍负,更远又回到零。如(b)所示
- 大礼帽函数:它是墨西哥草帽函数的一种简化,如(c)所示。
- 厨师帽函数:它是大礼帽函数的一种简化,如(d)所示。
以获胜神经元为中心设定一个邻域半径R,该半径圈定的范围称为优胜邻域。在SOM网学习算法中,优
胜邻域内的所有神经元均按其离开获胜神经元的距离远近不同程度地调整权值。 优胜邻域开始定得很大,但其大小随着训练次数的增加不断收缩,最终收缩到半径为零。
3、SOM Kohonen 学习算法
算法总结如下:
Kohonen学习算法
- 初始化,对竞争层(也是输出层)各神经元权重赋小随机数初值,并进行归一化处理,得到
w^j,j=1,2,...m ;建立初始优胜领域Nj∗(0) ;学习率η 初始化; - 对输入数据进行归一化处理,得到
X^p,j=1,2,...P ,总共有P个数据; - 寻找获胜神经元:从
X^p 与所有w^j 的内积中找到最大j∗ ; - 定义优胜邻域
Nj∗(t) 以j∗ 为中心确定t 时刻的权值调整域,一般初始邻域Nj∗(0) 较大,训练时Nj∗(t) 随训练时间逐渐收缩; 调整权重,对优胜邻域
Nj∗(t) 内的所有神经元调整权重:
wij(t+1)=wij(t)+η(t,N)[xPi−wij(t)]i=1,2,...,nj∈Nj∗(t)
其中i 是一个神经元所有输入边的序标。式中,η(t,N) 是训练时间t 和邻域内第j个神经元与获胜神经元j∗ 之间的拓扑距离N的函数,该函数一般有如下规律:
结束检查,查看学习率是否减小到0,或者以小于阈值。
第(5)点的规律是说,随着时间(离散的训练迭代次数)变长,学习率逐渐降低;随着拓扑距离的增大,学习率降低。学习率函数的形式一般可以写成这样:
第(4)点中,j*的领域
本篇最后看一个SOM工作原理示意图,首先给定训练数据(绿点)和神经元权重初始值(红花)
通过迭代训练之后,神经元权重趋向于聚类中心;
Test阶段,给定数据点(黄点),基于WTA策略,用内积直接算出和哪个神经元最相似就是分到哪个类。
算法流程总结
OK,本篇就到这里,描述了SOM的基本原理与训练方法;下一篇将讲解SOM实际应用的例子,也是SOM介绍的最后一部分。
参考资料
[1] https://en.wikipedia.org/wiki/Self-organizing_map
[2] 百度文库,《SOM自组织特征映射神经网络》
[3] 《第四章 自组织竞争型神经网络》, PPT
********:该做什么就做什么,不该做什么就不做什么?还是不该做什么可以不做什么?