Hopfield网络及其收敛性

在上一次的神经网络之双向关联记忆网络(BAM)中我们介绍了神经网络中能量的概念。在BAM的基础上稍加改变就可以得到著名的Hopfield网络。

Hopfield网络

Hopfield Network与BAM不同,它是一个全连接的网络,没有x层和y层之分。但我们可以利用Hopfield网络的结构特点来把它看作是一个BAM来处理:

  1. Hopfield Network只有一个x层
  2. 假设在t时刻之内,x层中的所有神经元逐一完成了更新,那么它们(xt层)将在下一个时刻作为输入层传递给t+1时刻的自己(xt+1层);而它们(xt层)的输入可以看作来自t−1时刻的自己(xt−1层)
  3. 把xt层看作BAM中的x层,把xt+1层看作BAM中的y层,那么在t到t+1时刻,完成了一次从x层到y层的传递更新
  4. 更近一步,t为奇数时xt作为x层,t为偶数时xt作为y层,于是同步更新的Hopfield网络就转化成了一个BAM

这种把网络在时间上展开的想法与求解RNN的BPTT有几分相似。

注意,上面这种把Hopfield网络看作BAM来处理时,所使用的网络更新方式是同步更新,所谓同步和异步两种更新方式的区别为:

  • 异步:按照依次或随机选择一个神经元,根据其接收的输入更新其状态,其中后者称为“异步随机更新”(asynchronous random updating)
  • 同步:所有的神经元同时计算在当前时刻所接收到的输入,之后在同一时刻一起更新到新的状态

现在可以直接使用BAM的能量函数来描述Hopfield了。因为此时y层就是x层自己,所以x的阈值θ=θl=θr 。那么Hopfield网络的能量函数为:

如果把上式中的矩阵和向量展开,Hopfield网络的能量函数还可以表示成:

可以看出Hopfield网络的能量函数是一个二次型,所以可能会有local minimum。接下来要做的事情就是证明Hopfield网络收敛。

Hopfield网络的收敛性

对于定义了能量的Hopfield网络,收敛指的是网络到达的某个稳态对应着能量函数的一个local minimum。下面证明,当使用异步更新的方法来更新网络状态时,Hopfield网络一定收敛。

假设在当前的迭代中选择更新第k个神经元xk 。如果xk的状态不变,则整个网络的能量也不会发生变化。如果xk的状态发生了变化,我们需要证明该变化艺定会使得整个网络的能量减小。设xk状态改变后的网络状态为x=(x1,···,xk,···,xn)。xk变化前后网络能量的改变为:

可以看出,其中

是神经元xk的激发函数 ,令

因为xk的状态在本次更新中发生了变化,则ek与xk异号,且xk与xk′异号。xk与xk′异号可以推出(xk−xk′)与xk同号。因此ek与(xk−xk′)异号。由此可得

这表明当Hopfield网络中有一个神经元的状态发生变化时,整个网络的能量总是下降的。而网络总的状态数目是有限的,因此网络最终会到达一个稳态,到达该稳态后网络停止自我更新,整张网络的能量不再减小。至此我们便证明了异步更新的Hopfield网络一定是收敛的。

原文发布于微信公众号 - AI2ML人工智能to机器学习(mloptimization)

原文发表时间:2017-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

机器学习(10)之趣味案例理解朴素贝叶斯

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 01 病人分类的例子 让我从一个例子...

3624
来自专栏AI科技大本营的专栏

AI 技术讲座精选:如何在时序预测问题中在训练期间更新LSTM网络

使用神经网络解决时间序列预测问题的好处是网络可以在获得新数据时对权重进行更新。 在本教程中,你将学习如何使用新数据更新长短期记忆(LTCM)递归神经网络。 在...

3446
来自专栏量化投资与机器学习

如何使用LSTM网络进行权重正则化来进行时间序列预测

作者 / Jason Brownlee 翻译 / 编辑部翻译组 来源 / http://machinelearningmastery.com 权重正则化是一种对...

5748
来自专栏智能算法

趣味理解朴素贝叶斯

趣味理解朴素贝叶斯 NavieBays 生活中很多场合需要用到分类,比如新闻分类、病人分类等等实际用用场景。为了让大家可以形象的理解,本文从实际的应用入手介绍...

3729
来自专栏机器之心

资源 | 用PyTorch搞定GluonCV预训练模型,这个计算机视觉库真的很好用

项目地址:https://github.com/zhanghang1989/gluoncv-torch

1165
来自专栏机器学习算法与Python学习

趣味理解朴素贝叶斯

趣味理解朴素贝叶斯 NavieBayes 生活中很多场合需要用到分类,比如新闻分类、病人分类等等实际用用场景。为了让大家可以形象的理解,本文从实际的应用入手介...

3709
来自专栏ATYUN订阅号

伪排练:NLP灾难性遗忘的解决方案

有时,你需要对预先训练的模型进行微调,以添加新标签或纠正某些特定错误。这可能会出现“灾难性遗忘”的问题。而伪排练是一个很好的解决方案:使用原始模型标签实例,并通...

3406
来自专栏机器之心

专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能

机器之心投稿 作者:腾讯 iOS 客户端高级工程师冯牮 本文作者通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点。 前言 本文不是神经网...

4235
来自专栏AI科技评论

ACL2016最佳论文:通过整合基于路径的方法和分布式的方法,改善词对检测

摘要 在自然语言处理(NLP)中,理清词对关系是一项的关键任务 ,在一份使用两种互补方法的文献中也强调这一点。分布式方法:其监督式的变体是目前最好的任务执行器...

3485
来自专栏大数据文摘

深度 | 你的神经网络不work? 这37个原因总有一款适合你!

1403

扫码关注云+社区

领取腾讯云代金券