竞争学习神经网络

竞争神经网络属于一类循环网络,而且基于无监督学习算法,比如说:竞争算法

在竞争学习中,The output neurons of a neural network compete among themselves to become active(to be fired).
然而在多层感知器中,可能多个神经元会同时兴奋。

There are 3 basic elements necessary to build a network with a competitive learning rule, a standard technique for this type of artificial neural networks.

  1. 每个神经元需要有相同的结构,随机初始化权重,这样一来,The neurons respond differently to a given set of input samples.
  2. A limit value that is determined on the strength of each neuron.
  3. A mechanism that permits the neurons to complete for the right to respond to a given subset of inputs, such that only one output neuron is active at a time. The neuron that wins the competition is called winner-takes-all neuron.
    竞争学习的关键就在于网络中存在抑制层。
    在最简单竞争学习中,一个神经网络仅仅只有一个输出层。输出层的每一个神经元都跟输入节点全连接。网络在神经元之间可能包括反馈连接。

    在这个网络中,反馈连接充当的是侧抑制。侧抑制就是输出层之间的神经元的一些抑制。
    每个神经元都倾向于抑制跟他同一层的神经元。相比之下,网络中的前馈的突触连接都是兴奋的。
    对于一个具体的输入样本来说,
    X=(X1,X2,X3,...,Xn)TX = (X_1, X_2, X_3,..., X_n)^TX=(X1​,X2​,X3​,...,Xn​)T ,输出值netknet_knetk​最大的那个神经元获胜。
    获胜神经元k的输出YkY_kYk​为1,所有其他的输出层神经元的输出为0

    netknet_knetk​ : the combined action of all the forward and feedback inputs to neuron k.
    Let WjkW_jkWj​k denote the synaptic weights(突触权重)connecting node j to neuron k.

学习的原理:A neuron then learns by shifting synaptic weights from its inactive input nodes to its active input nodes. If a particular neuron wins the competition, each input node of that neuron relinquishes(抛弃)some proportion of its synaptic weight, and the weight relinquished is then distributed among the active input nodes.

