【问题标题】:How do I make a U-matrix?如何制作 U 矩阵?
【发布时间】:2012-11-17 20:59:00
【问题描述】:

为了可视化self-organizing-map,U 矩阵究竟是如何构造的?更具体地说,假设我有一个 3x3 节点的输出网格(已经训练过),我如何从中构造一个 U 矩阵?你可以例如假设神经元(和输入)的维度为 4。

我在网上找到了几个资源,但不是很清楚或者是相互矛盾的。例如,original paper 充满了拼写错误。

【问题讨论】:

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


    【解决方案1】:

    U 矩阵是输入数据维度空间中神经元之间距离的直观表示。也就是说,您可以使用经过训练的向量计算相邻神经元之间的距离。如果您的输入维度是 4,那么训练映射中的每个神经元也对应一个 4 维向量。假设您有一个 3x3 六边形地图。

    U 矩阵将是一个 5x5 矩阵,其中包含两个神经元之间的每个连接的插值元素,如下所示

    {x,y} 元素是神经元 x 和 y 之间的距离,{x} 元素中的值是周围值的平均值。例如,{4,5} = distance(4,5) 和 {4} = mean({1,4}, {2,4}, {4,5}, {4,7})。对于距离的计算,您使用每个神经元的经过训练的 4 维向量和用于训练地图的距离公式(通常是欧几里得距离)。因此,U 矩阵的值只是数字(不是向量)。然后,您可以将浅灰色分配给这些值中的最大值,将深灰色分配给最小值,将其他值分配给相应的灰色阴影。您可以使用这些颜色来绘制 U 矩阵的单元格,并以可视化方式表示神经元之间的距离。

    也可以看看this web article

    【讨论】:

    • +1 很好的解释。或者,仅显示节点间距离的平均值(即仅可视化 {x} 元素)。我认为上面链接的posts 之一已经提到了这一点(尽管细节较少)
    • + 1000 ...请帮人类一个忙,并发表一篇论文/博客文章,因为得到一个正确的解释一直很痛苦。现在对于一些后续问题:1)正如@Amro 所提到的,另一种方法是仅可视化 {x} 而没有您提到的节点间距离。一个比另一个有什么优势? 2) 我知道这位德国作者 Ulter 创建了 U-Matrix,但是为什么 包含此处提到的节点间距离?我的意思是,它背后的原因是什么? 3)你是如何在飞行中制作这个图表的?非常感谢!
    • @Learnaholic:对我来说,这两个约定的目的非常相似;使用原始特征的低维映射可视化由 SOM 节点覆盖的集群。您会期望看到强连接的区域/区域(小节点间距离)被弱连接区域(大距离)隔开。还有许多其他可能的可视化,this page 列出了一些..
    • @Amro 一点:您是否可以更新答案以添加网格为正方形时的情况?例如,我在方形网格中的 对角线 邻居是否被视为“邻居”?换句话说,在方形情况下 {4} 是什么?会是平均({4,1},{4,2},{4,5},{4,7},{4,8})吗?谢谢。 (我问的是方形案例,因为我必须在 MATLAB 中制作这个,而且我不认为我可以做六边形)。
    • @Learnaholic:您始终可以使用PATCH 函数绘制自己的多边形,但我将把它留给您:) 另外为什么不看看SOM Toolbox 如何实现绘图部分,它在 GPL 许可下发布。
    【解决方案2】:

    问题中引用的原始论文指出:

    Kohonen 算法的幼稚应用,尽管保留输入数据的拓扑结构并不能显示输入数据中固有的集群。

    第一,没错,第二,是对SOM的深刻误解,第三,也是对SOM计算目的的误解。

    以RGB色彩空间为例:有3种颜色(RGB),6种(RGBCMY),8种(+BW),还是更多?您如何定义与目的无关的内容,即数据本身固有的内容?

    我的建议是根本不使用集群边界的最大似然估计器——甚至不使用像 U 矩阵这样的原始估计器——因为基本​​论点已经存在缺陷。无论您随后使用哪种方法来确定集群,都会继承该缺陷。更准确地说,集群边界的确定根本没有意义,它正在丢失有关构建 SOM 的真实意图的信息。那么,为什么我们要从数据中构建 SOM? 让我们从一些基础开始:

    1. 任何 SOM 都是数据空间的代表模型,因为它降低了后者的维数。因为它是一个模型,它可以用作诊断和预测工具。然而,这两种情况都没有某种普遍的客观性。相反,模型在很大程度上取决于目的和可接受的相关错误风险。
    2. 让我们暂时假设 U-Matrix(或类似的)是合理的。所以我们在地图上确定了一些集群。如何证明它的标准不仅是一个问题(在目的本身之外),它也是一个问题,因为任何进一步的计算都会破坏一些信息(它是关于模型的模型)。
    3. SOM 上唯一有趣的是准确度本身,即分类误差,而不是对其的某种估计。因此,在验证和稳健性方面对模型的估计是唯一有趣的事情。
    4. 任何预测都有一个目的,预测的接受度是准确度的函数,而准确度又可以用分类误差来表示。请注意,可以为 2 类模型和多类模型确定分类误差。如果您没有目的,则不应对您的数据做任何事情。
    5. 相反,“簇数”的概念完全依赖于“簇内允许发散”的标准,因此它掩盖了数据结构中最重要的东西。它还取决于您愿意承担的风险和风险结构(就 I/II 类错误而言)。
    6. 那么,我们如何确定 SOM 上的数字类别?如果没有可用的外部先验推理,唯一可行的方法是对拟合优度进行后验检查。在给定的 SOM 上,施加不同数量的类并根据误分类成本衡量偏差,然后(主观地)选择最令人满意的一个(使用一些奇特的启发式方法,如奥卡姆剃刀)

    综合起来,U 矩阵在没有客观性的地方假装客观性。这完全是对建模的严重误解。 恕我直言,SOM 的最大优势之一是它所隐含的所有参数都可以访问和开放以进行参数化。像 U 矩阵这样的方法通过无视这种透明度并用不透明的统计推理再次关闭它来破坏这一点。

    【讨论】:

    • 您好,monnoo,感谢您的意见,但我并不完全听从您的意思。我已经成功使用 U-matrix 通过 SOM 进行集群。也许我不明白你的意思。谢谢。
    • @monnoo,@Learnaholic,我可以建议你说明一下 - 可能使用代码、数字 - 你的解释与示例。这样会更清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2013-10-22
    • 2022-01-19
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2014-03-13
    相关资源
    最近更新 更多