离散型Hopfield神经网络(DHNN)、直接训练法,Hebb规则及稳定性分析

Invented by John Hopfield at Princeton University in 1980’s.
John Hopfield, “Neural networks and physical systems with emergent collective computational abilities,” PNAS, USA, vol. 79, 1982.
“As far as public visibility goes, the modern era in neural networks dates from the publication of this paper.” – J. A. Anderson and E. Rosenfeld (1988).

Used as associative memories or optimization models.

Single-layer recurrent neural networks.

The discrete-time model uses bipolar threshold logic units and the continuous-time model uses unipolar sigmoid activation function.

The Hopfield networks are the classical recurrent neural networks.

1 Hopfield神经网络原理

Hopfield网络相当于一个具有多个吸引子的系统。(对于吸引子的大致定义:落入吸引子附近的状态都会被吸引到该吸引子所在的状态。)我们把每个吸引子所在的状态作为一个记忆原型,被毁坏的输入假定在记忆原型的附近,通过Hopfield网络,最终能够通过毁坏的输入回忆起它所对应的完整原型。

2 Hopfield网络结构

一个具有三个神经元的Hopfield网络结构如下图所示。网络中的每个神经元 i i i 与所有其他神经元 j ≠ i j \ne i j=i之间都存在连接,权值为 ω i j \omega_{ij} ωij,神经元到它自身的权值为0。一个具有 N N N 个神经元的Hopfield网络的权值个数为 N 2 N^2 N2。因此,Hopfield网络的计算成本相对其他同等大小的人工神经元来说要高很多。
在这里插入图片描述

上图所示的Hopfield网络的权值可规范成矩阵 ω \omega ω
ω = [ 0 1 − 2 1 0 1 − 2 1 0 ] \omega=\begin{bmatrix} 0&1&-2\\ 1&0&1\\ -2&1&0 \end{bmatrix} ω=012101210

可知为一个对称矩阵,并且对角元素都等于0。虽是一个例子,Hopfield网络的权值矩阵的确为一个对角元素等于0的对称矩阵。

假定当前网络神经元的状态为 [ 1 1 1 ] \begin{bmatrix}1&1&1\end{bmatrix} [111],我们计算神经元1的输出:
y 1 = [ 1 1 1 ] [ 0 1 − 2 ] = − 1 y_1=\begin{bmatrix}1&1&1\end{bmatrix}\begin{bmatrix}0\\1\\-2\end{bmatrix}=-1 y1=[111]012=1

