Hopfield神经网络

预备知识算法

先来讲说前馈型神经网络与反馈型神经网络的区别:网络

前馈型神经网络不考虑输入和输出在时间上的滞后性,只考虑输入到输出的映射关系,反馈型神经网络则考虑了输入到输出之间的延迟异步

再来讲说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 当达到迭代步数或网络的状态不在改变时,网络运行结束,不然继续迭代