前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SOM(Self-Organizing Maps) 聚类算法

SOM(Self-Organizing Maps) 聚类算法

作者头像
caoqi95
发布2019-03-27 18:09:06
10.4K0
发布2019-03-27 18:09:06
举报

SOM 的基本结构

SOM(Self-Origanizing Maps),自组织映射网络,是一种基于神经网络的聚类算法。有时候也称为 SOFM(Self-Origanizing Features Maps)。SOM 是一个单层的神经网络,仅包含输入层和计算层。

SOM 结构

计算层也称为竞争层,也是输出层。其由一系列神经元组成的节点构成,可以是一维的结构,也可以是二维的结构。即计算层是拓扑结构的。也可以看出,SOM 起到了降维的作用 -- 将高纬度的输入数据映射到一维或者二维空间中。在 k-means 中,我们需要提前指定 k 的取值,即集群的数量。但在 SOM 中,需提前指定一个拓扑结构(集群间的几何关系)。在拓扑结构中,一个节点就是一个聚类。

SOM 的学习过程

SOM 将输入数据转换为离散的低维数据,然后被表示成局部区域或者网络中的活动点。初始化的步骤完成后,接下来是竞争,协作和适应这三个重要的学习过程。

  • 竞争过程(Competitive Process) 在 SOFM 中,竞争层的各个神经元依据输入的 N 维的数据模式(x)和连接强度(权重 w)来连接。w 的范围在【0,1】之间,以正规化的任意值来初始化。在学习过程中,会计算输入模式 x 与所有神经元的权重 w 之间的距离。当距离最小时该神经元成为胜者,这就是竞争的过程。
  • 协作过程(Cooperation Process) 这一过程是仅竞争过程的胜者与其邻近的神经元,对提供的输入数据进行学习。为了对相似的特征在竞争阶层中更敏感地形成地图,“胜者”神经元依据固定的函数来决定邻近的神经元,同时此神经元的相应权重也会得到更新。Kohonen 网络的哲学就是 “胜者独占(winner take all)”,即只有胜者才有输出,只有胜者才能够更新权重 w
  • 适应过程(Adaptation Process) 该过程适应激活函数,使得获胜者神经元和邻近神经元对特定输入值更敏感,同时也更新相应的权重。通过此过程,与胜者神经元邻近的神经元将会比远离的神经元更加适应。适应的大小用过学习率来控制,学习率随着学习的时间而衰减,其对 SOFM 的收敛速度起到减小的作用。

SOM 的实现步骤

1.初始化权重 w

2.寻找最近的神经元 i(x) = argminj||x(n) - wj(n)||

3.更新邻近神经元的权重

4.减少邻近神经元以及学习速率 η wj(n+1)= wj(n) + η(n) hj,i(x)(x - wj(n))

5.回到第2步

基于 Matlab 的 SOM 实践

因为在 Rapid Miner 中,SOM 操作器的主要用途是用来将高纬度的特征进行降维,其输出结果不适合用来进行聚类分析。所以,转战 Matlab 进行实践。

  1. 启动神经网络 GUI 界面

在命令行窗口输入nnstart,弹出如下界面:

  1. 选择 “Clustering app”,点击 “Next”
  1. 加载数据集 可以选择本地文件,也可以选择 Matlab 中自带的示例数据集。这里选择 Matlab 中的示例数据集。点击 “Load Example Data Set”,再选择 “Sample Cluster”,并点击 “Import”。
  1. 选择数据维度 选择数据集完成后会回到开始的页面,点击 “Next” ,出现如下页面,在这里选择映射后数据的维度。此例子选择 10 作为 映射后的维度。
  1. 训练 选择维度后,点击 “Next” ,进入训练阶段。点击 “Train” 进行训练。训练共进行 200 个 Epochs。

训练完成后,点击 “Plots” 下的 “SOM Sample Hits”。对于 SOM 训练,与每个神经元相关联的权重向量移动成为输入向量集群的中心。此外,拓扑中彼此相邻的神经元也应该在输入空间中彼此靠近移动,因此可以在网络拓扑的两个维度中可视化高维输入空间。

SOM 的默认拓扑是六边形。该图显示拓扑中的神经元位置,并显示有多少训练数据与每个神经元(聚类中心)相关联。拓扑结构是10×10网格,因此有100个神经元。与任何神经元都相关的最大命中数为 31。因此,该群集中有31个输入向量。

也可以点击 “SOM Weights Positions” 来分析结果。下图显示了输入矢量的每个元素的权重平面(在这种情况下为两个)。它们是将每个输入连接到每个神经元的权重的可视化。 (较暗的颜色代表较大的权重)如果两个输入的连接模式非常相似,则可以假设输入高度相关。在本例情况下,input 1 具有与 input 2 非常不同的连接模式。

参考

[1]. Self Organizing Maps (SOM): 一种基于神经网络的聚类算法 [2]. SOM是怎样一种模型(对于初学者如何操作,算法等)?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SOM 的基本结构
  • SOM 的学习过程
  • SOM 的实现步骤
  • 基于 Matlab 的 SOM 实践
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档