写在前面
近期看到一篇论文,其中有一个无监督聚类方法叫做SOM(self-organizing maps,自组织映射),这就来学习一下
正餐开始
SOM,自组织映射(当然也有人将其称为自组织神经网络的,也有人称为自组织竞争网络的),和 通常意义上的神经网络略有不同,在应用的过程中更倾向于 K-means算法。其训练过程有点像K-means中寻找聚类中心的过程。
整个模型的主要作用:降维+演示(即可视化展示数据的分布特性)
主要的功能还是数据可视化,后面的聚类分类等精度要差一些
点之间距离越近,两者关系越近,反之越远
训练目的:
一个输入(下面的所有输入层)映射到一个节点上(如X1,X2)
我们希望的就是想让我们学习到的权重W,在映射的时候能够满足这种效果: 让相近的如X1、X2隔得较近,那么映射节点也相应的隔得近(或是映射到同一节点上)
ij用来表示节点的位置,Wij是一个D维的矢量特征(即与下面节点数相对应)
; 模型训练过程
权重初始化:
输出层的每一个节点用D维的矢量来进行表征,总共有X × Y个节点,每个节点是D维,所以最终W的维度为X × Y × D
竞争:
找到激活点后,开始进行周边点权重的计算
权重更新:
目的是为了让激活点和输入的点进行逼近,结合前述权重计算, 激活点与输入点进行逼近,激活点临近点也要和输入点进行逼近。
具体细节
节点权重有2种方法,一种是高斯的方法,其图像是一个钟形结构(大概就像这样),距离越大,权重越小
第二种是硬阈值的方法,方块之内(如围着激活点的田字格)都是1,其余地方都是0。
; 总结
这就是SMO的理论部分,接下来看看能否进行代码实现。
220416补充
今天在工作室的一本书上看到了关于SOM的介绍,还比较全面,拍照下来便于以后参阅:
Original: https://blog.csdn.net/rc15680632552/article/details/123892549
Author: 人生苦短我愛Python
Title: # SOM-算法原理

什么是 Embedding()

CSRF攻击与防御(写得非常好)

层次聚类python,scipy(dendrogram, linkage,fcluster函数)

深度学习之路2

win10下RTX3060配置CUDA,并安装带有GPU支持的tensorflow

tensorflow基于cnn的实战mnist手写识别(浅层网络搭建)

(超详细)Ubuntu18.04下安装及卸载opencv+opencv_contrib

调用opensmile编译的DLL动态库API进行声音特征提取

车道线检测2022新工作整理,2D、3D都有

将COCO数据集json格式文件转为VOC数据集xml格式

使用预训练模型VGG19+Tensorflow进行神经风格迁移实战

利用聚类技术实现纹理图像分割

5.8. tensorflow2实现SVD推荐系统——python实战 (上篇)

使用Tensorflow的RNN(LSTM)生成音乐(基础)
