转自:http://www.07net01.com/2015/08/897795.html

联想记忆网络的研究是神经网络的重要分支,在各种联想记忆网络模型中,由B·Kosko于1988年提出的双向联想记忆(Bidirectional Associative Memory,BAM)网络的应用最为广泛。前面介绍过的Hopfiled网络可实现自联想,具体内容可以参考博文《反馈神经网络Hopfield网络》。而BAM网络可以实现双向异联想,具有离散型、连续型和自适应型等多种形式。本篇博文主要介绍离散型BAM网络。

一、BAM网络结构与原理

BAM网络是一种双层双向网络,当向其中一层加入输入信号时,另一层可得到输出。由于初始模式可以作用于网络的任一层,信息可以双向传播,所以没有明确的输入层或输出层。可将其中的一层称为X层,有n个神经元节点;另一层称为Y层,有m个神经元节点。两层的状态向量可取单极性二进制0或1,也可以取双极性离散值1或-1。如果令由X到Y的权矩阵为W,则由Y到X的权矩阵便是其转置矩阵WT

BAM网实现双向异联想的过程是网络运行从动态到稳态的过程。对已建立权值矩阵的BAM网,当将输入样本XP作用于X侧时,该侧输出X(1)=XP通过W阵加权传到Y侧,通过该侧节点的转移函数fy进行非线性变换后得到输出Y(1)=fy(WX(1));再将该输出通过WT阵加权从Y侧传回X侧作为输入,通过X侧节点的转移函数fx进行非线性变换后得到输出X(2)=fx[WTY(1)]=fx{[WT[fy(WX(1))]}。这种双向往返过程一直进行到两侧所有神经元的状态均不再发生变化为止。此时的网络状态称为稳态,对应的Y侧输出向量YP便是模式XP经双向联想后所得的结果。同理,如果从Y侧送入模式YP,经过上述双向联想过程,X侧将输出联想结果X。这种双向联想过程可用下图表示:


对应的计算公式如下:
对于经过充分训练的权值矩阵,当向BAM网络一侧输入有残缺的已存储模式时,网络经过有限次运行不仅能在另一侧实现正确的异联想,而且在输入侧重建了完整的输入模式。也就是说,从残缺的输入模式,既可以通过BAM实现异联想,还可以重建完整的输入模式,这个功能将会非常有用。比如对于下面将分享的一个BAM网络实现就是如此,通过(X,Y)几对需要存储的模式,计算出所需要的权矩阵,例子中选择的是人名和电话的双联想,通过输入残缺的人名,计算好的BAM网络能够实现对电话号码的联想,同时将残缺的人名补全。

二、BAM网络结构的能量函数与稳定性分析

跟Hopfield网络类似,若BAM网络的阈值T为0,则能量函数定义为:
BAM 网双向联想的动态过程就是能量函数量沿其状态空间中的离散轨迹逐渐减少的过程。当达到双向稳态时,网络必落入某一局部或全局能量最小点。对于具体的推理过程,本博文不再进行详述。经过一番的推导,可以得到如下的能量变化公式:
上式表明BAM网的能量在动态运行过程中不断下降,当网络达到能量极小点时即进入稳定状态,此时网络两侧的状态都不再变化。证明过程对BAM网权矩阵的学习规则并未作任何限制,而且得到的稳定性的结论与状态更新方式为同步或异步无关。考虑到同步更新比异步更新时能量变化大,收敛速度比串行异步方式快,故采常用同步更新方式。

三、BAM网络结构的权值设计

对于离散 BAM 网络,一般选转移函数f (·) =sign(·)。当网络只需存储一对模式(X1,Y1)时,若使其成为网络的稳定状态,应满足如下条件:
当需要存储 P对模式时,将以上结论扩展为P对模式的外积和,从而得到Kosko提出的权值学习公式:

用外积和法设计的权矩阵,不能保证任意P对模式的全部正确联想,但下面的定理表明,如对记忆模式对加以限制,用外积和法设计BAM网具有较好的联想能力。
  定理:若P个记忆模式Xp,p =1,2 ,… ,P,x ∈{ -1,1}构成的n维模式,两两正交,且权值矩阵W按上式得到,则向BAM网输入P个记忆模式中的任何一个Xp时,只需一次便能正确联想起对应的模式Yp。
具体的一个例子:含噪声字符的联想过程,如下图:

四、BAM网络的应用

BAM 网络的设计比较简单,只需由几组典型输入、输出向量构成权矩阵。运行时由实测到的数据向量与权矩阵作内积运算便可得到相应的信息输出。这是一种大规模并行处理大量数据的有效方法,具有实时性和容错性。更具魅力的是,这种联想记忆法无需对输入向量进行预处理。便可直接进入搜索,省去了编码与解码工作。

系统学习机器学习之神经网络(十) --BAM网络相关推荐

  1. 系统学习机器学习之神经网络(七) --CPN

    原文:http://blog.csdn.net/u014070279/article/details/47299987 1987年,美国学者Robert Hecht-Nielsen提出了对偶传播神经网 ...

  2. 系统学习机器学习之神经网络(十二) --人工神经网络总结

    本来这篇还缺个RBM,但RBM在DBN中使用,暂时放在深度学习那里.这里看到一篇非常好的总结,保存下来. 转自:http://blog.csdn.net/fengbingchun/article/de ...

  3. 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN

    1 遗传算法 1.1 遗传算法简介: 遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随 机化搜索方法.它是由美国的 J.Holland 教授 1975 年首先提出,其主要特 ...

  4. 系统学习机器学习之神经网络(一)--MLP及局部模型,RBF综述

    今天我们要谈的MLP其实是一种人工神经网络结构,属于非参数估计,可以用于解决分类和回归问题.我们先来了解下神经网络的背景,然后再来介绍下感知器. 神经网络 感知器 多层感知器 神经网络的应用 局部模型 ...

  5. 系统学习机器学习之神经网络(九) --Hopfield网络

    转自:http://blog.csdn.net/lg1259156776/article/details/47323889 一.前言 经过一段时间的积累,对于神经网络,已经基本掌握了感知器.BP算法及 ...

  6. 系统学习机器学习之神经网络(六) --GrossBerg网络

    原文:http://m.blog.csdn.net/article/details?id=52574264 这里先介绍GrossBerg网络是因为后面CPN中,输出层会用到GrossBerg网络,所以 ...

  7. 系统学习机器学习之神经网络(五) --ART

    原文:http://blog.csdn.net/lg1259156776/article/details/47780695?ticket=ST-86810-0pIYIAWVt6D75CfTmo6O-p ...

  8. 系统学习机器学习之神经网络(四) --SOM

    转自:http://blog.csdn.net/xbinworld/article/details/50818803,其实内容更多的是百度文库里叫<SOM自组织特征映射神经网络>这篇文章上 ...

  9. 系统学习机器学习之神经网络(十一) --TDNN

    转自:http://blog.csdn.net/richard2357/article/details/16896837 近来在了解卷积神经网络(CNN),后来查到CNN是受语音信号处理中时延神经网络 ...

最新文章

  1. Hinton:人类就是机器,绝妙的机器
  2. oracle 分列,SQL 问题 如何分列
  3. 【图解计算机组成原理】第1章 计算机系统概论
  4. js循环写入html不覆盖,【JavaScript】使用document.write输出覆盖HTML问题
  5. python处理csv数据
  6. 如何在AWS亚马逊云上运行Angular应用
  7. python魔术方法由谁定义_Python的魔术方法
  8. 可持久化3--可持久化01Trie
  9. java的默认值规则_Java 8:默认方法解析规则
  10. 【一周一算法】算法2:邻居好说话——冒泡排序
  11. 5999元!OPPO Find X5 Pro 8+256GB版今日首销
  12. Atitit 常见软件设计图纸总结 目录 1.1. ui原型图与html 2 1.2. 业务逻辑 伪代码 各种uml图 2 1.3. 总体设计图纸 结构图 层次图 架构图 2 1.4. 业务逻辑
  13. 新版软著申请系统说明
  14. c语言编程 设计密码锁,单片机控制安全密码锁的设计(附程序,pcb,原理图)
  15. 计算机3大总线名词解释,计算机名词解释-- 总线.doc
  16. 江宁地区吃喝玩乐全攻略!
  17. 深信服负载均衡开发实习面经
  18. E3亮点:StudioMDHR的《茶杯头》
  19. matlab中sqp的算法原理_最优化方法及其Matlab程序设计 马昌凤
  20. DevEco Studio JS sdk下载问题

热门文章

  1. android PPPoE拨号调试记录
  2. 在Emacs中使用git
  3. ios ffmpeg audio decode
  4. C#之Unix时间和北京时间互转
  5. 视频编解码(四):编辑器驱动移植步骤(VE)
  6. 虚拟交换机软件_千兆交换机如何识别优劣,千兆交换机识别方法!
  7. 利用navicat将数据库中的查询结果导出文件
  8. Python对图像进行二维Gabor滤波加速
  9. mapbox 将坐标转换成米
  10. 新手学v-text指令