Hopfiled神经网络
Hopfiled神经网络由物理学家J.J.Hopfiled于1982年提出。这是一种单层反馈式神经网络,同时“能量函数”概念的引入使神经网络的稳定运行有了判断依据,为神经网络的复兴立下了不可磨灭的功劳。
Hopfiled神经网络的权值并不像有监督和无监督学习一样反复学习获得,而是按照事先确定好的规则直接计算出来的,并且权重一旦确定就不再发生改变,在之后进行模式回忆时只发生神经元状态的改变,网络稳定时神经元的状态便是对问题的求解结果。
Hopfiled神经网络分为离散型和连续性,分别为DHNN和CHNN,本文讨论的是前一种。
Hopfield神经网络的结构
首先,Hopfiled神经网络由n个神经单元组成,各单元之间相互连接,每个单元只有0/1两种状态(有时也表示为1/-1),所以整个网络有
2
n
2^n
2n种状态。网络中两个神经单元之间的权重记为
w
i
j
w_{ij}
wij,它具有以下两个特点:
1)两相邻单元之间的权重相同,即
w
i
j
=
w
j
i
w_{ij}=w_{ji}
wij=wji;
2)每个单元到自身的权重为0,即
w
i
i
=
0
w_{ii}=0
wii=0。
一般情况下,Hopfiled神经网络状态的更新采用异步的方式,即每次只改变一个神经单元的状态。
如何训练Hopfiled神经网络
假设有一Hopfield神经网络需要记忆P个模式,模式由
X
p
=
{
x
1
p
,
x
2
p
,
.
.
.
,
x
n
p
}
(
p
=
1
,
2
,
3
,
.
.
.
,
P
)
X^p=\{x_1^p,x^p_2,...,x^p_n \} (p=1,2,3,...,P)
Xp={x1p,x2p,...,xnp}(p=1,2,3,...,P)表示。那么该网络的权值可通过式:
w
i
j
=
∑
p
=
1
P
x
i
P
x
j
P
(
i
≠
j
)
w_{ij}=\sum_{p=1}^Px_i^Px_j^P(i\ne j)
wij=p=1∑PxiPxjP(i=j)
直接确定。
如何更新Hopfield神经网络的状态
Hopfield神经网络状态更新的过程就是通过输入部分模式联想出完整模式的过程,这一过程结束的标志为能量函数稳定于一个常数,接下来通过计算公式说明这一过程。
设有一Hopfield神经网络由
n
n
n个神经单元组成,第
i
i
i个单元在
t
t
t时刻的输入记为
u
i
(
t
)
u_i(t)
ui(t),阈值为
b
i
(
t
)
b_i(t)
bi(t)由下式计算得出:
u
i
(
t
)
=
∑
j
=
1
n
w
i
j
x
j
(
t
)
−
b
i
(
t
)
u_i(t)=\sum_{j=1}^nw_{ij}x_j(t)-b_i(t)
ui(t)=j=1∑nwijxj(t)−bi(t)
输出记为
x
i
(
t
)
x_i(t)
xi(t),网络各神经单元的初始输出为该神经网络的输入,则
t
+
1
t+1
t+1时刻的输出
x
i
(
t
+
1
)
x_i(t+1)
xi(t+1)可由下式获得:
x
i
(
t
+
1
)
=
{
1
u
i
(
t
)
>
0
时
x
i
(
t
)
u
i
(
t
)
=
0
时
0
u
i
(
t
)
<
0
时
x_i(t+1)= \begin{cases} 1 &u_i(t)>0时 \\ x_i(t) &u_i(t)=0时 \\ 0 &u_i(t)<0时 \end{cases}
xi(t+1)=⎩⎪⎨⎪⎧1xi(t)0ui(t)>0时ui(t)=0时ui(t)<0时
对上式的解释,如果神经单元接受的来自所有相邻单元的输入总和
∑
j
=
1
n
w
i
j
x
j
(
t
)
\sum_{j=1}^nw_{ij}x_j(t)
∑j=1nwijxj(t)大于阈值
b
i
(
t
)
b_i(t)
bi(t),那么单元下一时刻的输出为1;如果小于阈值
b
i
(
t
)
b_i(t)
bi(t),那么单元的输出取值为0。因为网络状态的更新方式为异步,所以每一时刻只有一个神经单元的状态会发生改变,网络会一直重复以上步骤直到能量函数稳定于一个常数。
能量函数如下表示如下:
E
=
−
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
x
i
x
j
+
∑
i
=
1
n
b
i
x
i
E=-\frac12\sum_{i=1}^n\sum_{j=1}^nw_{ij}x_ix_j+\sum_{i=1}^nb_ix_i
E=−21i=1∑nj=1∑nwijxixj+i=1∑nbixi
根据上述两式的规则改变网络的状态时,能量函数
E
E
E总是非递增的,一直随着时间的增加而逐渐减小,直到达到稳定状态。
小结
Hopfield神经网络可以在需要记忆的模式较少时表现较好,即使在训练时使用含有噪音的图像,测试时也可以正确的回忆出原来的模式。但是,随着训练模式的增多,Hopfield神经网络开始出现串扰和陷入局部最优解的问题,为了防止串扰,常用的改进方法有反复学习法、伪逆技术和忘记规则等,有兴趣的读者可自行查阅文献进行了解。而玻尔兹曼机的提出避免了网络陷入局部最优解。