解释自组织映射

我一直在阅读关于自组织映射的内容,我认为我理解了算法,但有些东西仍然让我困惑。

如何解释训练后的网络?

然后,如何实际使用它来进行分类任务(一旦你用训练数据完成了聚类)?

我似乎找到的所有材料(印刷和数字)都集中在算法的训练上。我认为我可能错过了某些关键的东西。


回答:

SOM主要是一种降维算法,而不是分类工具。它们用于降维,就像PCA和类似的方法一样(一旦训练完成,你可以检查哪个神经元被你的输入激活,并使用这个神经元的位置作为值),唯一的实际区别是它们能够保留给定的输出表示拓扑结构。

因此,SOM实际产生的是从你的输入空间X到降维空间Y的映射(最常见的是二维网格,使Y成为二维空间)。要进行实际分类,你应该通过这个映射转换你的数据,并运行其他分类模型(如SVM、神经网络、决策树等)。

换句话说,SOM用于寻找数据的其他表示。这种表示对于人类进一步分析很容易(因为它主要是二维的,可以绘制图表),对于任何进一步的分类模型也非常容易。这是可视化高维数据、分析“发生了什么”、某些类别如何几何分组等的绝佳方法。但它们不应与其他神经模型(如人工神经网络甚至是生长神经气体(这是一个非常相似的概念,但直接提供数据聚类))混淆,因为它们的用途不同。

当然,人们可以直接使用SOM进行分类,但这是对原始想法的修改,需要其他数据表示,一般来说,它的效果不如在其上使用其他分类器那么好。

编辑

至少有几种方法可以可视化训练后的SOM

  • 可以将SOM的神经元渲染为输入空间中的点,并用边连接拓扑上接近的神经元(这只有在输入空间的维数较少,如2-3维时才可能)
  • SOM的拓扑结构上显示数据类别 – 如果你的数据标有某些数字{1,..k},我们可以将k种颜色绑定到它们上,对于二元情况,让我们考虑蓝色红色。接下来,对于每个数据点,我们计算它在SOM中对应的神经元,并将此标签的颜色添加到神经元中。一旦所有数据都被处理,我们绘制SOM的神经元,每个神经元都以其在拓扑中的原始位置显示,颜色是分配给它的颜色的某种聚合(例如平均值)。如果我们使用像二维网格这样的简单拓扑结构,这种方法会给我们一个很好的低维数据表示。在下面的图像中,从第三个子图像到最后的子图像是这种可视化的结果,其中红色表示标签1(“是”答案),蓝色表示标签2`(“否”答案)
  • 还可以通过计算每个连接的神经元之间的距离,并在SOM的地图上绘制它,来可视化神经元之间的距离(上述可视化的第二个子图像)
  • 可以使用某种聚类算法(如K-means)对神经元的位置进行聚类,并将聚类ID可视化为颜色(第一个子图像)

source:wikipedia

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注