神经网络Kohonen模型

Python013

神经网络Kohonen模型,第1张

一、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。

代表:kmeans算法

代表:CURE算法

代表:STING算法

代表:DBSCAN算法

代表:SOM算法

代表:谱聚类算法

一个好的聚类方法可以产生高品质簇,是的簇内相似度高,簇间相似度低。一般来说,评估聚类质量有两个标准,内部质量评价指标和外部评价指标。

内部评价指标是利用数据集的属性特征来评价聚类算法的优劣。通过计算总体的相似度,簇间平均相似度或簇内平均相似度来评价聚类质量。评价聚类效果的高低通常使用聚类的有效性指标,所以目前的检验聚类的有效性指标主要是通过簇间距离和簇内距离来衡量。这类指标常用的有CH(Calinski-Harabasz)指标等

CH指标定义为:

其中 表示类间距离差矩阵的迹, 表示类内离差矩阵的迹, 是整个数据集的均值, 是第 个簇 的均值, 代表聚类个数, 代表当前的类。 值越大,聚类效果越好, 主要计算簇间距离与簇内距离的比值

簇内点对的平均距离反映了簇的凝聚度,一般使用组内误差平方(SSE)表示:

簇的邻近度用组间平方和(SSB)表示,即簇的质心 到簇内所有数据点的总平均值 的距离的平方和

外部质量评价指标是基于已知分类标签数据集进行评价的,这样可以将原有标签数据与聚类输出结果进行对比。外部质量评价指标的理想聚类结果是:具有不同类标签的数据聚合到不同的簇中,具有相同类标签的数据聚合相同的簇中。外部质量评价准则通常使用熵,纯度等指标进行度量。

簇内包含单个类对象的一种度量。对于每一个簇,首先计算数据的类分布,即对于簇 ,计算簇 的成员属于类 的概率

其中 表示簇 中所有对象的个数,而 是簇 中类 的对象个数。使用类分布,用标准公式:

计算每个簇 的熵,其中K是类个数。簇集合的总熵用每个簇的熵的加权和计算即:

其中 是簇的个数,而 是簇内数据点的总和

簇内包含单个类对象的另外一种度量。簇 的纯度为 ,而聚类总纯度为:

看了之前的回答,都不专业

聚类分析是一种无指导的分析,如果理解聚类的核心含义,你就能明白,聚类的数量是没有标准的,必须人为设定,但是特殊的聚类方法可以给你一些参考,比如:系统聚类,它可以生成聚类树,这样你就能直观判断分成几类合适。再比如:二阶聚类,系统模型会自动选择分成几类(如果不人为设定)。

聚类是无指导的训练样本,分类是有指导的训练样本,分类就是通过已知的样本建立分类规则,来预测新样本的分类,为什么是有指导的?因为分类是用样本的其它属性来解释、预测我们感兴趣的属性的模型,这是白话。举例:我们知道一批用户的人口统计变量、消费、工资和贷款还款情况,现在我们要用用户的人口统计变量、消费、工资来对用户的贷款还款情况进行预测,这就是分类模型,在这里要用到分类决策树。就是说我们用样本的其它属性来对样本的贷款还款情况建立分类规则,然后对未来的新样本进行预测,判断新用户是否是理想的放贷对象