反馈神经网络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神经网络是最典型的相互连结型网络. 联想记忆 当输入模式为某种状态时,输出端要给出与 ...
随机推荐
- Cogs 376. [IOI2002]任务安排(后效性DP)
[IOI2002]任务安排 ★☆ 输入文件:batch.in 输出文件:batch.out 简单对比 时间限制:1 s 内存限制:128 MB N个任务排成一个序列在一台机器上等待完成(顺序不得改变) ...
- GoCN每日新闻(2019-09-27)
1. Golang新版本发布:Go 1.13.1和Go 1.12.10https://golang.org/dl/ 2. 如何在Golang中使用Websockets:最佳工具和步骤指南 https: ...
- [php][thinkphp] 记一次Composer Linux版安装以及用它进行thinkphp项目初始化
Composer安装thinkphp,thinkphp5.1开始官网不在提供下载包,只能通过git clone 和Composer包管理器进行下载. php中开启exec,system等函数调用系统命 ...
- C++2.0新特性(二)——<一致性初始化、Initializer_list 、for循环、explicit>
一.一致性初始化(uniform initialization) 之前初始化时存在多个版本,让使用者使用时比较混乱,现在提供一种万用的初始化方法,就是使用大括号. 原理解析:当编译器看到大括号包起来的 ...
- 读取本地word 浏览器下载(设置编码格式)
String filePath = "C:\\word\\报告.doc"; BufferedWriter bos = null; BufferedReader bis = null ...
- 五笔字典86版wubi拆字图编码查询
五笔字典86版 软件能查询以下数据,五笔编码,汉字拆字图,拼音,部首,笔划,笔顺,解释,五笔口诀等等.这些数据只针对单个汉字查询(大概7000字左右).词组查询只支持五笔编码查询(有60000个词组+ ...
- C传递参数给main函数
一个很简单的给main函数传递参数的例子: #include <stdio.h> //int main(int argc, char *argv[]){ int main(int argc ...
- appium 多线程还是多进程(转)
https://www.cnblogs.com/zouzou-busy/p/11440175.html 在前面我们都是使用一个机器进行测试,在做app自动化的时候,我们要测不同的机型,也就是兼容性测试 ...
- vs2017 编译linux项目
官方文档1: https://blogs.msdn.microsoft.com/vcblog/2017/04/11/linux-development-with-c-in-visual-studio/ ...
- Spring源码解析--IOC根容器Beanfactory详解
BeanFactory和FactoryBean的联系和区别 BeanFactory是整个Spring容器的根容器,里面描述了在所有的子类或子接口当中对容器的处理原则和职责,包括生命周期的一些约定. F ...