预备知识
先来说说前馈型神经网络与反馈型神经网络的区别:
前馈型神经网络不考虑输入和输出在时间上的滞后性,只考虑输入到输出的映射关系,反馈型神经网络则考虑了输入到输出之间的延迟
再来说说hebb学习规则:
两个神经元同时兴奋或抑制,那么它们的连接权值将增大,如果两神经元不是同时兴奋或抑制,那么它们的连接权值将减小
数学表达式为:
Wnew=Wold+ηpTt
如果初始权值为零矩阵,那么
W=ηpTt
开始结束hopfield神经网络,主要讲离散hopfield神经网络:
hopfield神经网络系统的稳定性主要通过能量函数进行分析,在满足一定条件下,某个特定的能量函数在网络的运行过程中不断减小,直到达到平衡状态
hopfield神经网络的能量函数定义为:
E=-1/2X(t)TWX(t)+X(t)TT
下面来证明网络的稳定性:
ΔE=E(t+1)-E(t)-------1
ΔX=X(t+1)-X(t)-----2
将能量函数和2带入1式得:
ΔE=E(t+1)-E(t)
=-1/2X(t+1)TWX(t+1)+X(t+1)TT+1/2X(t)TWX(t)-X(t)TT
=-1/2(X(t)+ΔX)TW(X(t)+ΔX)+(X(t)+ΔX)TT+1/2X(t)TWX(t)-X(t)TT
=-ΔXT(t)[WX(t)-T]-1/2ΔXT(t)WΔX(t)
hopfield神经网络有两种运行方式,同步运行方式和异步运行方式:
异步运行方式:只有一个神经元的状态改变,其他神经元的状态不变
xi(t+1)=sgn(Uj(t)) if i=j
同步运行方式:所有的神经元的状态都改变
X(t+1)=sgn(U(t)
下面先讨论异步方式运行:
ΔX(t)=[0,0,0,0,...,Δxi(t),0,0,0]
所以
ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]-1/2Δxi(t)2wij
由于wij=0
ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]
==-Δxj(t) Uj(t)
情况 a xi(t)=0 xi(t+1)=1 Δx(t)=1 所以Uj(t)>0 ΔE<0
情况 b xi(t)=1 xi(t+1)=0 Δx(t)=-1 所以Uj(t)<0 ΔE<0
情况 c xi(t)=xi(t+1) Δx(t)=0 所以Uj(t)=0 ΔE=0
所以 ΔE<=0
在异步运行情况下,网络总能收敛到平衡的状态
同步情况下:
ΔE=-Δxi(t)[∑j=1 to nwijxj-Ti]-1/2Δxi(t)2wij
=-∑i=1 to nΔxi(t)Uj(t)-1/2Δxi(t)2wij
上式前部分已经证明小于等于0,后部分只要W满足非负定矩阵,也小于等于0
所以在同步情况下,只要矩阵满足是非负定矩阵,网络也能收敛到一个平衡状态
Hopfield是反馈型神经网络,上一时段的输出反馈给下一时段的输入,各个神经元的输出都收其他神经元的影响,下图是它的拓扑结构:
第j个神经元的加权和:
Uj(t)=∑i=1 to nWijxi(t)-θj
故该神经元下一时刻的输出状态:
xj(t+1)=sgn(Uj(t))
hopfield神经网络的权值学习采用hebb学习规则,下面开始hopfield算法的学习,步骤如下:
1 输入需要记忆的样本P(n维正交向量)将其初始化为网络的初始状态X=P,设置迭代步数,并计算网络的权值W
W=∑i=1 to n[PTP-I] 因为wij=0 所以减去单位矩阵
2 进行迭代计算
xi(t+1)=sign((Uj(t))
3 当达到迭代步数或网络的状态不在改变时,网络运行结束,否则继续迭代