目录

1 背景:自组织(竞争型)神经网络

2 竞争学习的概念与原理

2.1 竞争学习的步骤

2.2 示例

3 SOM典型结构

4 SOM网的权值调整域

5 SOM Kohonen 学习算法

6 SOM示例

7 SOM设计细节

7.1 输出层设计

7.2 输出层节点排列的设计

7.3 权值初始化问题

7.4 学习率的设计

7.5 设计拓扑领域

8 SOM功能分析

8.1 保序映射

8.2 数据压缩

8.3 特征提取

9 自组织映射神经网络与K均值算法的区别


        自组织映射神经网络(Self-Organizing Map,SOM)是无监督学习方法中一类重要方法,可以用作聚类、高维可视化、数据压缩、特征提取等多种用途。在深度神经网络大为流行的今天,谈及自组织映射神经网络依然是一件非常有意义的事情,这主要是由于自组织映射神经网络融入了大量人脑神经元的信号处理机制,有着独特的结构特点。该模型由芬兰赫尔辛基大学教授Teuvo Kohonen于1981年提出,因此也被称为Kohonen网络。

1 背景:自组织(竞争型)神经网络

SOM是一种自组织(竞争型)神经网络,除了SOM外,其他常见的自组织(竞争型)神经网络还有对偶传播(Counter propagation)网络,自适应共振理论(Adaptive Resonance Theory)网络等。

生物学研究表明,在人脑的感觉通道上,神经元的组织原理是有序排列的。当外界的特定时空信息输入时,大脑皮层的特定区域兴奋,而且类似的外界信息在对应的区域是连续映像的。生物视网膜中有许多特定的细胞对特定的图形比较敏感,当视网膜中有若干个接收单元同时受特定模式刺激时,就使大脑皮层中的特定神经元开始兴奋,输入模式接近,与之对应的兴奋神经元也接近;在听觉通道上,神经元在结构排列上与频率的关系十分密切,对于某个频率,特定的神经元具有最大的响应,位置相邻的神经元具有相近的频率特征,而远离的神经元具有的频率特征差别也较大。大脑皮层中神经元的这种响应特点不是先天安排好的,而是通过后天的学习自组织形成的。

在生物神经系统中,存在着一种侧抑制现象,即一个神经细胞兴奋以后,会对周围其他神经细胞产生抑制作用。这种抑制作用会使神经细胞之间出现竞争,其结果是某些获胜,而另一些则失败。表现形式是获胜神经细胞兴奋,失败神经细胞抑制。自组织(竞争型)神经网络就是模拟上述生物神经系统功能的人工神经网络。

自组织(竞争型)神经网络的结构及其学习规则与其他神经网络相比有自己的特点。在网络结构上,它一般是由输入层竞争层构成的两层网络;两层之间各神经元实现双向连接,而且网络没有隐含层。有时竞争层各神经元之间还存在横向连接(注:上面说的特点只是根据传统网络设计来说的一般情况,随着技术发展,尤其是深度学习技术的演进,我认为这种简单的自组织网络也会有所改变,比如,变得更深,或者引入time series概念)。在学习算法上,它模拟生物神经元之间的兴奋、协调与抑制、竞争作用的信息处理的动力学原理来指导网络的学习与工作,而不像多层神经网络(MLP)那样是以网络的误差作为算法的准则。竞争型神经网络构成的基本思想是网络的竞争层各神经元竞争对输入模式响应的机会,最后仅有一个神经元成为竞争的胜者。这一获胜神经元则表示对输入模式的分类。因此,很容易把这样的结果和聚类联系在一起。

2 竞争学习的概念与原理

2.1 竞争学习的步骤

一种自组织神经网络的典型结构:如下图,由输入层竞争层组成。主要用于完成的任务基本还是“分类”和“聚类”,前者有监督,后者无监督。聚类的时候也可以看成将目标样本分类,只是是没有任何先验知识的,目的是将相似的样本聚合在一起,而不相似的样本分离。

