【问题标题】:Convergence criterion for (batch) SOM (Self-Organizing Map, aka "Kohonen Map")?(批量)SOM(自组织地图,又名“Kohonen 地图”)的收敛标准?
【发布时间】:2011-02-03 04:16:22
【问题描述】:

我喜欢在 Batch SOM 收敛时停止执行。 我可以使用什么误差函数来确定收敛?

【问题讨论】:

    标签: algorithm machine-learning som self-organizing-maps convergence


    【解决方案1】:

    在讨论 SOM 的收敛性时,对于给定的地图大小 (n x m),您想知道是否已经运行了足够的算法迭代以确保地图是“稳定的”。这意味着,松散地说,如果地图被重新训练多次,地图的新输入(观察)是否会放置在相同的神经元/码本向量上?(忽略地图的排列可能会在每次都训练,只要集群仍然以稳定的方式排列就可以了)。

    为了帮助回答是否已经运行了足够多的迭代这个问题,请参阅下面列出的学术论文。这两篇论文还涉及到什么地图大小是合适的问题(什么 n x m 值有助于确保 SOM 的收敛?)。

    这里给出了一种在论文中流行的传统方法:

    Statistical tools to assess the reliability of self-organizing maps (Bodt, Cottrell, Verleysen)

    最近出现了这种方法,看起来很有希望:

    A CONVERGENCE CRITERION FOR SELF-ORGANIZING MAPS , masters thesis, Benjamin h. ott (University of Rhode island)

    在我看来,这篇论文写得很好,读起来很愉快。同样令人高兴的是,这项研究已被编写为 R 中的(相当未知的)包中的 SOM 收敛测试,称为popsom。看看吧:

    popsom

    【讨论】:

      【解决方案2】:

      我很确定您指的是成本函数而不是误差函数。

      SOM 不需要误差函数(也不需要成本函数)。

      在机器学习分类的顶层,SOM 是一种无监督学习技术——没有目标向量,因此没有“目标向量”减去“value_at_the_current_iteration”来最小化。

      另一种思考方式:成本函数的作用是最小化一些成本;在 ML 中,它是模型计算和提供的数据之间的差异。在 SOM 中,没有为此目的向算法提供数据。

      (我意识到这有点令人困惑,因为创建网络的输入数据通常被称为“训练数据”——这可能是输入数据在监督 ML 技术中的作用,这比这可能也令人困惑,因为被认为是“发明” SOM 的人 Teuvo Kohonen 最初将它们称为一类神经网络——当然 NN 是一种有监督的技术,并且确实依赖于成本函数(通常是梯度下降。))

      最后,为了确定,我检查了自己的 SOM 代码以及 Marsland 的 ML 教科书“机器学习:算法视角”中的代码。在我和他的代码中,唯一的停止标准是用户在调用主函数时传入的“最大迭代次数”值。

      【讨论】:

      • 非常感谢。我想知道您是否知道任何关于批处理 SOM 实现的好的参考资料。我在网上找到了许多串行 SOM 实现,但不是第一批。在我的实现中,平均成本(训练数据和神经元之间的距离)降低了,但某些神经元的成本增加了……代码一定是遗漏了一些……
      • 这是 C++ 中的一个(没看过):cis.hut.fi/research/som_lvq_pak.shtml;这是一个python实现(www-ist.massey.ac.nz/smarsland/MLBook.html);该链接是 Stephen Marsland 的 ML 教科书主页;在此页面上,他发布了本书中使用的所有代码(滚动到第 9 章,您将看到 SOM 代码)。
      • R 开源包class(基础版)、kohonenpopsom 中也有很好的 SOM 编写的 C 代码...
      猜你喜欢
      • 2016-11-08
      • 2016-10-06
      • 2019-07-04
      • 1970-01-01
      • 2010-12-10
      • 2013-03-23
      • 2018-07-28
      • 2016-07-11
      相关资源
      最近更新 更多