1. Self-Organization Network

SOM和现在流行的ANN(MLP)模型在结构上类似,都由非常简单的神经元结构组成,但是SOM是一类“无监督学习”模型,一般的用法是将高维的input数据在低维的空间表示,因此SOM天然是一种降维方法。除了降维,SOM还可以用于数据可视化,以及聚类等应用中。

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

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

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

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

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

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

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

  

3. 学习向量量化LVQ神经网络

在竞争网络结构的基础上,学习向量化(learning vector quantization,LVQ)网络被提出来,融合竞争学习思想和有监督学习算法的特点,通过教导信号对输入样本的分配类别进行规定,从而克服自组织网络采用无监督学习算法带来的缺乏分类信息的弱点。

3.1  向量量化

向量量化的思路是,将高维输入空间分成若干不同的区域,对每个区域确定一个中心向量作为聚类的中心,与其处于同一区域的输入向量可用该中心向量来代表,从而形成了以各中心向量为聚类中心的点集。在图像处理领域常用各区域中心点(向量)的编码代替区域内的点来存储或传输,从而提出了各种基于向量量化的有损压缩技术。

在二维输入平面上表示的中心向量分布称为Voronoi图,如下图所示:

自组织映射可以起到聚类作用,但无法直接分类或识别,因此它只是自适应解决模式分类问题两步中的第一步。且把第二步:学习向量量化,采用监督机制,在训练中加入教师信号作为分类信息对权值进行细调,并对输出神经元预先指定其类别。

3.2 LVQ网络结构与工作原理

竞争层有m个神经元,输入层有n个神经元,两层之间完全连接。输出层每个神经元只与竞争层中的一组神经元连接,连接权重固定为1,训练过程中输入层和竞争层之间的权值逐渐被调整为聚类中心。当一个样本输入LVQ网络时,竞争层的神经元通过胜者为王学习规则产生获胜神经元,容许其输出为1,其它神经元输出为0。与获胜神经元所在组相连的输出神经元输出为1,而其它输出神经元为0,从而给出当前输入样本的模式类。将竞争层学习得到的类成为子类,而将输出层学习得到的类成为目标类。

3.3 LVQ网络结构与工作原理

LVQ网络的学习规则结合了竞争学习规则和有导师学习规则,所以样本集应当为{(xi,di)}。其中di为l维,对应输出层的l个神经元,它只有一个分量为1,其他分量均为0。通常把竞争层的每个神经元指定给一个输出神经元,相应的权值为1,从而得到输出层的权值。比如某LVQ网络竞争层6个神经元,输出层3个神经元,代表3类。若将竞争层的1,3指定为第一个输出神经元,2,5指定为第二个输出神经元,3,6指定为第三个输出神经元。则竞争层到输出层的权值矩阵为:

训练预先定义好竞争层到输出层权重,从而指定了输出神经元类别,训练中不再改变。网络的学习通过改变输入层到竞争层的权重来进行。根据输入样本类别和获胜神经元所属类别,可判断当前分类是否正确。若分类正确,则将获胜神经元的权向量向输入向量方向调整,分类错误则向相反方向调整。如下图所示:

LVQ网络学习算法的步骤如下:
(1)   初始化。竞争层各神经元权值向量随机赋值小随机数,确定初始学习速率和训练次数。
(2)   输入样本向量。
(3)   寻找获胜神经元。
(4)   根据分类是否正确按照不同规则调整获胜神经元的权值:当网络分类结果与教师信号一致时,向输入样本方向调整权值:

当网络分类结果与教师信号不一致时,向输入样本反方向调整权值:

其他非获胜神经元权值保持不变。
(5)   更新学习速率

(6)   当训练次数未达到设定的次数时,转到步骤(2)输入下一个样本,重复各步骤直到达到设定训练次数为止。上述训练过程中,要保证η(t)为单调下降函数。

3.4 总结

LVQ网络是SOFM网络一种有监督形式的扩展,两者有效结合可更好地发挥竞争学习和有监督学习的优点。
网络结构-LVQ神经网络有三层组成:输入层,竞争层,线性输出层
连接方式-输入层与竞争层之间采用全连接的方式,竞争层与线性输出层之间采用部分连接的方式。竞争层神经元个数总是大于线性输出层神经元个数,每个竞争层神经元只与一个线性输出层神经元相连接且连接权值恒为1。但是,每个线性输出层神经元可以与多个竞争层神经元相连接。竞争层神经元与线性输出层神经元的值只能是1或0。
        当某个输入模式被送至网络时,与输入模式距离最近的竞争层神经元被激活,神经元的状态为“1”,而其他竞争层神经元的状态均为“0”。因此,与被激活神经元相连接的线性输出层神经元状态也为“1”,而其他线性输出层神经元的状态均为“0”。

