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