zoukankan      html  css  js  c++  java
  • 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第一部分

    自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第一部分
    自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第二部分
    自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第三部分

    本文详细介绍一下自组织神经网络概念和原理,并重点介绍一下自组织特征映射SOM网络。SOM和现在流行的ANN(MLP)模型在结构上类似,都由非常简单的神经元结构组成,但是SOM是一类“无监督学习”模型,一般的用法是将高维的input数据在低维的空间表示[1],因此SOM天然是一种降维方法。除了降维,SOM还可以用于数据可视化,以及聚类等应用中。

    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

  • 相关阅读:
    Kubernetes 无法删除pod实例的排查过程
    kubeadm 生成的token过期后,集群增加节点
    linux 常规操作EOF写法梳理
    linux下EOF写法梳理
    容器云之弹性伸缩
    QEMU,KVM及QEMU-KVM介绍
    听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构
    代码内存泄露检测(1) MLeaksFinder (Wechat开源) + FBRetainCycleDetector (FaceBook开源)
    Xcode 创建使用多个 target (1)
    iOS 多线程的简单理解(4) 线程锁的简单使用
  • 原文地址:https://www.cnblogs.com/yihaha/p/7265306.html
Copyright © 2011-2022 走看看