神经网络Kohonen模型

一、Kohonen模型概述

1981年芬兰赫尔辛基大学Kohonen教授提出了一个比较完整的,分类性能较好的自组织特征影射(Self-Organizing Feature Map)人工神经网络(简称SOM网络)方案。这种网络也称为Kohonen特征影射网络。

这种网络模拟大脑神经系统自组织特征影射功能,它是一种竞争式学习网络,在学习中能无监督地进行自组织学习。

二、Hohonen模型原理

1.概述

SOM网络由输入层和竞争层组成。输入层神经元数为N,竞争层由M=R×C神经元组成,构成一个二维平面阵列或一个一维阵列(R=1)。输入层和竞争层之间实现全互连接。

SOM网络的基本思想是网络竞争层各神经元竞争对输入模式的响应机会,最后仅有一个神经元成为竞争的胜者,并对那些与获胜神经元有关的各连接权朝着更有利于它竞争的方向调整,这一获胜神经元就表示对输入模式的分类。

SOM算法是一种无教师示教的聚类方法,它能将任意输入模式在输出层映射成一维或二维离散图形,并保持其拓扑结构不变。即在无教师的情况下,通过对输入模式的自组织学习,在竞争层将分类结果表示出来。此外,网络通过对输入模式的反复学习,可以使连接权矢量空间分布密度与输入模式的概率分布趋于一致,即连接权矢量空间分布能反映输入模式的统计特征。

2.网络权值初始化

因为网络输入很可能出现在中间区,因此,如果竞争层的初始权值选择在输入空间的中间区,则其学习效果会更加有效。

3.邻域距离矩阵

SOM网络中的神经元可以按任何方式排列,这种排列可以用表示同一层神经元间的Manhattan距离的邻域距离矩阵D来描述,而两神经元的Manhattan距离是指神经元坐标相减后的矢量中,其元素绝对值之和。

4.Kohonen竞争学习规则

设SOM网络的输入模式为Xp=( , ,…, ),p=1,2.…,P。竞争层神经元的输出值为Yj(j=1,2,…,M),竞争层神经元j与输入层神经元之间的连接权矢量为

Wj=(wj1,wj2,…,wjN),j=1,2,…,M。

Kohonen网络自组织学习过程包括两个部分:一是选择最佳匹配神经元,二是权矢量自适应变化的更新过程。

确定输入模式Xp与连接权矢量Wj的最佳匹配的评价函数是两个矢量的欧氏距离最小,即

,j=1,2,…,M,]]

g,确定获胜神经元g。

dg=mjin(dj),j=1,2,…,M。

求输入模式Xp在竞争层的获胜神经元g及其在邻域距离nd内的神经元的输出。

中国矿产资源评价新技术与评价新模型

dgm为邻域距离矩阵D的元素,为竞争层中获胜神经元g与竞争层中其它神经元的距离。

求输入模式Xp在竞争层的获胜神经元g及其在邻域距离nd内的神经元的权值修正值。

中国矿产资源评价新技术与评价新模型

式中:i=1,2,…,N;

lr为学习速率;

t为学习循环次数。

Δwjt(t+1)的其余元素赋值为0。

进行连接权的调整

wji(t+1)=wji(t)+Δwji(t+1)。

5.权值学习中学习速率及邻域距离的更新

(1)SOM网络的学习过程分为两个阶段

第一阶段为粗学习与粗调整阶段。在这一阶段内,连接权矢量朝着输入模式的方向进行调整,神经元的权值按照期望的方向在适应神经元位置的输入空间建立次序,大致确定输入模式在竞争层中所对应的影射位置。一旦各输入模式在竞争层有了相对的影射位置后,则转入精学习与细调整阶段,即第二阶段。在这一阶段内,网络学习集中在对较小的范围内的连接权进行调整,神经元的权值按照期望的方向在输入空间伸展,直到保留到他们在粗调整阶段所建立的拓扑次序。

学习速率应随着学习的进行不断减小。

(2)邻域的作用与更新

在SOM网络中,脑神经细胞接受外界信息的刺激产生兴奋与抑制的变化规律是通过邻域的作用来体现的邻域规定了与获胜神经元g连接的权向量Wg进行同样调整的其他神经元的范围。在学习的最初阶段,邻域的范围较大,随着学习的深入进行,邻域的范围逐渐缩小。

(3)学习速率及邻域距离的更新

在粗调整阶段,

学习参数初始化

最大学习循环次数 MAX_STEP1=1000,

粗调整阶段学习速率初值 LR1=1.4,

细调整阶段学习速率初值 LR2=0.02,

最大邻域距离 MAX_ND1=Dmax,

Dmax为邻域距离矩阵D的最大元素值。

粗调阶段

学习循环次数step≤MAX_STEP1,

学习速率lr从LR1调整到LR2,

邻域距离nd 从MAX_ND1调整到1,

求更新系数r,

r=1-step/MAX_STEP1,

邻域距离nd更新,

nd=1.00001+(MAX_ND1-1)×r。

学习速率lr更新,

lr=LR2+(LR1-LR2)×r。

在细调整阶段,

学习参数初始化,

最大学习循环次数 MAX_STEP2=2000,

学习速率初值 LR2=0.02,

最大邻域距离 MAX_ND2=1。

