我该如何制作U-矩阵?

20

如何构建U-矩阵以可视化自组织映射?更具体地说,假设我有一个已经训练好的3x3节点的输出网格,我该如何从中构建出U-矩阵?你可以假设神经元(和输入)的维度为4。

我在网上找到了几个资源,但它们不清晰或相互矛盾。例如,原始论文中充满了错别字。

2个回答

25

U-矩阵是输入数据维度空间中神经元之间距离的可视化表示。也就是说,您可以使用它们训练好的向量计算相邻神经元之间的距离。如果您的输入维度是4,则训练地图中的每个神经元也对应一个4维向量。假设您有一个3x3的六角形地图。

map lattice

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

u-mat lattice

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

也可以参考此网络文章


3
+1 很好的解释。或者仅显示节点间距离的平均值(即仅可视化{x}元素)。我认为这已经在上面链接的某篇帖子中提到过(尽管没有那么详细)。 - Amro
  • 1000 ...请你帮助人类,发表一篇论文或博客文章,因为这个问题一直让人们很苦恼,无法得到一个合适的解释。接下来有几个跟进的问题:1)正如@Amro所提到的,另一种方法是只可视化{x},而不像你所提到的那样具有节点间距离。其中一个优点是什么?2)我知道这位德国作者Ulter创建了U-Matrix,但是为什么要包括如此提到的节点间距离呢?我的意思是,背后的原因是什么?3)你是如何即兴制作这张图的?非常感谢!
- Spacey
1
@Learnaholic:对我来说,这两个约定都有非常相似的目的;使用原始特征的低维映射可视化由SOM节点覆盖的聚类。您希望看到强连接区域/区域(小间距)与弱连接区域(大间距)分离。还有许多其他可能的可视化方法,此页面列出了一些... - Amro
@Amro 非常感谢你的帮助。那个链接非常有用。当然,在MATLAB中显示仍将是一个矩形网格,对吗? - Spacey
1
@Learnaholic:你可以使用PATCH函数自己绘制多边形,但我会留给你自己去尝试。另外,为什么不看一下SOM Toolbox是如何实现绘图部分的呢?它是在GPL许可下发布的。 - Amro
显示剩余5条评论

3
原始论文中引用的内容如下: “Kohonen算法的一个简单应用虽然能够保留输入数据的拓扑结构,但无法显示输入数据中固有的聚类。” 首先,这是事实,其次,这是对SOM的深刻误解,第三,这也是对计算SOM目的的误解。 以RGB颜色空间为例:除了目的本身外,独立于数据本身,是否存在3种颜色(RGB),6种(RGBCMY),8种(+BW)或更多种颜色? 我的建议是根本不要使用最大似然估计聚类边界,甚至不要使用像U-Matrix这样原始的方法,因为底层的论点已经是有缺陷的。无论您使用什么方法来确定聚类,都会继承该缺陷。更准确地说,确定聚类边界根本没有意义,并且在失去关于构建SOM真正意图的信息。那么,我们为什么要从数据中建立SOM? 让我们从一些基本知识开始: 1.任何SOM都是数据空间的代表模型,因为它减少了后者的维数。因为它是一个模型,所以它既可以用作诊断工具,也可以用作预测工具。然而,两种情况都不能靠一些普遍客观的标准来证明。相反,模型深深地依赖于目的和接受的相关错误风险。 2.假设U-Matrix(或类似方法)是合理的。因此,我们在SOM上确定了一些聚类。不仅是如何证明它的标准(目的之外),而且它还存在问题,因为任何进一步的计算都会破坏某些信息(这是有关模型的模型)。 3.SOM上唯一有趣的事情就是精度本身,即分类误差,而不是其估计值。因此,在验证和鲁棒性方面测定该模型是唯一有趣的事情。 4.任何预测都有一个目的,并且预测的接受程度是准确性的函数,而准确性又可以通过分类误差来表达。请注意,分类误差既可以为二类模型确定,也可以为多类模型确定。如果没有目的,您不应该对数据做任何处理。 5.相反,“聚类数量”的概念完全取决于“允许群集内发散”的标准,因此掩盖了数据结构最重要的事情。它还取决于您愿意承担的风险和风险结构(以类型I / II错误为例)。 6.那么,我们如何确定SOM上的类数?如果没有外部的先验推理可用,则唯一可行的方法是对拟合程度进行事后检查。在给定的SOM上,强加不同数量的类并测量误分类成本的偏差,然后选择(主观地)最令人满意的(使用一些花哨的启发式算法,如奥卡姆剃刀)。

综合来看,U-矩阵在没有客观性的情况下假装客观性。这是对建模的严重误解。 在我看来,SOM最大的优点之一是它所涉及的所有参数都是可访问和开放的,可以进行参数化。像U-矩阵这样的方法破坏了这一点,通过无视透明度并使用不透明的统计推理来再次关闭它。


1
你好,monnoo,感谢你的回复。然而我并没有完全理解你的意思。我已经成功地使用了U-矩阵通过SOM进行聚类。也许我没有理解你的意思。谢谢。 - Spacey
1
@monnoo,@Learnaholic,我可以建议您用示例(例如代码、图表)来说明您的解释。这将使其更加清晰明了。 - Gathide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,