如何利用赫布学习?

我想升级我的进化模拟器以使用赫布学习,就像这个一样。我基本上希望小生物能够学会寻找食物。我已经通过基本的前馈网络实现了这一点,但我在理解如何使用赫布学习时遇到了困难。赫布学习的基本原理是,如果两个神经元一起激活,它们就会连接在一起。

因此,权重更新的方式如下:

weight_change = learning_rate * input * output

我找到的关于这如何有用的信息非常稀少,我不明白其中的道理。

在我的当前模拟器版本中,当生物吃到食物时,动作和输入(移动、眼睛)之间的权重会增加,我无法理解这如何转换到这个新模型中。因为这里只有输入和输出这两个参数,无法判断它做得对不对!基本上,如果一个输入激活了某个方向的移动,无论生物是否在吃东西,权重都会持续增加!

我是否错误地应用了赫布学习?仅供参考,我使用的是Python。


回答:

赫布定律关联学习的一个绝妙见解,但它只是其中的一部分。你是对的,按照你所做的实现,如果不加以控制,权重只会持续增加。关键是要加入某种形式的归一化或限制过程。这在Oja规则的维基页面上有很好的说明。我建议你加入一个突触后分裂归一化步骤,这意味着你要将一个权重除以所有汇聚到同一突触后神经元的权重之和(即,所有汇聚到一个神经元的权重之和固定为1)。

你想要做的事情可以通过构建一个利用赫布学习的网络来实现。我不太确定你传递到系统中的输入是什么,或者你是如何设置的。但你可以看看LISSOM,这是SOM(自组织映射)的赫布扩展。

在这种类型的层中,通常所有神经元都可能相互连接。你传入输入向量,并让网络中的活动稳定下来,这需要一些稳定步骤。然后你更新权重。你在训练阶段这样做,训练结束时,输入空间中的关联项目倾向于在输出映射中形成分组活动区域。

还值得注意的是,大脑是高度互连和高度递归的(即,有前馈、反馈、横向互连、微电路,还有很多其他东西…)。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注