Hopfield模型

1982年,J.Hopfield提出了可用作联想存储器的互连网络,这个网络称为Hopfield网络模型,也称Hopfield模型。Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接。Hopfield网络有离散型和连续型两种。

反馈神经网络由于其输出端有反馈到其输入端;所以,Hopfield网络在输入的激励下,会产生不断的状态变化。当有输入之后,可以求取出Hopfield的输出,这个输出反馈到输入从而产生新的输出,这个反馈过程一直进行下去。如果Hopfield网络是一个能收敛的稳定网络,则这个反馈与迭代的计算过程所产生的变化越来越小,一旦到达了稳定平衡状态;那么Hopfield网络就会输出一个稳定的恒值。对于一个Hopfield网络来说,关键是在于确定它在稳定条件下的权系数。

应该指出:反馈网络有稳定的,也有不稳定的。对于Hopfield网络来说,还存在如何判别它是稳定网络,亦或是不稳定的问题;而判别依据是什么,也是需要确定的。

1.3.1 离散Hopfield网络

Hopfield最早提出的网络是二值神经网络,神经元的输出只取1和0这两个值,所以,也称离散Hopfield神经网络。在离散HopfieId网络中,所采用的神经元是二值神经元;故而,所输出的离散值1和0分别表示神经元处于激活和抑制状态。

首先考虑由三个神经元组成的离散Hopfield神经网络,其结构如图1—13中所示。

在图中,第0层仅仅是作为网络的输人,它不是实际神经元,所以无计算功能;而第一层是实际神经元,故而执行对输人信息和权系数乘积求累加和,并由非线性函数f处理后产生输出信息。f是一个简单的阀值函效,如果神经元的输出信息大于阀值θ,那么,神经元的输出就取值为1;小于阀值θ,则神经元的输出就取值为θ。

图1-13  三神经元组成的Hopfield网络

对于二值神经元,它的计算公式如下

其中:xi为外部输入。并且有:

Yi=1,当Ui≥θi

Yi=0,当Uii

对于一个离散的Hopfield网络,其网络状态是输出神经元信息的集合。对于一个输出层是n个神经元的网络,则其t时刻的状态为一个n维向量:

Y(t)=[Y1(t),Y2(t),...,Yn(t)]T

故而,网络状态有2n个状态;因为Yj(t)(j=1……n)可以取值为1或0;故n维向量Y(t)有2n种状态,即是网络状态。

对于三个神经元的离散Hopfield网络,它的输出层就是三位二进制数;每一个三位二进制数就是一种网络状态,从而共有8个网络状态。这些网络状态如图1—14中所示。在图中,立方体的每一个顶角表示一种网络状态。同理,对于n个神经元的输出层,它有2n个网络状态,也和一个n维超立方体的顶角相对应。

图1-14   三神经元输出层的网络状态

如果Hopfield网络是一个稳定网络,那么在网络的输入端加入一个输入向量,则网络的状态会产生变化,也就是从超立方体的一个顶角转移向另一个顶角,并且最终稳定于一个特定的顶角。

对于一个由n个神经元组成的离散Hopfield网络,则有n*n权系数矩阵w:

W={Wij} i=1,2,...,n  j=1,2,...,n

同时,有n维阀值向量θ:

θ=[θ12,...θn]T

一船而言,w和θ可以确定一个唯一的离散Hopfield网络。对于图1—13所示的三神经元组成的Hopfield网络,也可以改用图1—15所示的图形表示,这两个图形的意义是一样的。考虑离散Hopfield网络的一船节点状态;用Yj(t)表示第j个神经元,即节点j在时刻t的状态,则节点的下一个时刻(t+1)的状态可以求出如下:

当Wij在i=j时等于0,则说明一个神经元的输出并不会反馈到它自己的输入;这时,离教的HopfieId网络称为无自反馈网络。

当Wij在i=j时不等于0,则说明—个神经元的输出会反馈到它自己的输入;这时,离散的Hopfield网络称为有自反馈的网络。

图1-15 离散Hopfield网络的另外一种图示 离散Hopfield网络有二种不同的工作方式:

1.串行(异步)方式

在时刻t时,只有某一个神经元j的状态产生变化,而其它n-1个神经元的状态不变这时称串行工作方式。并且有

Yi(t+1)=Yj(t)  i≠j

在不考虑外部输人时,则有

2.并行(同步)方式

在任一时刻t,所有的神经元的状态都产生了变化;则称并行工作方式。并且有

在不考虑外部输入时,则有

    j=1,2,...,n

对于一个网络来说,稳定性是一个重大的性能指标。

