预备知识算法
先来讲说前馈型神经网络与反馈型神经网络的区别:网络
前馈型神经网络不考虑输入和输出在时间上的滞后性,只考虑输入到输出的映射关系,反馈型神经网络则考虑了输入到输出之间的延迟异步
再来讲说hebb学习规则:函数
两个神经元同时兴奋或抑制,那么它们的链接权值将增大,若是两神经元不是同时兴奋或抑制,那么它们的链接权值将减少学习
数学表达式为:spa
Wnew=Wold+ηpTtblog
若是初始权值为零矩阵,那么同步
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 当达到迭代步数或网络的状态不在改变时,网络运行结束,不然继续迭代