第一个神经元的下一时刻的状态由当前的输出确定:
n = { 0 y < 0 1 y ≥ 0 n=\left\{\begin{aligned}0\quad y<0\\1\quad y\ge0\end{aligned}\right. n={0y<01y0

因此,下一时刻第一个神经元的状态变为0,Hopfield网络的状态变为 [ 0 1 1 ] \begin{bmatrix}0&1&1\end{bmatrix} [011]

注意:对于递归神经网络,一般将外部输入向量作为初始的网络状态。

总结下来,Discrete-Time Hopfield Network是这样的:
u ( t + 1 ) = W v ( t ) + x u i ( t + 1 ) = ∑ j ω i j v j ( t ) + x i ,    ∀ i v i ( t ) = s g n ( u i ( t ) ) ∈ { − 1 , 1 } \begin{aligned} &u(t+1)=Wv(t)+x\\ &u_i(t+1)=\sum_j\omega_{ij}v_j(t)+x_{i},\;\forall i\\ &v_i(t)=sgn(u_i(t))\in \{-1,1\} \end{aligned} u(t+1)=Wv(t)+xui(t+1)=jωijvj(t)+xi,ivi(t)=sgn(ui(t)){1,1}

3 怎样“训练”一个Hopfield网络

《神经网络设计》系统的介绍了Hopfield网络,并明确指出:Hopfield网络没有与之相关的学习规则,它不被训练,也不会自己学习。网络的权值是基于Lyapunov函数的设计过程确定的。本文给出两种得到Hopfield网络权值的方式,它们背后的原理不在本文范围内。

3.1 直接计算

假定我们需要在Hopfield网络中记忆存储一列模式的状态集 V s , s = 1 , . . . , n V^s,s=1,...,n Vs,s=1,...,n,每个状态的维数相同都为 m m m。我们可以按如下公式计算网络的权值:
ω i j = ∑ s = 1 n ( 2 V i s − 1 ) ( 2 V j s − 1 ) , i ≠ j \omega_{ij}=\sum\limits_{s=1}^n(2V_i^s-1)(2V_j^s-1),\quad i\ne j ωij=s=1n(2Vis1)(2Vjs1),i=j

i = j i=j i=j 时, ω i j = 0 \omega_{ij}=0 ωij=0

注意: 通过分析以上计算公式可以知道,我们可以先对每个要记忆的模式单独计算权值矩阵,然后将所有矩阵相加,便得到最终的Hopfield网络权值矩阵。这种计算的好处,使得网络能够增量式记忆增量式到来的模式。

如果我们只有一个模式需要记忆,则计算公式变为:
ω i j = ( 2 V i − 1 ) ( 2 V j − 1 ) , i ≠ j \omega_{ij}=(2V_i-1)(2V_j-1),\quad i\ne j ωij=(2Vi1)(2Vj1),i=j

假定我们对一个具有5个神经元的Hopfield网络计算权值。它所需要记忆的模式为 V 1 = [ 0 , 1 , 1 , 0 , 1 ] V^1 =[0,1,1,0,1] V1=[0,1,1,0,1]。因为具有5个神经元,我们需要一个 5 × 5 5 \times 5 5×5 的矩阵来存储网络的权值。该权值矩阵应该长成下面这样:
W 1 = [ 0 ω 12 ω 13 ω 14 ω 15 ω 21 0 ω 23 ω 24 ω 25 ω 31 ω 32 0 ω 34 ω 35 ω 41 ω 42 ω 43 0 ω 45 ω 51 ω 52 ω 53 ω 54 0 ] W^1=\begin{bmatrix}0&\omega_{12}&\omega_{13}&\omega_{14}&\omega_{15}\\\omega_{21}&0&\omega_{23}&\omega_{24}&\omega_{25}\\\omega_{31}&\omega_{32}&0&\omega_{34}&\omega_{35}\\\omega_{41}&\omega_{42}&\omega_{43}&0&\omega_{45}\\\omega_{51}&\omega_{52}&\omega_{53}&\omega_{54}&0\end{bmatrix} W1=0ω21ω31ω41ω51ω120ω32ω42ω52ω13ω230ω43ω53ω14ω24ω340ω54ω15ω25ω35ω450

矩阵为对角元素等于0的对角阵,因此我们只需要计算斜对角一半的权值即可。
ω 12 = ( 2 V 1 − 1 ) ( 2 V 2 − 1 ) = ( 0 − 1 ) ( 2 − 1 ) = ( − 1 ) ( 1 ) = − 1 ω 13 = ( 2 V 1 − 1 ) ( 2 V 3 − 1 ) = ( 0 − 1 ) ( 2 − 1 ) = ( − 1 ) ( 1 ) = − 1 ω 14 = ( 2 V 1 − 1 ) ( 2 V 4 − 1 ) = ( 0 − 1 ) ( 0 − 1 ) = ( − 1 ) ( − 1 ) = 1 ω 15 = ( 2 V 1 − 1 ) ( 2 V 5 − 1 ) = ( 0 − 1 ) ( 2 − 1 ) = ( − 1 ) ( 1 ) = − 1 ω 23 = ( 2 V 2 − 1 ) ( 2 V 3 − 1 ) = ( 2 − 1 ) ( 2 − 1 ) = ( 1 ) ( 1 ) = 1 ω 24 = ( 2 V 2 − 1 ) ( 2 V 4 − 1 ) = ( 2 − 1 ) ( 0 − 1 ) = ( 1 ) ( − 1 ) = − 1 ω 25 = ( 2 V 2 − 1 ) ( 2 V 5 − 1 ) = ( 2 − 1 ) ( 2 − 1 ) = ( 1 ) ( 1 ) = 1 ω 34 = ( 2 V 3 − 1 ) ( 2 V 4 − 1 ) = ( 2 − 1 ) ( 0 − 1 ) = ( 1 ) ( − 1 ) = − 1 ω 35 = ( 2 V 3 − 1 ) ( 2 V 5 − 1 ) = ( 2 − 1 ) ( 2 − 1 ) = ( 1 ) ( 1 ) = 1 ω 45 = ( 2 V 4 − 1 ) ( 2 V 5 − 1 ) = ( 0 − 1 ) ( 2 − 1 ) = ( − 1 ) ( 1 ) = − 1 \begin{aligned} &\omega_{12}=(2V_1-1)(2V_2-1)=(0-1)(2-1)=(-1)(1)=-1\\ &\omega_{13}=(2V_1-1)(2V_3-1)=(0-1)(2-1)=(-1)(1)=-1\\ &\omega_{14}=(2V_1-1)(2V_4-1)=(0-1)(0-1)=(-1)(-1)=1\\ &\omega_{15}=(2V_1-1)(2V_5-1)=(0-1)(2-1)=(-1)(1)=-1\\ &\omega_{23}=(2V_2-1)(2V_3-1)=(2-1)(2-1)=(1)(1)=1\\ &\omega_{24}=(2V_2-1)(2V_4-1)=(2-1)(0-1)=(1)(-1)=-1\\ &\omega_{25}=(2V_2-1)(2V_5-1)=(2-1)(2-1)=(1)(1)=1\\ &\omega_{34}=(2V_3-1)(2V_4-1)=(2-1)(0-1)=(1)(-1)=-1\\ &\omega_{35}=(2V_3-1)(2V_5-1)=(2-1)(2-1)=(1)(1)=1\\ &\omega_{45}=(2V_4-1)(2V_5-1)=(0-1)(2-1)=(-1)(1)=-1\\ \end{aligned} ω12=(2V11)(2V21)=(01)(21)=(1)(1)=1ω13=(2V11)(2V31)=(01)(21)=(1)(1)=1ω14=(2V11)(2V41)=(01)(01)=(1)(1)=1ω15=(2V11)(2V51)=(01)(21)=(1)(1)=1ω23=(2V21)(2V31)=(21)(21)=(1)(1)=1ω24=(2V21)(2V41)=(21)(01)=(1)(1)=1ω25=(2V21)(2V51)=(21)(21)=(1)(1)=1ω34=(2V31)(2V41)=(21)(01)=(1)(1)=1ω35=(2V31)(2V51)=(21)(21)=(1)(1)=1ω45=(2V41)(2V51)=(01)(21)=(1)(1)=1

可得权值矩阵为:
W 1 = [ 0 − 1 − 1 1 − 1 − 1 0 1 − 1 1 − 1 1 0 − 1 1 1 − 1 − 1 0 − 1 − 1 1 1 − 1 0 ] W^1=\begin{bmatrix}0&-1&-1&1&-1\\-1&0&1&-1&1\\-1&1&0&-1&1\\1&-1&-1&0&-1\\-1&1&1&-1&0\end{bmatrix} W1=0111110111110111110111110

此时,如果网络新增一个需要记忆的模式 V 2 = [ 1 , 0 , 1 , 0 , 1 ] V^2=[1, 0, 1, 0, 1] V2=[1,0,1,0,1],按照以上公式与步骤,可得关于该模式的权值:
W 2 = [ 0 − 1 1 − 1 1 − 1 0 − 1 1 − 1 1 − 1 0 − 1 1 − 1 1 − 1 0 − 1 1 − 1 1 − 1 0 ] W^2=\begin{bmatrix}0&-1&1&-1&1\\-1&0&-1&1&-1\\1&-1&0&-1&1\\-1&1&-1&0&-1\\1&-1&1&-1&0\end{bmatrix} W2=0111110111110111110111110

我们只需要将新计算的权值矩阵与旧权值矩阵按各元素相加,便得到记忆两种模式的Hopfield网络参数。

W = [ 0 − 2 0 0 0 − 2 0 0 0 0 0 0 0 − 2 2 0 0 − 2 0 − 2 0 0 2 − 2 0 ] W=\begin{bmatrix}0&-2&0&0&0\\-2&0&0&0&0\\0&0&0&-2&2\\0&0&-2&0&-2\\0&0&2&-2&0\end{bmatrix} W=0200020000000220020200220

3.2 Hebb规则

Hebb学习规则是Donald Hebb在1949年提出的一种学习规则,用来描述神经元的行为是如何影响神经元之间的连接的,通俗的说,就是如果相链接的两个神经元同时被激活,显然我们可以认为这两个神经元之间的关系应该比较近,因此将这两个神经元之间连接的权值增加,而一个被激活一个被抑制,显然两者间的权值应该减小。

此外,Hebb还有一句非常注明的话,我在很多资料中都见到这句话的引用:“neurons that fire together, wire together”,这句话就是对权值如何更新的一个解释,同被激活者连接的权重理应增加。

公式表示为:
ω i j ( t + 1 ) = ω i j ( t ) + α x i x j \omega_{ij}(t+1)=\omega_{ij}(t)+\alpha x_ix_j ωij(t+1)=ωij(t)+αxixj

即表明神经元 x i x_i xi x j x_j xj 的连接权重由两者输出决定。

定义输入xi为第i个神经元节点的值,Wij为第i个和第j和节点之间的权值,则每个样本作为节点初始化的权值Wij定义为:
W i j = x i x j W_{ij}=x_ix_j Wij=xixj

则N个样本的权值经过N次更新为:
W i j ( N ) = ∑ n = 1 N x i ( n ) x j ( n ) W_{ij}(N)=\sum\limits_{n=1}^Nx_i(n)x_j(n) Wij(N)=n=1Nxi(n)xj(n)

因此训练阶段很简单,仅仅是将所有样本的信息以权值求和的形式存储起来,因此,最终的权值存储的是每个样本的记忆,而测试阶段是需要利用这些权值恢复记忆。
那么这里的权值更新就是利用了Hebb学习规则。

4 稳定性分析

当跑完实例后(可以先看下面代码例子),第一个问题就是:为什么Hopfield网络能够收敛,而且这么稳定?而这一切的解释其实是用一个稳定性指标来决定的。

在Hopfield网络中,通过引入李亚普洛夫函数作为能量函数,而能量函数就是稳定性指标,当能量达到最低点不变时,系统达到稳定,也就是说,我们需要证明该能量函数是递减的。

Hopfield网络中的能量函数定义为:
E = ( − 1 2 ) ∑ i = 1 n ω i j x i x j + θ j x j E=(-\frac{1}{2})\sum_{i=1}^n\omega_{ij}x_ix_j+\theta_jx_j E=(21)i=1nωijxixj+θjxj

其中, ω i j \omega_{ij} ωij 为第 i 个节点和第 j 个节点的链接权重, x i x_i xi为第 i 个节点的节点值, θ j \theta_j θj 为第 j 个节点的阈值(激活函数sgn可以的输入可以通过加减阈值调整激活的位置,即 y = s g n ( x − θ ) y=sgn(x−\theta) y=sgn(xθ)来调整)

现在要定义能量 E 的变化量,我们假定t时刻到 t+1 时刻只有第 j 个神经元发生了变化,则神经元 j 的能量变化量为:

Δ E j = E j ( t + 1 ) − E j ( t ) = − 1 2 [ x j ( t + 1 ) − x j ( t ) ] ∑ i = 1 n w i j x i + [ x j ( t + 1 ) − x j ( t ) ] θ j = − 1 2 Δ x j ∑ i = 1 n w i j x i + Δ x j θ j = − Δ x j ( ∑ i w i j x i − θ j ) + 1 2 Δ x j ∑ i = 1 n w i j x i \begin{aligned} \Delta E_{j} &=E_{j}(t+1)-E_{j}(t) \\ &=-\frac{1}{2}\left[x_{j}(t+1)-x_{j}(t)\right] \sum_{i=1}^{n} w_{i j} x_{i}+\left[x_{j}(t+1)-x_{j}(t)\right] \theta_{j} \\ &=-\frac{1}{2} \Delta x_{j} \sum_{i=1}^{n} w_{i j} x_{i}+\Delta x_{j} \theta_{j} \\ &=-\Delta x_{j}\left(\sum_{i} w_{i j} x_{i}-\theta_{j}\right)+\frac{1}{2} \Delta x_{j} \sum_{i=1}^{n} w_{i j} x_{i} \end{aligned} ΔEj=Ej(t+1)Ej(t)=21[xj(t+1)xj(t)]i=1nwijxi+[xj(t+1)xj(t)]θj=21Δxji=1nwijxi+Δxjθj=Δxj(iwijxiθj)+21Δxji=1nwijxi

由于在 t+1 时刻只有神经元 j 调整状态,并且各个神经元不存在自反馈。因此上式可以简化为:
Δ E j = − Δ x j ( ∑ i = 1 n ω i j x i − θ j ) \Delta E_j=-\Delta x_j(\sum\limits_{i=1}^n\omega_{ij}x_i-\theta_j) ΔEj=Δxj(i=1nωijxiθj)

为了分析 Δ E j \Delta E_j ΔEj 的大小,在 t+1 时刻,考虑下列3中情况:

1)若神经元 j 的状态未发生变化,即 x j ( t + 1 ) = x j ( t ) x_j(t+1)=x_j(t) xj(t+1)=xj(t),则 Δ x j = 0 \Delta x_j=0 Δxj=0,所以 Δ E j = 0 \Delta E_j=0 ΔEj=0

2)若神经元 j 的状态发生变化,并且是从 t 时刻的状态 -1 改变为 t+1 时刻的状态 1,则 Δ x j = 2 \Delta x_j=2 Δxj=2,同时由于 ∑ i = 1 n ω i j x i − θ j > 0 \sum\limits_{i=1}^n\omega_{ij}x_i-\theta_j>0 i=1nωijxiθj>0,所以 Δ E j < 0 \Delta E_j<0 ΔEj<0

3)若神经元 j 的状态发生变化,并且是从 t 时刻的状态 1 改变为 t+1 时刻的状态 -1,则 Δ x j = − 2 \Delta x_j=-2 Δxj=2,同时由于 ∑ i = 1 n ω i j x i − θ j ≤ 0 \sum\limits_{i=1}^n\omega_{ij}x_i-\theta_j\le0 i=1nωijxiθj0,所以 Δ E j ≤ 0 \Delta E_j\le0 ΔEj0

