Kohonen 自组织特征映射

17 Mar 2025 | 5 分钟阅读

Kohonen 自组织特征映射 (SOM) 指的是一种使用竞争学习训练的神经网络。 基本竞争学习意味着竞争过程发生在学习周期之前。 竞争过程表明某些标准选择一个获胜的处理元素。 在选择了获胜的处理元素之后,其权重向量会根据所使用的学习定律进行调整(Hecht Nielsen 1990)。

自组织映射在输入数据和映射的处理元素之间进行拓扑有序映射。拓扑有序意味着如果两个输入具有相似的特征,则对位于映射上彼此靠近的输入进行响应的最活跃处理元素。处理元素的权重向量按升序到降序排列。 Wi < Wi+1 对于 i 的所有值,或者 Wi+1 对于 i 的所有值(此定义仅对一维自组织映射有效)。

自组织映射通常表示为二维处理元素片,如下图所示。每个处理元素都有自己的权重向量,并且 SOM(自组织映射)的学习取决于这些向量的调整。网络的处理元素在自组织过程中具有竞争力,并且特定标准选择获胜的处理元素,其权重会被更新。通常,这些标准用于限制输入向量和权重向量之间的欧几里得距离。 SOM(自组织映射)与基本竞争学习的不同之处在于,不仅调整获胜处理元素的权重向量,还调整相邻处理元素的权重向量。首先,邻域的大小很大,从而对 SOM 进行粗略排序,并且随着时间的推移,大小会减小。最后,仅调整获胜的处理元素,从而可以对 SOM 进行微调。邻域的使用使拓扑排序过程成为可能,并且与竞争学习一起使过程非线性。

它由芬兰教授兼研究员 Teuvo Kohonen 博士于 1982 年发现。自组织映射指的是一种无监督学习模型,该模型专为在输入和输出空间之间保持拓扑的应用而设计。该算法的显着属性是,在高维空间中接近和相似的输入向量也被映射到 2D 空间中附近的节点。从根本上讲,它是一种降维方法,因为它将高维输入映射到低维离散表示,并保留其输入空间的基本结构。

Kohonen Self- Organizing Feature Map

整个学习过程在没有监督的情况下发生,因为节点是自组织的。它们也称为特征图,因为它们基本上是在重新训练输入数据的特征,并且只是按照彼此之间的相似性指示的方式进行分组。它对于可视化复杂或大量的高维数据,并将它们之间的关系显示到低维(通常是二维)字段中以检查给定的未标记数据是否具有任何结构,具有实际价值。

自组织映射 (SOM) 在其架构和算法属性方面都与典型的人工神经网络 (ANN) 不同。它的结构由单层线性二维神经元网格组成,而不是一系列层。此格上的所有节点都直接与输入向量相关联,但彼此之间不相关联。这意味着节点不知道其邻居的值,并且仅根据给定的输入更新其关联的权重。网格本身是映射,该映射在每次迭代时根据输入数据自行调整。因此,在聚类之后,每个节点都有其自己的坐标 (i.j),这使得可以通过毕达哥拉斯定理来计算两个节点之间的欧几里得距离。

自组织映射利用竞争学习而不是误差校正学习来修改其权重。这意味着在将输入向量的出现特征引入神经网络的每个周期中,仅激活一个节点,因为所有节点都竞争响应输入的特权。

所选节点 - 最佳匹配单元 (BMU) 根据当前输入值与网络中所有其他节点之间的相似性来选择。选择与输入向量、所有节点及其相邻节点之间的分数欧几里得差最小的节点,并在特定半径内,稍微调整其位置以协调输入向量。通过体验网格上的所有节点,整个网格最终将整个输入数据集与聚集到一个区域的连接节点进行匹配,而不同的节点则被隔离。

Kohonen Self- Organizing Feature Map

算法

步骤:1

每个节点权重 w_ij 初始化为一个随机值。

步骤:2

选择一个随机输入向量 x_k。

步骤:3

对于地图上的所有节点,重复步骤 4 和 5。

步骤:4

计算权重向量 wij 与与第一个节点连接的输入向量 x(t) 之间的欧几里得距离,其中 t、i、j =0。

步骤:5

跟踪生成最小距离 t 的节点。

步骤:6

计算总体最佳匹配单元 (BMU)。这意味着与所有计算出的距离中最小距离的节点。

步骤:7

在 Kohonen 地图中发现 BMU 的拓扑邻域βij(t) 及其半径 σ(t)

步骤:8

对于 BMU 邻域中的所有节点重复:通过包含输入向量 x(t) 与神经元权重 w(t) 之间差异的一部分来更新 BMU 邻域中第一个节点的权重向量 w_ij。

步骤:9

重复完整的迭代,直到达到选定的迭代限制 t=n。

此处,步骤 1 表示初始化阶段,而步骤 2 至 9 表示训练阶段。

其中:

t = 当前迭代。

i = 节点网格的行坐标。

J = 节点网格的列坐标。

W= 权重向量

w_ij = 网格中节点 i,j 之间的关联权重。

X = 输入向量

X(t)= 迭代 t 时的输入向量实例

β_ij = 邻域函数,递减并表示节点 i,j 距 BMU 的距离。

σ(t) = 邻域函数的半径,它计算更新向量时在 2D 网格中检查邻居节点的距离。它随时间逐渐减少。