主要内容

集群的自组织映射神经网络

自组织特征映射(SOFM)学会分类输入向量根据输入空间中如何分组。他们不同于竞争层相邻的神经元的自组织映射学习识别输入空间的周边部分。因此,自组织映射学习分布(如竞争层)和拓扑的他们训练的输入向量。

SOFM的神经元层排列最初在物理位置根据拓扑功能。这个函数gridtop,hextop,或randtop可以安排在网格中神经元,六角形,或随机拓扑。神经元之间的距离计算从他们的位置距离函数。有四个距离函数,经销,boxdist,linkdist,mandist。距离是最常见的链接。这些拓扑结构和距离函数描述拓扑(gridtop hextop randtop)距离函数(经销、linkdist mandist, boxdist)

这里一个自组织特征映射网络标识一个获胜神经元*使用相同的程序作为受雇于竞争层。然而,而不是只更新获胜神经元,神经元在一定社区N*(d获胜神经元的更新,使用Kohonen规则。具体地说,所有这些神经元N*(d)调整如下:

w ( ) = w ( 1 ) + α ( p ( ) w ( 1 ) )

w ( ) = ( 1 α ) w ( 1 ) + α p ( )

在这里,社区N*(d)包含指数的半径内的神经元d的获胜神经元*。

N ( d ) = { j , d j d }

因此,当一个向量p,获胜神经元的权重吗它的近邻走向p。因此,许多演讲后,邻近的神经元学习向量相似。

另一个版本的SOFM训练,被称为批处理算法整个数据集,提出了网络权值更新之前。该算法为每个输入向量然后决定获胜神经元。然后每个权向量的平均位置移动到所有的输入向量是一个赢家,或其附近的赢家。

为了说明社区的概念,考虑下面的图。左边的图显示了一个二维的半径d= 1周围神经元13。正确的图显示了一个附近的半径d= 2。

这些社区可以写成N13(1)= {8、12、13、14、18}
N13(2)={3、7、8、9、11、12、13、14、15、17、18、19日,23日}。

神经元的SOFM不必安排在一个二维模式。你可以用一维的安排,或者三个或更多维度。一维SOFM的神经元只有两个邻国在半径为1(或一个邻居如果神经元的线)。您还可以定义距离以不同的方式,例如,通过使用矩形和六角安排的神经元和社区。网络的性能不敏感的确切形状社区。

拓扑(gridtop,hextop,randtop)

您可以指定不同的拓扑原始神经元的位置的功能gridtop,hextop,randtop

gridtop拓扑始于神经元类似前面所示的矩形网格图。例如,假设你想要一个2×3组6个神经元。你可以得到这个

pos = gridtop ([2、3]) pos = 0 1 0 1 0 1 0 0 1 1 2 2

神经元1的位置(0,0),神经元2的位置(1,0)和神经元3的位置(0,1),等等。

注意,如果你要求gridtop尺寸大小颠倒,会得到一个稍微不同的安排:

pos = gridtop ([2]) pos = 0 1 2 0 1 2 0 0 0 1 1 1

您可以创建一组8乘10的神经元gridtop拓扑与下面的代码:

pos = gridtop (10 [8]);plotsom (pos)

图包含一个坐标轴对象。坐标轴对象与标题神经元位置包含2线类型的对象。

如图所示,神经元gridtop拓扑确实躺在一个网格。

hextop函数创建一组相似的神经元,但它们在一个六角形的模式。一个2×3的模式hextop神经元生成如下:

pos = hextop ([2、3]) pos = 0 0 0 0 1.0000 1.0000 0.5000 1.5000 0.8660 0.8660 1.7321 1.7321

请注意,hextopSOM网络的默认模式生成selforgmap

您可以创建和情节一组8乘10的神经元hextop拓扑与下面的代码:

pos = hextop (10 [8]);plotsom (pos)

图包含一个坐标轴对象。坐标轴对象与标题神经元位置包含2线类型的对象。

注意神经元的位置在一个六角形的安排。

最后,randtop函数创建神经元n维随机模式。下面的代码生成一个随机模式的神经元。

pos = randtop ([2、3]) pos = 0 0 0.7620 0.6268 1.4218 0.0663 0.7862 0.0925 0.4984 0.6007 1.1222 1.4228

您可以创建和情节一组8乘10的神经元randtop拓扑与下面的代码:

pos = randtop (10 [8]);plotsom (pos)

图包含一个坐标轴对象。坐标轴对象与标题神经元位置包含2线类型的对象。

有关示例,请参见帮助这些拓扑功能。

距离函数(经销,linkdist,mandist,boxdist)

在这个工具箱,有四种计算方法距离一个特定的神经元,其邻居。每一个计算方法实现特殊功能。

经销函数计算欧几里得距离一个神经元到其他神经元。假设你有三个神经元:

pos2 = [0 1 2;0 1 2]pos2 = 0 1 2 0 1 2

你找到其他的每个神经元的距离

D2 = D2 dist (pos2) = 0 0 1.4142 2.8284 1.4142 1.4142 2.8284 1.4142 0

因此,神经元的距离1本身是0,神经元1到神经元的距离2是1.4142,等等。

下面的图显示了一个家神经元在一个二维(gridtop)层的神经元。的家神经元周围社区的直径增加。直径1的社区包括神经元和近邻。直径2包括直径1神经元的邻居和他们的直接邻居。

至于经销功能,所有的社区S-neuron层地图的表示年代——- - - - - -年代矩阵的距离。上面所示的特定距离(1在不远的小区,附近的2,等等),生成的功能boxdist。假设你有6个神经元gridtop配置。

pos = gridtop ([2、3]) pos = 0 1 0 1 0 1 0 0 1 1 2 2

然后框的距离是

d = boxdist (pos) d = 0 1 1 1 2 2 1 0 1 1 2 2 1 1 0 1 1 1 1 1 1 0 1 1 2 2 1 1 0 1 2 2 1 1 1 0

神经元的距离1到2、3、4是1,因为他们在周边。神经元的距离1 5和6是2。3和4的距离其他神经元是1。

链接距离从一个神经元是链接的数量,或步骤,必须考虑到神经元。因此,如果你计算距离相同的神经元linkdist,你会得到

dlink = 0 1 1 2 2 3 1 0 2 1 3 2 1 2 0 1 1 2 2 1 1 0 2 1 2 3 1 2 0 1 3 2 2 1 1 0

曼哈顿的两个向量之间的距离xy是计算

D =总和(abs (x - y))

因此如果你有

W1 = [1 2;3 4;5 6]W1 = 1 2 3 4 5 6

P1 = [1; 1] P1 = 1 1

然后你的距离

Z1 = mandist (W1, P1) Z1 = 1 5 9

的距离计算mandist确实按照上面给出的数学表达式。

体系结构

SOFM的架构如下所示。

此体系结构就像一个竞争网络,除了这里使用没有偏见。竞争激烈的传递函数为输出元素产生一个1一个1对应于*,获胜神经元。所有其他元素的输出一个1都是0。

然而现在,如上所述,接近更新获胜神经元和神经元获胜神经元。你可以选择从各种拓扑的神经元。同样,你可以选择从不同的距离表达式计算神经元接近获胜神经元。

创建一个自组织映射神经网络selforgmap)

