Self Organizing Map
自组织映射Self Organizing Map (SOM)属于无监督学习(Unsupervised Learning)神经网络的一类,一般用于特征识别。简单来说,SOM就是把一系列高维数据集映射成低维的离散数据集(通常是二维或者一维),而映射后的数据集通常会以拓扑图的形式表示,常见的比如n*n的网格/坐标图,每个cell或node代表一类数据向量,cell或node越相近表示两类数据越接近。
所以SOM通常可以运用在聚类问题中,可以将数据集中相似的数据以可视化的方式聚集起来。例如对一些股票进行可视化聚类:
image.png
所谓自组织self organizing涉及到一下几个环节:
-
Initialization。初始化每个node对已经标准化的输入向量的权重
,
取0到1之间的任意数。
- Sampling。随机从输入集中选取一个输入向量。
- Matching。计算该输入向量的BMU(Best Matching Unit)——计算所有nodes中和输入向量最相似的node,把它称之为BMU。计算方法通常是计算欧拉距离:
-
Updating。确定BMU相邻的nodes,并更新BMU及相邻nodes的权重
。计算BMU和其他nodes的距离
$x, y$表示每个node的坐标位置。各nodes权重的更新规则为:
其中为learning rate,
为neighbourhood函数。
其中
为参数,
指“相邻的半径”,
为迭代次数。
-
Continuation。迭代,不断重复第2步。
随着迭代次数的增加,learning rate变小,
半径变小。