:)
当我为我的论文提案辩护时,我的一位教授问我为什么我们必须在 SOM 中指定迭代次数?他说,我们应该有一个收敛标准来停止训练。
但是,我知道我们没有目标向量,因此我们无法最小化成本。
我的问题是首先,为什么需要 MAX_ITERATIONS,其次,是什么向我们保证,我们选择的迭代次数会给出最佳映射。:(
PS 根据经验,我尝试在颜色数据集上使用 1000 次迭代和 10000 次迭代。似乎 10000 次迭代并没有提供比 1000 次更好的可视化效果。:(
:)
当我为我的论文提案辩护时,我的一位教授问我为什么我们必须在 SOM 中指定迭代次数?他说,我们应该有一个收敛标准来停止训练。
但是,我知道我们没有目标向量,因此我们无法最小化成本。
我的问题是首先,为什么需要 MAX_ITERATIONS,其次,是什么向我们保证,我们选择的迭代次数会给出最佳映射。:(
PS 根据经验,我尝试在颜色数据集上使用 1000 次迭代和 10000 次迭代。似乎 10000 次迭代并没有提供比 1000 次更好的可视化效果。:(
因此,您和您的教授都是对的:您应该指定迭代次数的硬性上限和收敛标准。
收敛标准- 虽然您的权利是 SOM 是无监督的,因此没有目标向量,但它们仍然可以被视为最小化一些成本函数。一般来说,大多数无监督机器学习方法可以尝试做一些事情,比如最小化未解释的方差、最大化信息增益等。特别是对于 SOM,我使用权重增量作为标准。也就是说,当额外的迭代没有改变 SOM 权重超过某个阈值时,停止迭代。
迭代上限- 即使有收敛标准,硬上限也是必要的,以防 SOM 不收敛(您不希望它永远运行)。如果您使用我的权重增量标准示例,那么可能会出现权重在迭代之间不断波动的情况,从而导致永远无法满足标准。
快乐的索明!
您确实有一个目标成本函数可以在 SOM 中最小化。SOM 类似于多维缩放 (MDS)。目的是保持拓扑关系;因此,SOM 的每一次迭代实际上都是为了最小化“源空间中任意两点的距离”和“目标空间中相同两点的距离”之间的误差,只不过在 SOM 中,那些相似的点用神经元表示目标空间。这也是 SOM 可用于集群的方式。
迭代过程可以看作与梯度下降相同。在最小化二次误差成本函数时,也容易被局部最小值所困。这也可以解释为什么即使经过大量迭代,SOM 也会导致“扭结”。