转载:竞争型神经网络

竞争型神经网络是基于无监督学习方法(unsupervised learning)的神经网络的一种重要类型,它经常作为基本的网络形式,构成其他一些具有组织能力的网络,如自组织映射网络、自适应共振理论网络、学习向量量化网络等。

生物神经网络存在一种侧抑制现象,即一个神经细胞兴奋后,通过它的分支会对周围其他神经细胞产生抑制,这种抑制使神经细胞之间出现竞争:在开始阶段,各神经元对系统的输入具有相同的响应机会,但产生的兴奋程度不同,其中兴奋最强的一个神经细胞对周围神经细胞的抑制作用最强,从而使其他神经元的兴奋程度得到最大程度的抑制,而兴奋程度最强的神经细胞却“战胜”了其他神经元的抑制作用脱颖而出,成为竞争的胜利者,并因为获得兴奋的程度而进一步加强,正所谓“胜者为王,败者为寇”。竞争型神经网络在学习算法上,模拟了生物神经网络中神经元之间的兴奋、抑制与竞争的机制,进行网络的学习与训练。
     采用nesc可以在MATLAB中创建竞争型神经网络,其权值的初始化函数为midpoint,阈值的初始化函数为initcon。

竞争神经网络的学习:

1.Kohonen权值学习规则

竞争型神经网络按照Kohonen学习规则对获胜神经元的权值进行调整。假设第i个神经元获胜,则输入权值向量的第i行元素(即获胜神经元的各连接权)按下式进行调整:

iW(k)= iW(k-1)+α*[p(k)-iW(k-1)]

而其他神经元的权值不变。

Kohonen学习规则通过输入向量进行神经元权值的调整,因此在模式识别的应用中是很有用的。通过学习,那些最靠近输入向量的神经元权值向量得到修正,使之更靠近输入向量,其结果是获胜的神经元在下一次获胜的输入向量出现时,获胜的可能性会更大; 而对于那些与输入向量相差很远的神经元权值向量,获胜的可能性变得很小。这样,当经过越来越多的训练样本学习后,每一个网络层中的神经元权值向量很快被调整为最接近某一类输入向量的值。最终的结果是:如果神经元的数量足够多,则具有相似输入向量的各类模式作为输入向量时,其对应神经元输出为1;而对于其他模式的输入向量,其对应的神经元输出为0。所以,竞争型神经网络具有对输入向量进行学习分类的能力。

在MATLAB工具箱中,learnk函数可以实现Kohonen学习规则。

2.阈值学习规则
    竞争型神经网络的一个局限性是:某些神经元可能永远也排不上用场,换句话说,某些神经元的权值向量从一开始就远离所有的输入向量,从而使得该神经元不管进行多长的训练也不会赢得竞争。这些神经元称为“死神经元”,它们实现不了任何有用的函数映射。

为避免这一现象的发生,对于那些很少获胜(甚至从未获胜)的神经元赋以较大的阈值,而对于那些经常获胜的神经元赋以较小的阈值。正的阈值与距离的负值增加,使获胜很少的神经元竞争层传输函数的输入就像获胜的神经元一样。这一过程就像人们“同情”弱者一样,表现出一个人的“良心”。

这一过程的实现需要用到神经元输出向量的平均值,它等价于每个神经元输出为1 的百分比,显然,经常获胜的神经元,其输出为1的百分比要大。

在MATLAB工具箱中,learncon函数用于进行阈值的修正。

对于学习函数learncon进行阈值修正时,神经元输出向量的平均值越大,其“良心”值越大,所以凭良心获得的阈值就越小,而让那些不经常获胜的神经元阈值逐渐变大。其算法如下:

c(k)=(1-lr)*c(k-1) + lr*a(k-1)

b(k)=exp[1-log(c,k)]-b(k-1)

式中:c为“良心”值;a为神经元输出的平均值;lr为学习率。

一般讲learncon的学习率设置成默认值或比learnk的学习率小的值,使其在运行过程中能够较精确地计算神经元的输出平均值。

结果那些不经常产生响应的神经元的阈值相对于那些经常产生响应的神经元,其阈值不断增大,使其产生响应的输入空间也逐渐增大,即对更多的输入向量产生响应,最终各神经元对输入向量产生响应的数目大致相等。

这样做有两点好处:

其一,如果某个神经元因为远离所有的输入向量而始终不能在竞争中获胜,则其阈值会变得越来越大,使其终究可以获胜。当这一情况出现后,它将逐渐向输入向量的某一类聚集,一旦神经元的权值靠近输入向量的某一类模式,该神经元将经常获胜,其阈值将逐渐减小到0,这样就解决了“死神经元”的问题。

其二,学习函数learncon强迫每个神经元对每个输入向量的分类百分比大致相同,所以如果输入空间的某个区域比另外一个区域聚集了更多的输入向量,那么输入向量密度大的区域将吸引更多的神经元,从而获得更细的分类。

