自组织映射网络SOM
2017-09-19 18:45
190 查看
1 SOM网络简介
Kohonen于1982年提出SOM(Self-Organizing Map, 自组织映射)网络。它是一种无监督的竞争学习网络,学习过程中不需要任何监督信息。SOM网络将高维数据映射到低维空间中,一般是一维或者两维,并且映射过程中保持数据的拓扑结构不变,即高维空间中相似的数据在低维空间中接近。2 SOM网络结构
SOM由两层神经元组成:输入层和输出层。输入层的每个神经元和输出层的所有神经元连接。输入层的神经元数量由输入空间决定。输出层神经元的数量由用户定义,每个输出神经元对应一个位置信息(可以是一维空间的坐标或者二维空间中的坐标),并且每个输出神经元拥有一个权重向量,权重向量的维度等于输入神经元数。对每个输入实例,计算其和所有输出神经元权重向量之间的距离,距离最小的输出神经元称为获胜神经元,也可以称为Best Match Unit,简写为BMU。该实例在低维空间中的位置就是获胜神经元所处的位置。SOM训练的目的就是找到一组权重向量,使得输入数据在低维空间中拓扑结构不变。
3 SOM网络学习算法
SOM网络的学习过程包含6个步骤:初始化所有的权重向量;
从训练数据集中随机选择一个实例作为网络的输入;
计算每个权重向量和输入向量之间的距离,取距离最小的权重向量对应的输出神经元作为当前输入的BMU;
为BMU计算邻域半径:邻域半径开始比较大,随时间逐渐减小;
对位于BMU邻域内的所有输出神经元,更新其权重向量;
重复2-5直至N次。
3.1 初始化权重向量
用较小的随机数初始化权重向量。3.2 计算BMU
计算每个权重向量和输入向量之间的距离,取距离最小的输入神经元作为BMU。3.3 确定邻域
现在需要确定哪些输出神经元位于BMU的邻域内,因为下一步会对这些神经元更新权重向量。确定邻居神经元并不难,首先计算邻域半径,然后遍历所有的神经元,看是否位于半径内。SOM学习算法要求邻域半径随时间递减,这可以通过下面的函数来满足:
σ(n)=σ0e−nτ1,n=1,2,...(1)
其中σ0是邻域半径的初始值,τ1是时间常数。
3.4 更新权重向量
对位于BMU邻域内的所有神经元,根据下面的公式更新权重向量:ω(n+1)=ω(n)+η(n)(x−ω(n)), n=1,2,...(2)
其中,x是当前输入向量,η(n)是学习率。
学习率随迭代次数增加不断减小,也采用类似公式(1)的计算方式:
η(n)=η0e−nτ2,n=1,2,...(3)
可以取η0=0.1。
但是,权重更新不是简单地用公式(2)更新BMU邻域内的所有神经元,当前输入向量对输出神经元的影响需要随其距BMU的距离的增加而减小。所以更新公式应该是
ω(n+1)=ω(n)+η(n)e−d22σ2(n)(x−ω(n)), n=1,2,...(4)
其中,高斯函数e−d22σ2(n)项表示神经元和BMU之间的距离对其更新的影响。σ(n)是公式(1)中的邻域半径。
4 参考
[1] http://www.ai-junkie.com/ann/som/som1.html[2] Self-Organized Formation of Topologically Correct Feature Maps. Teuvo Kohonen. 1982.
相关文章推荐
- 自组织映射神经网络SOM--学习小记[2]
- SOM自组织映射网络 教程
- 自组织特征映射神经网络(SOM)
- 【机器学习笔记】自组织映射网络(SOM)
- 自组织映射神经网络SOM---学习小记
- 自组织映射网络和学习向量量化网络
- matlab神经网络4:数据聚类-自组织映射
- 矢量量化神经网络,自组织竞争神经网络,自组织映射网络
- 机器学习算法与Python实践(7) - 自组织映射算法(SOM)
- 机器学习之自组织特征映射神经网络(SOM)
- 自组织映射网络SOMnet
- [PAL规范]SAP HANA PAL 自组织映射神经网络算法Self -Organizing Maps编程规范SELFORGMAP
- 自组织映射网络和学习向量量化网络
- [Step By Step]SAP HANA PAL 自组织映射神经网络算法Self -Organizing Maps实现案例SELFORGMAP
- 机器学习与算法(7)--自组织映射算法(SOM)
- 自组织特征映射网络(SOFM)
- 【机器学习算法笔记】5. 自组织映射SOM
- SOM自组织特征映射神经网络-MATLAB-NCTOOL
- 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第一部分
- 自组织特征映射SOM(Self-organizing feature Map)