Self-organizing Map详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40793975/article/details/82689955

Self-organizing Map详解

第二十一次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。这一篇文章是原型聚类中介绍的第五个算法,主要是谈一谈“自组织映射”(Self-organizing   Map)。其他有关于原型聚类算法的讨论可以移步到该类算法的导航页《原型聚类算法综述(原型聚类算法开篇)》

Self-organizing Map(自组织映射)

  自组织(特征)映射(Self-organizing   Map,简称SOM),是一种基于神经网络的聚类和数据可视化算法。这种算法将含有 n 维向量样本的数据集 D = { x i | i = 1 , 2 , . . . , m } 作为输入,在保证原数据集样本点之间的拓扑结构不变的情况下,通过映射得到一个维度不高于 n 的空间结构,这个空间结构中的每个点都含有一个权重向量(质心,在SOM中称为参考向量(Reference   Vector),将权值向量作为质心的原因是,在映射过程中,样本点要与权值向量进行点积,这种点积运算可以看做是计算两个向量之间的余弦相似度)作为映射参数,因此,SOM也可以看做是原数据集中样本点的非线性回归或者类似于PCA的一种特征缩放的过程。其中,最终得到的空间结构(地形序(Topographic   Ordering))由设计者根据SOM算法的使用环境自行定义,一般为了满足数据可视化目的,将其设置为二维空间中的矩阵结构,如下图所示是一个二维空间下的3x3矩形SOM拓扑结构

  虽然同样是对每个样本进行簇指派,并且更新质心,但是与K-Means等基于原型的聚类算法仍有很大的区别,SOM中的质心由于自定义空间结构的影响,而具有预先确定的地形序关系,因此,在质心(参考向量)更新过程中需要考虑与样本点最近的质心(参考向量)及其临近的质心(参考向量)进行增量更新,且更新过程中不记录每个样本隶属的质心(参考向量),在更新完成后,再根据这些质心(参考向量)来分配数据集中的样本到对应的质心(参考向量)中。

SOM训练过程

  SOM的训练过程分为初始化质心、随机选取对象、对象的指派和质心的更新,伪代码如下所示

  算法第1行:与K-Means相同,可以在数据集 D 中随机选取 k 个样本点做为初始质心,还有一些其他选择方法,这里不做介绍。
  算法第3行 :这一步可以随机选取用来更新质心的样本点,当数据集比较小时,每个样本点都有被抽取到的可能性,但是当数据集较大时,根据boostrap原理有大约36%的样本不会被抽到,为了提高某些样本点的影响,可以采用重采样的方法提高这些点在训练集中的出现次数。
  算法第4行:根据上一步所选的样本点和每个质心之间的点积,选取最大的点积所对应的质心,对样本点进行指派,这一步可以理解为竞争学习中的“胜者为王”(WTA)策略。需要注意的是,在进行点积运算之前,需要对样本点和质心进行规范化处理 x / | | x | | 2
  算法第5行:假设 k 个质心分别记为 μ 1 , μ 2 , . . . , μ k ,迭代次数记为 t ,当前选择的样本点记为 x ( t ) 且距离他最近的质心设为 μ ( t ) ,通过下式对每个质心进行更新

  这里省略了一个重要步骤,就是首先根据距离阈值选出最近质心的邻域,之后对邻域内的全部质心进行更新,这里的距离阈值随迭代次数的增加单调递减,使算法趋于收敛。与这种增量的更新一个邻域内的所有质心类似,式(1)同样考虑了地形序对更新质点的影响,式中第 j 个质心 μ j 的更新幅度正比于当前样本点与该质心的距离 x ( t ) μ j ( t ) h j ( t ) 决定这个距离对本次更新的影响大小,因此它具有以下两个特点:(1)随迭代次数增加而减小,(2)增强地形序对更新的影响,即第 t 次迭代对越接近 μ ( t ) 的质心影响越大, h j ( t ) 可以下面两种函数中任选

在高斯函数中,方差函数 σ ( t ) 控制着邻域的大小,较小 σ ( t ) 的将产生较小的邻域,阶梯函数中的“阈值”同样控制着邻域的大小,为了最终达到收敛,这两个参数均随迭代次数的增加而递减。另外,阶梯函数中的 d i s t ( μ , μ j ) 可以采用欧氏距离进行计算,这样距离 μ ( t ) 越远的质心更新幅度越小甚至不会更新。
  算法第7行:在算法收敛后,就可以根据质心对数据集中的每个样本进行簇指派了,下面是在二维数据集上运行SOM算法的效果

上图(a)中,“x”代表了质心,即SOM中的参考向量,图(b)中的二维矩阵则是SOM生成的空间结构,可以看出该结构中相同的簇连接在一起。

SOM的优缺点

优点:SOM由于地形序的影响,最后产生的聚类结果具有比较高的的可视化和可解释性,而且与K-Means不同的是,由于每次增量的更新所有的质心,因此他受初始质心选取的影响很小。
缺点:没有一个确定的目标函数,不容易对不同的聚类结果进行比较;需要自定义SOM的空间结构,不同的空间结构代表不同的地形序,这往往会导致聚类结果大不相同;如上面实例中所示,一个SOM簇往往不代表一个自然簇,例如,一个自然簇可能会被分裂到多个SOM簇中;另外,SOM不一定会收敛。

猜你喜欢

转载自blog.csdn.net/qq_40793975/article/details/82689955