Matlab神经网络十讲(7): Self-Organizing and LVQ Networks相关推荐

  1. Matlab神经网络十讲(8): 归一化、权重读取、(非)线性网络设计

    1.关于归一化问题 大家都知道train里面对数据先进行了归一化再来计算的.训练好神经网络后,用sim函数可以得到准确的值,但是为什么我们自己写算法来计算就得不到计算结果呢?因为归一化. clear ...

  2. Matlab神经网络十讲(7): Adaptive Filter and Adaptive Training

    1. Adaptive Function The function adapt can change the weight and bias of a network incrementally du ...

  3. Matlab神经网络十讲(2): Create Configuration Train NeuralNet

    1. Create Neural Network Object The easiest way to create a neural network is to use one of the netw ...

  4. 《MATLAB神经网络超级学习手册》——第2章 MATLAB基础 2.1 基本概念

    本节书摘来自异步社区<MATLAB神经网络超级学习手册>一书中的第2章,第2.1节,作者:MATLAB技术联盟 , 刘冰 , 郭海霞著,更多章节内容可以访问云栖社区"异步社区&q ...

  5. CICC科普栏目|神经网络浅讲:从神经元到深度学习

    图1 人脑神经网络 来源: 计算机的潜意识 摘要:神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向–深度学习的基础. 神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向–深度学习 ...

  6. 《李开复:人工智能十讲》

    一什么是人工智能 二人工智能已经进入我们的生活 三AI和我们是敌是友AI的不同层次 四三次人工智能浪潮 五什么是深度学习 六AI热潮来临人类会失业吗 七哪些工作是AI取代不了的 八AI时代该怎么学 九 ...

  7. MATLAB神经网络编程(八)——BP神经网络的限制与改进

    <MATLAB神经网络编程> 化学工业出版社 读书笔记 第四章 前向型神经网络 4.3 BP传播网络 本文是<MATLAB神经网络编程>书籍的阅读笔记,其中涉及的源码.公式.原 ...

  8. MATLAB神经网络的汉字字符数字字母的识别

    目 录 摘要 Ⅰ ABSTRACT Ⅱ 第一章 绪论 1 1.1手写体数字识别研究的发展及研究现状 1 1.2神经网络在手写体数字识别中的应用 2 1.3 论文结构简介 3 第二章 手写体数字识别 4 ...

  9. MATLAB神经网络工具箱输入输出预处理相关参数设置

    目录 问题由来 预处理相关属性 预处理函数 预处理参数 修改默认映射变换 通过exampleInput和exampleOutput进行设置 通过configure函数进行设置 结语 问题由来 毕业论文 ...

最新文章

  1. java话费清单_查询话费订单列表示例代码
  2. boost::geometry::num_geometries用法的测试程序
  3. go 并发安全map 分段锁实现
  4. PHP下操作Linux消息队列完成进程间通信的方法
  5. C语言实用算法系列之学生管理系统_单向链表外排序_堆内数组存储链表节点指针
  6. python封装介绍_谈python3的封装
  7. 有两个关于内部类(Inner Class)的示例
  8. 2019年Java程序设计讲课笔记目录
  9. linux连不上网 ens33,如何解决Linux 系统下 ifconfig 命令无网络接口 ens33
  10. Eclipse 真机调试检测不到手机解决方案
  11. ViewPager——基础知识和PagerAdapter必须重写的四个方法
  12. 微信小程序开发--【初体验】(一)
  13. java看懂程序_手把手教你运行第一个 Java 程序,看不懂你来骂我!
  14. 基于SSM实现酒店入住预定管理系统
  15. sqlserver企业版秘钥_SqlServer2008到期升级企业版 密钥+图解
  16. Eclipse启动时 弹出subversive connector discovery
  17. 北交大计算机老师夏嘉楠,北京交通大学院系部处文件-馆档网.DOC
  18. 微信企业号开发之access_token接口调用示例(一)
  19. 对DSP的基本了解(二)--DSP的软硬件环境
  20. 健身房健身需要什么装备,五款健身房必备运动耳机分享

热门文章

  1. JVM参数详解和调优
  2. C# #if, #else和#endif预处理指令
  3. ICallbackEventHandler使用
  4. 面试(后台开发,转载)
  5. 目标检测之RCNN,SPP-NET,Fast-RCNN,Faster-RCNN
  6. Navicat Premium 12.0.24破解
  7. 004-2-拟合,drop-out
  8. Linux - alias 定义的变量
  9. 调用iOS系统本地相册或摄像头
  10. MongoDB 进阶-关联查询