机器学习 --- 自组织映射网络SOM聚类算法

举报
Ghostian 发表于 2021/06/24 11:30:59 2021/06/24
【摘要】 机器学习 — 自组织映射网络SOM聚类算法SOM(Self-Origanizing Maps),或者SOFM(Self-Origanizing Feature Maps),自组织映射网络,是一种基于神经网络的聚类算法,该算法为无监督学习算法。 SOM的基本结构SOM是一个单层的神经网络,也就是说---- SOM算法只包含输入层和计算层(Computational Layer) SOM结构...

机器学习 — 自组织映射网络SOM聚类算法

SOM(Self-Origanizing Maps),或者SOFM(Self-Origanizing Feature Maps),自组织映射网络,是一种基于神经网络的聚类算法,该算法为无监督学习算法。

SOM的基本结构

SOM是一个单层的神经网络,也就是说---- SOM算法只包含输入层和计算层(Computational Layer)


SOM结构

SOM的计算层又被叫做竞争层或者输出层,这一层是由一系列神经元(neurons)组成的结构,该结构可以是一维结构,也可以是二维结构(一般情况下不会高于二维结构),其中计算层的节点与输入层的节点是全连接的.计算层可以把任意维度的输入离散化到一维或者二维的离散空间上,也就是说,SOM算法可以起到降维的作用 — 将高维度的数据输入映射到计算层所定义的维度空间中.在 k-means 中,我们需要提前指定 k 的取值, 即聚类簇的数量. 但在 SOM 中,需提前指定一个拓扑结构(簇与簇间的几何关系)。在拓扑结构中,一个节点就是一个簇。

SOM算法有以下本质:

  1. SOM的目标是用低维(通常是二维或三维)目标空间的点来表示高维空间中的所有点,尽可能地保持点间的距离和邻近关系(拓扑关系).
  2. SOM算法不同于其他人工神经网络(ANN)模型, SOM应用的是竞争学习(Competitive Learning),而不是纠错学习(例如反传播神经网络).且SOM使用邻域功能来保持输入的拓扑性质

SOM的学习过程

1. 竞争过程(Competitive Process)

竞争学习规则的生理学基础是神经细胞的侧抑制现象: 当一个神经细胞兴奋后,会对其周围的神经细胞产生抑制作用。最强的抑制作用是竞争获胜的“唯我独兴”,这种做法称为胜者独占WTA(Winner Take All)。竞争学习规则就是从神经细胞的侧抑制现象获得的.

在 SOM 中,竞争层的各个神经元会参照输入的 N 维的数据(x)和连接权重(权重 w),w 的范围在{0,1}之间,以正规化(Normalized)的任意值来初始化。在学习过程中,会计算输入 x 与所有神经元的权重 w 之间的距离。当距离最小时该神经元成为胜者,这就是竞争的过程。

2. 协作过程(Cooperation Process)

这一过程是允许竞争过程的胜者与其邻近的神经元,对提供的输入数据进行学习.为了对相似的特征在竞争阶层中更敏感地形成地图,“胜者”神经元依据固定的函数来决定邻近的神经元,同时此神经元的相应权重也会得到更新. Kohonen 网络的哲学就是 “胜者独占(Winner Take All)”,即只有胜者才有输出,只有胜者才能够更新权重 w。

3. 适应过程(Adaptation Process)

该过程适应激活函数,使得获胜者神经元和邻近神经元对特定输入值更敏感,同时也更新相应的权重。通过此过程,与胜者神经元邻近的神经元将会比远离的神经元更加适应。适应的大小用过学习率来控制,学习率随着学习的时间而衰减,其对 SOM 的收敛速度起到减小的作用。

SOM算法流程

1. 向量归一化

对SOM网络中的输入向量和竞争层中的神经元对应的权重向量进行归一化处理,得到 X ^ , W ^ \hat{X},\hat{W}

X ^ = X X , W ^ = W W \hat{X}={X\over{||X||}}, \hat{W}={W\over{||W||}}

2. 随机采样,并寻找获胜神经元(best matching unit, BMU)

首先,随机从 X X 中采取一个样本

使用欧几里得距离公式来计算输入向量和竞争层节点的权重向量之间的相似性,将 X ^ \hat{X} 与竞争层所有神经元对应的权向量 W j ^ ( j = 1 , 2 , 3 , 4 , 5... m ) \hat{W_j}(j=1,2,3,4,5...m) 进行相似性比较,最相似的神经元获胜,权向量为 w j ^ \hat{w_j}

i ( x ) = arg min j x ( n ) w j ( n ) i(x)=\argmin_j{||x(n)-w_j(n)||}

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

通过将BMU附近的节点(包括BMU本身)拉近到输入vector,来更新它们的权重向量

W v ( s + 1 ) = W v ( s ) + θ ( u , v , s ) α ( s ) ( D ( t ) W v ( s ) ) W_v(s+1)=W_v(s)+\theta(u,v,s)\cdot\alpha(s)\cdot(D(t)-W_v(s))

其中,
s s 表示当前的迭代次数
θ \theta 表示是由与BMU的距离而产生的约束,通常称为邻域函数
α \alpha 表示学习率
D D 表示输入向量

4. 从步骤2开始重复,直到迭代次数达到上限


SOM学习过程

优缺点

优点

  • SOM 将相邻关系强加在簇质心上,有利于聚类结果的解释
  • 具有降维功能
  • 可视化强
  • 自组织能力
  • 无监督学习
  • 保留拓扑结构信息

缺点

  • SOM的主要缺点是该算法需要神经元的权重足够必要且充分来对输入进行聚类,如果SOM提供在权重层中的信息太少或者是太多都会对结果产生较大的影响
  • 需要定义领域函数
  • SOM缺乏具体的目标函数
  • 一个SOM簇通常不对应单个自然粗,可能有自然簇的合并和分裂
  • SOM不保证收敛
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。