结构和工作方式
根据神经网络运行过程中的信息流向,可分为前馈式和反馈式两种基本类型。前馈网络(如BP神经网络)的输出仅由当前输入和权矩阵决定,而与网络先前的输出状态无关。
Hopfield是一种典型的反馈型神经网络。Hopfield网络分为离散型和连续型两种网络模型,分别记作DHNN(discrete hopfield neural network)和CHNN(continues hopfield neural network),本文重点讨论DHNN。
特点:
1.和MPL(Multilayer perceptron;多层感知机)不同,多层感知机的每一层承担不同的功能,比如输入层只负责输入,输出层只负责输出,DHNN网络每一层都承担相同的功能。
2.网络中所有神经元的输入为:除自己之外的所有神经元的输出(符号X,n-1个),对输入加权求和,再减去阈值(符号T)。注:也有包含自反馈的DHNN,引入自反馈可以增加网络的信息储存容量。
基本概念:
1.网络的状态:DHNN网中的每个神经元有相同的功能,其输出称为状态,用Xj表示,所有神经元状态的集合就构成反馈网络的状态,如式(1)所示。
X
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
(
1
)
X=[x_1,x_2,...,x_n]^T\qquad(1)
X=[x1,x2,...,xn]T(1)
注:
1)为什么不叫‘输出’?因为如果理解成输出,此输出是在不断变化的,所以称之为‘状态’更合适。
2)为什么用X表示,一般输出都是用Y?因为输出会反馈回来变输入,所以X与Y等价。
2.反馈网络的输入就是网络的初始状态值,如式(2)所示。
X
(
0
)
=
[
x
1
(
0
)
,
x
2
(
0
)
,
.
.
.
,
x
n
(
0
)
]
T
(
2
)
X(0)=[x_1(0),x_2(0),...,x_n(0)]^T\qquad(2)
X(0)=[x1(0),x2(0),...,xn(0)]T(2)
3.反馈网络在外界输入激发下,从初始状态进入动态演变过程,变化规律如式(3)所示。
X
j
=
f
(
n
e
t
j
)
j
=
1
,
2
,
.
.
.
,
n
X_j=f(net_j) \qquad j=1,2,...,n
Xj=f(netj)j=1,2,...,n
X
j
=
s
g
n
(
n
e
t
j
)
=
{
1
n
e
t
j
≥
0
−
1
n
e
t
j
<
0
j
=
1
,
2
,
.
.
.
,
n
(
3
)
X_j=sgn(net_j)= \begin{cases} \quad1 \qquad net_j\geq 0\\ -1 \qquad net_j<0\\ \end{cases} j=1,2,...,n\qquad (3)
Xj=sgn(netj)={1netj≥0−1netj<0j=1,2,...,n(3)
注:可以规定在0处状态保持为上一时刻的状态。
式中净输入为:
n
e
t
j
=
∑
i
=
1
n
(
w
i
j
x
i
)
−
T
j
j
=
1
,
2
,
.
.
.
,
n
(
4
)
net_j=\sum_{i=1}^{n} {(w_{ij}x_i)-T_j} \quad j=1,2,...,n\qquad (4)
netj=i=1∑n(wijxi)−Tjj=1,2,...,n(4)
对于DHNN网络,一般有
w
i
i
=
0
,
w
i
j
=
w
j
i
w_{ii}=0,w_{ij}=w_{ji}
wii=0,wij=wji,即权值矩阵W是主对角线是0的对称矩阵,也意味着没有自反馈,网络中n个神经元中,任意两个神经元的影响是对等的。
4.反馈网络稳定时,每个神经元的状态都不再改变,注意 反馈还存在,只是状态不再改变。此时稳定状态就是网络的输出,如式(5)所示:
lim
t
→
∞
X
(
t
)
(
5
)
\lim_{t\to \infty} X(t)\qquad(5)
t→∞limX(t)(5)
5.网络的工作方式
1)网络的异步工作方式(串行):
网络运行时每次只有一个神经元j进行状态的调整,其他神经元的状态均保持不变,如式(6)所示:
x
j
(
t
+
1
)
=
{
s
g
n
[
n
e
t
j
(
t
)
]
j
=
i
x
j
(
t
)
j
≠
i
(
6
)
x_j(t+1)= \begin{cases} sgn[net_j(t)]\quad j=i \\ x_j(t)\qquad j\neq i \\ \end{cases}\quad (6)
xj(t+1)={sgn[netj(t)]j=ixj(t)j=i(6)
注:需要n次才能全部更新一次,并且需要注意各个神经元更新顺序。
2)网络的同步工作方式(并行):
网络的同步工作方式是一种并行方式,所有神经元同时调整状态,如式(7)所示:
x
j
(
t
+
1
)
=
s
g
n
[
n
e
t
j
(
t
)
]
j
=
1
,
2
,
.
.
.
,
n
(
7
)
x_j(t+1)=sgn[net_j(t)] j=1,2,...,n \quad(7)
xj(t+1)=sgn[netj(t)]j=1,2,...,n(7)