我对自组织地图算法有疑问
我知道我们有一个输入向量和权重向量。计算权重和输入之间的最小距离是最佳匹配单位,使得与最小值相关的权重列更新然后更新其邻居。之后我们更新速率(假设您有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,您是否知道使用什么函数来获得良好的插图
答案 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 layer
是2
,因为initial weight
是2 by 4
矩阵。您可以同时绘制input data
和weight
。
输入值为
[[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,即权重。