您可以创建一个新的SOM网络的功能selforgmap。使用这个函数定义了变量在两个阶段的学习:

  • Ordering-phase学习速率

  • Ordering-phase步骤

  • Tuning-phase学习速率

  • Tuning-phase附近距离

这些值用于培训和适应。

考虑下面的例子。

假设您希望创建一个网络输入向量有两个元素,和要有六个神经元在六角2×3网络。获得这个网络的代码是:

2 =净selforgmap ([3]);

假设向量训练上是:

P = [。1。31。2 1.1 1.8 1.7 .1 .3 1.2 1.1 1.8 1.7;0.2 0.1 0.3 0.1 0.3 0.2 1.8 1.8 1.9 - 1.9 1.7 - 1.8);

您可以配置网络输入数据和情节所有这一切:

网=配置(净,P);plotsompos(净,P)

图SOM重量位置(plotsompos)包含一个坐标轴对象。坐标轴对象包含标题SOM的仓位3线类型的对象。

绿色的斑点是训练向量。的初始化selforgmap整个输入空间传播的初始权重。注意,他们最初是一些培训向量的距离。

模拟一个网络时,负面的每个神经元的权向量之间的距离和输入向量计算(negdist)的加权输入。加权输入也净输入(netsum)。净输入竞争(专业),因此只有最积极的神经元网络输入输出一个1。