欧式距离:

余弦相似度:

很容易证明,当图中X与Xi都是模为1的单位向量时(其实不一定要1,只要是常数就行),欧氏距离等价于余弦相似度(距离最小相似度越大),而余弦相似度退化为向量内积。

竞争学习规则——Winner-Take-All :

网络的输出神经元之间相互竞争以求被激活,结果在每一时刻只有一个输出神经元被激活。这个被激活的神经元称为竞争获胜神经元,而其它神经元的状态被抑制,故称为Winner Take All。

那么如何寻找获胜神经元?首先,对网络当前输入模式向量X和竞争层中各神经元对应的权重向量Wj(对应j神经元)全部进行归一化,使得X和Wj模为1;当网络得到一个输入模式向量X时,竞争层的所有神经元对应的权重向量均与其进行相似性比较,并将最相似的权重向量判为竞争获胜神经元。前面刚说过,归一化后,相似度最大就是内积最大:

也就是在单位圆(2D情况)中找到夹角最小的点。

知道哪个神经元获胜后就是神经元的输出和训练调整权重了:

因此,总结来说,竞争学习的步骤是: 
(1)向量归一化 
(2)寻找获胜神经元 
(3)网络输出与权值调整 
        步骤(3)完成后回到步骤1继续训练,直到学习率衰减到0。学习率处于(0,1],一般随着学习的进展而减小,即调整的程度越来越小,神经元(权重)趋于聚类中心。

2.2 示例

为了说明情况,用一个小例子:

3 SOM典型结构

典型SOM网共有两层,输入层模拟感知外界输入信息的视网膜,输出层模拟做出响应的大脑皮层。

SOM网的权值调整域

和上一节介绍的WTA策略不同,SOM网的获胜神经元对其邻近神经元的影响是由近及远,由兴奋逐渐转变为抑制,因此其学习算法中不仅获胜神经元本身要调整权向量,它周围的神经元在其影响下也要程度不同地调整权向量。这种调整可用三种函数表示,下图的bcd。

Kohonen算法:基本思想是获胜神经元对其邻近神经元的影响是由近及远,对附近神经元产生兴奋影响逐渐变为抑制。在SOM中,不仅获胜神经元要训练调整权值,它周围的神经元也要不同程度调整权向量。常见的调整方式有如下几种:

  • 墨西哥草帽函数:获胜节点有最大的权值调整量,临近的节点有稍小的调整量,离获胜节点距离越大,权值调整量越小,直到某一距离0d时,权值调整量为零;当距离再远一些时,权值调整量稍负,更远又回到零。如(b)所示
  • 大礼帽函数:它是墨西哥草帽函数的一种简化,如(c)所示。
  • 厨师帽函数:它是大礼帽函数的一种简化,如(d)所示。

其中,“墨西哥帽”:

在自组织映射神经网络中,获胜的神经元将使得相关的各权重向更加有利于它竞争的方向调整,即以获胜神经元为中心,对近邻的神经元表现出兴奋性侧反馈,而对远邻的神经元表现出抑制性侧反馈,近邻者互相激励,远邻者相互抑制。近邻和远邻均有一定的范围,对更远邻的神经元则表现弱激励的作用。

以获胜神经元为中心设定一个邻域半径R,该半径圈定的范围称为优胜邻域。在SOM网学习算法中,优胜邻域内的所有神经元均按其离开获胜神经元的距离远近不同程度地调整权值。 优胜邻域开始定得很大,但其大小随着训练次数的增加不断收缩,最终收缩到半径为零。

5 SOM Kohonen 学习算法

学习率函数的形式一般可以写成这样:,其中η(t)可采用t的单调下降函数也称退火函数,比如下面这些形式都符合要求:

