自组织映射(SOM)的拓扑保持与竞争学习过程
字数 1439 2025-11-25 12:52:33
自组织映射(SOM)的拓扑保持与竞争学习过程
题目描述
自组织映射(Self-Organizing Map, SOM)是一种无监督神经网络算法,通过竞争学习将高维数据映射到低维(通常为二维)离散网格上,同时保持原始数据的拓扑结构。例如,将64维手写数字图像映射到6×6网格时,相似数字会聚集在相邻节点。需要解决的问题是:如何通过竞争学习和邻域函数实现拓扑保持的映射?
解题过程
-
网络结构初始化
- 定义二维网格:设网格尺寸为\(M×N\),每个节点\(i\)对应一个原型向量\(\mathbf{w}_i \in \mathbb{R}^d\)(与输入数据同维)。
- 初始化原型向量:通常采用随机初始化或PCA主方向初始化。例如对784维MNIST数据,\(\mathbf{w}_i\)可初始化为[0,1]区间的随机值。
-
竞争学习过程
- 随机选取输入样本\(\mathbf{x} \in \mathbb{R}^d\),计算与所有原型向量的欧氏距离:
\[ d_i = \|\mathbf{x} - \mathbf{w}_i\|_2 \]
- 确定获胜节点(Best Matching Unit, BMU):找到使\(d_i\)最小的节点\(c\):
\[ c = \arg\min_i \|\mathbf{x} - \mathbf{w}_i\| \]
例如当输入为数字"3"的像素向量时,最相似的原型向量对应节点成为BMU。
- 邻域函数更新
- 定义高斯邻域函数:以BMU为中心,更新其邻域内所有节点:
\[ h_{ci}(t) = \alpha(t) \cdot \exp\left(-\frac{\| \mathbf{r}_c - \mathbf{r}_i \|^2}{2\sigma^2(t)}\right) \]
其中:
- $\mathbf{r}_c, \mathbf{r}_i$为节点在网格中的坐标(如(2,3))
- $\alpha(t)$为学习率,随迭代衰减(如从0.8降至0.01)
- $\sigma(t)$为邻域半径,随迭代线性缩小(如从网格直径的1/2降至1个单元)
- 更新原型向量:对每个节点\(i\),按邻域函数调整:
\[ \mathbf{w}_i^{(new)} = \mathbf{w}_i^{(old)} + h_{ci}(t) \cdot (\mathbf{x} - \mathbf{w}_i^{(old)}) \]
靠近BMU的节点更新幅度大,远离的节点更新可忽略。
-
拓扑保持机制
- 通过邻域函数实现拓扑保持:在训练初期(\(t\)较小时),\(\sigma(t)\)较大,整个区域同步更新,形成粗略拓扑;训练后期(\(t\)接近最大迭代\(T_{max}\)),\(\sigma(t) \to 0\),仅BMU微调,实现局部细化。
- 可视化理解:若输入空间存在"数字0→数字1→数字2"的连续性,网格空间也会形成对应有序排列。
-
收敛与输出
- 迭代直至满足停止条件(如达到\(T_{max}=10000\)次迭代或更新量小于阈值)。
- 最终得到离散化的特征映射:每个网格节点代表一类数据原型,相邻节点具有相似特征。例如MNIST数据集的SOM网格中,数字"8"和"9"的节点相邻,且都与"0"节点距离较近。
关键特点
- 竞争机制:仅BMU及其邻域参与更新,避免所有节点同步调整
- 拓扑保持:通过邻域函数保持输入空间与输出网格的拓扑一致性
- 收敛保障:学习率和邻域半径的衰减需满足随机近似理论的收敛条件