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