对于离散Hopfield网络,其状态为Y(t):

Y(t)=[Y1(t),Y2(t),...,Yn(t)]T

如果,对于任何△t>0.当神经网络从t=0开始,有初始状态Y(0);经过有限时刻t,有:

Y(t+△t)=Y(t)

则称网络是稳定的。

在串行方式下的稳定性称之为串行稳定性。同理,在并行方式的稳定性称之为并行稳定性。在神经网络稳定时,其状态称稳定状态。

从离散的Hopfield网络可以看出:它是一种多输入,含有阀值的二值非线性动力系统。在动力系统中,平衡稳定状态可以理解为系统的某种形式的能量函数在系统运动过程中,其能量值不断减小,最后处于最小值。

对Hopfield网络引入一个Lyapunov函数,即所谓能量函数:

即有:

(1-46)
对于神经元j,其能量函数可表示为  
(1-47)

也即是有

神经元j的能量变化量表示为△Ej

(1-48)

如果存在条件   Wii=0,i=1,2,...,n

Wij=Wji  i=1,2,...,n   j=1,2,...,n

则有:

(1-49)

其中:Ej为神经元j的能量;

△Ej为神经元j的能量变化;

Wij为神经元i到神经元j的权系数:

Yi为神经元j的输出;

Xj为神经元j的外部输入;

θj为神经元j的阀值;

△Yj为神经元j的输出变化。

如果,令

Uj=ΣWijYi+Xj

则△Ej可表示为:

考虑如下两种情况:

1.如果Uj≥θj,即神经元j的输入结果的值大于阀值,则Ujj≥0,则从二值神经元的计算公式知道:Yj的值保持为1,或者从0变到1。这说明Yj的变化△Yj只能是0或正值。这时很明显有△Ej

△Ej≤0

这说明Hopfield网络神经元的能量减少或不变。

2.如果Uj≤θj,即神经元j的输入结果的值小于阀值,则Ujj≥0,则从二值神经元的计算公式可知:Yj的值保持为0,或者从1变到0。这说明Yj的变化△Yj只能是零或负位。这时则有△Ej

△Ej≤0

这也说明Hopfield网络神经元的能量减少。

上面两点说明了Hopfield网络在权系数矩阵W的对角线元素为0,而且W矩阵元素对称时,Hopfield网络是稳定的。

Coben和Grossberg在1983年给出了关于Hopfield网络稳定的充分条件,他们指出:

如果Hopfield网络的权系数矩阵w是一个对称矩阵,并且,对角线元素为0.则这个网络是稳定的。即是说在权系数矩阵W中,如果

i=j时,Wij=0

i≠j时,Wij=Wji

则Hopfield网络是稳定的。

应该指出:这只是Hopfield网络稳定的充分条件.而不是必要条件。在实际中有很多稳定的Hopfield网络,但是它们并不满足权系数矩阵w是对称矩阵这一条件。

上面的分析可知:

无自反馈的权系数对称Hopfield网络是稳定的网络。它如图1—16,图1—17所示。

图1-16  对角线权系数为0的对称Hopfield网络

图1-17  对角线权系数为0的对称网另一图示

Hopfield网络的一个功能是可用于联想记忆,也即是联想存储器。这是人类的智能特点之一。人类的所谓“触景生情”就是见到一些类同过去接触的景物,容易产生对过去情景的回昧和思忆。对于Hopfield网络,用它作联想记忆时,首先通过一个学习训练过程确定网络中的权系数,使所记忆的信息在网络的n维超立方体的某一个顶角的能量最小。当网络的权系数确定之后,只要向网络给出输入向量,这个向量可能是局部数据.即不完全或部分不正确的数据,但是网络仍然产生所记忆的信息的完整输出。1984年Hopfield开发了一种用n维Hopfield网络作联想存储器的结构。在这个网络中,权系数的赋值规则为存储向量的外积存储规则(out product storage prescription),其原理如下:

设有m个样本存储向量x1,x2,…,xm

X1={X11,X21,...,Xm1}

X2={X12,X22,...,Xm2}

......

Xm={Xm1,Xm2,...,Xmm}

把这m个样本向量存储人Hopfield网络中,则在网络中第i,j两个节点之间权系数的值为:

其中:k为样本向量Xk的下标,k=1,2,…m;

i,j分别是样本向量Xk的第i,j分量Xi,Xj的下标;i,j=1,2,…n。

对联想存储器的联想检索过程如下:

给定一个向量X。进行联想检索求取在网络中的存储内容。这时,把向量

X={X1,X2,...Xn}