时间: 2024-10-06 03:38:16

转载:竞争型神经网络的相关文章

人工神经网络--ANN

神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术. 本文以一种简单的,循序的方式讲解神经网络.适合对神经网络了解不多的同学.本文对阅读没有一定的前提要求,但是懂一些机器学习基础会更好地帮助理解本文. 神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术.人脑中的神经网络是一个非常复杂的组织.成人的大脑中估计有1000亿个神经元之多. 图1 人脑神经网络 那么机

神经网络图灵机(Neural Turing Machines, NTM)

近期,Google Deep Mind团队提出了一个机器学习模型,并起了一个特别高大上的名字:神经网络图灵机,我为大家翻译了这篇文章,翻译得不是特别好,有些语句没读明白,欢迎大家批评指正  原论文出处:http://arxiv.org/pdf/1410.5401v1.pdf. 版权所有,禁止转载. 神经网络图灵机 Alex Graves [email protected]Greg Wayne [email protected]Ivo Danihelka [email protected] Goo

Matlab的BP神经网络工具箱及其在函数逼近中的应用

1.神经网络工具箱概述 Matlab神经网络工具箱几乎包含了现有神经网络的最新成果,神经网络工具箱模型包括感知器.线性网络.BP网络.径向基函数网络.竞争型神经网络.自组织网络和学习向量量化网络.反馈网络.本文只介绍BP神经网络工具箱. 2.BP神经网络工具箱介绍 BP神经网络学习规则是不断地调整神经网络的权值和偏值,使得网络输出的均方误差和最小.下面是关于一些BP神经网络的创建和训练的名称: (1)newff:创建一前馈BP网络(隐含层只有一层) (2)newcf:创建一多层前馈BP网络(隐含

框架《Keras深度学习实战》中英文PDF+源代码分析

作为一款轻量级.模块化的开源深度学习框架, Keras 以容易上子.利于快速原型实现.能够与TensorFlow 和Theano 等后端计算平台很好兼容等优点, 深受众多开发人 员和研究人员的喜爱. <Keras深度学习实战>结合大量实例,简明扼要地介绍了目前热门的神经网络技术和深度学习技术 .从经典的多层感知机到用于图像处理的深度卷积网络,从处理序列化数据的循环网络到伪造仿真数据的生成对抗网络,从词嵌入到AI 游戏应用中的强化学习,引领一层一层揭开深度学习的面纱, 并在逐渐清晰的理论框架下,

三层神经网络自编码算法推导和MATLAB实现 (转载)

转载自:http://www.cnblogs.com/tornadomeet/archive/2013/03/20/2970724.html 前言: 现在来进入sparse autoencoder的一个实例练习,参考Ng的网页教程:Exercise:Sparse Autoencoder.这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoencoder的方法训练出一个隐含层网络所学习到的特征.该网络共有3

(转载)卷积神经网络

卷积神经网络 转载自:http://blog.csdn.net/stdcoutzyx/article/details/41596663 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet.cuda-convnet2.为了增进CNN的理解和使用,特写此博文,以其与人交流,互有增益.正文之前,先说几点自己对于CNN的感触.先明确一点就是,Deep Learning是全部深度学习算法

【转载】BP神经网络

原文地址:http://blog.csdn.net/acdreamers/article/details/44657439 今天来讲BP神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据 挖掘等领域.接下来介绍BP神经网络的原理及实现. Contents   1. BP神经网络的认识   2. 隐含层的选取   3. 正向传递子过程   4. 反向传递子过程   5. BP神经网络的注意点   6. BP神经网络的C++实现 1. BP神经网络的认识    

(转载)Convolutional Neural Networks卷积神经网络

Convolutional Neural Networks卷积神经网络 Contents 一:前导 Back Propagation反向传播算法 网络结构 学习算法 二:Convolutional Neural Networks卷积神经网络 三:LeCun的LeNet-5 四:CNNs的训练过程 五:总结 本文是我在20140822的周报,其中部分参照了以下博文或论文,如果在文中有一些没说明白的地方,可以查阅他们.对Yann LeCun前辈,和celerychen2009.zouxy09表示感谢

Google发布机器学习平台Tensorflow游乐场~带你玩神经网络(转载)

Google发布机器学习平台Tensorflow游乐场-带你玩神经网络 原文地址:http://f.dataguru.cn/article-9324-1.html> 摘要: 昨天,Google发布了Tensorflow游乐场.Tensorflow是Google今年推出的机器学习开源平台.而有了Tensorflow游乐场,我们在浏览器中就可以训练自己的神经网络,还有酷酷的图像让我们更直观地了解神经网络的工作原理.今 ... 网络 工具 机器学习 神经网络 Tensorflow 昨天,Google发