1
模式识别与智能计算的MATLAB实现
1.5.6.2 3.6.2 Hopfield网络的学习算法
3.6.2 Hopfield网络的学习算法

Hopfield网络的训练和分类利用的是Hopfield网络的联想记忆功能。当它进行联想记忆时,首先通过一个学习训练过程确定网络中的权重,使所记忆的信息在网络的n维超立方体的某一个顶角的能量最小。当网络的权值被确定之后,只要向网络给出输入向量,即使这个向量是不完全或部分不正确的数据,但网络仍然产生所记忆的信息的完整输出。

Hopfield网络的学习算法如下:

①确定参数。将输入向量X=[xi1,xi2,…,xinT存入Hopfield网络中,则在网络中第i,j两个结点间的权重系数按下列公式计算:

alt

确定输出向量Y=[y1,y2,…,ynT

②对待测样本进行分类。对于待测样本,通过对Hopfield网络构成的联想存储器进行联想检索过程实现分类。

(a)将x中各个分量的x1,x2,…,xn分别作为第一层网络n结点的输入,则结点有相应的初始状态Y(t=0),即yi(0)=xj,j=1,2,…,n。

(b)对于二值神经元,计算当前Hopfield网络输出:

alt

其中,xj为外部输入;f是非线性函数,可以选择阶跃函数;θj为阈值函数。

alt

(c)对于一个网络来说,稳定性是一个重要的性能指标。对于离散的Hopfield网络,其状态为Y(t),如果对于任何∆t>0,当网络从t=0开始时,有初始状态Y(0),经过有限时间t,有Y(t+∆t)=Y(t),则称网络是稳定的,此时的状态称为稳定状态。通过网络状态的不断变化,最后状态会稳定下来,最终的状态是与待测样本向量X最接近的训练样本。所以,Hopfield网络的最终输出,也就是待测样本向量联想检索结果。

(d)利用最终输出与训练样本进行匹配,找出最相近的训练样本向量,其类别即是待测样本类别。所以,即使待测样本并不完全或部分不正确,也能找到正确的结果。