我正在尝试通过批量培训实施一般SOM。我对批量训练的公式有疑问。
我已在以下链接中了解到它
http://cs-www.cs.yale.edu/c2/images/uploads/HR15.pdf
https://notendur.hi.is//~benedikt/Courses/Mia_report2.pdf
我注意到权重更新是分配而不是在时代结束时添加 - 不会覆盖整个网络的先前值,并且更新公式不包括先前的节点权重,那么如何它甚至可以工作吗?
当我实现它时,网络中的很多节点变成了NaN,因为在训练结束时由于梯度减小而导致很多节点的邻域值变为零,并且更新公式导致除以零。 / p>
有人可以正确解释批处理算法。我这是谷歌,我看到很多"改进批次"或者"加速批次"但没有任何关于直接批量kohonen。在确实解释公式的那些公司中,它们是相同的,并且不起作用。
答案 0 :(得分:0)
您看到的Batch SOM的更新规则是很好的规则。 该算法背后的基本思想是使用整个训练数据集来训练SOM,因此在每次迭代中,神经元的权重代表了最接近输入的均值。 因此,先前权重的信息位于BMU(最佳匹配单位)中。
正如您所说,某些神经元权重由于被零除而产生NaN。 要解决此问题,您可以使用始终大于零的邻居函数(例如高斯函数)。