用于矩形映射的U矩阵

时间:2013-10-14 20:04:43

标签: machine-learning neural-network visualization som self-organizing-maps

我在很多地方都看过U-Matrix,包括这个网站。在这个网站上找到了一个U-Matrix的最佳解释here,并解释了为什么关于U-Matrix如何正确的正确信息(原始paper完全没用)的原因很少计算

上述问题的答案完全解释了六角形地图的概念。但是,当地图是矩形时,在链接问题的答案中计算U矩阵的逻辑不成立。

例如,考虑如下所示的3 x 3矩形点阵。

The Rectangular Map

使用上面的点阵我可以计算U-Matrix,如下所示。

The U-Matrix

黄色方块是蓝色方块之间的距离。我确定黄色方块。我也确定蓝色方块,因为我们只需要取其周围的平均值或中位数。

所以我的问题是:如何计算红色方块?

我找到了一些消息来源,包括我在上面引用的上一个问题中提到的消息来源。我得到的矩形U矩阵的最佳解释如下

Description 1 - >在本文中,作者没有完全解释如何计算红色方块。只是解释了周围需要的平均值。哪个不清楚,在我看来不合适(见下文)

Description 2 - >在本文中,作者已经明确说明了如何计算红色方块,但他们提出的逻辑似乎存在缺陷。

我的解释为何上述可能不合适

如果用其周围的平均值来计算描述1所述的红色方块,蓝色方块的计算将直接受到影响。例如,考虑计算U-Matrix中蓝色方块数1的值。如果我们要取其周围的平均值,我们需要距离(1,2),(1,4)和(1,5)。如果我们用(1,5)填充相应的红色正方形,则蓝色正方形4的计算是错误的,因为我们没有计算(2,4)并且相同的红色正方形应该是它的位置。因此,将(1,5)和(2,4)的加法除以2 *(1.414 ......)的等式将不起作用,因为存在不属于平均值的分量。在蓝色方块1的情况下,(2,4)的距离部分不属于那里。

我使用第二篇论文中的描述编程,并且为简单数据集生成的U-Matrix不令人满意。虽然给定节点周围的平均距离比下面给出的相同数据集的U-Matrix表现更好。 (图像是U-Matrix,后跟平均值)

U-Matrix enter image description here

2 个答案:

答案 0 :(得分:1)

我没有阅读你提到的论文,我一直在使用六角形地图,但似乎最合理的解决方案是将红色正方形作为黄色正方形的平均值,因为这些是它们的邻居。当您使用矩形地图时,没有对角连接,因为如果它们那么它将更像是六角形地图。所以黄色正方形是你考虑的那些。将红色方块视为“假”地图单元,填充由U矩阵中的节点插值所创建的间隙。 顺便说一下,六角形地图在捕获底层数据集的拓扑结构时被认为是更好的。

答案 1 :(得分:0)

我非常感谢这个问题。我同意这个答案,认为将红色正方形视为“伪”地图单位,并因此分配黄色正方形的平均值是一个很好的解决方案。更进一步,更简单地,我们创建一个具有相同训练网格大小的距离图,然后将一个正方形的邻居的平均值分配给该正方形。我发现这是minisom所采用的解决方案。为了方便起见,请参见以下get_distance()函数__doc__

    def distance_map(self):
        """Returns the distance map of the weights.
        Each cell is the normalised sum of the distances between
        a neuron and its neighbours."""
        um = zeros((self._weights.shape[0], self._weights.shape[1]))