Hopfield神经网络

预备知识

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

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

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

原文地址:https://www.cnblogs.com/semen/p/6832801.html