的各个分量x1,x2,…,xn赋于相对应的节点j,(j=1,2,…,n),则节点有相应的初始状态Yj(0),则有

Yj(0)=Xj,j=1,2,…,n

接着,在Hopfield网络中按动力学系统原则进行计算,得

Yj(t+1)=f[ΣWijYj(0)-θj]  , i,j=1,2,…,n

其中,f[·]是非线性函数,可取阶跃函数。

通过状态不断变化,最后状态会稳定下来.最终的状态是和给定向量x最接近的样本向量。所以,Hopfield网络的最终输出也就是给定向量联想检索结果。这个过程说明,即使给定向量并不完全或部分不正确,也能找到正确的结果。在本质上,它也有滤波功能。

1.3.2连续Hopfield网络

连续Hopfield网络的拓朴结构和离散Hopfield网络的结构相同。这种拓朴结构和生物的神经系统中大量存在的神经反馈回路是相一致的。在连续Hopfield网络中,和离散Hopfield网络一样,其稳定条件也要求Wij=Wji
连续Hopfield网络和离散Hopfield网络不同的地方在于其函数g不是阶跃函数,而是S形的连续函数。一般取

g(u)=1/(1+e-u)        (1-50)

连续Hopfield网络在时间上是连续的.所以,网络中各神经元是处于同步方式工作的。考虑对于一个神经细胞,即神经元j,其内部膜电位状态用uj表示.细胞膜输入电容为Cj,细胞膜的传递电阻为Rj,输出电压为Vj,外部输入电流用Ij表示,则连续Hopfield网络可用图1—18所示的电路表示。

(1-51)

其中:n是神经网络神经元的个数

vj(t)为输出电位;

Uj(t)为输入电位。

图1-18  连续Hopfield网络的电路形式

对于连续Hopfield网络,Hopfield给出如下稳定性定理:

给出能量函数E(t)

(1-52)

其中:g-1(v)是Vj(t)=gj(uj(t))的反函数。

如果连续Hopfield网络中神经元传递函数是单调增长的连续并有界函数,并且Wij=Wji,则有

当并且仅当

时,有

这个定理的意义可以解释如下:当网络神经元的传递函数是S函数,并且网络权系数矩阵对称;则随时间的变化网络的能量会下降或不变;而且仅当输出电位随时间变化不变时.网络的能量才会不变。换而言之,在上述条件下的网络是能量不变或下降的。

这个定理的证明过程如下:

对能量函数E(t)求时间的导数dE(t)/dt,则有


(1-53)

如果存在Wij=Wji,则上式可写为

(1-54)
从连续Hopfield网络的动态方程,有
(1-55)
故上面(1—54)式可写成  
(1-56)
由于  Vj(t)=gj(Uj(t)) (1-57)
故而有  Uj(t)=gj-1(Vj(t)) (1-58)
从而有  
(1-59)
从   g(u)=1/(1+exp(-u)) (1-60)

可知其反函数为单调升函数。因而对于dE(t)/dt中的gj-1(vj(t)),必有单调升的特点.则其导数必定大于0,即

[gj-1(vj(t))]‘>0

同时容易知道

Cj>0

很明显,在dE(t)/dt时,必定有

而且当,仅当

至此,则定理证明完毕。

这个定理说明Hopfield网络的能量函数E(t)是单调下降的;如果E(t)有下界,即有确定的极小值;那么网络必定是稳定的。而且,可以知道稳定点对应于能量函数的下界,即极小值。

下一步工作,只需证明能量函数有下界,那么.就可以证明网络是稳定的。

可以证明,如果Hopfield网络的传递函数g是连续而且有界的,那么,能量函数E(t)是有界的。

最后,有如下结论:

当Hopfield网络的神经元传递函数g是连续且有界的,例如Sigmoid函数,并且网络的权系数矩阵对称,则这个连续Hopfield网络是稳定的。在实际应用中,任何一个系统,如果其优化问题可以用能量函数E(t)作为目标函数,那么,总可以用连续Hopfield网络对其进行求解。由于引入能量函数E(t),Hopfield使神经网络和问题优化直接对应;这种工作是具开拓性的。利用神经网络进行优化计算,就是在神经网络这一动力系统给出初始的估计点,即初始条件;然后随网络的运动传递而找到相应极小点。这样,大量的优化问题都可以用连续的Hopfield网来求解。这也是Hopfield网络用于神经计算的基本原因。

