【发布时间】:2011-02-03 04:16:22
【问题描述】:
我喜欢在 Batch SOM 收敛时停止执行。 我可以使用什么误差函数来确定收敛?
【问题讨论】:
标签: algorithm machine-learning som self-organizing-maps convergence
我喜欢在 Batch SOM 收敛时停止执行。 我可以使用什么误差函数来确定收敛?
【问题讨论】:
标签: algorithm machine-learning som self-organizing-maps convergence
在讨论 SOM 的收敛性时,对于给定的地图大小 (n x m),您想知道是否已经运行了足够的算法迭代以确保地图是“稳定的”。这意味着,松散地说,如果地图被重新训练多次,地图的新输入(观察)是否会放置在相同的神经元/码本向量上?(忽略地图的排列可能会在每次都训练,只要集群仍然以稳定的方式排列就可以了)。
为了帮助回答是否已经运行了足够多的迭代这个问题,请参阅下面列出的学术论文。这两篇论文还涉及到什么地图大小是合适的问题(什么 n x m 值有助于确保 SOM 的收敛?)。
这里给出了一种在论文中流行的传统方法:
Statistical tools to assess the reliability of self-organizing maps (Bodt, Cottrell, Verleysen)
最近出现了这种方法,看起来很有希望:
在我看来,这篇论文写得很好,读起来很愉快。同样令人高兴的是,这项研究已被编写为 R 中的(相当未知的)包中的 SOM 收敛测试,称为popsom。看看吧:
【讨论】:
我很确定您指的是成本函数而不是误差函数。
SOM 不需要误差函数(也不需要成本函数)。
在机器学习分类的顶层,SOM 是一种无监督学习技术——没有目标向量,因此没有“目标向量”减去“value_at_the_current_iteration”来最小化。
另一种思考方式:成本函数的作用是最小化一些成本;在 ML 中,它是模型计算和提供的数据之间的差异。在 SOM 中,没有为此目的向算法提供数据。
(我意识到这有点令人困惑,因为创建网络的输入数据通常被称为“训练数据”——这可能是输入数据在监督 ML 技术中的作用,这比这可能也令人困惑,因为被认为是“发明” SOM 的人 Teuvo Kohonen 最初将它们称为一类神经网络——当然 NN 是一种有监督的技术,并且确实依赖于成本函数(通常是梯度下降。))
最后,为了确定,我检查了自己的 SOM 代码以及 Marsland 的 ML 教科书“机器学习:算法视角”中的代码。在我和他的代码中,唯一的停止标准是用户在调用主函数时传入的“最大迭代次数”值。
【讨论】:
class(基础版)、kohonen、popsom 中也有很好的 SOM 编写的 C 代码...