上面这段原理,我还不理解。如果有比较懂的大牛,欢迎留言指点。
根据这个标准,这个竞争学习的规则,
Δwjk={η(Xj−wjk)ifneuronkwinsthecompetition0ifneuronklosesthecompetition\Delta w_{jk} = \begin{cases} \eta(X_j - w_{jk}) & if\ neuron\ k\ wins\ the\ competition \\ 0 & if\ neuron\ k\ loses\ the\ competition \end{cases}Δwjk​={η(Xj​−wjk​)0​if neuron k wins the competitionif neuron k loses the competition​
where η\etaη is the learning rate. The rule has the overall effect of moving the synaptic weights of the winning neuron toward the input pattern X.
下图展现了竞争学习的初状态和网络的末状态


显然,Each output neuron discovers a cluster of input samples by moving its synaptic weights to the center of gravity of the discovered cluster.
During the competitive-learning process, similar samples are grouped by the network and represented by a single artificial neuron at the output…

Competitive( or winner-take-all) -neural networks are often used to cluster input data where the number of output clusters is given in advance.

竞争网络中有一个非常典型的案例叫做——海明网络,下面介绍一下海明网络
1.海明网络包含两层。

  • 第一层:The first layer is a standard, feedforward layer and it performs a correlation between the input vector and the preprocessed output vector
  • 第二层:The second layer performs a competition to determine which of the preprocessed output vectors is closet to the input vector. The index of the-second-layer neuron with a stable, positive output(the winner of the competition) is the index of the prototype vector that best matches the input.

虽然说竞争学习可以做一些高效的分类,但是存在一些局限。有个问题给我映像比较深:
A competitive-learning process always has as many clusters as it has output neurons, This may not be acceptable for some applications, especially when the number of clusters is not known or if it is difficult to estimate it in advance.

接下来是一个竞争网络的实例:
这个竞争网络一共有三个输入和三个输出。网络是全连接的. There are connections between all inputs and outputs and there are also lateral connections between output nodes. 有些反馈权重我们等于0,因此对于这些边,我们没有在下图的神经网络中画出来。


注意:
1.net1∗net_1^*net1∗​是仅仅考虑forward feed网络的
2.net1net_1net1​是在net1∗,net2∗,net3∗,net_1^*,net_2^*,net_3^*,net1∗​,net2∗​,net3∗​,的基础上继续进行运算的。也就是说:
net1=net1∗+0.5∗net2∗+0.6∗net3∗=0+0.5∗0.3+0.6∗(−0.2)net_1 = net_1^* + 0.5 * net_2^* + 0.6 * net_3^* = 0 + 0.5 * 0.3 + 0.6 * (-0.2)net1​=net1∗​+0.5∗net2∗​+0.6∗net3∗​=0+0.5∗0.3+0.6∗(−0.2)
3.最终因为net2net_2net2​最高,根据竞争学习的规则,只有跟该神经元向量的突触权重才会修改。所以(learning rate我们设置的是0.2也就是η\etaη
Δw12=η(x1−w12)=0.2(1−0.3)Δw22=η(x2−w22)=0.2(0−0.7)Δw32=η(x3−w32)=0.2(1−0)\Delta w_{12} = \eta(x_1 - w_{12}) =0.2 (1 - 0.3)\\ \Delta w_{22} = \eta(x_2 - w_{22}) =0.2 (0- 0.7)\\ \Delta w_{32} = \eta(x_3 - w_{32}) =0 .2 (1 -0) Δw12​=η(x1​−w12​)=0.2(1−0.3)Δw22​=η(x2​−w22​)=0.2(0−0.7)Δw32​=η(x3​−w32​)=0.2(1−0)
注意这里:w32=0w_{32} = 0w32​=0 因为是0,所以在网络中没有画出来
所以新一轮的:
w12=w12+Δw12=0.3+0.2(1−0.3)w22=w22+Δw22=0.7+0.2(0−0.7)w32=w32+Δw32=0+0.2(1−0)w_{12} = w_{12} + \Delta w_{12} = 0.3 + 0.2(1- 0.3)\\ w_{22} = w_{22} + \Delta w_{22} = 0.7 + 0.2(0 - 0.7)\\ w_{32} = w_{32} + \Delta w_{32} = 0 + 0.2(1-0)\\ w12​=w12​+Δw12​=0.3+0.2(1−0.3)w22​=w22​+Δw22​=0.7+0.2(0−0.7)w32​=w32​+Δw32​=0+0.2(1−0)
其余的权重不变

竞争学习神经网络详解相关推荐

  1. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  2. 视频教程-深度学习原理详解及Python代码实现-深度学习

    深度学习原理详解及Python代码实现 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多项 白勇 ¥88.0 ...

  3. 【深度学习】详解Resampling和softmax模型集成

    [深度学习]详解Resampling和softmax模型集成 文章目录 1 图像重采样1.1 次级采样(sub-sampling)1.2 高斯金字塔(Gaussian pyramids)1.3 上采样 ...

  4. Java JUC学习 - ConcurrentLinkedDeque 详解

    Java JUC学习 - ConcurrentLinkedDeque 详解 0x00 前言 如何实现并发程序,对于Java以及其他高级语言来说都是一件并不容易的事情.在大一上学期的时候,我们学习了链表 ...

  5. php add action,WordPress学习——add_action()详解

    add_action() 是 WordPress 核心代码执行期间或特定事件发生时启动的钩子函数. 插件可以指定使用 Action API 在这些特定点上执行其一个或多个PHP函数.简单来说就是通过 ...

  6. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG)

    深度学习优化函数详解系列目录 本系列课程代码,欢迎star: https://github.com/tsycnh/mlbasic 深度学习优化函数详解(0)-- 线性回归问题 深度学习优化函数详解(1 ...

  7. 最形象的卷积神经网络详解:从算法思想到编程实现(转载)

    mark一下,感谢作者分享! 原标题:最形象的卷积神经网络详解:从算法思想到编程实现 1 新智元推荐 查看全文 http://www.taodudu.cc/news/show-4611564.html ...

  8. C语言学习——运算符详解

    C语言学习--运算符详解 一.学习运算符 (1)运算对象的数目 C语言中,运算符的运算对象可以是一个,称单目运算符:运算对象也可以是两个,称双目运算符:运算对象还可以是三个,称三目运算符. (2)运算 ...

  9. EFLS开源 | 阿里妈妈联邦学习解决方案详解

    ▐ 项目背景 移动互联网时代出于隐私保护和数据安全,APP 之间的开放与互联越来越少,使大量的信息孤岛逐渐形成,限制了信息技术更好地服务广大用户的能力.2016年 Google 提出了以保护终端隐私为 ...

最新文章

  1. AI 产品经理的三重门
  2. linux中查看文件内容常用的命令
  3. BTC行情分析,BCH一枝独秀秀全场
  4. 【BZOJ3555】[Ctsc2014]企鹅QQ hash
  5. oracle数据库优化--基本概念
  6. 安卓App的启动过程、安卓布局分类及布局和页面的关系
  7. java remove map_Java HashMap remove()方法
  8. echarter: ECharts的R语言接口(一)
  9. 内存映射和独立存贮器
  10. VS2010编译:_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
  11. UA OPTI512R 傅立叶光学导论1 为什么光学需要傅立叶变换
  12. WinRAR去除打开后弹出广告的方法
  13. 应用MySQL数据库的实现本地BLAST及BLAST2GO
  14. 域名转入阿里云操作说明
  15. vue+element-ui之表格中如何插入图片链接
  16. 基于Unity3D的PCAndroid端2D横屏冒险类闯关游戏
  17. 微服务09——中间件
  18. 嵌入式linux之Uboot和系统移植--基础
  19. hdu-2852 KiKi's K-Number---二分+树状数组
  20. 敏捷开发中如何开好站立会议

热门文章

  1. 修改frame快捷方法,不必再繁琐的计算
  2. 区块链相关安全名词及常见攻击手法
  3. python 空数组判断
  4. VR垃圾分类游戏的“入门”场景|广州华锐互动
  5. 喜讯|宏时数据获得CMMI3级认证!欢迎了解自研统一运维监控平台!
  6. 必备的 Linux 技能,请收好!
  7. flash引导层的应用
  8. SK Innovation全球锂电战略布局揭秘
  9. 耐看的《银元时代生活史》
  10. 服装实体店运营需要的所有软件,合集在此!(建议收藏)实体店运营 实体店运营干货 实体店运营全流程所需系统推荐