ps: Hopfield网络是神经网络发展历史上的一个重要的里程碑。Hopfield神经网络是1982年美国物理学家J.Hopfield首先提出来的,属于反馈神经网络类型。与前向型神经网络不同,前向神经网络不考虑输出与输入之间在时间上的滞后影响,其输出与输入之间仅仅是一种映射关系。而Hopfield网络则不同,它采用反馈连接,考虑输出与输入在时间上的传输延迟,所表示的是一个动态过程,需要用差分或微分方程来描述,因而Hopfield网络是一种由非线性元件构成的反馈系统,其稳定状态的分析比前向神经网络要复杂得多。
      Hopfield用能量函数的思想形成了一种新的计算方法,阐明了神经网络与动力学的关系,并用非线性动力学的方法来研究这种神经网络的特性,建立了神经网络稳定性判据,并指出信息存储在网络各个神经元之间的连接上,形成了所谓的Hopfield网络。 Hopfield还将该反馈网络同统计物理中的lsing模型相类比,把磁旋的向上和向下方向看成神经元的激活和抑制两种状态,把磁旋的相互作用看成神经元的突触权值。这种类推为大量的物理学理论和许多的物理学家进入神经网络领域铺平了道路。1984年,Hopfield设计并研制了Hopfleld网络模型的电路,指出神经元可以用运算放大器来实现,所有神经元的连接可用电子线路来模拟,称之为连续Hopfield网络。使用该电路,Hopfleld成功地解决了旅行商(TSP)计算难题(优化问题)。

时间: 2024-10-27 05:27:22

Hopfield模型的相关文章

人工神经网络

人工神经网络初窥 人工神经网络(Artificial Neural Network,简称ANN ),以数学模型模拟神经元活动,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统.人工神经网络具有自学习.自组织.自适应以及很强的非线性函数逼近能力,拥有强大的容错性.它可以实现仿真.预测以及模糊控制等功能.是处理非线性系统的有力工具.(摘自百度百科)           关于神经网络的定义尚不统一,按美国神经网络学家 Hecht Nielsen 的观点,神经网络的定义是:“神经网络是由多个非常

人工神经网络简介

本文主要对人工神经网络基础进行了描述,主要包括人工神经网络的概念.发展.特点.结构.模型. 本文是个科普文,来自网络资料的整理. 一.             人工神经网络的概念 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型.该模型以并行分布的处理能力.高容错性.智能化和自学习等能力为特征,

TSP旅行商问题的Hopfield求解过程

  连续型Hopfield在matlab中没有直接的工具箱,所以我们们根据Hopfield给出的连续行算法自行编写程序.本文中,以求解旅行商 问题来建立Hopfield网络,并得到解,但是该解不一定是最优解,用Hopfield得到的解可能是次优解,或没有解.直接上问题: 8个城市的坐标: 0.100000000000000 0.1000000000000000.900000000000000 0.5000000000000000.900000000000000 0.100000000000000

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

Laravel5.1 模型--ModelFactory

今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍过Seeder,当我们使用模型访问数据时 可以用模型工厂搭配Seeder使用. 1 编写一个ModelFactory ModelFactory的路径在 database/factories/ 下: // 这是系统自带的工厂 $factory->define(App\User::class, function ($faker) { return [ 'name' => $faker->name, 'email' =>

15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??

应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型. 事件模型简介及常见事件模型 对于采用了图形用户界面的程序来说,事件控制是非常重要的. 一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件. 一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知. 每种类型的事件都有其自己的注册方法,一般形式为: v

11.python并发入门(part13 了解事件驱动模型))

一.事件驱动模型的引入. 在引入事件驱动模型之前,首先来回顾一下传统的流水线式编程. 开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束 每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数据.输入不同的数据,根据条件语句判断,流程或许就改为A--->C--->E...--->结束.每一次程序运行顺序或许都不同,但它的控制流程是由输入数据和

Linux的I/O模式、事件驱动编程模型

大纲: (1)基础概念回顾 (2)Linux的I/O模式 (3)事件驱动编程模型 (4)select/poll/epoll的区别和Python示例 网络编程里常听到阻塞IO.非阻塞IO.同步IO.异步IO等概念,总听别人装13不如自己下来钻研一下.不过,搞清楚这些概念之前,还得先回顾一些基础的概念. 1.基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址,处理器先产生一个虚拟地址,通过地址翻译成物理地址(内

Storm介绍及核心组件和编程模型

离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaban/oozie任务调度 流式计算 流式计算:数据实时产生.数据实时传输.数据实时计算.实时展示 代表技术:Flume实时获取数据.Kafka/metaq实时数据存储.Storm/JStorm实时数据计算.Redis实时结果缓存.持久化存储(mysql). 一句话总结:将源源不断产生的数据实时收集并实