如何制作U矩阵?

Spa*_*cey 17 machine-learning neural-network som self-organizing-maps

我即将把我的头发拉出来试图弄清楚,究竟是如何构建一个U矩阵来实现自组织映射的可视化.(SOMS,又名Kohonen Nets).

我发现的每一个谷歌结果都没有帮助,是矛盾的,有大量的错别字,或者其他非常广泛.

我问一个简单的问题:我有一个3x3输出单位的输出网格:如何从中构造一个U矩阵?

到目前为止的链接,(包括这里的堆栈交换):

1)原始论文.(RIDDLED包含错误,拼写错误和误导性信息.U矩阵部分充满了错误,我不知道这篇论文是如何发表的.)

2)引用上述论文的SOM工具箱手册.(解释如何为输出行执行此操作,但不解释如何为输出网格执行此操作).

3)另一篇论文.(解释如何制作U矩阵,但与他的第一篇论文完全矛盾,以及它所基于的SOM工具箱).

4)关于SE 的类似问题并没有真正得到任何结果.

5)关于SE的另一个类似问题是好的,但没有解释如何制作U矩阵.

为了方便这个...我编写了一个非常简单的例子:

我有一个3x3输出网格,这意味着已经训练过的3x3输出神经元.所有神经元都有尺寸,比方说,4.现在我想制作一个U矩阵.

我到底该怎么做?

pat*_*ter 20

U矩阵是输入数据维度空间中神经元之间距离的直观表示.即,您使用他们训练的矢量计算相邻神经元之间的距离.如果您的输入维度为4,则训练地图中的每个神经元对应于4维向量.假设您有一个3x3六角形地图.

地图格子

umatrix将是一个5x5矩阵,内插元素用于两个神经元之间的每个连接

u-mat格子

{x,y}元素是神经元x和y之间的距离,{x}元素中的值是周围值的平均值.例如{4,5} =距离(4,5)和{4} =平均值({1,4},{2,4},{4,5},{4,7}).对于距离的计算,您使用每个神经元的训练的4维向量和您用于训练地图的距离公式(通常是欧几里德距离).所以umat的值只是数字(没有向量).然后,您可以为这些值中的最大值指定浅灰色,将最小的深灰色指定为灰色,将其他值指定为相应的灰色阴影.您可以使用这些颜色来绘制umat的细胞,并可以直观地表示神经元之间的距离.

检查一下

  • +1 很好的解释。或者,仅显示节点间距离的平均值(即仅可视化 {x} 元素)。我认为这已经在上面链接的 [posts](http://stackoverflow.com/a/7033359) 之一中提到了(尽管细节较少) (2认同)