综上,能量变化一直为负,故会朝着能量减小的方向迭代。

所以说明了Hopfield能够稳定。

另一个版本的稳定性分析:
在这里插入图片描述

上式中有 − 1 2 ∑ i = 1 n ∑ j ≠ i ω i j v i ( t ) v j ( t ) = − 1 2 ∑ i = 1 n ( ω i k + ω k i ) v i ( t ) v k ( t ) -\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j\ne i}\omega_{ij}v_i(t)v_j(t)=-\frac{1}{2}\sum\limits_{i=1}^n(\omega_{ik}+\omega_{ki})v_i(t)v_k(t) 21i=1nj=iωijvi(t)vj(t)=21i=1n(ωik+ωki)vi(t)vk(t)
Proof: − 1 2 ∑ i = 1 n ∑ j ≠ i ω i j v i ( t ) v j ( t ) = − 1 2 ∑ i = 1 n ω i k v i ( t ) v k ( t ) − 1 2 ∑ j = 1 n ω k j v k ( t ) v j ( t ) = − 1 2 ∑ i = 1 n ω i k v i ( t ) v k ( t ) − 1 2 ∑ i = 1 n ω k i v k ( t ) v i ( t ) = − 1 2 ∑ i = 1 n ( ω i k + ω k i ) v i ( t ) v k ( t ) \begin{aligned}&-\frac{1}{2}\sum\limits_{i=1}^n\sum\limits_{j\ne i}\omega_{ij}v_i(t)v_j(t)\\&=-\frac{1}{2}\sum\limits_{i=1}^n\omega_{ik}v_i(t)v_k(t)-\frac{1}{2}\sum\limits_{j=1}^n\omega_{kj}v_k(t)v_j(t)\\&=-\frac{1}{2}\sum\limits_{i=1}^n\omega_{ik}v_i(t)v_k(t)-\frac{1}{2}\sum\limits_{i=1}^n\omega_{ki}v_k(t)v_i(t)\\&=-\frac{1}{2}\sum\limits_{i=1}^n(\omega_{ik}+\omega_{ki})v_i(t)v_k(t)\end{aligned} 21i=1nj=iωijvi(t)vj(t)=21i=1nωikvi(t)vk(t)21j=1nωkjvk(t)vj(t)=21i=1nωikvi(t)vk(t)21i=1nωkivk(t)vi(t)=21i=1n(ωik+ωki)vi(t)vk(t)
问题:为什么在 i , j ≠ k i,j\ne k i,j=k 时,上式为0?
答:不等于k时,能量不会变化

在这里插入图片描述
Stability Properties

If W is symmetric with zero diagonal elements and the activation is conducted asynchronously (i.e., one neuron at one time), then the discrete-time Hopfield network is stable (a sufficient condition).

If W is symmetric with zero diagonal elements and the activation is conducted synchronously, then the discrete-time Hopfield network is either stable or oscillates in a limit cycle of two states.

参考文献1

参考文献2

参考文献3

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老实人小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值