竞争神经网络与SOM神经网络详解与matlab实践

本文详细介绍了SOM(自组织映射)神经网络和竞争神经网络的工作原理,包括权值和阈值的调整方法。在MATLAB中,这两种网络的实现分别使用newc和newsom函数。SOM网络通过无监督学习捕捉输入样本的拓扑结构,而竞争神经网络则用于数据分类。文章还讨论了它们的优缺点和在实际应用中的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

竞争神经网络

权值和阈值调整的方法

竞争神经网络的缺点:

SOM神经网络

SOM权值的调整:

竞争神经网络与SOM神经网络在MATLAB中实现


SOM是无监督式的机器学习算法,它的结果不会涉及到具体的分类。例如最近在做一个场景中垃圾检测的项目,结果只要告诉我们有无垃圾,安排人去清扫就可以,无需再细分类地告诉我们具体是哪一类垃圾,这样太繁琐而且性价比不高。SOM等无监督式的网络就很适合于这类情况的使用。而竞争神经网络是基于无监督学习方法的神经网络的重要类型,常常作为基本的网络形式构成一些具有自组织能力的网络,如SOM。

竞争神经网络

我们注意到,结构上和RBF等网络是比较像的。这里的距离是负数距离,||ndist||中带一个n,表示negative。在matlab中计算方法是ngedist。

它的计算过程是:待分类样本输入后,和样本(就是输入权值向量IW)计算负距离。||ndist||计算后输出是S1x1维的列向量,列向量中每个元素为输入向量p和IW距离的负数。之后,再和一个阈值b1相加,得到n1。接下来就进入了最重要的竞争层,在竞争层中,只有值最大的一个输入才能“崭露头角”,输出为1,其它菜鸡的输入都会变成0。

举个例子:

如上图,只有在输入4的位置处,对应的输出才是1,其它都是0。这就是竞争层的作用。

通过这样的方法,对于n1中最大的元素,可以获胜,竞争层输出1。如果b1=0,即没有阈值向量作用,那么只有当神经元的权值向量IW与输入向量最接近时,它在n1中各元素的负值最小,而值最大,所以能赢得竞争。这就是为什么要用负距离

就使得不是每次迭代就把所有神经元的权重都更新一遍,而是每次迭代只更新一个隐含层神经元的权重。例如上面这个例子的输出a1,a1是S1x1的维度,其中就一个值为1,其它为0,那么就只有1的位置对应的那个神经元的权重才会得到更新(只有获胜的神经元才有机会跳转权值)。

这样不断迭代,势必会带来一个问题:获胜的神经元通过调整能够不断缩小误差,导致它们取胜几率不断增大,导致最后整个网络中只有一部分胜利的神经元取得成功,其他神经元始终没有取得训练,成为“死神经元”。

解决这个问题的办法:设置较大的b1,帮助被冷落的神经元们获得竞争胜利的机会。针对某个竞争神经元而言,如果偏置b1取得比较大,那么就能帮助输入p在竞争中获得更大的取胜概率。当然,这个b也是会动态调整的,通过学习函数learncon来帮助动态调整b:Update the biases with the learning function learncon so that the biases of frequently active neurons become smaller, and biases of infrequently active neurons become larger.

权重IW{1,1}如何设定?

  • are initialized to the centers of the input ranges with the function midpoint.也就是说是取输入向量的中心

中心怎么理解呢?简单的说是最大最小值的平均值。

而midpoint在matlab里的效果:W = midpoint(S,PR)

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值