1

我在很多地方都读过关于 U-Matrix 的文章,包括这个网站。U-Matrix 的最佳解释可在此站点中找到其中解释了为什么关于如何正确计算 U-Matrix 的正确信息如此之少(原始论文根本没有用)。

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

例如,考虑如下所示的 3 x 3 矩形晶格。

矩形地图

使用上面的格子,我可以计算 U 矩阵,如下所示。

U矩阵

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

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

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

说明 1 -> 在本文中,作者并未完全解释如何计算红色方块。只是解释需要取周围的平均值。这不清楚,我认为不合适(见下文)

描述 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-矩阵 在此处输入图像描述

4

2 回答 2

2

我没有阅读您提到的论文,并且我主要使用六边形地图,但似乎最合理的解决方案是将红色方块计算为黄色方块的平均值,因为它们是它们的邻居。当您使用矩形地图时,没有对角线连接,因为如果它们是那么它将更像是六边形地图。所以黄色方块是你应该考虑的。将红色方块视为“假”地图单元,填充由 U 矩阵中的节点插值产生的间隙。顺便说一句,六边形图在捕获下属数据集的拓扑方面被认为更好。

于 2013-10-15T07:03:59.447 回答
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]))
于 2019-09-05T14:36:50.603 回答