知然算法【1】SOM(Self-Organizing Map,自组织映射)网络

关注获取源码

https://mp.weixin.qq.com/s/kZuIGgy_yQUKAO5zDXd6Aw
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第1张图片

SOM网络有两层:第一层输入层,输入数据的层,是一维的,神经元的个数就是数据特征数;第二层是竞争层,也就是根据输入层输入的数据,神经元之间按照策略进行竞争的层,通常是二维的,行、列神经元个数可通过一些经验规则给定。其中竞争策略是通过下面的方式实现的:竞争层的每个神经元都有权重,当输入层输入某个样本时,就计算所有神经元的权重与该条样本的距离,然后通过规则调整距离比较小的神经元的权重,使得其更接近该样本。

SOM就是将多条高维数据映射到二维的平面上,并且保证相近的数据在平面上的映射位置比较靠近,从而进行聚类。

现有待聚类样本数据集 D D D,维度为 ( N , M ) (N, M) (N,M),其中数据条数为 N N N,每条数据的特征数为 M M M

一、SOM模型步骤:

  • (1)竞争层神经元个数设置:行神经元个数可以取 5 M N \sqrt{5\sqrt{MN}} 5MN (向上取整),列神经元个数可以和行一样,或者多于行数的一半;
  • (2)样本数据集归一化:对每一列进行各自的归一化,例如可以将每一列缩放到 [ 0 , 1 ] [0,1] [0,1]之间;
  • (3)初始化神经元权重 W W W:每个神经元的权重均是长度为 M M M的向量,每个元素均为随机选择的比较小的数,例如在0到0.01之间;

开始训练SOM网络:迭代次数 s s s,初始的学习率 u u u,初始的邻域半径 r r r

  • (4)计算最佳匹配神经元(BMU):选择一条样本数据 X X X,计算该数据与所有神经元权重之间的数据距离 m m m,其中距离最小的神经元定义为为 B M U BMU BMU
  • (5)获得邻域内的神经元:根据当前的邻域半径 R ( c s ) R(cs) R(cs)获取邻域中心为 B M U BMU BMU的所有神经元,其中 R ( c s ) R(cs) R(cs)是随着迭代次数的增加使得邻域半径逐渐衰减的函数, c s cs cs是当前的迭代次数;
  • (6)更改样本权重:对邻域中的每一个神经元,根据当前的学习率 U ( c s ) U(cs) U(cs)以及该神经元与 B M U BMU BMU之间的拓扑距离 d d d,计算该神经元的学习率 L ( U ( c s ) , d ) L(U(cs),d) L(U(cs),d)。然后按照下式更新该神经元的权重:

W = W + L ( U ( c s ) , d ) ∗ ( X − W ) W = W + L(U(cs),d)*(X-W) W=W+L(U(cs),d)(XW)

其中 L ( U ( c s ) , d ) L(U(cs),d) L(U(cs),d)是关于当前的学习率和神经元之间的拓扑距离的函数,输出的是与 B M U BMU BMU的拓扑距离为 d d d的神经元的学习率,并且 d d d越大,学习率越小; U ( c s ) U(cs) U(cs)是随着迭代次数的增加学习率逐渐衰减的函数;

  • (7)训练完成:所有样本数据运行完(4)-(6), c s cs cs加1,当其等于 s s s或者误差基本不变时停止迭代;

注:神经元个数不宜少;数据距离 m m m就是指的是神经元的M维权重与样本数据之间的距离,例如欧式距离,余弦距离;拓扑距离 d d d指的是神经元网络中的神经元的几何位置之间的距离,例如曼哈顿距离,欧式距离;误差可以定义为所有样本数据与其 B M U BMU BMU的最小数据距离的和;

二、SOM结果的可视化内容:

  • 结果可视化
    • 神经元样式

      • 六边形
    • 可视化内容

      • 特征的值的分布(含有类别界限)
      • 类别的神经元激活程度
      • 样本标签的分布可视化

三、SOM结果

以鸢尾花数据集为例
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第2张图片
1.特征的值的可视化
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第3张图片
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第4张图片
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第5张图片
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第6张图片
2.神经元击中次数的可视化
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第7张图片
3 神经元距离可视化
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第8张图片
4 不同类别神经元的激活程度可视化
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第9张图片
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第10张图片
知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第11张图片
5 样本归类情况可视化

知然算法【1】SOM(Self-Organizing Map,自组织映射)网络_第12张图片

你可能感兴趣的:(知然算法,算法,自组织映射,SOM,Python3)