总结包括Kohonen网络的基本介绍,以及实现原理,并绘制算法的实现步骤。


基本信息

Kohonen网络(KN,也称之为自组织(特征)映射(SOM/SOFM:self organising (feature) map))它是由自组织竞争型神经网络的一种,该网络为无监督学习网络,能够识别环境特性并自动聚类。由两层前馈神经网络组成,包括输入层和输出层。输入层与输出层之间通过神经元进行双向连接,将输入在输出层映射成二维离散图像。神经元通过无监督竞争学习使不同的神经元对不同的输入模式敏感,从而特定的神经元在模式识别中可以充当某一输入模式的检测器。网络训练后神经元被划分为不同区域,各区域对对输入模型具有不同的相应特征。

由上图所示,网络中黄色的为输入向量或称为特征向量,其处理单元数目依问题而定。若输入向量为n个元素,则输入端共有n各节点。绿色的节点为输出层,用以表现网络的输出变数及训练范例的聚类。其处理单元数目依问题而定。形式为一个节点矩阵其结构本身有“网络拓扑”,以及“邻近区域”的概念。

网络连接:所有输入节点到输出节点都有权值连接,而在二维平面的输出节点相互之间也可能有局部连接。每个输出层处理单元与输入层处理单元连接的权数所构成的向量,表示一个输入特征值向量对应训练范例聚类的标量。当Kohonen网络学习完成后,靠近输出处理单元的神经元具有相似的连接权数。

Kohonen基本原理

Kohonen网络的基本原理是计算输入的特征量映射至输出层每一处理单元的欧几里得距离(euclidean distance),而具有最小距离值的处理单元就是优胜单元并且将会调整它的连接权值,使其能够更接近原始的输入向量,而且此处理单元的邻近区域也会调整本身的连接权值,使自己与输入向量间的欧几里得距离能够减少,其算法步骤如下:

输入:训练样本和测试样本;

输出:训练后的权系数矩阵和测试样本所属的类及归属程度;

(1)粗调整学习阶段

1)网络权值初始化

scikit 神经网络 神经网络knn_权值

,新向量的输入

scikit 神经网络 神经网络knn_神经网络_02

式中:

scikit 神经网络 神经网络knn_scikit 神经网络_03

——t时刻样本的第

scikit 神经网络 神经网络knn_神经网络_04

维分量

scikit 神经网络 神经网络knn_神经网络_05

总的学习次数为

scikit 神经网络 神经网络knn_权值_06

2) 样本矢量与权值之间距离的计算

        

scikit 神经网络 神经网络knn_权值_07

       

scikit 神经网络 神经网络knn_处理单元_08

                   (2)

3)求最小距离,找出最匹配输入样本矢量的竞争层节点C,即:

              

scikit 神经网络 神经网络knn_SOM神经网络_09

               

scikit 神经网络 神经网络knn_神经网络_10

                                  (3)

4)调整权系数,粗调整阶段

                                                                        

scikit 神经网络 神经网络knn_SOM神经网络_11

其中:

scikit 神经网络 神经网络knn_SOM神经网络_12

——竞争层神经元的个数。

按照步骤2)计算邻域函数值,权值可根据式(4)进行调整:

                                                    

scikit 神经网络 神经网络knn_SOM神经网络_13

                                     (4)

5)学习率和邻域宽度按照步骤1)和步骤3)进行递减。

6)返回步骤3),所有学习样本调整一遍。

7)

scikit 神经网络 神经网络knn_权值_14

;直至

scikit 神经网络 神经网络knn_权值_15


(2)精细调整学习阶段

8)精细调整

scikit 神经网络 神经网络knn_权值_16

阶段,

scikit 神经网络 神经网络knn_scikit 神经网络_17

并重复步骤2)一6),只是邻域宽度和学习率按照式(5)递减:                                                          

scikit 神经网络 神经网络knn_权值_18

                                             (6)                                                         

scikit 神经网络 神经网络knn_SOM神经网络_19

13)读取一个新的网络输入样本。

14)根据已计算出来的欧氏距离

scikit 神经网络 神经网络knn_scikit 神经网络_20

和上文定义的隶属函数,计算输入样本到各输出神经元的隶属度为                                                   

scikit 神经网络 神经网络knn_神经网络_21

                                    (7)l5)输出分类:设定阈值,根据高斯函数自性质,本文将阀值设为0.6,即:当

scikit 神经网络 神经网络knn_SOM神经网络_22

16) 重复13)步,直到没有新的输入样本。

                                 

scikit 神经网络 神经网络knn_SOM神经网络_23

                                    

scikit 神经网络 神经网络knn_神经网络_24

                         

scikit 神经网络 神经网络knn_神经网络_25

                        

scikit 神经网络 神经网络knn_SOM神经网络_26

          

scikit 神经网络 神经网络knn_神经网络_27


                 

scikit 神经网络 神经网络knn_神经网络_28

   

scikit 神经网络 神经网络knn_权值_29

scikit 神经网络 神经网络knn_scikit 神经网络_30



                                      

scikit 神经网络 神经网络knn_scikit 神经网络_31

由上到下依次进行,x返回第二步,直到判断为Y则结束