自组织神经网络算法-SOM

相比于bp神经网络算法,som相对来说比较容易理解。自组织神经网络,是一种用于聚类的神经网络算法,从名字便可以看出,这是一种无监督式的算法,意味着,它不需要任何训练样本,便可以直接对输入样本根据其特征 分类,将具有相似特征的划分为一类。

1 算法结构

som算法是由两层网络组成,输入层与输出层(也叫作竞争层),大致示意图如下:

som_layers

2 示例

下面我会给出一个例子来讲解som算法的原理。

现在我有8个输入样本,每个输入样本由两个特征值组成(x,y),表示在二维坐标系(横为x,纵为y)上如下图所示:

som_inputs

要求使用som算法将上图中的输入节点划分为两类。

解:如图所示:凭肉眼观察,8个输入样本很明显已经分为了粉红与淡蓝两类,但题意要求使用som算法来搞。所以思路如下:

没有太高深的数学计算,但这就是som算法的思路,我做了一个简单的动画来描述上面的计算过程。

两个黑色的节点即为输出节点,是随机生成的,随着算法的运行,你会发现,两个节点分别移动向两个类别之中(这里步长为0.15)。

结合着我贴出的python源代码,更加方便去理解这种算法。

解答完毕!

相信分析完这篇教程,som算法就没什么难的了。

这篇教程搞懂之后,努力方向应为som的完善算法sofm(自组织特征映射神经网络),这种算法相比于som算法,有两处不同:

1 . 步长的衰变方式。

2 . 每次输出层的获胜节点确定之后,不仅仅该获胜节点要调整自身特征值,获胜节点周围相近的节点也要做相应的调整,调整幅度的大小要视距离获胜节点的远近。

留给课下研究好了。

  • 5
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
自组织神经网络(Self-Organizing Map,SOM)是一种无监督学习算法,用于对数据进行聚类和可视化。它模拟了人类大脑中神经元之间的相互作用和竞争关系。 SOM算法基于竞争学习机制,通过对输入数据进行迭代处理,将相似的样本点归为同一类别。SOM网络由一个二维或三维的节点网格组成,每个节点代表一个向量,与权重向量相对应。输入数据被映射到这个节点网格上,并通过权重调整来更新节点的位置,使其在空间上形成类似样本分布的拓扑结构。 其具体操作步骤如下: 1. 初始化网络:确定节点网格的大小和权重向量的初始值。 2. 随机选择一个输入向量。 3. 计算该输入向量与每个节点的权重向量之间的距离。 4. 选择距离最小的节点,作为“获胜节点”。 5. 更新获胜节点及其邻近节点的权重向量,使其向输入向量靠近。 6. 重复步骤3-5,直至所有输入向量都被处理过。 7. 通过调整颜色或其他可视化方式,将节点网格上的权重向量分布可视化。 SOM算法的优势在于可以在没有标签的情况下,通过数据本身的分布特点进行聚类和可视化。它能够保留数据的拓扑结构,并提供对高维数据的降维表示。此外,SOM还能够发现特征之间的关联性,为进一步的分析提供指导。 然而,SOM算法也有一些限制。由于它基于竞争学习,因此对于密集数据的聚类效果可能不如其他聚类算法。此外,SOM算法对于高维数据的处理可能存在挑战,因为节点网格的维度通常较低,可能会导致信息丢失。 总之,SOM自组织神经网络聚类算法是一种有效的无监督学习算法,能够通过竞争学习和权重的调整,将输入数据聚类并可视化。它在数据分析、模式识别和数据挖掘等领域具有广泛的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值