自组织特征映射网络(SOM)

Self-Organizing Feature Map Neural Networks

  • BP学习算法是一种典型的有监督学习算法,特点:每一个输入都有一个对应的理想输出
  • 自组织特征映射网络为无监督学习算法,只有样本,没有理想输出
    • 用途:聚类分析,分类

SOM网络及其学习算法

网络模型

  • 输入为 n n n维:

    X = [ x 1 , x 2 , . . . , x n ] T X=[x_1,x_2,...,x_n]^T X=[x1​,x2​,...,xn​]T

  • 输出层有 p p p个结点:

    Y = [ y 1 , y 2 , . . . , y p ] T Y=[y_1,y_2,...,y_p]^T Y=[y1​,y2​,...,yp​]T

  • 每个输入结点 i i i和输出节点 j j j之间都有权值连接:

    W j = [ w j 1 , w j 2 , . . . , w j n ] T , j = 1 , . . . p W_j=[w_{j1},w_{j2},...,w_{jn}]^T,j=1,...p Wj​=[wj1​,wj2​,...,wjn​]T,j=1,...p

  • 输入输出关系:

    输入输出之间为竞争关系,输出层只有1个结点能够输出(set to 1),其他的结点将被抑制(set to 0)

  • 竞争规则

    计算每个输出节点权值和输入之间的二范数,最小的能够输出:

    u j = { 1 , i f ∥ W j − X ( k ) ∥ 2 → min ⁡ 0 , o t h e r w i s e u_j=\begin{cases}1,&if\Vert W_j-X(k)\Vert^2\rarr\min\\0,&otherwise\end{cases} uj​={1,0,​if∥Wj​−X(k)∥2→minotherwise​

学习算法

学习权值 W j W_j Wj​

  • 算法1:

    • 给定训练集 { X ( k ) } \{X(k)\} {X(k)}

    • 初始化

      W j ( 0 ) W_j(0) Wj​(0)为比较小的随机数, k ← 0 k\larr0 k←0

      如果有先验知识,可以根据先验知识进行初始化

    • 利用 X ( k ) X(k) X(k),更新 W j W_j Wj​:

      • 寻找和 X ( k ) X(k) X(k)距离最小的权值矢量 W q W_q Wq​:

        min ⁡ j { ∥ W j − X ( k ) ∥ } = ∥ W q − X ( k ) ∥ = d q , ( ∥ X − Y ∥ = ( ∑ i ( x i − y i ) 2 ) 1 / 2 ) \min\limits_j\{\Vert W_j-X(k)\Vert\}=\Vert W_q-X(k)\Vert=d_q,(\Vert X-Y\Vert=(\sum_i(x_i-y_i)^2)^{1/2}) jmin​{∥Wj​−X(k)∥}=∥Wq​−X(k)∥=dq​,(∥X−Y∥=(∑i​(xi​−yi​)2)1/2)

      • 定义以获胜权值 W q W_q Wq​为中心的邻域范围 N q ( t k ) N_q(t_k) Nq​(tk​),其中 t k t_k tk​为该权值获胜的次数,更新该邻域范围内的权值:

        W j ( t k + 1 ) = W j ( t k ) + α ( t k ) [ X ( k ) − W j ( t k ) ] , j ∈ N q ( t k ) W_j(t_k+1)=W_j(t_k)+\alpha(t_k)[X(k)-W_j(t_k)],j\in N_q(t_k) Wj​(tk​+1)=Wj​(tk​)+α(tk​)[X(k)−Wj​(tk​)],j∈Nq​(tk​)

        其中 α ( t k ) \alpha(t_k) α(tk​)为学习步长: 0 < α ( t k ) < 1 0<\alpha(t_k)<1 0<α(tk​)<1

        邻域定义:满足 ∥ W j − W q ∥ ≤ N q ( t k ) \Vert W_j-W_q\Vert\leq N_q(t_k) ∥Wj​−Wq​∥≤Nq​(tk​)的所有 j j j结点

        事先要定义半径,半径也可以是可变的

    • k ← k + 1 k\larr k+1 k←k+1,直到网络收敛

  • 算法2:

    • 在算法1的 W j W_j Wj​更新部分做了一些改进:

      • 使得 d j k 2 = ∥ X ( k ) − W j ∥ 2 d_{jk}^2=\Vert X(k)-W_j\Vert^2 djk2​=∥X(k)−Wj​∥2

      • 计算 h j ( k ) = e − d j k 2 ( k ) 2 σ 2 ( k ) h_j(k)=e^{-\frac{d_{jk}^2(k)}{2\sigma^2(k)}} hj​(k)=e−2σ2(k)djk2​(k)​——高斯函数

      • 权值更新算法为(所有权值都可以修改,但修改程度不一样):

        W j ( k + 1 ) = W j ( k ) + α ( k ) h j ( k ) [ X ( k ) − W j ( t k ) ] , j = 1 , 2 , . . . , p W_j(k+1)=W_j(k)+\alpha(k)h_j(k)[X(k)-W_j(t_k)],j=1,2,...,p Wj​(k+1)=Wj​(k)+α(k)hj​(k)[X(k)−Wj​(tk​)],j=1,2,...,p

        其中 σ 2 ( k ) = σ 0 2 e − k / τ 1 , σ 0 2 , τ 1 \sigma^2(k)=\sigma_0^2e^{-k/\tau_1},\sigma_0^2,\tau_1 σ2(k)=σ02​e−k/τ1​,σ02​,τ1​为需要合适选择的固定参数。推荐 τ 1 = 1000 ln ⁡ σ 0 \tau_1=\frac{1000}{\ln\sigma_0} τ1​=lnσ0​1000​

    • 其他部分与算法1相同

    • 如果 W j = X ( k ) , h j ( k ) = 1 W_j=X(k),h_j(k)=1 Wj​=X(k),hj​(k)=1,如果 W j ≠ X ( k ) , h j ( k ) W_j\not=X(k),h_j(k) Wj​​=X(k),hj​(k)根据高斯函数减小

      在这个算法中,在竞争中获胜的权值获得的更新最大,离获胜权值越远的结点的权值更新越小。

  • 其他还有一些改进算法

    • 定义合适的 α ( t k ) \alpha(t_k) α(tk​),使得它随权值更新的次数变化而变化,如果更新次数增加,步长应减小

讨论

  • 算法的收敛性

    • 该算法经过训练应该将样本分为 p p p个子空间 V j V_j Vj​,每个子空间的的中心矢量为 V j ∗ V_{j^*} Vj∗​,也被称为 V j V_j Vj​的聚类中心
    • 通过证明可得: W j → V j ∗ , j = 1 , . . . , 0 W_j\rarr V_{j^*},j=1,...,0 Wj​→Vj∗​,j=1,...,0
  • 竞争算法(Competitive Learning Algorithm,CL)

    • Winner-takes-all
    • 是一种典型的无监督算法
    • 通过竞争算法寻找聚类中心,权值矢量就是中心的近似值
  • 邻域的选择

    • 算法1中邻域范围鲜明,只有邻域内的权值才能被修改
    • 算法2中选择了类似高斯函数的平滑函数,使得所有的权值都可以修改
  • 学习步长的选择

    • 获胜次数越多,学习步长越小;使得在竞争过程中,所有的结点都能有修改机会
  • 如何使用SOM网络进行分类

    • 在训练过程结束后,所有的权值都已经收敛。接下来使用下面的算法即可进行分类

      • 计算输入矢量 X X X和所有权矢量之间的距离:

        d j = ∥ X − W j ∥ , j = 1 , . . . , p d_j=\Vert X-W_j\Vert,j=1,...,p dj​=∥X−Wj​∥,j=1,...,p

      • 寻找所有 d j d_j dj​中最小的距离 d q d_q dq​

        d q = min ⁡ j { ∥ X − W j ∥ } d_q=\min\limits_j\{\Vert X-W_j\Vert\} dq​=jmin​{∥X−Wj​∥}

      • 定义 y i y_i yi​:

        y i = { 1 , i f j = q 0 , i f j ≠ q y_i=\begin{cases}1,&if\quad j=q\\0,&if\quad j\not=q\end{cases} yi​={1,0,​ifj=qifj​=q​

      • 分类

        将输入 X X X分为第 q q q类

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

  1. 利用ANN作图——自组织特征映射网络(SOFM)探究及实现

    利用ANN作图--自组织特征映射网络(SOFM)探究及实现 在研究生的<人工智能>课堂上学习了利用人工神经网络(ANN)解决问题的基本思想与方法,在学习了自组织特征映射网络(SOFM)之后 ...

  2. 什么是自组织特征映射网络?

    什么是自组织特征映射网络?

  3. SOM -- 自组织特征映射网络

    SOM的优缺点 优点:SOM由于地形序的影响,最后产生的聚类结果具有比较高的的可视化和可解释性,而且与K-Means不同的是,由于每次增量的更新所有的质心,因此他受初始质心选取的影响很小. 缺点:没有 ...

  4. 机器学习 竞争神经网络与自组织特征映射神经网络(SOFM)

    本文按照 案例-分析-代码-原理 四段式进行介绍,为便于有一定理论基础的童鞋进行学习,将原理以链接其他博客的形式给出,有兴趣的童鞋可以跳转进行学习和推敲. [案例介绍]利用竞争神经网络和自组织特征隐射 ...

  5. 自组织特征映射(SOFM或SOM)网络解决旅行商问题(TSP)

    自组织特征映射(Self-Organizing Feature Map)网络介绍: 由输入层,输出层神经元节点构成的神经网络(由输入层,隐层神经元节点构成的神经网络) 无监督学习 学习准则是胜者为王学 ...

  6. 机器学习之自组织特征映射神经网络(SOM)

    SOM是一类"无监督学习"模型,一般的用法是将高维的input数据在低维的空间表示,因此SOM天然是一种降维方法.除了降维,SOM还可以用于数据可视化,以及聚类等应用中[2]. 定 ...

  7. 自组织特征映射神经网络(SOFM)

    1981年芬兰 Helsink 大学的 T·Kohonen 教授提出一种自组织特征映射网 (Self-Organizing Feature Map , SOFM ), 又称 Kohonen 网 . K ...

  8. 关于SOM(self-organized map)自组织特征映射神经网络的理解

    som网络结构 对SOM进行理解,首先要明确它的定位. 首先它是神经网络的一种,那么就有属于神经网络共同的性质.比如输入层,输出层.刚好,SOM网络只有这两层. (上面两张是典型的som网络结构图) ...

  9. SOFM自组织特征映射第一步:选取样本点

    1.选取三种指数,均为栅格数据,进行栅格裁剪统一大小,并归一化处理 栅格裁剪步骤:数据管理工具->栅格->栅格处理->裁剪 归一化步骤:Spatial Analyst工具->叠 ...

最新文章

  1. python pymysql
  2. linux学习之shell基础篇
  3. 非此即彼的逻辑错误_辩证思维与逻辑思维相对立
  4. Java线程同步:synchronized锁住的是代码还是对象
  5. Netsclaer配置
  6. C# 线程手册 第三章 使用线程 Monitor.TryEnter()
  7. PyQt5案例汇总(完整版)
  8. datatable怎么根据两列分组_公司要IT转型,我该怎么办?用Python进行数据处理
  9. Java基础篇(04):日期与时间API用法详解
  10. 关于iOS原生条形码扫描,你需要注意的两三事
  11. IPython 的使用
  12. JavaScript之继承(原型链)
  13. 李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”
  14. 18个黑科技网站,你想要的软件都能找到,请收藏!!!
  15. MongoDB官网下载和安装(ZIP安装)
  16. 800家电子元器件供应商及代理商
  17. html代码鼠的故事游戏,分享一个html+js实现打地鼠游戏的实例代码
  18. 超小型模块:IDO-SOM2D01可应用于物联网智能网关等领域
  19. 配合屏幕录像专家,又小又清晰!
  20. combo是什么意思啊(combo卡是什么意思)

热门文章

  1. Gmod lua插件(Dishonored_Jump)解析
  2. k30pro刷鸿蒙,k30pro没有高刷的个人看法
  3. 应用服务器巡检,服务器巡检-常规检查项
  4. HTML店铺,店铺排行.html
  5. 野生酸枣营养价值吃法 野生酸枣的功效与作用
  6. ubuntu安装sogou中文输入法
  7. PHP学习笔记(整理完成)
  8. c语言结构体学习整理(结构体初始化,结构体指针)
  9. smtp 发送html格式,如何发送HTML格式的电子邮件?
  10. 【转载】胖客户端(C/S模式) 、瘦客户端(B/S模式) 和智能客户端(SC/S模式)三种模式的比较