专栏首页caoqi95的记录日志SOM(Self-Organizing Maps) 聚类算法

SOM(Self-Organizing Maps) 聚类算法

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是怎样一种模型(对于初学者如何操作,算法等)?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Rapid Miner 基本使用

    这学期选了实验室指导教授的 Data Mining 课程,课上教授推荐使用 Rapid Miner 这个工具来做 projects,这样可以避免大量的编程工作。

    caoqi95
  • 论文记录 - A General Framework for Object Detection

    这是一篇挺老的论文了,98 年诞生的。主要是利用图片的 Haar wavelets (小波)特征 + SVM 来进行目标检测,这在当时是很 novel 的一个方...

    caoqi95
  • 论文记录 - ECG Heartbeat Classification: A Deep Transferable Representation

    这篇论文发自 2018 年,出自洛杉矶大学的一个团队,主要对 5 种不同心率进行预测分类及预测 MI(心肌梗死)。论文地址:https://arxiv.org/...

    caoqi95
  • 【MySQL】metadata lock问题

    MySQL使用DML来管理对数据库对象的并发访问,并确保数据一致性。DML不仅适用于表,还适用于模式和存储程序(过程、函数、触发器和计划的事件)

    用户5522200
  • Windows下Go语言的环境搭建

    在本地搭建了一个开发GO语言的开发环境,给大家分享一下用go语言写的第一个hello world的过程,希望对大家有所帮助。 1.想写GO语言首先得下载go语言...

    lizelu
  • 基于requirejs和angular搭建spa应用1、常规实现2、引入Requirejs

    Jerremy
  • 递归神经网络(RNN)在语义识别方面的应用

    背景 数据时代已经到来,当今企业家们已经认识到数据的重要性,并且期望通过数据分析能够驱动增长。企业业务流程面临“计划驱动”转型到”数据驱动“的巨大变革。企业需要...

    小莹莹
  • 一文览尽谷歌 ICML 2019 成果

    机器学习是Google的一个关键战略重点,高度活跃的团队致力于该领域中包括深度学习、经典的算法、探索理论和应用等几乎所有方面的研究。我们利用可扩展的工具和体系结...

    AI研习社
  • AI在医疗保健行业的下一个前沿是什么?

    医疗行业可能是AI(人工智能)的最大机遇之一。根据ReportLinker的数据显示,到2025年,这一类别的支出预计将从21亿美元跃升至361亿美元。

    AiTechYun
  • 腾讯云宣布全面升级AI 开放平台,开放超200项AI能力

    ? 9月11日, 在腾讯全球数字生态大会AI专场上,腾讯云AI计算机视觉产品中心总经理王磊透露:“通过第三方数据库统计显示,腾讯人工智能中国专利申请超过560...

    腾讯云AI中心

扫码关注云+社区

领取腾讯云代金券