我一直在阅读有关自组织地图的内容,并且我理解该算法(我认为),但是有些东西仍然让我困惑。
您如何解释经过训练的网络?
然后,您将如何实际使用它来执行分类任务(一旦您使用训练数据完成聚类)?
我找到的所有材料(印刷版和数字版)都集中在算法的训练上。我相信我可能错过了一些重要的东西。
SOM
主要是一种降维算法,而不是分类工具。它们用于降维,就像 PCA
和类似的方法一样(一旦训练,您可以检查哪个神经元被您的输入激活,并使用该神经元的位置作为值),唯一的实际区别是它们保留给定输出表示的拓扑。
所以
SOM
实际上生成的是从输入空间 X
到缩减空间 Y
的映射(最常见的是 2d 晶格,使 Y
成为二维空间)。要执行实际分类,您应该通过此映射转换数据,并运行其他一些分类模型(SVM
、神经网络、决策树等)。
换句话说 -
SOM
用于查找数据的其他表示。表示,很容易被人类进一步分析(因为它主要是二维的并且可以绘制),并且对于任何进一步的分类模型都很容易。这是可视化高维数据、分析“正在发生的事情”、某些类别如何以几何方式分组等的好方法。但它们不应该与其他神经模型相混淆,例如人工神经网络甚至生长神经气体(是一个非常相似的概念,但提供了直接的数据聚类),因为它们服务于不同的目的。
当然可以直接使用
SOM
进行分类,但这是对原始想法的修改,它需要其他数据表示,并且一般来说,在其之上使用其他一些分类器效果不佳.
编辑
至少有几种方法可以可视化受过训练的人
SOM
:
SOM
的神经元渲染为输入空间中的点,并用边连接拓扑上接近的神经元(仅当输入空间维数较少时才可能,例如 2-3)SOM
的拓扑上显示数据类 - 如果您的数据标有一些数字 {1,..k}
,我们可以将一些 k
颜色绑定到它们,对于二进制情况,让我们考虑 blue
和 red
。接下来,对于每个数据点,我们计算 SOM
中对应的神经元,并将该标签的颜色添加到神经元。处理完所有数据后,我们绘制 SOM
的神经元,每个神经元都有其在拓扑中的原始位置,颜色是分配给它的颜色的某种聚合(例如平均值)。如果我们使用一些简单的拓扑(例如二维网格),这种方法将为我们提供良好的数据低维表示。在下图中,从第三个到最后的子图像是这种可视化的结果,其中red
颜色表示标签1("yes" answer) and
蓝色means label
2`(“否”答案)SOM
的地图上(上述可视化中的第二个子图像)来可视化神经元间距离