反馈神经网络Hopfield网络
一、前言
经过一段时间的积累,对于神经网络,已经基本掌握了感知器、BP算法及其改进、AdaLine等最为简单和基础的前馈型神经网络知识,下面开启的是基于反馈型的神经网络Hopfiled神经网络。前馈型神经网络通过引入隐层及非线性转移函数(激活函数)使得网络具有复杂的非线性映射能力。前馈网络的输出仅由当前输入和权矩阵决定,而与网络先前的输出状态无关。J.J. Hopfield教授在反馈神经网络中引入了能量函数的概念,使得反馈型神经网络运行稳定性的判断有了可靠依据,1985年Hopfield和Tank共同用模拟电子线路实现了Hopfield网,并成功的求解了优化组合问题中最具有代表性的旅行商TSP问题,从而开辟了神经网络用于智能信息处理的新途径。
前馈网络中,不论是离散还是连续,一般都不考虑输入和输出之间在时间上的滞后性,而只是表达两者间的映射关系,但在Hopfield网络中,需考虑输入输出间的延迟因素,因此需要通过微分方程或差分方程描述网络的动态数学模型。
神经网络的学习方式包括三种:监督学习、非监督学习、灌输式学习。对于Hopfield网络的权值不是经过反复学习获得的,而是按照一定的实现规则计算出来,在改变的是网络的状态,直到网络状态稳定时输出的就是问题的解。
Hopfield网络分为连续性和离散型,分别记为CHNN和DHNN。这里主要讲解DHNN。
二、DHNN
1. 网络结构与工作方式
DHNN的特点是任一神经元的输出xi均通过链接权wij反馈至所有神经元xj作为输入,目的是为了让输出能够受到所有神经元的输出的控制,从而使得各个神经元的输出相互制约。每个神经元均设有一个阈值Tj,以反映对输入噪声的控制。DHNN可简记为N=(W,T)。
(1) 网络的状态
所有神经元的状态集合构成了反馈网络状态X=(x1,x2,x3,...,xn),反馈网络的输入就是网络的状态初始值,X(0) = (x1(0),x2(0),x3(0),...,xn(0))。反馈网络在外界输入的激发下,从初始状态进入动态演变过程,其间每个神经元的状态不断变化,变化规律为:xj = f(net-j),f为转移函数,常采用符号函数,则神经元j的净输入net-j = sum(wji*xi - Tj),对于DHNN网,一般有wii = 0,
wji= wij。即权矩阵的对角线元素为0,且为对阵矩阵。表示神经元i的输出不反馈到神经元i,而是反馈到神经元i以外的所有神经元的输入端。
反馈网络稳定时每个神经元的状态都不再改变,即X(t) = X(t+1) = ... = X(∞)。
(2) 网络的异步工作方式
串行,网络每次只对一个神经元的状态进行调整计算,其他均不变。这样调整的顺序就有一定的影响了。可以随机选定或者按照固定的顺序。本次调整的结果会在下一个神经元的净输入中发挥作用。
(3) 网络的同步工作方式
并行,所有神经元同时进行状态调整计算。
2. 网络的稳定性与吸引子
(1) 稳定性
反馈网络是一种能够存储若干预先设置的稳定点的网络,作为非线性动力学系统,具有丰富的动态特性,如稳定性、有限环状态和混沌状态等;
稳定性指的是经过有限次的递归后,状态不再发生改变;
有限环状态指的是限幅的自持震荡;
混沌状态指的是网络状态的轨迹在某个确定的范围内变迁,既不重复也不停止,状态变化无穷多个,轨迹也不发散到无穷远。
对于DHNN,由于网络状态是有限的,不可能出现混沌状态。
利用Hopfield网络可实现联想记忆功能:用网络的稳态表示一种记忆模式,初始状态朝着稳态收敛的过程便是网络寻找记忆模式的过程,初态可视为记忆模式的部分信息,网络演变可视为从部分信息回忆起全部信息的过程,从而实现联想记忆。
可实现优化求解问题:将带求解问的目标函数设置为网络能量函数,当能量函数趋于最小时,网络状态的输出就是问题的最优解。网络的初态视为问题的初始解,而网络从初始状态向稳态的收敛过程便是优化计算过程,这种寻优搜索是在网络演变过程中自动完成的。
(2) 吸引子与能量函数
网络的稳定状态X就是网络的吸引子,用于存储记忆信息。网络的演变过程就是从部分信息寻找全部信息,即联想回忆过程。吸引子有以下的性质:
X=f(WX-T),则X为网络的吸引子;
对于DHNN,若按异步方式调整,且权矩阵W为对称,则对于任意初态,网络都最终收敛到一个吸引子;
对于DHNN,若按同步方式调整,且权矩阵W为非负定对称,则对于任意初态,网络都最终收敛到一个吸引子;
X为网络吸引子,且阈值T=0,在sign(0)处,xj(t+1) = xj(t),则-X也一定是该网络的吸引子;
吸引子的线性组合,也是吸引子;
能使网络稳定在同一吸引子的所有初态的集合,称为该吸引子的吸引域;
对于异步方式,若存在一个调整次序,使网络可以从状态X演变为Xa,则称X弱吸引到Xa;若对于任意调整次序,网络都可以从X演变为Xa,则称X强吸引到Xa。则对应弱吸引域和强吸引域。
若使反馈网络具有联想能力,每个吸引子都应该具有一定的吸引域,只有这样,对于带有一定噪声或缺损的初始样本,网络才能经过动态演变而稳定到某一个吸引子状态,从而实现正确联想。反馈网络设计的目的就是要使网络能落到期望的稳定点上,并且还要具有尽可能大的吸引域,以增强联想功能。
3. 网络的权值设计
吸引子的分布是由网络权值包括阈值决定的,设计吸引子的核心就是如何设计一组合适的权值,为了使得所设计的权值满足要求,权值矩阵应符合以下要求:
(1) 为保证异步方式网络收敛,W为对称矩阵;
(2) 为保证同步方式网络收敛,W为非负定对称矩阵;
(3) 保证给定的样本是网络的吸引子,并且要有一定的吸引域。
根据应用所要求的吸引子数量,可以采用以下不同的方法:
(1) 联立方程法
对于吸引子较少时,可采用该方法。
(2) 外积和法
对于吸引子较多时,可采用该方法。采用Hebb规律的外积和法。
参考资料:
韩力群,人工神经网络教程,北京邮电大学出版社,2006年12月
反馈神经网络Hopfield网络的更多相关文章
- Hopfield 网络(上)
讲的什么 这部分主要对 Hopfield 网络作一大概的介绍.写了其模型结构.能量函数和网络的动作方式.主要参考了网上搜到的一些相关 PPT. 概述 早在 1982 年,Hopfield 发表的文 ...
- 神经网络hopfield的学习
Hopfield神经网络使用说明. 该神经网络有两个特点: 1,输出值只有0,1 2,Hopfield没有输入(input) 这里解释一下第二个特点,什么叫没有输入?因为在使用Hopfield网络的时 ...
- Hopfield 网络(下)
讲的什么 这部分主要讲离散的 Hopfield 网络权值的计算方法,以及网络记忆容量.主要参考了网上搜到的一些相关 PPT. DHNN 的训练方法 常见的学习方法中有海布法,还有 \(\delta ...
- 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型
国外的文献汇总: <Network Traffic Classification via Neural Networks>使用的是全连接网络,传统机器学习特征工程的技术.top10特征如下 ...
- 用python实现数字图片识别神经网络--启动网络的自我训练流程,展示网络数字图片识别效果
上一节,我们完成了网络训练代码的实现,还有一些问题需要做进一步的确认.网络的最终目标是,输入一张手写数字图片后,网络输出该图片对应的数字.由于网络需要从0到9一共十个数字中挑选出一个,于是我们的网络最 ...
- My blog in AI ---神经网络,网络架构
上一篇博文中,我们介绍了神经网络中的神经元,那么该如何组织起来这些神经元,才能发挥出最好的效果去解决现实中的问题呢? 这是一个复杂的问题,在工程中,神经网络的架构也是训练的也是一种超参数,本节先在理论 ...
- 深度学习原理与框架-递归神经网络-RNN网络基本框架(代码?) 1.rnn.LSTMCell(生成单层LSTM) 2.rnn.DropoutWrapper(对rnn进行dropout操作) 3.tf.contrib.rnn.MultiRNNCell(堆叠多层LSTM) 4.mlstm_cell.zero_state(state初始化) 5.mlstm_cell(进行LSTM求解)
问题:LSTM的输出值output和state是否是一样的 1. rnn.LSTMCell(num_hidden, reuse=tf.get_variable_scope().reuse) # 构建 ...
- 五.反馈(Hopfield)神经网络
前馈网络一般指前馈神经网络或前馈型神经网络.它是一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层,数据正想流动,输出仅由当前的输入和网络权值决 ...
- Hopfield神经网络
神经网络分类 多层神经网络:模式识别 相互连接型网络:通过联想记忆去除数据中的噪声 1982年提出的Hopfield神经网络是最典型的相互连结型网络. 联想记忆 当输入模式为某种状态时,输出端要给出与 ...
随机推荐
- sqlite3 入门
SQLite3 C语言API入门下载SQLite3 我们下载sqlite源码包,只需要其中的sqlite3.c.sqlite.h即可.最简单的一个创建表操作#include <stdio.h&g ...
- OpenStack RPC框架解析
1 消息队列Rabbitmq介绍 Rabbitmq的整体架构图 (1)Rabbitmq Server:中间那部分就是Rabbitmq Server,也叫broken server,主要是负责消息的传 ...
- flutter 踩坑小计: amap_base 地图缩放 zoom 设置无效的问题
这种问题估计也就我这种菜鸡能遇到了,因为我问了一些大佬,他们完全没遇到这类的问题. 如果你也遇到了,希望这篇文章能帮到你,倘若还不能解决你的问题,可以留言,我们共同研究. 问题:同样的插件,为什么偏偏 ...
- PHP chmod() 函数
chmod() 函数改变文件模式. 如果成功则返回 TRUE,否则返回 FALSE. 例子 <?php // 所有者可读写,其他人没有任何权限 chmod(); // 所有者可读写,其他人可读 ...
- Filter中实现页面转发
在过滤器中实现页面转发时,报错 java.lang.IllegalStateException:Cannot forward after response has been committed 转发代 ...
- sturts标签中
struts中的s标签中textfield和textarea中不需要加上value和中间值,通过name可以直接取到. textfield和textarea标签没有value属性,需要加上${ylqx ...
- FLUENT求解传热系数surfaceheattransfercoef.的参考值的设置【转载】
转载自:http://blog.sina.com.cn/s/blog_7ef78d170101ch30.html surface heat transfer coef. 计算公式: FLUENT求解传 ...
- 消息队列Rabbit MQ 学习第一篇
1 介绍 1.1RabbitMQ MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队 ...
- 优雅地使用eruda在移动端上调试网页
注:本文有一小部分截图为桌面端,但所有内容都亲测在移动端上可用. 你曾否在洛谷上用<F12>把错的数据点改成AC?是否有过自己尝试搭建网站,在移动端上js代码运行出错?如果你的回答是肯定的 ...
- 三大框架 之 Spring(IOC控制反转、DI依赖注入)
目录 常用词汇 left join与left outer join的区别 Struts2的标签库导入 Spring Spring概述 什么是Spring spring特点 下载 IOC 什么IOC 传 ...