【问题标题】:Self-Organizing Maps自组织地图
【发布时间】:2016-07-11 20:40:23
【问题描述】:

我有一个关于自组织地图的问题:

但首先,这是我的实现方法:

som 神经元存储在一个基本数组中。每个神经元由一个双值向量(另一个输入神经元大小的数组)组成,这些双值被初始化为一个随机值。

据我了解的算法,这实际上就是我实现它所需的全部内容。

因此,对于训练,我随机选择一个训练数据样本,并使用样本值的欧几里得距离和神经元权重计算 BMU。

然后我根据邻域函数和学习率更新它的权重和它范围内的所有其他神经元。

然后,我降低邻域函数和学习率。

这会持续到固定数量的迭代。

我现在的问题是:训练后如何确定集群?到目前为止,我的方法是呈现一个新的输入向量并计算它与 BMU 之间的最小欧几里得距离。但这对我来说似乎有点幼稚。我确定我错过了什么。

【问题讨论】:

    标签: neural-network artificial-intelligence self-organizing-maps


    【解决方案1】:

    没有一种正确的方法可以做到这一点。正如您所指出的,找到 BMU 就是其中之一,如果您只想找到最相似的集群,也是唯一有意义的方法。

    如果你想重建你的输入向量,返回 BMU 原型也可以,但可能不是很精确(它相当于最近邻规则或 1NN)。然后你需要在神经元之间进行插值以找到更好的重建。这可以通过将每个神经元与它们与输入向量的距离成反比地加权,然后计算加权平均值来完成(这相当于加权 KNN)。您还可以将此插值限制为仅适用于 BMU 的邻居,这将更快地工作并且可能会产生更好的结果(这将是加权 5NN)。此处使用了此技术:The Continuous Interpolating Self-organizing Map

    您可以在此处查看并尝试这些不同的选项:http://www.inf.ufrgs.br/~rcpinto/itm/(不是 SOM,而是近亲)。单击“应用”以使用重建的向量对曲线进行回归,然后选中“绘制回归”并尝试不同的选项。

    顺便说一句,您对实现的描述是正确的。

    【讨论】:

    • 感谢您的详细回答和您提供的链接!
    【解决方案2】:

    现在一种非常常见的方法是软子空间聚类,其中添加特征权重以找到最相关的特征。您可以使用这些权重来提高性能并改进欧式距离的 BMU 计算。

    【讨论】:

    • 感谢您的回答!在训练 som 之后,这种方法对确定集群有何用处?请您提供一些有关这方面的详细信息吗?
    • 这幅作品对你来说绝对是一个很好的例子:Bassani, H.F.; Araujo, AFR,“用于子空间和投影聚类的具有时变结构的维度选择性自组织映射”,神经网络和学习系统,IEEE Transactions on,vol.PP,no.99,pp.1,1 link
    • 它的方法与你的相似(最小欧几里得距离),但显然你希望你的应用程序更加健壮,所以......这可能是值得的。
    猜你喜欢
    • 2022-10-25
    • 2017-07-20
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2021-12-24
    • 2023-03-25
    • 2016-11-08
    相关资源
    最近更新 更多