MachineLearning---Hebbian Learning

引言

前面介绍了许多“监督式”学习方式,比如PNN、Backpropagation、LMS等。这些算法有一个共同点:提供的数据中,有目标值。相当于一本带有答案的练习本。接下来将介绍“非监督式”学习方式。

首先就介绍Hebbian Learnig。

一、HebbianLearning 算法基本介绍

1.算法思想

这里需要介绍一下Hebb’s Rule。以下来自维基百科:

Whenan axon of cell A is near enough to excite a cell B and repeatedly orpersistently takes part in firing it, some growth process or metabolic changetakes place in one or both cells such that A's efficiency, as one of the cellsfiring B, is increased.

大致意思就是:如果两个神经元,某一个激活了另一个,并且反复持续的激活,那么它们之间的联系值应该被加强。

这背后的意思就是:两个单元有相似的激活值,那么他们的联系将会随着之间的联系而不断加强。

2.权值调整公式

这个公式计算i和j之间的联系权值, 是一个学习参数; 便是两个神经元的激活值。

如果联系我们之前介绍的神经网络模型,那么我们可以这么建模。

一个非常简单的神经网络结构:一层为输入层,一层为输出端。我们把一个输入端和一个输出端看成上面两个神经元。

大致就如下面这张图所示:

3.算法流程

接下来是该算法的流程:

1.将训练数据作为输入端,按照当前的计算模型计算各个输出端的值;

2.将计算得到的输出端的值和输入端的值,按照上面的公式(1),调整各个权值(w);

3.利用训练数据按照上述方式调整计算模型。

如果新的数据集进入,按照原先的计算模型计算输出值。这个时候,如果新进入的数据集和已分类的某一个patternA相似,那么按照上诉的计算方式调整权值,patternA相对应的权值就会增强,另外的则会减弱。

二、算法实现

下面关键的两个函数

[cpp]  view plain copy print ?
  1. void calculate_activations()
  2. {
  3. for(int iOut = 0 ; iOut < NUMCELL; ++iOut)
  4. {
  5. doubleval = 0.0;
  6. for(int iIn = 0 ; iIn < NUMCELL ; ++iIn)
  7. {
  8. val += weight[iIn][iOut]* input[iIn];
  9. }
  10. if(val> 0.0) output[iOut] = 1;
  11. else
  12. output[iOut] = -1;
  13. }
  14. }
  15. void adjust_weights()
  16. {
  17. for(int iIn = 0 ; iIn < NUMCELL ; ++iIn)
  18. {
  19. for(int iOut = 0 ; iOut < NUMCELL ; ++iOut)
  20. {
  21. weight[iIn][iOut] +=ration * input[iIn] * output[iOut];
  22. }
  23. }
  24. }

三、扩充

1.Hebbian Learning的局限

比如一个新进入的数据集和当前其中某一个模式patternA完全相同,那么所有的权值都会增加,包括不和patternA对应的权值也会增加,这样就导致计算模型的偏差。

2.修改HebbianLearning

我们将公式1修改为:

下面对这个公式稍加解释:参数和上面公式1中是一样的。这么做之后,可以均衡每一次加强或者减弱权值。

