自组织映射算法
自组织映射算法(SOM)
自组织映射(SOM)或自组织特征映射(SOFM)是一种使用非监督式学习来产生训练样本的输入空间的一个低维(通常是二维)离散化的表示的人工神经网络(ANN)。自组织映射与其他人工神经网络的不同之处在于它使用一个邻近函数来保持输入控件的拓扑性质。
自组织映射(SOM)是一种非监督学习,一个常见的非监督式学习是数据聚类。在人工神经网络中,自组织映射(SOM)和适应性共振理论(ART)则是最常用的非监督式学习。
非监督式学习是一种机器学习的方式,并不需要人力来输入标签。它是监督式学习和强化学习等策略之外的一种选择。在监督式学习中,典型的任务是分类和回归分析,且需要使用到人工预先准备好的范例(base)。
自组织映射中学习的目标是使网络的不同部分对输入模式有相似的响应。这部分的灵感是来自于人类大脑皮层的不同部分处理视觉、听觉或其他感官信息的方式。
自组织映射的训练实例。蓝色斑点是训练数据的分布,而小白斑点是从该分布走出的目前的训练数据。起初SOM节点处在数据空间的任意位置。选择离训练数据最近的(用黄色高亮的)节点。它会向着训练数据移动,网格上它的邻居节点也会(在较小程度上)如此移动。经过多次迭代后的网格会趋于近似的数据分布。
神经元的权重初始化为小随机值或均匀采样自两个最大的主成分特征向量范围。用后一种方法初始化,学习的速率就会更快,因为初始的权重已经是SOM权重的一个很好的近似了。
必须提供给网络大量的能够实例向量来尽可能近地表示映射中期望的那些类型的向量。这些例子通常在迭代中数次使用。
训练采用竞争性学习。当训练样本提供给网络的时候,就会计算它与每个权重之间的欧氏距离。权重向量与输入最相似的神经元称作最佳匹配单元(BMU)。SOM栅格中BMU的权重以及与其邻近的神经元会向着输入向量调整。从BMU变化的量会随着(栅格中)时间和距离而降低。拥有权值 Wv(s) 的神经元v的更新公式为
Wv(s + 1) = Wv(s) + Θ(u, v, s) α(s)(D(t) - Wv(s)),
其中 s 为步长指数,t 是训练样本的指数,D(t) 是输入向量,u 是 D(t) 的BMU指数,α(s) 是一个单调递减的学习系数;Θ(u, v, s) 是在步长为 s 下给出神经元 u 和神经元 v 之间距离的邻近函数。 根据实现的不同,t 可以系统地( 0, 1, 2…T-1,然后重复,T 为训练样本的大小),也可以随机从数据集中取出(Bootstrap抽样),或采用其他一些抽样方法(如jackknifing)。
邻近函数Θ(u, v, s)取决于BMU(神经元u)与神经元v之间的栅格距离。在最简单的形式中,对所有足够接近BMU的神经元都是1,其余都是0,但高斯函数也是一种常见的选择。不管函数形式如何,邻近函数都会随着时间收缩。 在起初邻域范围很大的时候,自组织发生在全局范围内。当邻域范围缩小到仅有两个神经元时,权值会收敛于局部估计值。在一些实现中,学习系数α会随着增加s而平稳减小,另一些实现(特别是t扫描训练数据集的情况)中步进式地下降,每 T 步一次。
对每个输入向量这个过程都会重复(通常很多次)循环λ。该网络把输入数据集中的类别或模式与相关联的输出节点拉近。如果可以重命名这些模式,这些名称就会附加到已训练的网络中的相关节点中。
在映射中,会有一个单一“获胜”神经元:该神经元的权重向量与输入向量最接近。这可以很容易由计算输入向量和权值向量的欧氏距离确定。