Algorithm (批)SOM(自组织映射,又名“Kohonen映射”)的收敛准则?

Algorithm (批)SOM(自组织映射,又名“Kohonen映射”)的收敛准则?,algorithm,machine-learning,som,self-organizing-maps,convergence,Algorithm,Machine Learning,Som,Self Organizing Maps,Convergence,我喜欢在批处理SOM聚合时停止执行。 我可以用什么样的误差函数来确定收敛性?我很确定你指的是成本函数而不是误差函数 SOM不需要错误函数(也不需要代价函数) 在机器学习分类法的顶层,SOM是一种无监督学习技术——没有目标向量,因此没有“目标向量”减去“当前迭代中的值”来最小化 另一种思考方式是:成本函数的作用是最小化一些成本;在ML中,它是模型计算和提供的数据之间的差值。在SOM中,没有为此目的向算法提供数据 (我意识到这有点令人困惑,因为创建网络的输入数据通常被称为“训练数据”--可能这就是有

我喜欢在批处理SOM聚合时停止执行。
我可以用什么样的误差函数来确定收敛性?

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

SOM不需要错误函数(也不需要代价函数)

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

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

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


最后,为了确保这一点,我检查了自己的SOM代码以及Marsland的ML教科书“机器学习:算法透视图”中的代码。在我的代码和his中,唯一的停止标准是“最大迭代次数”的值用户在调用main函数时传入。当谈到SOM的收敛性时,对于给定的映射大小(nx m),您想知道是否已运行足够的算法迭代以确保映射“稳定”。这意味着,不严格地说,进行新的输入(观察)如果映射被多次重新训练,则映射将被放置在相同的神经元/码本向量上(忽略这样一个问题,即每次训练时映射的排列可能会改变,只要簇仍然以稳定的方式排列就可以了)

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

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

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

在我看来,这篇论文写得很好,读起来也很愉快。同样令人高兴的是,这项研究被写成了一个SOM收敛测试,它位于R中的一个(相当未知)包中,名为
popsom
。请查看:


非常感谢。我想知道您是否知道关于批处理SOM实现的好参考。我在网上发现了许多串行SOM实现,但没有批处理一个。在我的实现中,平均成本(训练数据和神经元之间的距离)减少,但一些神经元的成本增加…代码必须缺少一些…这里有一个C++(没有看过):这里是Python实现();链接是Stephen Marsland的ML-教科书的主页;在这一页上,他张贴了书中使用的所有代码(滚动到CH 9,您将看到SOM代码)在R开源软件包
class
(基本版),
kohonen
popsom
…中,也有为SOM编写的C代码。。。