# SOM-算法原理

写在前面

近期看到一篇论文,其中有一个无监督聚类方法叫做SOM(self-organizing maps,自组织映射),这就来学习一下

正餐开始

SOM,自组织映射(当然也有人将其称为自组织神经网络的,也有人称为自组织竞争网络的),和通常意义上的神经网络略有不同,在应用的过程中更倾向于K-means算法。其训练过程有点像K-means中寻找聚类中心的过程。
# SOM-算法原理_第1张图片
整个模型的主要作用:降维+演示(即可视化展示数据的分布特性)

主要的功能还是数据可视化,后面的聚类分类等精度要差一些

点之间距离越近,两者关系越近,反之越远

训练目的:
一个输入(下面的所有输入层)映射到一个节点上(如X1,X2)
我们希望的就是想让我们学习到的权重W,在映射的时候能够满足这种效果:让相近的如X1、X2隔得较近,那么映射节点也相应的隔得近(或是映射到同一节点上)
# SOM-算法原理_第2张图片
ij用来表示节点的位置,Wij是一个D维的矢量特征(即与下面节点数相对应)

模型训练过程

# SOM-算法原理_第3张图片
权重初始化:
输出层的每一个节点用D维的矢量来进行表征,总共有X × Y个节点,每个节点是D维,所以最终W的维度为X × Y × D

竞争:
找到激活点后,开始进行周边点权重的计算
# SOM-算法原理_第4张图片
权重更新:
目的是为了让激活点和输入的点进行逼近,结合前述权重计算, 激活点与输入点进行逼近,激活点临近点也要和输入点进行逼近。

具体细节

# SOM-算法原理_第5张图片
节点权重有2种方法,一种是高斯的方法,其图像是一个钟形结构(大概就像这样),距离越大,权重越小
# SOM-算法原理_第6张图片
第二种是硬阈值的方法,方块之内(如围着激活点的田字格)都是1,其余地方都是0。

总结

这就是SMO的理论部分,接下来看看能否进行代码实现。

220416补充

今天在工作室的一本书上看到了关于SOM的介绍,还比较全面,拍照下来便于以后参阅:
# SOM-算法原理_第7张图片
# SOM-算法原理_第8张图片
# SOM-算法原理_第9张图片
# SOM-算法原理_第10张图片

你可能感兴趣的:(烟酒生活,python,数据分析)