Hopfield神经网络, 具体权值设计方法及优缺点

Hinton 大神的 Neural Networks for Machine Learning 

先说最简单的方法,离散 Hopfield Networks 的权值更新策略:

我们首先考虑用网络存储一张二值图片,假设用向量 [公式] 代表我们要存放的图片,我们需要使用一个含有 [公式] 个节点的网络来存储这张图片,那么节点与节点之间的权重可以用矩阵 [公式] 来表示。

如果让网络节点的值取 [公式][公式] 的话,那么 [公式] 的取值为 [公式]

解释为什么这样取值的原因之前我们需要先知道 Hopfield Network 的能量函数是 [公式] 。能量函数可以任意来定义,我们一般定义成这种形式的原因是它可以更好的被解释,同时也可以能够清楚的得知在节点状态变化时,整个系统能量变化的方向。

当我们取 [公式][公式] 时, [公式] ,很明显,这时候E是最小的。

当我们需要储存另外一张图片的时候,我们只需要得到另外一个权值矩阵 [公式] ,然后把这两个矩阵相加就可以了,也就是 [公式] 。一个不太恰当的理解是在整个 Hopfield Network的状态空间里,我们可以用这种权值相加的方式人为的构造两个 [公式] 上的局部极小值,如下图所示:

 

图中左边是第一个状态空间的局部极小值,右边是第二个状态空间上的局部极小值。当我们向网络输入一个靠近第二个局部极小值所在位置的向量的之后,在经过数次迭代,最终可以收敛于第二个局部极小值。这就是 Hopfield Network 可以通过一个不完整的信息得到完整信息的原理。当然实际上这个状态空间不可是二维的,而是一个 hyper cube。

以上就是最基本的权值计算方法,但是这种存储方式是及其浪费空间的。这个网络能够正确记忆的样本矢量数于神经元数目的比的极限大概是 [公式] 。其中一个原因是因为当两个样本距离很近的时候,网络产生混淆,如下图所示:

 

当蓝色的样本与绿色的样本叠加之后,无论输入的是类似于蓝色还是类似于绿色的任何一个输入,这个网络中的节点最终都会收敛于红色曲线的极小值点,这就是对两个样本发生了混淆,这里的红色极小值点被称为 spurious minima。

为了能够尽可能的提高 Hopfield Network 的存储能力,Hopfield, Feinstein 和 Palmer 在1985年提出了 unlearning 机制,也就是我们随机的生成一些状态 [公式] ,然后使用 [公式][公式] 。这个方法被实验证明是有效的,但是缺乏理论分析。

后来也有一些其它的方法来提高网络的存储能力,例如当新的样本到来时不时一次更新 [公式] 之后就结束,而是拿所有的样本来循环训练这个网络,大概就是增强记忆的感觉吧,证明也是有效的。

 

参考资料:

1. Hopfield, John J., David I. Feinstein, and Richard G. Palmer. "" Unlearning" has a stabilizing effect in collective memories." Nature (1983).


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值