【机器学习】竞争神经网络(Competitive Neural Network)的python实现

【机器学习】竞争神经网络(Competitive Neural Network)的python实现


我们前面介绍过基于机器学习的分类与回归,分类与回归都是监督学习。除此之外,机器学习还有一个广泛的应用是聚类,聚类算法是无监督的机器学习算法,数据样本只有特征而没有标签,我们需要根据样本的特征将具有相似特征的样本划分到同一个类别中。本博文介绍竞争神经网络(Competitive Neural Network),它是一种模仿人眼视网膜神经细胞相互作用的聚类算法(参考资料【1】)。

一、竞争神经网络原理

1.1、生物学原理

生物神经网络存在一种侧抑制的现象,即一个神经细胞兴奋后,通过它的分支会对周围其他神经细脑产生抑制,这种抑制使神经细胞之间出现竞争:在开始阶段,各神经元对相同的输入具有相同的响应机会,但产生的兴奋程度不同,其中兴奋最强的一个神经细胞对周围神经细胞的抑制作用也最强,从而使其它神经元的兴奋得到最大程度的抑制,而兴奋最强的神经细胞却“战胜”了其它神经元的抑制作用脱颖而出,成为竞争的胜利者,并因为获胜其兴奋的程度得到进一步加强,正所谓“成者为王,败者为寇”(参考资料【2】)。

1.2、网络结构与模型训练

竞争神经网络结构如下图:
在这里插入图片描述
如上图所示,竞争神经网络是个两层的网络结构。假设样本 X = { X i = ( x i 1 , x i 2 , ⋯   , x i n ) } i = 1 , 2 , ⋯   , M X = {\left\{ { {X_i} = \left( {x{}_{i1},{x_{i2}}, \cdots ,{x_{in}}} \right)} \right\}_{i = 1,2, \cdots ,M}} X={ Xi=(xi1,xi2,,xin)}i=1,2,,M,样本特征数为 n n n,聚类类别个数为 N N N

输入层:节点个数等于样本特征数,每次输入每一个样本。
输出层:节点个数等于聚类类别个数,数值最大的输出节点的指针就是样本的类别。

输入层到输出层的权值矩阵

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值