自组织映射网络SOM

1 SOM网络简介

Kohonen于1982年提出SOM(Self-Organizing Map, 自组织映射)网络。它是一种无监督的竞争学习网络,学习过程中不需要任何监督信息。SOM网络将高维数据映射到低维空间中,一般是一维或者两维,并且映射过程中保持数据的拓扑结构不变,即高维空间中相似的数据在低维空间中接近。

2 SOM网络结构

SOM由两层神经元组成:输入层和输出层。输入层的每个神经元和输出层的所有神经元连接。输入层的神经元数量由输入空间决定。输出层神经元的数量由用户定义,每个输出神经元对应一个位置信息(可以是一维空间的坐标或者二维空间中的坐标),并且每个输出神经元拥有一个权重向量,权重向量的维度等于输入神经元数。

这里写图片描述

对每个输入实例,计算其和所有输出神经元权重向量之间的距离,距离最小的输出神经元称为获胜神经元,也可以称为Best Match Unit,简写为BMU。该实例在低维空间中的位置就是获胜神经元所处的位置。SOM训练的目的就是找到一组权重向量,使得输入数据在低维空间中拓扑结构不变。

3 SOM网络学习算法

SOM网络的学习过程包含6个步骤:

  1. 初始化所有的权重向量;
  2. 从训练数据集中随机选择一个实例作为网络的输入;
  3. 计算每个权重向量和输入向量之间的距离,取距离最小的权重向量对应的输出神经元作为当前输入的BMU;
  4. 为BMU计算邻域半径:邻域半径开始比较大,随时间逐渐减小;
  5. 对位于BMU邻域内的所有输出神经元,更新其权重向量;
  6. 重复2-5直至N次。

3.1 初始化权重向量

用较小的随机数初始化权重向量。

3.2 计算BMU

计算每个权重向量和输入向量之间的距离,取距离最小的输入神经元作为BMU。

3.3 确定邻域

现在需要确定哪些输出神经元位于BMU的邻域内,因为下一步会对这些神经元更新权重向量。确定邻居神经元并不难,首先计算邻域半径,然后遍历所有的神经元,看是否位于半径内。

这里写图片描述

SOM学习算法要求邻域半径随时间递减,这可以通过下面的函数来满足:

σ(n)=σ0enτ1,n=1,2,...(1)

其中
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值