霍普菲尔德网络

17 Mar 2025 | 5 分钟阅读

Hopfield 网络是一种特殊的神经网络,其响应与其他神经网络不同。 它是通过收敛迭代过程计算的。 它只有一层神经元,与输入和输出的大小相关,输入和输出的大小必须相同。 当这样的网络识别数字时,例如,我们向网络呈现一系列正确呈现的数字。 随后,该网络可以将噪声输入转换为相关的完美输出。

1982 年,John Hopfield 引入了一种人工神经网络来收集和检索像人脑一样的记忆。 这里,神经元处于开或关的状态。 神经元的状态(开 +1 或关 0)将根据其从其他神经元接收到的输入而恢复。 Hopfield 网络首先被准备用来存储各种模式或记忆。 之后,它准备好通过揭示关于该模式的部分甚至一些损坏的数据来识别任何已学习的模式,即,它最终稳定下来并恢复最接近的模式。 因此,类似于人脑,Hopfield 模型在模式识别方面具有稳定性。

Hopfield 网络是一个单层且循环的网络,其中神经元是完全连接的,即,每个神经元与其他神经元相关联。 如果存在两个神经元 i 和 j,则它们之间存在连接权重 wij,该权重是对称的 wij = wji

对于零自连接,Wii =0 如下所示。 这里,给定的三个神经元具有值 i = 1, 2, 3 和值 Xi=±1,具有连接权重 Wij

Hopfield Network

更新规则

考虑 N 个神经元 = 1, … , N 具有值 Xi = +1, -1

更新规则应用于节点 i,如下所示

如果 hi ≥ 0xi 1,否则 xi → -1

其中 hi = Hopfield Network被称为 i 处的场,b£ R 是一个偏置。

因此,xi sgn(hi),其中 sgn(r)=1,如果 r ≥ 0,而 sgn(r)=-1,如果 r < 0

我们需要设置 bi=0,这样在用随机模式训练网络时就不会有任何差异。

因此,我们考虑 hi=Hopfield Network

我们有两种不同的方法来更新节点

同步

在这种方法中,所有节点的更新同时发生在每个时间点。

异步

在这种方法中,在每个时间点,更新一个随机或根据某些规则选择的节点。 异步更新在生物学上更现实。

Hopfield 网络作为动力系统

考虑,K = {-1, 1} N,这样每个状态 x £ Xxi £ { -1,1 } for 1 ≤ I ≤ N 给出

在这里,我们得到 2N 个可能的状态或网络的配置。

我们可以通过使用任何两个状态之间的汉明距离来描述 X 上的度量

P(x, y) = # {i: xi≠yi}

N 在这里,P 是一个度量,0≤H(x,y)≤ N。 它显然是对称且自反的。

使用任何异步或同步更新规则,我们都会得到一个离散时间动力系统。

更新规则 up: X → X 描述了一个映射。

并且 Up: X → X 显然是连续的。

示例

假设我们只有两个神经元:N = 2

连接性有两种非平凡的选择

w12 = w21 = 1

w12= w21 = -1

异步更新

第一种情况下, 有两个吸引固定点,称为 [-1,-1] 和 [-1,-1]。 所有轨道都收敛于其中之一。 对于第二种情况,固定点是 [-1,1] 和 [1,-1],并且所有轨道都通过其中之一连接。 对于任何固定点,交换所有符号都会给出另一个固定点。

同步更新

在第一种和第二种情况下,尽管存在固定点,但没有一个可以被吸引到附近的点,即,它们不是吸引固定点。 有些轨道永远振荡。

能量函数评估

Hopfield 网络具有一个能量函数,该函数会随着异步更新而减小或保持不变。

对于给定的网络状态 X ∈ {−1, 1} N,对于任何一组关联权重 Wij,其中 Wij = wjiwii =0,令

Hopfield Network

在这里,我们需要将 Xm 更新为 X'm 并用 E' 表示新能量并证明。

E'-E = (Xm-X'm ) ∑i≠mWmiXi.

使用上述等式,如果 Xm = Xm',那么我们有 E' = E

如果 Xm = -1 且 Xm' = 1,则 Xm - Xm' = 2 且 hm= ∑iWmiXi ? 0

因此,E' - E ≤ 0

类似地,如果 Xm =1 且 Xm'= -1,则 Xm - Xm' = 2 且 hm= ∑iWmiXi < 0

因此,E - E' < 0。

注意
如果 Xm 翻转,则 E' - E = 2Xmhm

神经元相互拉动或推开

假设两个神经元 Ij 之间的连接权重 Wij = Wji

如果 Wij > 0,则更新规则意味着

  • 如果 Xj = 1,则 j 在加权和中的贡献,即 WijXj 为正。 因此,Xi 的值被 j 拉向其值 Xj= 1
  • 如果 Xj= -1WijXj 为负,并且 Xi 再次被 j 拉向其值 Xj = -1

因此,如果 Wij > 0,则 i 的值被 j 的值拉动。 通过对称性,j 的值也被 i 的值拉动。

如果 Wij < 0,则 i 的值被 j 的值推开。

因此,对于一组特定的值 Xi ∈ { -1 , 1 };

1 ≤ i ≤ N,选择的权重取为 Wij = XiXj; 对于

1 ≤ i ≤ N 与 Hebbian 规则相关。

训练网络:一种模式 (Ki=0)

假设向量 x = (x1,…,xi,…,xN) ∈ {-1,1}N 是我们希望存储在 Hopfield 网络中的模式。

要构建一个识别 x 的 Hopfield 网络,我们需要相应地选择连接权重 Wij

如果我们选择 Wij =ɳ XiXj for 1 ≤ i , j ≤ N(这里,i≠j),其中 ɳ > 0 是学习率,那么 Xi 的值在更新条件下不会改变,正如我们如下说明。

我们有

Hopfield Network

这意味着 Xi 的值,无论是 1 还是 -1,都不会改变,因此 x 是一个固定点。

请注意,当我们用 x 训练网络时,- x 也会变成一个固定点,验证了 Hopfield 网络是 符号盲 的。