Hopfield Network
- Hopfield网络是一种用于联想记忆和优化问题求解的递归神经网络。它由John Hopfield于1982年提出,是最早的一批人工神经网络模型之一。Hopfield网络主要用于模式识别、优化计算等领域,它的特点是能够存储多个模式,并且能够在给定一个初始状态后,通过迭代更新状态来恢复或接近这些已存储的模式。
基本架构
- Hopfield网络可以是全连接的(每个神经元与其它所有神经元相连)或者是部分连接的图。每个神经元的状态可以是二进制的(+1/-1或0/1),也可以是连续值的。对于二进制状态的Hopfield网络,通常使用的是+1和-1表示激活状态。
核心条目
[!IMPORTANT]
能量函数:Hopfield网络的一个重要特性是其具有一个能量函数,该函数定义了网络状态的好坏。随着网络的演化,这个能量函数会逐渐减少,直到达到一个局部最小值。这个性质使得Hopfield网络能够用于寻找问题的最优解。
E n e r g y = − ∑ i j e d g e w i j x i x j Energy=-\sum_{ij}^{edge}w_{ij}x_ix_j Energy=−ij∑edgewijxixj权重矩阵:在网络中,神经元之间的连接强度是由权重矩阵 W W W定义的。对于一个N个神经元的网络,权重矩阵是一个N×N的对称矩阵(即 W i j = W j i W_{ij} = W_{ji} Wij=Wji),并且对角线上的元素为0(即 W i i = 0 W_{ii} = 0 Wii=0)。权重矩阵的设置直接影响到网络的存储能力和检索能力。
推理过程
-
在网络运行时,给定一个初始状态(需要还原的部分)后,网络会步调整各个神经元的状态。每次更新都会导致网络的能量下降,直到网络达到一个稳定状态,即能量函数不能再降低为止。此时,网络的状态被认为是最接近于之前存储的记忆之一。
-
更新当前节点属性:
当前能量: h i = w i 1 x 1 + ⋯ + w i N x N = ∑ j ≠ i w i j x j x = { + 1 , h i > 0 − 1 , h i < 0 \text{当前能量:}h_i=w_{i_1}x_1+\cdots+w_{i_N}x_N=\sum_{j\neq i}w_{i_j}x_j \\ x=\begin{cases}+1,h_i>0\\-1,h_i<0\end{cases} 当前能量:hi=wi1x1+⋯+wiNxN=j=i∑wijxjx={+1,hi>0−1,hi<0
- 不断更新未确认的节点,知道更新任意节点都会导致能量增大
训练过程
-
Hopfield网络的“训练”主要是指确定权重矩阵的过程。对于给定的一组模式(即想要存储的记忆),可以通过Hebbian学习规则或其变种来计算权重矩阵。
-
Hebbian学习规则的核心思想是:“一起激活的神经元,其连接会被加强”。具体来说,对于每一个要存储的模式 S μ = ( s 1 μ , s 2 μ , . . . , s N μ ) S^{\mu} = (s_1^{\mu}, s_2^{\mu}, ..., s_N^{\mu}) Sμ=(s1μ,s2μ,...,sNμ)有能量公式
E n e r g y = − ∑ i j e d g e w i j s i μ s j μ Energy=-\sum_{ij}^{edge}w_{ij}s_i^\mu s_j^\mu Energy=−ij∑edgewijsiμsjμ -
需要让 w i j w_{ij} wij能满足取 S μ S^\mu Sμ时能量局部最小,只需要使
w i j = s i μ s j μ w_{ij}=s_i^\mu s_j^\mu wij=siμsjμ -
有总能量
E n e r g y = − ∑ i j e d g e w i j s i μ s j μ = − N edge ( since s i μ s j μ = ± 1 ) Energy=-\sum_{ij}^{edge}w_{ij}s_i^\mu s_j^\mu=-N_{\text{edge}}~~(\text{since}~s_i^\mu s_j^\mu=\pm 1) Energy=−ij∑edgewijsiμsjμ=−Nedge (since siμsjμ=±1) -
权重矩阵可以通过以下公式计算:
W i j = 1 N ∑ μ s i μ s j μ − δ i j W_{ij} = \frac{1}{N} \sum_{\mu} s_i^{\mu} s_j^{\mu} - \delta_{ij} Wij=N1μ∑siμsjμ−δij其中, δ i j \delta_{ij} δij是克罗内克符号,当 i = j i=j i=j时为1,否则为0,这确保了权重矩阵的对角线元素为0。
-
通过这种方式,Hopfield网络能够将一组模式编码到权重矩阵中,从而实现对这些模式的记忆功能。
局限
- 在实际应用中,需要注意的是,Hopfield网络的存储容量有限,即能有效存储的模式数量有限。此外,过多的模式或过于相近可能会导致网络陷入错误的局部极小值,影响检索性能。一般 N pattens ≤ 0.14 ⋅ N nearons N_{\text{pattens}}\leq 0.14\cdot N_{\text{nearons}} Npattens≤0.14⋅Nnearons