在迭代结束之后,每个样本所激活的神经元就是它对应的类别。自组织映射神经网络具有保序映射的特点,可以将任意维输入模式在输出层映射为一维或者二维图形,并保持拓扑结构不变。这种拓扑映射使得“输出层神经元的空间位置对应于输入空间的特定域或特征”。由其学习过程可以看出,每个学习权重更新的效果等同于将获胜的神经元及其邻近的权向量wi向输入向量x移动,同时对该过程的迭代进行会使得网络的拓扑有序。

6 SOM示例

首先给定训练数据(绿点)和神经元权重初始值(红花):

通过迭代训练之后,神经元权重趋向于聚类中心;

​​​​​​​        

Test阶段,给定数据点(黄点),基于WTA策略,用内积直接算出和哪个神经元最相似就是分到哪个类。

7 SOM设计细节

7.1 输出层设计

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

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

7.2 输出层节点排列的设计

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

7.3 权值初始化问题

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

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

7.4 学习率的设计

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

7.5 设计拓扑领域

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

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

8 SOM功能分析

8.1 保序映射

将输入空间的样本模式类有序地映射在输出层上。

1989年Kohonen给出一个SOM网的著名应用实例,即把不同的动物按其属性映射到二维输出平面上,使属性相似的动物在SOM网输出平面上的位置也相近。训练集选了16种动物,每种动物用一个29维向量来表示。前16个分量构成符号向量(不同的动物进行16取1编码),后13个分量构成属性向量,描述动物的13种属性的有或无(用1或0表示)。

SOM网输出平面上有10×10个神经元,16个动物模式轮番输入训练,最后输出平面呈现16种动物属性特征映射,属性相似的挨在一起,实现了特征的有序分布。(实现这个图只需要判断每个神经元的模式和哪个样本最近) 。

8.2 数据压缩

将高维空间的样本在保持拓扑结构不变的条件下投影到低维的空间,在这方面SOM网具有明显的优势。无论输入样本空间是多少维,其模式都可以在SOM网输出层的某个区域得到相应。SOM网经过训练以后,在高维空间输入相近的样本,其输出相应的位置也相近

8.3 特征提取

从高维空间样本向低维空间的映射,SOM网的输出层相当于低维特征空间。

另外,还有字符排序,复合材料损伤监测等等有趣的应用。

9 自组织映射神经网络与K均值算法的区别

(1)K均值算法需要事先定下类的个数,也就是K的值。而自组织映射神经网络则不用,隐藏层中的某些节点可以没有任何输入数据属于它,因此聚类结果的实际簇数可能会小于神经元的个数。而K均值算法受K值设定的影响要更大一些。

(2)K均值算法为每个输入数据找到一个最相似的类后,只更新这个类的参数;自组织映射神经网络则会更新临近的节点。所以,K均值算法受noise data的影响比较大,而自组织映射神经网络的准确性可能会比K均值算法低(因为也更新了临近节点)。

(3)相比较而言,自组织映射神经网络的可视化比较好,而且具有优雅的拓扑关系图。

