自组织映射SOM(Self Organizing Map)

Self Organizing Map

自组织映射Self Organizing Map (SOM)属于无监督学习(Unsupervised Learning)神经网络的一类,一般用于特征识别。简单来说,SOM就是把一系列高维数据集映射成低维的离散数据集(通常是二维或者一维),而映射后的数据集通常会以拓扑图的形式表示,常见的比如n*n的网格/坐标图,每个cell或node代表一类数据向量,cell或node越相近表示两类数据越接近。

所以SOM通常可以运用在聚类问题中,可以将数据集中相似的数据以可视化的方式聚集起来。例如对一些股票进行可视化聚类:


image.png

所谓自组织self organizing涉及到一下几个环节:

  1. Initialization。初始化每个node对已经标准化的输入向量的权重w_iw_i取0到1之间的任意数。
  2. Sampling。随机从输入集中选取一个输入向量。
  3. Matching。计算该输入向量的BMU(Best Matching Unit)——计算所有nodes中和输入向量最相似的node,把它称之为BMU。计算方法通常是计算欧拉距离:

d(\mathbf{v}) = \sqrt{\sum_{i=0}^{n}(v_i-w_i)^2}

  1. Updating。确定BMU相邻的nodes,并更新BMU及相邻nodes的权重w。计算BMU和其他nodes的距离

\text{Distance} = D(t) = \sqrt{(x-x_{\text{BMU}})^2 + (y-y_{\text{BMU}})^2 }

    $x, y$表示每个node的坐标位置。各nodes权重的更新规则为:

w(t+1) = w(t) + \eta(t)\cdot\theta(t)\cdot\big[v(t)-w(t)\big]
其中\eta为learning rate,\theta为neighbourhood函数。

    其中

\eta(t) = \eta_0\exp\bigg({-\frac{t}{\tau_{\eta}}}\bigg) \\ \theta(t) = \exp{\Bigg(-\frac{D^2}{2\sigma(t)^2}\Bigg)} \\ \sigma(t) = \sigma_0\exp\bigg({-\frac{t}{\tau_{\sigma}}}\bigg)
\alpha_0,\sigma_0,\tau_{\eta},\tau_{\sigma}为参数,\sigma指“相邻的半径”,t为迭代次数。

  1. Continuation。迭代,不断重复第2步。

    随着迭代次数的增加,learning rate变小,\sigma半径变小。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容