我喜欢在批处理SOM变得收敛时停止执行。我可以使用什么误差函数来确定收敛性?
发布于 2014-06-27 07:33:36
当谈到SOM的收敛性时,对于给定的map大小(n X m),您想知道算法是否运行了足够的迭代来确保map是“稳定的”。这意味着,松散地说,如果映射被多次重新训练,映射的新输入(观察)是否会被放置在相同的神经元/codebook向量上?(忽略这样一个事实,每次训练映射时,映射的排列可能会改变,只要集群仍然以稳定的方式排列,这是可以接受的)。
为了帮助回答是否运行了足够多的迭代的问题,请参阅下面列出的学术论文。这两篇论文还涉及到什么映射大小是合适的问题(什么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包中的自组织映射收敛测试,称为popsom。看看这个:
popsom
发布于 2010-04-01 09:03:52
我很确定你指的是成本函数,而不是误差函数。
SOM不需要误差函数(也不需要成本函数)。
在机器学习分类的顶层,自组织学习是一种无监督学习技术--没有目标向量,因此没有要最小化的“目标向量”减去"value_at_the_current_iteration“。
另一种思考方式是:成本函数的作用是最小化一些成本;在ML中,它是模型计算和提供的数据之间的增量。在SOM中,不会为算法提供用于此目的的数据。
(我意识到这有点令人困惑,因为用于创建网络的输入数据通常被称为“训练数据”--这可能是有监督的ML技术中输入数据的作用,它比无监督的ML技术更常见。这可能也令人困惑,因为被誉为“发明”SOM的Teuvo Kohonen最初将其称为一类神经网络--当然,NN是一种有监督的技术,确实依赖于成本函数(通常是梯度下降)。
最后,为了确定,我检查了我自己的SOM代码以及Marsland的ML教科书中的代码,“机器学习:算法视角”。在我的代码和他的代码中,唯一的停止条件是用户调用main函数时传入的“最大迭代次数”的值。
https://stackoverflow.com/questions/2557289
复制相似问题