其它神经网络

【原理】什么是SOM神经网络

作者 : 老饼 发表日期 : 2022-06-09 04:42:02 更新日期 : 2023-03-16 18:41:01
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



SOM神经网络全称为自组织竞争神经网络(Self-organizing Feature Map)

它是Kohonen在1981年提出的一种用于聚类的神经网络,

SOM神经网络是神经网络家族中经典、重要且广泛应用的一员

本文主要初步介绍SOM神经网络的思想,以便快速了解SOM是个什么样的算法




  01.  SOM神经网络的思想  



本节先简单回顾Kohonen规则,并描述性讲述SOM神经网络是什么



    kohonen规则回顾    


kohonen规则进行聚类的方法如下:
先随机初始化k个聚类中心点,然后每次选出一个样本,
将离它最近的聚类点往它移动,使该聚类点更靠近它,如此反复m次
 更新法则如下:
 
   其中  
 :离样本最近的聚类中心点
  : 学习率                             
 kohonen规则虽然简单,然而它却是行之有效的




  SOM神经网络  


SOM神经网络与Kohonen规则一样,主要用于解决聚类问题
它是Kohonen规则聚类的改进

 
SOM神经网络的更新规则
 
SOM在更新离样本最近的聚类中心点P的的时候,
会把P的邻近聚类中心点也一起更新    
  更细节的,有以下三点:
1、更新邻近聚类点                                                                    
  更新样本最近点P的同时,P的邻近聚类点也一起更新      
(P的学习率要比邻近聚类点更大一些)                  

 2、增加学习率的收缩机制                                                           
 随着更新步数,学习率越来越小                       
 3、邻近距离收缩机制                                                                  
 随着更新步数,邻近距离阈值越来越小                 
渐渐的,就只更新目标点及其邻边聚类点              

 
关于与邻近聚类点与聚类点间距离
 请注意,初学者很容易误会,
以为SOM训练时所用的邻近聚类点就是目标聚类点附近的聚类点,
 其实不是,SOM训练时使用的“邻近聚类点”有自己的定义
 
  关于SOM是怎么定义邻近聚类点的,详看下文
 
 SOM神经网络对样本的判别  
 
SOM模型在对样本进行判别时,
只需要判断样本离哪个聚类中心点近,就判为哪个聚类点








  02.  SOM对邻近聚类点及距离的定义  



本节讲述SOM神经网络更新时所指的邻近聚类点到底是怎么一回事




     SOM聚类点之间的距离定义    


SOM是先引入一个拓扑结构,
把所有聚类点连结在一起,然后籍此来定义距离
  
 
拓扑结构
 
拓扑结构可以是一维的,二维的,三维的,等等,最常用是二维
 
例如最常用的二维六边形拓扑结构:
 
距离的定义
 
 在SOM中,两点之间的距离,
是指在引入的拓扑结构中,这两点之间的最小边数
 




     邻近聚类点     


SOM每次更新会把邻近聚类点一起更新,那么,什么是邻近聚类点呢?
 邻近聚类点具体定义如下
点P的邻近聚类点是指与P的最小连结边数小于某个阈值的聚类点     
 
举例如下
当邻域距离阈值为1时,点P的邻近聚类点,是与点P直接连接的点   
当邻域距离阈值为2时,则是到达点P不超过2条边的聚类点         
当邻域距离阈值为k时,就是指经过m(m<=k)条边可达点P的聚类点  

所以,
SOM中邻近聚类点并不是按聚类点之间的实际距离来区分
而是按拓扑结构中的距离来区别






    笔者语    


本文我们先大概摸清SOM神经网络是什么,
对于训练的具体方法我们留在后面讲述
它的思路其实并不复杂,
只是Kohonen的基础上,引入了一个拓扑结构来定义邻域
虽然SOM比起纯粹的Kohonen规则改动并不大,
但在代码编写上,却要复杂很多,
因为SOM要初始化拓扑结构,获得点与点之间的距离矩阵
如果不借助已有的函数,这部分在编程上要花费较多代码
 
在接下来的文章,
我们把SOM的代码按matlab内部逻辑实现后,
我们将更清晰SOM算法的具体细节与算法流程








  End  






联系老饼