本系列相关答案和源代码托管在我的Github上:PY131/Machine-Learning_ZhouZhihua.
SOM神经网络实验
注:本题程序分别基于Python和Matlab实现(这里查看完整代码和数据集)。
1 基础概述
1.1 SOM网络概念
SOM(Self-Organizing Map,自组织映射)网络是一种无监督的竞争型神经网络,常用于数据的聚类和降维分析。它从仿生学中引出,模拟了面临不同输入模式时生物神经组织的兴奋机理。SOM神经网络最初由Kohonen提出,所以也常把SOM网络称为Kohonen网络。
SOM神经网络通过自组织映射(SOM),将高维的输入数据映射到低维空间,从而实现了特征空间的降维,同时保持了输入数据在高维空间中的拓扑结构。下图为最常见的输出层为二维的SOM神经网络:
SOM网络经过训练之后,输出层各神经元及其参数反映的是输入数据的模式聚合。
1.2 SOM网络工作机理
SOM工作机理分为三大部分:
- 竞争(Competition)
- 协同(Cooperation)
- 适应(Adaption)
下面对工作机制进行概要讨论(这里以上图5.11所示输出层为二维的Kohonen网络为例):
1. 参数
先明确网络所涉及的数据和参数(即要通过数据学习的对象):
数据:
输入层:D 个输入变量记为 x = {x_i: i=1,…,D};
输出层:N*M 个输出变量记为