Hopfield神经网络是一种反馈型神经网络 ,由科学家John Hopfield在1982年提出。它的核心特点是神经元之间相互连接形成循环,通过动态调整状态来存储和回忆信息。
注意:Hopfield神经网络并不是为了拟合某些输入输出,如询问某个问题,得到对应的正确答案;而是为了存储和记忆信息,以及找到某个优化问题的最优解。
Hopfield神经网络中的每一个神经元的输出都将连接到其他神经元(不连接到自身),所以每一个神经元都是平等的。而前向传播网络浅层神经元获得的特征较为简单,深层神经元较为复杂。
1. Hopfield神经网络 vs 前向传播/反向传播网络
-
前向传播网络(如BP网络):信息像水流一样单向流动,从输入层→隐藏层→输出层。参数通过反向传播算法调整,目标是让输出接近正确答案。
-
Hopfield网络 :没有明确的输入输出层,所有神经元互相连接形成闭环。权重固定(训练后不再改变),状态通过迭代更新到稳定点(类似反复思考直到找到答案)。
类比:
前向网络像学生做题时反复修改答案,而Hopfield像学生闭卷回忆知识点,答案一旦确定就不再改。
2. Hopfield能做什么?
-
联想记忆:存储一组模式(如数字、图像),即使输入有噪声也能恢复原样。
例子:输入一张破损的"3",网络能联想出完整的"3"。
-
优化问题:寻找复杂问题的最优解(如旅行商问题的最短路径)。
优势:
-
分布式存储:记忆分散在神经元之间的连接中,而非单独存储在某个位置。
-
抗干扰:部分信息缺失时仍能回忆完整内容(类似大脑的容错能力)。
3. 与传统计算机内存的区别
-
传统内存:数据按地址存储,读取时需要知道具体位置。
-
Hopfield:记忆存储在权重矩阵中,提取时只需提供部分特征(如"猫耳朵"就能联想出整只猫)。
类比:
传统内存像图书馆按编号找书,Hopfield像通过关键词搜索找到相关书籍。
4. 权重如何更新?会改变吗?
-
训练阶段 :通过Hebb规则确定权重。例如,若两个神经元常同时激活,它们的连接会加强。
公式 :
权重 = 输入模式的乘积之和(例如记忆"猫"时,耳朵和胡须的神经元连接增强)。 -
推理阶段 :权重固定不变,只调整神经元状态(类似用固定的地图找路)
Hebb规则是Hopfield网络的训练规则 (用来确定神经元之间的连接权重),核心思想是:"一起激活的神经元,连得更紧"。
类比理解:
假设你和朋友经常一起去图书馆(两个神经元同时被激活),时间久了你们会形成默契------看到对方去图书馆,你就知道他可能也是去学习(连接变强)。反之,如果你们很少一起出现(神经元不同时激活),默契就弱(连接弱甚至抑制)。
数学表达:
训练时,假设我们要存储一组模式(比如记忆"猫"的特征),每个模式是一个神经元的激活状态向量(比如[1, -1, 1, ...],1表示激活,-1表示未激活)。
对于任意两个神经元i和j,它们的连接权重w_ij等于这两个神经元在所有记忆模式中同时激活的程度的总和。公式简化为:
w_ij = (1/N) × Σ(模式k中神经元i的状态 × 模式k中神经元j的状态)
(N是神经元总数,除以N是为了归一化,避免权重过大)
关键:权重只和输入模式有关,训练完后固定不变(Hopfield的权重是"死记硬背"下来的)。
5. 能量函数的作用
能量函数类似"地形高度",网络状态会自发向能量最低点(稳定状态)收敛。
-
每个吸引子对应一个记忆(如"猫"对应一个低谷)。
-
噪声干扰会让状态暂时偏离,但最终会滑回正确低谷。
吸引子是Hopfield网络的稳定状态,可以理解为网络"最想待的地方"。
类比理解:
想象一个碗里放一个小球(网络状态),碗底就是能量最低的稳定点(吸引子)。不管你把小球从哪里推出去(输入带噪声的模式),它最终都会滚回碗底(回到对应的记忆)。这里的"碗底"就是一个吸引子,对应存储的一个记忆。
具体作用:
每个存储的记忆对应一个吸引子。当输入模糊或带噪声的模式时,网络状态会通过迭代更新,最终"滑"到某个吸引子(即恢复出最接近的原始记忆)。
6. 与梯度下降的区别
-
梯度下降:通过计算损失函数的梯度,反复调整参数(如调整山路让小球更快到谷底)。
-
Hopfield:参数(权重)预先确定,推理时仅调整状态(小球按既定地形滚动)。
类比:
梯度下降像修路让车更快到达目的地,Hopfield像沿着已修好的路行驶。
总结
-
Hopfield特点:反馈结构、固定权重、联想记忆、能量驱动。
-
适用场景:模式识别、优化问题、抗噪声记忆。
-
局限性:记忆容量有限,容易陷入局部最优(需结合其他算法改进)。