培训(learnsomb)

默认的学习中自组织特征映射发生在批处理模式(trainbu)。重学习自组织映射函数learnsomb

首先,网络为每个输入向量识别获胜神经元。然后每个权向量的平均位置移动到所有的输入向量为它是一个赢家或其附近的赢家。的距离定义邻域的大小改变时通过两个阶段的培训。

排序阶段

这一阶段持续给定数量的步骤。附近的距离从一个给定的初始距离,并减少优化社区距离(1.0)。附近距离减少在这一阶段,网络的神经元通常在输入空间秩序本身具有相同的拓扑中命令身体。

调优阶段

这一阶段持续的培训或适应。附近的大小减少低于1所以只有获胜神经元学习对于每一个样本。

现在看看这些网络中常用的具体值。

学习发生根据learnsomb学习参数,所示的默认值。

学习参数

默认值

目的

LP.init_neighborhood

3

初始邻域大小

LP.steps

One hundred.

排序阶段步骤

附近的大小NS通过两个阶段:改变一个排序阶段和优化阶段。

定阶段持续时间尽可能多的步骤LP.steps。在此阶段,该算法调整ND从最初的邻域的大小LP.init_neighborhood到1。在这个阶段,神经元权重顺序在输入空间与相关的神经元的位置一致。

在优化阶段,ND小于1。在这个阶段,预计权重在输入空间分布相对均匀,同时保留他们的拓扑发现在排序阶段。

因此,神经元的权重向量最初采取大量的措施一起对输入空间的面积输入向量在哪里发生。然后随着邻域大小减少1,地图会秩序本身拓扑在输入向量。一旦附近的大小是1,网络应该相当好命令。训练还在继续为了给神经元时间分散均匀地分布在多个输入向量。

与竞争层神经元的自组织映射将订单与近似等于他们如果输入向量之间的距离似乎连概率在输入空间的一部分。如果输入向量不同频率发生在整个输入空间,功能映射层往往分配神经元面积成比例的频率输入向量。

因此,特征图谱,在学习分类他们的输入,也学会了拓扑结构和分布的输入。

你可以训练1000年的网络时代

net.trainParam。时代= 1000;网=火车(净,P);

数字神经网络训练(26 - 2月- 2022 11:10:47)包含一个uigridlayout类型的对象。

plotsompos(净,P)

图SOM重量位置(plotsompos)包含一个坐标轴对象。坐标轴对象包含标题SOM的仓位3线类型的对象。

您可以看到神经元已经开始走向各种培训组。需要额外的培训获得神经元接近各种团体。

如前所述,自组织映射与传统竞争学习的不同神经元权值更新。而不是只更新获胜者,特征图谱更新获胜者的重量和它的邻国。结果是邻近的神经元会有类似的权重向量,对类似的输入向量。

例子

下面的两个例子简要描述。你也可以尝试类似的例子一维自组织映射二维自组织映射

一维自组织映射

考虑双元素单元输入向量之间的均匀0 100°和90°。

角= 0:0.5 *π/ 99:0.5 *π;

