自组织地图

时间:2014-07-16 20:31:44

标签: maps self som

我对自组织地图算法有疑问

我知道我们有一个输入向量和权重向量。计算权重和输入之间的最小距离是最佳匹配单位,使得与最小值相关的权重列更新然后更新其邻居。之后我们更新速率(假设您有SOM经验)。

示例

input 
i1: (1, 1, 0, 0)

weight =
[.8 .4 .7 .3
.2 .6 .5 .9]

学习率.6

步骤(简单地删除高斯函数)

第一次迭代。

1-找到最小距离

 d2 = (.2-1)2 + (.6-1)2 + (.5-0)2 + (.9-0)2 = 1.86
 d2 = (.8-1)2 + (.4-1)2 + (.7-0)2 + (.3-0)2 = .98   this is the BMU

2-更新权重向量

new−unit2−weights = [.8 .4 .7 .3] + 0.6([1 1 0 0]-[.8 .4 .7 .3]) 
                  = [.92 .76 .28 .12]

重量的结果是

.8   .4  .7  .3
.92 .76 .28 .12

我的问题

1-最后,我将获得新的权重向量值和相同的输入向量。

应该绘制什么?重量或输入或什么?

如果我正在使用matlab,您是否知道使用什么函数来获得良好的插图

2 个答案:

答案 0 :(得分:0)

下面是一个非常简单的示例,初始权重为:

  

Initial weight = [.8 .4 .7 .3 .2 .6 .5 .9]

并且最终权重应该是(假设所有计算正确):

  

Final weights = [.92 .76 .28 .12 .2 .6 .5 .9]

请注意,获胜单位(称为最佳匹配单位)是此处唯一应更新/更改的单位,因为您忽略了SOM的邻域学习方面。 这成为您的结果,并且将被绘制。

答案 1 :(得分:-1)

我现在正在学习SOM算法,如果您熟悉Python,我将使用Python来实施该算法我认为您可以点击此链接,{ {3}}

你的体重是

weight =
[.8 .4 .7 .3
.2 .6 .5 .9]

您输入的值是

vector = [1, 1, 0, 0]

我认为output layer2,因为initial weight2 by 4矩阵。您可以同时绘制input dataweight

输入值为

[[0.1961, 0.9806],
[-0.1961, 0.9806],
[0.9806, 0.1961],
[0.9806, -0.1961],
[-0.5812, -0.8137],
[-0.8137, -0.5812],]

情节是,权重为3 by 2矩阵,如图所示,有3 X s,即权重。

som_test