OM 即自组织映射,是一种用于特征检测的无监督学习神经网络。它模拟人脑中处于不同区域的神经细胞 分工不同的特点,即不同区域具有不同的响应特征,而且这一过程是自动完成的。SOM 用于生成训练样本的低维 空间,可以将高维数据间复杂的非线性统计关系转化为简单的几何关系,且以低维的方式展现,因此通常在降维问题中会使用它。
SOM 的训练过程:
紫色区域表示训练数据的分布状况,白色网格表示从该分布中提取的当前训练数据。
(1) SOM 节点位于数据空间的任意位置,最接近训练数据的节点(黄色高亮部分)会被选中。它和网格中的邻近节点一样,朝训练数据移动。
(2)在多次迭代之后,网格倾向于近似该种数据分布(下图最右)。
所有的神经元组织成一个网格,网格可以是六边形、四边形……,甚至是链状、圆圈……
网络的结构通常取决于输入的数据在空间中的分布。 SOM的作用是将这个网格铺满数据存在的空间。
每个神经元由正方形表示,正方形内的粉红色区域表示神经元最接近的数据点的相对数量 - 粉红色区域越大,该神经元表示的数据点越多。
当我们将训练数据输入到网络中时,会计算出所有权重向量的欧几里德距离。权重向量与输入最相似的神经元 称为最佳匹配单元(BMU)。BMU 的权重和 SOM 网格中靠近它的神经元会朝着输入矢量的方向调整。一旦确定 了 BMU,下一步就是计算其它哪些节点在 BMU 的邻域内。
(1)将网格的神经元随机定位在数据空间中。
(2)选择一个数据点,按顺序随机或系统地循环遍历数据集。
(3)找到最接近所选数据点的神经元。这种神经元被称为最佳匹配单元(BMU)。
(4)将BMU移近该数据点。 BMU移动的距离由学习速率确定,学习速率在每次迭代后减小。
(5)将BMU的邻居移动到更靠近该数据点的位置,远处的邻居移动得更少。使用BMU周围的半径来识别邻居,并且在每次迭代之后该半径的值减小。
(6)在重复步骤1到4之前,更新学习速率和BMU半径。迭代这些步骤,直到神经元的位置稳定。
SOM 通常用在可视化中。比如右图,世界各国贫困数据的可视化。生活质量较高的国家聚集在左上方,而贫 困最严重的国家聚集在右下方。
SOM 的其它一些应用还包括:
- 数据压缩
- 语音识别
- 分离音源
- 欺诈检测