MachineLearning---Hebbian Learning相关推荐

  1. Spike Timing–Dependent Plasticity: A Hebbian Learning Rule ///STDP时空依赖可塑性

    关键词 长期增强,长期抑郁,突触,记忆,反向传播动作电位 摘要 时空依赖可塑性(STDP)作为一种Hebbian突触学习规则,在从昆虫到人类的广泛物种的各种神经回路中得到了证明. 突触修饰依赖于突触前 ...

  2. Brief History of Machine Learning

    Brief History of Machine Learning 转自http://www.erogol.com/brief-history-machine-learning/ My subject ...

  3. 【李宏毅2020 ML/DL】P106 More about Life Long Learning

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课 杨舒涵 讲解. 第一部分通过生物现象 `赫布理论 ,引出机器学习相关技术. 接下来,是几 ...

  4. Continual Learning 经典方法:Memory Aware Synapses (MAS)

    1. 顾名思义 Synapses 是神经元的突触,在人脑中负责连接不同神经元结构.Hebb's rule 表示在脑生理学中,突触连接常常满足 "Fire Together, Wire Tog ...

  5. [文献阅读] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in NN

    文章目录 1. 前言 2. Overview of Sparsity in Deep Learning 2.1 Generalization 2.2 performance and model sto ...

  6. Deep Learning in a Nutshell

    文章出处:https://devblogs.nvidia.com/parallelforall/ DeepLearning in a Nutshell: History and Training Sh ...

  7. 《自然综述-神经科学》:大脑中的反向传播

    来源:神经前研 本文长度为10000字,建议阅读10+分钟. 俗话说得好:大脑要学习,突触可塑性少不了. 标签:人工智能 大脑中的神经元能调控自身与其它神经元之间的连接强度,这一点我们早在上世纪七十年 ...

  8. 研究速递:预测学习——神经元高效运作的最佳策略

    来源:集智俱乐部 作者:袁郭玲.梁金 编辑:邓一雪 摘要 了解大脑如何学习有助于制造具有与人类类似智力水平的机器.之前有理论提出,大脑可能是根据预测编码的原理运行.然而,对于预测系统如何在大脑中实现还 ...

  9. 人工智能vs人类智能小传

    来源:混沌巡洋舰 Alphago代表的深度网络人工智能体现了AI逐步进入未知领域的强大能力, 因此有人堪忧有人喜乐, 却极少有人戳中要害.说AI比人牛是因为它下围棋比人厉害?  说AI离真正的智能很遥 ...

最新文章

  1. docker安装Mysql5.7以及远程登陆链接配置
  2. ThinkPHP子类继承Controller类的注意事项
  3. 使用Python+OpenCV+yolov5实现行人目标检测
  4. (一)swoole服务启动流程
  5. 不同系统之间数据的交互
  6. 《JAVA程序设计》_第四周学习总结
  7. 利用Jquery处理跨域请求
  8. ca证书 csr_linux下使用openssl生成 csr crt CA证书
  9. ubuntu安装python_Linux下的Python开发配置鸭
  10. linux 变量的继承,solaris移植到linux的大坑:bash和sh中环境变量继承的差异
  11. 新能源补贴退坡 广汽新能源、比亚迪不涨价 蔚来最狠!
  12. sonar jacoco 覆盖率为0_接口测试代码覆盖率(jacoco)方案分享
  13. readelf 和 objdump 例子详解及区别 (ELF文件说明)
  14. [教学]基于crnn的中文汉字识别_pyqt界面交互界面python含代码
  15. 智能制造-从愿景到实现路径
  16. ue4 rootmotion动画、模型导入使用(注)
  17. C语言实现关机的小代码,不怎么完善,新人勿喷!
  18. 【6.24校内test】T2 不老梦
  19. 最全74HC04六反相器中文资料|引脚图及功能表|应用电路图
  20. Python爬虫基础讲解(二十七):scrapy 框架—ltem和scrapy.Request

热门文章

  1. (试除法+unordered_map+因式分解)acwing 870. 约数个数
  2. 最新优客API工具大全源码+调用第三方
  3. 什么是金融租赁?什么是融资租赁?
  4. CGT Asia 2022第二届亚洲细胞与基因治疗创新峰会将于2022年7月10日-111日在上海举办
  5. 利用 Python-user-agents 解析 User_Agent
  6. 一款php开发的非常好的OA办公管理系统源码
  7. TMS320C6748开发视频教程笔记 第6章 GEL 文件
  8. 5年内禁用支付宝和微信支付!多地公安出手:这些人摊上大事了
  9. 以太坊V神大著:去中心化社会:寻找Web3的灵魂
  10. [3] Jenkins 系列:如何获取触发Jenkins Job的用户信息?