细调阶段

MAX_STEP1<step≤MAX_STEP1+MAX_STEP2,

学习速率lr慢慢从LR2减少,

邻域距离nd设为1,

邻域距离nd更新,

nd=MAX_ND2+0.00001。

学习速率lr更新,

lr=LR2×(MAX_STEP1/step)。

6.网络的回想——预测

SOM网络经学习后按照下式进行回想:

中国矿产资源评价新技术与评价新模型

Yj=0,j=1,2,…,M,(j≠g)。

将需要分类的输入模式提供给网络的输入层,按照上述方法寻找出竞争层中连接权矢量与输入模式最接近的神经元,此时神经元有最大的激活值1,而其它神经元被抑制而取0值。这时神经元的状态即表示对输入模式的分类。

三、总体算法

1.SOM权值学习总体算法

(1)输入参数X[N][P]。

(2)构造权值矩阵W[M][N]。

1)由X[N][P]求Xmid[N],

2)由Xmid[N]构造权值W[M][N]。

(3)构造竞争层。

1)求竞争层神经元数M,

2)求邻域距离矩阵D[M][M],

3)求矩阵D[M][M]元素的最大值Dmax。

(4)学习参数初始化。

(5)学习权值W[M][N]。

1)学习参数学习速率lr,邻域距离nd更新,分两阶段:

(i)粗调阶段更新;

(ii)细调阶段更新。

2)求输入模式X[N][p]在竞争层的获胜神经元win[p]。

(i)求X[N][p]与W[m][N]的欧氏距离dm;

(ii)按距离dm最短,求输入模式X[N][p]在竞争层的获胜神经元win[p]。

3)求输入模式X[N][p]在竞争层的获胜神经元win[p]及其在邻域距离nd内的神经元的输出Y[m][p]。

4)求输入模式X[N][p]在竞争层的获胜神经元win[p]及其

在邻域距离nd内的神经元的权值修正值ΔW[m][N],

从而得到输入模式X[N][p]产生的权值修正值ΔW[M][N]。

5)权值修正W[M][N]=W[M][N]+ΔW[M][N]。

6)学习结束条件:

(i)学习循环到MAX_STEP次;

(ii)学习速率lr达到用户指定的LR_MIN;

(iii)学习时间time达到用户指定的TIME_LIM。

(6)输出。

1)学习得到的权值矩阵W[M][N];

2)邻域距离矩阵D[M][M]。

(7)结束。

2.SOM预测总体算法

(1)输入需分类数据X[N][P],邻域距离矩阵D[M][M]。

(2)求输入模式X[N][p]在竞争层的获胜神经元win[p]。

1)求X[N][p]与W[m][N]的欧氏距离dm;

2)按距离dm最短,求输入模式X[N][p]在竞争层的获胜神经元win[p]。

(3)求获胜神经元win[p]在竞争层排列的行列位置。

(4)输出与输入数据适应的获胜神经元win[p]在竞争层排列的行列位置,作为分类结果。

(5)结束。

四、总体算法流程图

Kohonen总体算法流程图见附图4。

五、数据流图

Kohonen数据流图见附图4。

六、无模式识别总体算法

假定有N个样品,每个样品测量M个变量,则有原始数据矩阵:

X=(xij)N×M,i=1,2,…,N,j=1,2,…,M。

(1)原始数据预处理

X=(xij)N×M处理为Z=(zij)N×M,

分3种处理方法:

1)衬度;

2)标准化;

3)归一化。

程序默认用归一化处理。

(2)构造Kohonen网

竞争层与输入层之间的神经元的连接权值构成矩阵WQ×M。

WQ×M初始化。

(3)进入Kohonen网学习分类循环,用epoch记录循环次数,epoch=1。

(4)在每个epoch循环中,对每个样品n(n=1,2,…,N)进行分类。从1个样品n=1开始。

(5)首先计算输入层的样品n的输入数据znm(m=1,2,…,M)与竞争层Q个神经元对应权值wqm的距离。

(6)寻找输入层的样品n与竞争层Q个神经元的最小距离,距离最小的神经元Win[n]为获胜神经元,将样品n归入获胜神经元Win[n]所代表的类型中,从而实现对样品n的分类。

(7)对样品集中的每一个样品进行分类:

n=n+1。

(如果n≤N,转到5。否则,转到8。)

(8)求分类后各神经元所对应的样品的变量的重心,用对应的样品的变量的中位数作为重心,用对应的样品的变量的重心来更新各神经元的连接权值。

(9)epoch=epoch+1;

一次学习分类循环结束。

(10)如果满足下列两个条件之一,分类循环结束,转到11;

否则,分类循环继续进行,转到4。

1)全部样品都固定在某个神经元上,不再改变了;

2)学习分类循环达到最大迭代次数。

(11)输出:

1)N个样品***分成多少类,每类多少样品,记录每类的样品编号;

2)如果某类中样品个数超过1个,则输出某类的样品原始数据的每个变量的均值、最小值、最大值和均方差;

3)如果某类中样品个数为1个,则输出某类的样品原始数据的各变量值;

4)输出原始数据每个变量(j=1,2,…,M)的均值,最小值,最大值和均方差。

(12)结束。

七、无模式识别总体算法流程图

Kohonen无模式总体算法流程图见附图5。