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

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

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

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

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

2、竞争学习的概念与原理

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

说到这里,一般的资料都会介绍一下欧式距离和余弦相似度,我也会讲一下基本的概念,更多距离计算方法可以参考我前面转载介绍的《距离计算方法总结》,以及《机器学习距离公式总结》,尤其是后一篇,写的不错:)

最常见的距离(相似度)计算方法就是欧氏距离和余弦相似度了,示意图如下,我就不多讲了。

欧式距离: 

余弦相似度: 

很容易证明,当图中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]: 


 
 
 
 
 

OK,今天先到这里,简单介绍一下自组织神经网络的概念,下一部分讲一下SOM的原理和应用场景,是重点哦。

参考资料

[1] https://en.wikipedia.org/wiki/Self-organizing_map 
[2] 百度文库,《SOM自组织特征映射神经网络》 
[3] 《第四章 自组织竞争型神经网络》, PPT

自组织(竞争型)神经网络相关推荐

  1. Self-Organizing Map(自组织竞争型神经网络)

    操作与其他的nnstart App基本一致: 点击clustering,next 区别,主要是只需要输入:将输入的数据导入后点击next:然后设置神经元个数,next: 点击train 同样可以生成相 ...

  2. 神经网络学习笔记(七) 自组织竞争神经网络

    自组织竞争神经网络 一.概述 自组织竞争神经网络是一种无监督的学习方法.与之前不同的是,前几节讲述的神经网络都是有标签,并且更新所有权值,但是他们并没有考虑到人体神经元的侧抑制现象,也就是在很多情况下 ...

  3. 系统学习机器学习之神经网络(四) --SOM

    转自:http://blog.csdn.net/xbinworld/article/details/50818803,其实内容更多的是百度文库里叫<SOM自组织特征映射神经网络>这篇文章上 ...

  4. 人工神经网络基本构成有哪些具有什么特征

    人工神经网络的特点有哪些 人工神经网络的特点和优越性,主要表现在三个方面: 第一,具有自学习功能.例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习 ...

  5. 人工神经网络基本构成有哪些,具有什么特征

    人工神经网络的基本组成是什么啊 基本结构是三层,输入层,隐层,输出层,各层由神经元和神经元之间的权值组成. 人工神经网络由哪几部分构成? 10 "人工神经网络"共有13个神经元构成 ...

  6. 人工神经网络模型定义,人工神经网络基本框架

    人工神经网络评价法 人工神经元是人工神经网络的基本处理单元,而人工智能的一个重要组成部分又是人工神经网络.人工神经网络是模拟生物神经元系统的数学模型,接受信息主要是通过神经元来进行的. 首先,人工神经 ...

  7. 神经网络属于分类算法吗,神经网络分类特点区别

    神经网络算法的三大类分别是? 神经网络算法的三大类分别是:1.前馈神经网络:这是实际应用中最常见的神经网络类型.第一层是输入,最后一层是输出.如果有多个隐藏层,我们称之为"深度"神 ...

  8. 人工神经网络的结构基本上分为两类

    神经网络有哪些主要分类规则并如何分类? 神经网络模型的分类. 人工神经网络的模型很多,可以按照不同的方法进行分类.其中,常见的两种分类方法是,按照网络连接的拓朴结构分类和按照网络内部的信息流向分类. ...

  9. 神经网络方法研究及应用,基于神经网络的控制

    什么是神经网络控制 神经网络控制技术是一项复杂的系统控制技术,一般应用在变频器的控制中,它是通过对系统的辨识.运算后对变频器进行控制的一种新技术. 而且神经网络控制可以同时控制多个变频器,所以应用在多 ...

最新文章

  1. thrift的中文编码处理
  2. 使用ABAP批量下载Markdown源文件里的图片到本地
  3. php默认站点,PHP学习之Apache修改默认站点的目录
  4. asp.net使用include包含文件中文乱码_C++: 编写自己的头文件
  5. 程序员思维训练500题(附带答案)
  6. ZooKeeper典型应用场景
  7. 公开课丨重中之重!Web安全漏洞与防御
  8. 用电脑怎么录制游戏视频
  9. Python基础_闭包和迭代器
  10. 人脸识别-批量裁剪图像
  11. ubuntu18.04 下海康工业相机hikrobot_camera的使用及问题的解决
  12. 使用java数据结构编写代码
  13. virtualBox 虚拟机安装Windows7系统
  14. linux_网络配置
  15. asp.net后台为控件添加css样式
  16. unity5.x游戏开发指南——4、5、6章
  17. TensorFlow 真正从零开始,TensorFlow详细安装入门图文教程
  18. 拆解理想汽车Q3财报:收入增速继续下滑,年内两次更换首席技术官
  19. 表情包-Emoji符号
  20. linux下cc命令,Linux cc 命令 command not found cc 命令详解 cc 命令未找到 cc 命令安装 - CommandNotFound ⚡️ 坑否...

热门文章

  1. 有些朋友没看清楚,我在这里再特意强调一下
  2. Thinking in Java读书笔记-第二章
  3. eja智能压力变送器工作原理_HONEYWEL、 EJA 、罗斯蒙特变送器的工作原理
  4. 数据挖掘的十大经典算法
  5. SourceTree报错git -c diff.mnemonicprefix=false fatal: Unable to create ‘D:/xxx/.git/index.lock‘: File
  6. 奇迹按键精灵挂机脚本_奇迹脚本代码导入按键精灵后怎么使用?
  7. 百度网盘批量重命名文件免费脚本---2020.07
  8. js/javascript获取时间戳的5种方法
  9. 老罗的Android系统分析(三横三纵)
  10. python之有关关键字参数,默认参数,不定长参数,位置参数的定义,区别,以及使用方法。