Hopfiled 神经网络入门

进击吧程序猿 2018-01-01 23:04:27

本文参考 Hinton 的机器学习课程,总结了 Hopfield 神经网络,整个学习的脉络是:Hopfield 网络 -> 玻尔兹曼机 BM -> 受限玻尔兹曼机 RBM,本文是第一部分 Hopfield 网络。

Hopfield 神经网络

首先我们需要知道 Hopfield 网络是一种递归神经网络,从输出到输入有反馈连接。Hopfield 网络的一个特性是能实现联想功能,能够以动力学的方式运行。

其典型的结构如下:

对于每一个节点单元,它只有两种状态:0 或者 1,代表闭或开,节点之间彼此之间互相连接,但是这种网络是很难分析的,其可能的状态有:

  • 稳定状态

  • 震荡状态

  • 混沌状态

收敛

非稳定

混沌

人们研究发现如果模型是对称的,那么整个网络就会存在一个全局能量函数,系统能够收敛到一个最低能量处。因此,我们研究的 Hopfield 网络是一个对称网络。

Hopfield 能量函数

能量函数定义如下:

定义两个差值变量:

则可以得出能量变化为:

我们假设 t 时刻,只有 1 个神经元调整状态,假设神经元为 j,则此时

带入上式,得到:

因为神经元不存在自反馈,所以 wii 为 0,则最终能量变化为:

我们考虑:

因此能量 E 是不断减少的。

下面以一个例子来说明能量减少的整个过程。

上图表示有 3 个节点,每个节点之间的权重 x12=x21=-0.5,x13=x31=0.2,x23=x32=0.6,每个节点的阈值为:-0.1,0.0,0.0。

假设每个节点状态为 0 或者 1,则 3 个节点共有 2*2*2=8 种状态,对应上面的右图,我们以 000 为第一个状态,即 x1=x2=x3=0,此时我们假设先变化 x1=1,则

其他节点状态不变,网络状态由 000 变为 100;此时如果先更新 x2 或者 x3,则网络状态还是 000,所以上面图中从 000,有 1/3 概率变为 100,2/3 概率保持不变,最终我们计算所有的状态转移概率,我们发现 011 是一个稳定状态,系统从任意状态出发,经过若干次更新,最终都能稳定到 011。

存储记忆

记忆可以是一个具有对称权重的 神经网络 的能量最小状态。

二值阈值局侧可以用来清理不完整的记忆,即使我们只知道部分记忆,也能通过网络最终知道全部(怎么理解呢?个人理解是因为最后状态都会趋于能量极小,而神经元只会取 0 或者 1,因此状态是有限的,所以在能量极小附近的相似输入,最后都会趋于同一个能量极小状态)

如果我们取节点状态为 - 1 或者 1,则根据能量公式:

我们取 wij=xixj,T=0,则此时能量 E=-n^2。很明显,这时候 E 是最小的。

总结

本文主要根据 Hinton 大神 Hopfield 部分的第一节整理而来,主要介绍了 Hopfield 网络的定义,能量函数以及记忆存储,下面一节将会介绍如何在 Hopfield 网络中处理 伪极小值。

这是 Hopfield 网络 的第一篇,你的鼓励是我继续写下去的动力,期待我们共同进步。

参考

人工神经网络理论、设计及应用_第 2 版

从 Hopfiled 网络到 BM(玻尔兹曼机)

Hopfield 神经网络?

Lecture 12.1 — Boltzmann machine learning


http://www.taodudu.cc/news/show-63953.html

相关文章:

  • 静态调用动态调用
  • scheduled sampling_seq2seq
  • 图像上采样与下采样
  • bert 文本分类
  • docfetcher,filelocator使用
  • train_test_split 数据集划分,样本划分
  • 抽样方法,采样方法 shuffle
  • dataframe sample 采样,抽样
  • 日志处理logger
  • python压缩和解压缩
  • linux pytorch 快速安装
  • linux文件拷贝
  • listary 指定目录搜索_everything
  • python -m参数
  • is not a supported wheel on this platform pip安装报错
  • 多版本python共存,安装三方库到指定python版本 多Python版本和虚拟环境
  • 预热学习率的作用warmup
  • pythonbug
  • tf.get_variable
  • 量化_深度学习
  • TFRecord tf.train.Feature
  • Tensorflow会话
  • 智能文档理解:通用文档预训练模型
  • 虚拟机网络连接方式linuxcentos
  • xgboost lightgbm catboost 多分类 多标签
  • dataframe 拆分 分裂
  • dataframe多列合并成一列
  • dataframe重命名
  • bert as service
  • BCELoss BCEWithLogitsLoss 多标签损失函数

