2

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

我知道我们有一个输入向量和权重向量。计算权重和输入之间的最小距离是最佳匹配单元,它使与最小值相关的权重列更新,然后更新其邻居。之后我们更新速率(假设您有 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,你知道用什么函数来获得好的插图吗

4

2 回答 2

0

按照您非常简单的示例,初始权重为:

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

最终权重应该是(假设您的所有计算都是正确的):

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

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

于 2018-09-19T18:14:04.323 回答
-1

这几天在学习SOM算法,我打算用它Python来实现算法,如果你熟悉Python我想你可以点击这个链接,som_test

你的体重是

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 Xs,即权重。

阴谋

于 2015-09-14T01:12:20.017 回答