【问题标题】:Few questions about kohonen neural network关于kohonen神经网络的几个问题
【发布时间】:2013-02-06 06:43:43
【问题描述】:

我有大数据集(时间序列,大约 50 个参数/值)。我想使用 Kohonen 网络对相似的数据行进行分组。我读过一些关于 Kohonen 神经网络的文章,我了解 Kohonen 网络的概念,但是:

  1. 我不知道如何实现这么多维度的 Kohonen。我在 CodeProject 上找到了示例,但只有 2 或 3 维输入向量。当我有 50 个参数时 - 我应该在我的神经元中创建 50 个权重吗?

  2. 我不知道如何更新获胜神经元的权重(如何计算新的权重?)。

我的英语不是很完美,我不明白我读到的关于 Kohonen 网络的所有内容,尤其是公式中变量的描述,这就是我问的原因。

【问题讨论】:

    标签: neural-network


    【解决方案1】:

    应该区分地图的维数,通常较低(例如,在矩形网格的常见情况下为 2)和参考向量的维数,可以任意高而不会出现问题。

    查看http://www.psychology.mcmaster.ca/4i03/demos/competitive-demo.html 以获取具有 49 维输入向量(7x7 像素图像)的好示例。在这种情况下,Kohonen 映射具有 8 个单元的一维环的形式。

    另请参阅http://www.demogng.de,了解用于各种 Kohonen 类网络的 java 模拟器,包括像 McMasters 那样的环形网络。然而,参考向量都是二维的,只是为了更容易显示。它们可以具有任意高维度而无需更改算法。

    【讨论】:

      【解决方案2】:
      1. 是的,你需要 50 个神经元。但是,这些类型的网络通常是低维的,如self-organizing map 文章中所述。我从未见过他们使用多个输入。

      2. 您必须使用更新公式。来自同一篇文章:Wv(s + 1) = Wv(s) + Θ(u, v, s) α(s)(D(t) - Wv(s))

      【讨论】:

      • 如何计算Θ(u, v, s)?我在维基百科上找不到任何公式。
      【解决方案3】:
      1. 是的,每个神经元需要 50 个输入

      2. 您基本上是在神经元和目标(输入)神经元之间进行线性插值,并使用W(s + 1) = W(s) + Θ() * α(s) * (Input(t) - W(s)),其中 Θ 是您的邻域函数。

      你应该更新你所有的神经元,不仅仅是赢家

      您将哪个函数用作邻域函数取决于您的实际问题。 这种函数的一个共同特性是,当 i=k 时它的值为 1,并且随着距离欧几里得距离而下降。此外,它会随着时间而缩小(为了定位集群)。

      简单的邻域函数包括线性插值(达到“最大距离”)或高斯函数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-22
        • 1970-01-01
        • 1970-01-01
        • 2015-02-05
        • 1970-01-01
        • 2017-05-27
        • 2013-10-09
        • 2022-08-15
        相关资源
        最近更新 更多