Hopfiled 神经网络实例解释相关推荐

  1. JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念...

    JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html><body><script type="tex ...

  2. 使用实例解释UML类图

    使用实例解释UML类图   在我们的平常工作中,完成某个项目或者功能不可能直接打开项目讲解思路,更多的是使用某种图表来表达我们的思想,其中UML类图就是一种非常便利的手段. UML类图基础知识   类 ...

  3. CNN卷积神经网络实例(基于pytorch)

    CNN卷积神经网络 1.关于卷积神经网络 2.卷积神经网络实例(手写字母识别) 2.1 代码示例 2.2 运行过程及结果 2.3 测试结果 3.参考与致谢 1.关于卷积神经网络 卷积神经网络(Conv ...

  4. C/C++中关于int *p[n]、int(*p)[n]、int*p()和int(*p)()巨详细实例解释

    关于int *p[n].int(p)[n].intp()和int(*p)()详细实例解释 指针是C/C++语言中最精彩部分,话不多说,下边对这四种形式进行寻根问底,进行剖析. int *p[n]; i ...

  5. C++卷积神经网络实例:tiny_cnn代码具体解释(7)——fully_connected_layer层结构类分析...

    之前的博文中已经将卷积层.下採样层进行了分析.在这篇博文中我们对最后一个顶层层结构fully_connected_layer类(全连接层)进行分析: 一.卷积神经网路中的全连接层 在卷积神经网络中全连 ...

  6. Tensorflow MNIST浅层神经网络的解释和答复

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51416540 看到之前的一篇博文:深入 ...

  7. python神经网络实例_Python编程实现的简单神经网络算法示例

    本文实例讲述了Python编程实现的简单神经网络算法.分享给大家供大家参考,具体如下: python实现二层神经网络 包括输入层和输出层 # -*- coding:utf-8 -*- #! pytho ...

  8. 文件压缩算法详细分析(ZIP)及解压实例解释

    原文地址:https://www.cnblogs.com/esingchan/p/3958962.html 最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据 ...

  9. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

最新文章

  1. iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、v...
  2. 异步请求时有时会让js不起作用,那么重新加载js
  3. Qt修炼手册2_动态设计
  4. tp5 cache缓存简单使用
  5. SpringBoot核心注解介绍
  6. Android编译工具Freeline的使用
  7. WPF——专用枚举器ListBox和ComboBox
  8. 后台业务管理系统原型模板/在线教育后台管理系统/客服系统/财务管理/用户管理/订单管理/教育业务后台管理/课程管理/教师管理/活动管理/文章管理/Axure高保真在线教育行业原型/Axure后台管理
  9. 安卓 camera 调用流程_音视频开发之旅(四)Camera视频采集
  10. 容器List之ArrayList详解
  11. 数字图像中高频噪声的滤波
  12. Windows PowerShell是啥?看完本文你就懂它了
  13. Battery Charging Specification 1.2 中文详解 来源:www.chengxuyuans.com
  14. java编程新手初学者入门学习,看什么书比较好
  15. 云计算8项核心技术分析
  16. 电商后台权限设置有哪些规范你知道吗?
  17. 第一范式、第二范式、第三范式、BCNF范式详解
  18. 1、目标检测 RCNN(翻译+标注)
  19. 财务报表学习笔记(1)
  20. C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法

热门文章

  1. 在k8s中使用gradle构建java web项目镜像Dockerfile
  2. 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
  3. python的知识点注意事项
  4. 【数据结构】链表中的 指针,地址
  5. 生成树计数Matrix-Tree定理-数学
  6. Windows10+anaconda,python3.5, 安装glove-python
  7. LeetCode简单题之公平的糖果交换
  8. YOLOvi(i=1,2,3,4)系列
  9. Android广播监听usb插拔状态
  10. js函数语法:ASCII 码的相互转换,字符串操作,数学计算