自组织映射神经网络(SOM)相关推荐

  1. 自组织神经网络SOM原理——结合例子MATLAB实现

    本文主要内容为SOM神经网络原理的介绍,并结合实例给出相应的MATLAB代码实现,方便初学者接触学习,本人才疏学浅,如有纰漏,还望各路大神积极指点. 一.SOM神经网络介绍 自组织映射神经网络, 即S ...

  2. 多层感知机MLP、RBF网络、Hopfield网络、自组织映射神经网络、神经网络算法地图

    多层感知机MLP.RBF网络.Hopfield网络.自组织映射神经网络.神经网络算法地图 目录

  3. 机器学习(二)——竞争神经网络-SOM

    竞争神经网络(无导师学习) 竞争型神经网络是基于无监督学习(Unsupervised learning)方法的神经网络的一种重要类型,它经常作为基本的网络形式,构成其它一些具有自组织能力的网络,如自组 ...

  4. 自组织神经网络SOM算法对Iris数据集进行聚类的matlab实现

    SOM算法原理 SOM算法是一种将高维数据通过两层神经网络(输入层和竞争层)映射至用户定义的拓扑结构中,一般常用2D矩阵拓扑结构.下图是对SOM的形象展示: 所以算法一般分为以下几步: 第一:用户自定 ...

  5. 自组织神经网络SOM——MATLAB

    Kohonen网络的拓扑结构 下图是1维和2维的两个SOM网络示意图. 网络上层为输出结点(假设为m个),按二维形式排成一个结点矩阵. 输入结点处于下方,若输入向量由n个元素,则输入端共有n个结点. ...

  6. 竞争学习神经网络-SOM

    相似性是聚类的关键: 如何决定相似度: 如何决定聚类的类别数: 如何决定哪种分类的结果是理想的: 相似性测量: 1. 欧式距离法 两个模式向量的欧式距离越小,则两个向量越接近,因此认为这两个模式越相似 ...

  7. MATLAB机器学习系列-6 竞争神经网络与SOFM(SOM)神经网络原理及其例子代码

    竞争神经网络 结构上和RBF等网络是比较像的.这里的距离是负数距离,||ndist||中带一个n,表示negative.在matlab中计算方法是ngedist. 它的计算过程是:待分类样本输入后,和 ...

  8. 机器学习算法工程师面试集锦(更新中)

    机器学习算法工程师面试集锦(更新中) 面试问题汇总 常用的损失函数 介绍交叉验证 特征选择方法 机器学习项目的一般步骤 经验风险最小化与结构风险最小化 训练决策树时的参数是什么 在决策树的节点处分割标 ...

  9. 百面机器学习(5)非监督学习

    目录 01 k均值聚类 02 高斯混合模型GMM 03 自组织映射神经网络SOM 04 聚类算法的评估 非监督学习的输入数据没有标签信息,主要包含两大类学习方法:数据聚类.特征变量关联. 数据聚类:多 ...

  10. Self Ogannizing Maps(SOM)自组织映射

    原文链接: Self Organizing Maps (SOM): 一种基于神经网络的聚类算法 - leavingseason - 博客园 https://www.cnblogs.com/sylvan ...

最新文章

  1. 三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传
  2. Linux内核源码树学习:Kconfig和Makefile
  3. [LeetCode] First Bad Version - 二分查找
  4. kde菜单图标显示不全_大小仅 1M!在电脑菜单栏上自定义日历,规划时间更方便...
  5. poj3276 反转 挑战程序设计竞赛
  6. Classification Example
  7. 一个存储过程,折腾了我半天
  8. OpenCV对矩形填充透明颜色
  9. qvodplayer.hta:按个人使用习惯自写易用的整合搜索资源的p2p电影搜索/播放程序(能自动升级)
  10. 微信小程序 授权登录功能实现
  11. html5+资源甘特图,VARCHART XGantt VSW资讯:HTML5甘特图中的各个资源工作时间
  12. WinRAR破解注册方法
  13. .netcore的mysql链接字符串ConnectionString到底应该怎么设置
  14. 关于css3中的2d样式skew倾斜详解
  15. ​每天十分钟| Get实用在线英语启蒙教育APP—叽里呱啦
  16. vue手机端项目php,MintUI基于Vue.js移动端组件库详解
  17. 我的世界 minecraft forge mod开发获取连续的方块
  18. MySQL如何判断不为空
  19. 各种各样的分布函数-Γ分布
  20. 饮水思源:Ubuntu用户应关注Debian

热门文章

  1. WinServer2008 安装 Intel(R) 82579V Gigabit Network 网卡驱动
  2. 护眼色RGB值和HSV值
  3. 设计师必备,6个PNG素材网站
  4. 项目成本管理的5项原则
  5. 使用命令行把debian变成实时系统
  6. 国产商用密码与国际密码对照
  7. 十个值得所有极客收藏的网站
  8. redis层级结构存储键值对
  9. VUE项目开发,使用开发者工具查看源文件
  10. 用大于一素数的最小素数替换4*4矩阵中的素数