这是一块数据。

P =[罪(角度);因为(角度)];

自组织映射的定义是一维层的神经元。这张地图是被训练在这些输入向量如上所示。最初这些神经元的中心人物。

当然,因为所有的权重向量输入向量空间的中间开始,你现在看到的是一个圆。

培训开始向输入向量权重向量一起行动。他们也成为有序的社区的大小减少。最后层调整权重,这样每个神经元反应强烈输入空间的一个区域被输入向量。邻近的神经元权重向量的位置也反映了输入向量的拓扑。

注意,自组织映射与输入向量训练在一个随机的顺序,所以从相同的初始向量并不能保证相同的训练结果。

二维自组织映射

这个例子展示了如何将一个二维自组织映射训练。

首先一些随机输入数据创建下面的代码:

P =兰德(1000);

这是一个阴谋的这1000个输入向量。

5-by-6二维地图30神经元用于这些输入向量进行分类。二维地图五由六个神经元,神经元和距离计算根据曼哈顿距离社区功能mandist

地图然后训练了5000年报告周期,每20周期与显示。

这就是自组织映射后看起来像40周期。

用圆圈所示的权重向量,几乎是随机放置。然而,即使只有40表示周期后,邻近的神经元,由线连接,权重向量密切联系在一起。

这是地图在120周期。

120个周期后,地图已经开始组织本身根据输入空间的拓扑,它限制了输入向量。

下面的情节,500次后,地图显示了整个输入空间分布更均匀。

最后,5000次后,地图,而均匀地分布在输入空间。此外,神经元非常均匀间隔的,反映了输入向量的均匀分布在这个问题。

因此一个二维自组织映射获悉其输入空间的拓扑结构。

重要的是要注意,虽然自组织映射组织本身,这样用不了多少时间邻近神经元输入识别相似,它需要花很长时间映射到最后安排本身根据输入向量的分布。

训练和批处理算法

批训练算法通常比增量算法快得多,这是默认的SOFM算法训练。你可以用这个算法实验在一个简单的数据集使用以下命令:

x = simplecluster_dataset净= selforgmap (6 [6]);网=火车(净,x);

这个命令序列创建和火车6-by-6二维地图的36个神经元。在培训期间,出现下图。

有几个有用的可视化,您可以访问从这个窗口。如果您点击SOM的仓位下图显示,显示数据点的位置和权重向量。图表明,只有200批处理算法的迭代后,地图是通过输入空间分布。

高维输入空间时,你不能想象所有的重量在同一时间。在这种情况下,点击SOM邻居的距离。出现下图,这表明相邻的神经元之间的距离。

这个图使用以下颜色编码:

  • 蓝色六边形代表神经元。

  • 红线连接相邻的神经元。

  • 包含红线显示的颜色区域的神经元之间的距离。

  • 较暗的颜色代表更大的距离。

  • 较轻的颜色代表小的距离。

光的四组段出现,有界一些深色的部分。这个分组显示,网络集群数据分成四组。这四个组中可以看到前面的体重状况图。

另一个有用的图可以告诉你有多少数据点与每个神经元联系在一起。点击SOM样打看下面的图。最好是如果数据相当均匀地分布在神经元。在本例中,数据集中更多的角落里的神经元,但总体分布相当均匀。

您还可以使用重量平面图形可视化权重本身。点击SOM输入飞机在培训窗口获取下一个图。有一个飞机重量为每个元素的输入向量(两个,在这种情况下)。他们是可视化的权重将每个输入连接到每一个神经元。(轻和深色代表较大和较小的权重,分别)。如果连接的两个输入模式非常相似,你可以假设输入是高度相关的。在这种情况下,输入1的连接是不同的比输入2。

你也可以产生所有的以前的数据从命令行。试试这些绘图命令:plotsomhits,plotsomnc,plotsomnd,plotsomplanes,plotsompos,plotsomtop