Hopfield神经网络与受限波尔兹曼机

神经网络可分为两大类:

  • 一类是多层神经网络、卷积神经网络:可用于模式识别
  • 另一类是相互连接型网络:可通过联想记忆去除输入数据中的噪声。

深度学习目录:

  1. 自适应线性单元 (Widrow and Hoff, 1960)
  2. 神经认知机 (Fukushima, 1980)
  3. GPU-加速 卷积网络 (Chellapilla et al., 2006)
  4. 深度玻尔兹曼机 (Salakhutdinov and Hinton, 2009a)
  5. 无监督卷积网络 (Jarrett et al., 2009b)
  6. GPU-加速 多层感知机 (Ciresan et al., 2010)
  7. 分布式自编码器 (Le et al., 2012)
  8. Multi-GPU 卷积网络 (Krizhevsky et al., 2012a)
  9. COTS HPC 无监督卷积网络 (Coates et al., 2013)
  10. GoogLeNet (Szegedy et al., 2014a)

文章目录

  • 深度学习目录:
  • Hopfield神经网络 HNN(Hopfield Neural Network)
    • 构建Hopfield神经网络
    • 设置神经网络的网络权值
      • 我们首先将二维图像**展开成为一层**
      • 其次,设置连接权值。
      • 输入联想图,开始联想
        • 联想图
        • 开始联想
    • 多联想记忆网络
    • 全部代码
    • 问题
  • 波尔兹曼机(Boltzmann Machine)
    • 波尔兹曼机与hopfield神经网络的区别
  • 受限玻尔兹曼机

Hopfield神经网络 HNN(Hopfield Neural Network)

1982年Hopfield 提出了Hopfield神经网络,是最典型的相互连接型神经网络。

首先我们来看看脑部神经元结构图
在这里插入图片描述
生物神经元和人工神经元的对照关系

在这里插入图片描述
Hopfield神经网络是一种递归神经网络,从输出到输入均有反馈连接,每一个神经元跟所有其他神经元相互连接,又称为全互联网络
我们根据如上形式,将所有神经元之间两两连接,形成了全互联网络

在这里插入图片描述
Hopfield最早提出的网络是二值神经网络,各神经元的激励函数为阶跃函数或双极值函数,神经元的输入、输出只取 ( 0 , 1 ) {(0,1)} (01) 或者 ( − 1 , 1 ) {( -1,1)} (11) ,所以也称为离散型Hopfield神经网络DHNN(Discrete Hopfiled Neural Network)

离散Hopfield神经网络DHNN是一个单层网络,有n个神经元节点,每个神经元的输出均接到其它神经元的输入。各节点没有自反馈。每个节点都可处于一种可能的状态(1或-1),即当该神经元所受的刺激超过其阀值时,神经元就处于一种状态(比如1),否则神经元就始终处于另一状态(比如-1)。

构建Hopfield神经网络

首先,构建Hopfield神经网络需要提供要求记忆的二进制网络,如:

a=np.array([[0,0,1,1,0,0],[0,0,1,1,0,0],[1,1,1,1,1,1],[1,1,1,1,1,1],[0,0,1,1,0,0],[0,0,1,1,0,0]])

在这里插入图片描述

设置神经网络的网络权值

因为网络共有 6 ∗ 6 = 36 6*6=36 66=36个结点。故神经网络连接需要 35 ∗ 35 35 * 35 3535个(自身与自身不连接)。

我们首先将二维图像展开成为一层

array_a=a.flatten()

在这里插入图片描述

其次,设置连接权值。

我们已知Hopfield神经网络为二值神经网络,值为0或1。

设:
当 a [ i ] 为 0 , a [ j ] 为 1 时 , 权值 w i j 为 − 1 当 a [ i ] 为 0 , a [ j ] 为 0 时 , 权值 w i j 为 1 且 w j i = w i j 即:俩结点值相同权值为 1 ,结点不同权值为 0 当 a[i]为0,a[j]为1时,权值w_{ij}为-1\\ \quad\\ 当 a[i]为0,a[j]为0时,权值w_{ij}为1\\ \quad\\ 且w_{ji} = w_{ij}\\ 即:俩结点值相同权值为1,结点不同权值为0 a[i]0a[j]1,权值wij1a[i]0a[j]0,权值wij1wji=wij即:俩结点值相同权值为1,结点不同权值为0

w=np.zeros((36,36))
for i in range(36):for j in range(36):if i==j:w[i,j]=0else:w[i,j]=(2*s[i]-1)*(2*s[j]-1)

生成网络权值图如下
在这里插入图片描述

输入联想图,开始联想

联想图

c=np.array([[0,0,1,1,0,0],[0,0,1,1,0,0],[1,1,1,1,1,1],[1,1,1,1,1,1],[1,0,0,1,0,0],[0,0,1,1,0,0]])

在这里插入图片描述

开始联想

设输入值为 x i ( t ) x_i(t) xi(t),输出值为 x i ( t + 1 ) x_i(t+1) xi(t+1) t t t 为迭代次数,有如下公式
u i ( t ) = ∑ j = 1 n w i j x j ( t ) − b i ( t ) x i ( t + 1 ) = { 1 u i ( t ) > 0 x i ( t ) ( 不变 ) u i ( t ) = = 0 0 u i ( t ) < 0 u_i(t) = \sum_{j=1}^n w_{ij}x_j(t) - b_i(t)\\ \quad\\ x_i(t+1) = \left\{\begin{matrix} 1 & u_i(t)>0 \\ x_i(t)(不变) & u_i(t)==0 \\ 0& u_i(t)<0 \end{matrix}\right. ui(t)=j=1nwijxj(t)bi(t)xi(t+1)= 1xi(t)(不变)0ui(t)>0ui(t)==0ui(t)<0

  • 在此模型中,我们设 b i ( t ) b_i(t) bi(t) 都为0.

依据以上公式,代码如下:

c=c.flatten()
x=c
Y=np.zeros(36)
for t in range(10):u = np.zeros(36)for j in range(36):for i in range(36):if i==j:u[j]+=0else:u[j]+=w[i,j]*x[i]if u[j]<0:Y[j]=0else if u[j]==0:Y[j] = Y[j];else:Y[j]=1x=Y

输出 x x x

在这里插入图片描述

多联想记忆网络

即,一个网络存储多个记忆

将多个记忆的网络权值相加即可。

input_array=[array_a,array_b]
w=np.zeros((36,36))
for s in input_array:w0=np.zeros((36,36))for i in range(36):for j in range(36):if i==j:w0[i,j]=0else:w0[i,j]=(2*s[i]-1)*(2*s[j]-1)w+=w0

array_b图像
在这里插入图片描述
多记忆权值网络:
在这里插入图片描述
联想记忆测试a
在这里插入图片描述
联想结果a
在这里插入图片描述
联想记忆测试b
在这里插入图片描述
联想结果b
在这里插入图片描述
结果显示,一个网络可以存储多个记忆图。

全部代码

引自:Hopfield神经网络(HNN)详解

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
a=np.array([[0,0,1,1,0,0],[0,0,1,1,0,0],[1,1,1,1,1,1],[1,1,1,1,1,1],[0,0,1,1,0,0],[0,0,1,1,0,0]])
b=np.array([[0,0,1,1,0,0],[0,1,0,0,1,0],[1,0,0,0,0,1],[1,0,0,0,0,1],[0,1,0,0,1,0],[0,0,1,1,0,0]])
c=np.array([[0,0,1,1,0,0],[0,0,1,1,0,0],[1,1,1,1,1,1],[1,1,1,1,1,1],[1,0,0,1,0,0],[0,0,1,1,0,0]])
array_a=a.flatten()
array_b=b.flatten()
input_array=[array_a,array_b]
w=np.zeros((36,36))
for s in input_array:w0=np.zeros((36,36))for i in range(36):for j in range(36):if i==j:w0[i,j]=0else:w0[i,j]=(2*s[i]-1)*(2*s[j]-1)w+=w0
c=c.flatten()
v0=c
Y=np.zeros(36)
for t in range(10):v1 = np.zeros(36)for j in range(36):for i in range(36):if i==j:v1[j]+=0else:v1[j]+=w[i,j]*v0[i]if v1[j]<0:Y[j]=0else:Y[j]=1v0=Y
result=np.array(v0).reshape(6,6)
p=Image.fromarray(result*600)
plt.imshow(p)
plt.show()

问题

当需要记忆的模式之间较为相似,或者需要记忆的模式太多,hopfield神经网络就不能正确的辨别模式。这种相互干扰,不能准确记忆的情况称为串扰(crosstalk)。

波尔兹曼机(Boltzmann Machine)

波尔兹曼机与hopfield神经网络的区别

相同处:

  • 各单元连接权重是对称的。
  • 没有到自身的连接。
  • 每个单元的输出要么是0,要么是1。

区别:

  • hopfield神经网络的输出是按照某种确定性决定的
  • 玻尔兹曼机的输出是按照某种概率分布决定的

受限玻尔兹曼机

简单了解:一起读懂传说中的经典:受限玻尔兹曼机
在这里插入图片描述
机器学习笔记之深度玻尔兹曼机(一)玻尔兹曼机系列整体介绍

网络上关于玻尔兹曼机的资料甚少,而且各资料之间有差异,大多全是公式。

我也没有弄明白!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352584.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat部署及优化

目录 一、Tomcat的相关知识 1&#xff09;Tomcat的简介 2&#xff09;Tomcat的组件构成 3&#xff09;Tomcat的功能组件结构 4&#xff09;Tomcat的请求过程 二、Tomcat服务的部署 步骤一&#xff1a;搭建Tomcat运行环境 &#xff08;1&#xff09;关闭防火墙和s…

【Linux】Linux内核编译与入门

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Linux内核编译。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习知识&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&am…

AI绘画软件排行榜,手机AI绘画排名推荐

AI绘画技术近年来成为数字艺术的新热点。随着人工智能技术的不断发展和普及&#xff0c;越来越多的网站开始推出AI绘画功能&#xff0c;在保证人工智能算法的同时&#xff0c;也不断丰富绘画功能和操作体验。下面就为大家盘点一下目前最受欢迎的AI绘画网站。 AI绘画软件排名推荐…

SAI 绘图软件+笔刷+教程

SAI绘画软件一直以来都是许多插画师首选的绘画工具&#xff0c;这款软件兼容几乎所有型号的绘画板&#xff0c; 通过SAI绘画软件可以很好的表现出CG风格和水彩风格&#xff0c;在线条绘制方面比目前已用过的任何软件 都更****、更逆天&#xff0c;线条废柴们的福音!初音的某人…

SAI v2.0小巧强大的板绘工具

SAI v2.0是由日本SYSTEMAX公司推出的一款非常专业的绘图软件&#xff0c;基于SAI1.0的基础上&#xff0c;SAI2.0增加了更多更强大的功能。尤其是任意角度的自由旋转、画布视图大小缩放等等&#xff0c;很多功能就在主操作版上&#xff0c;用起来非常方便快捷。sai v2.0拥有丰富…

原画师需要用到什么工具?绘画工具大全!

游戏行业这几年持续升温&#xff0c;网游火了几年&#xff0c;又轮到手游和页游。但是不管哪个平台的游戏&#xff0c;研发都需要游戏原画环节。 一、学习原画漫画需要用到的软件主要有以下三款&#xff1a; 1.PS: PS是公认最强大的图片编辑软件,正因为强大所以功能繁多导致过于…

国内外AI绘画软件汇总

国内外AI绘画软件汇总 Disco Diffusion 一款利用人工智能深度学习进行数字艺术创作的工具&#xff0c;它是基于 MIT 许可协议的开源工具&#xff0c;可以用于商业用途。可以在 Google Drive 直接运行&#xff0c;也可以部署到本地运行&#xff0c;目前最新的版本是 Disco Diffu…

AI绘画软件汇总

AI绘画软件汇总 AI绘图在线体验 二次元绘图 在线体验地址:Stable Diffusion 模型包括&#xff1a; NovelAI&#xff0c;NovelAI的模型训练使用了数千个网站的数十亿张图片&#xff0c;包括 Pixiv、Twitter、DeviantArt、Tumblr等网站的作品。 Waifu&#xff0c;waifu的模型…

Easy Paint Tool SAI 2.0+62种笔刷 超级好用的画图软件

SAI绘画软件一直以来都是许多插画师首选的绘画工具&#xff0c;这款软件兼容几乎所有型号的绘画板&#xff0c;通过SAI绘画软件可以很好的表现出CG风格和水彩风格&#xff0c;在线条绘制方面比目前已用过的任何软件都更作弊、更逆天&#xff0c;线条废柴们的福音!初音的某人气同…

6-TET, SE,6-TET, SE 6-(4,6-二氯三嗪基)氨基荧光素,一种流行的氨基反应荧光探针

文章关键词&#xff1a;荧光反应探针 中文名称&#xff1a;6-TET, SE 6-(4,6-二氯三嗪基)氨基荧光素 英文名称&#xff1a;6-TET, SE 规格标准&#xff1a;10mg&#xff0c;25mg&#xff0c;50mg CAS&#xff1a;N/A 分子式&#xff1a;C25H11Cl4NO9 分子量&#xff1a;611.17 …

作为网络安全工程师,都有哪些公司可以选?

招聘平台 首选内推 其次是公司自有招聘平台 再是第三方平台&#xff1a;boos直聘、前程无忧、拉钩、猎聘、牛客、牛聘 乙方 启明星辰 商标&#xff1a;云众可信&#xff0c;云子可信 投资&#xff1a;网御星云&#xff0c;恒安嘉新 拳头产品&#xff1a;Secin 社区、天清…

SpringBoot 使用validator进行参数校验(实例操作+注意事项+自定义参数校验)

一、实例操作 ①、引入依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>6.0.4.Final</version></dependency> ②、创建实体类 package com.springboot.entity;im…

电表的698通信协议

原文连接&#xff1a;https://blog.csdn.net/ss86655/article/details/109997891 该协议规定了用电信息的数据交换过程&#xff0c;一般用于主站与电能表之间、终端与电能表之间的数据交换&#xff0c;主站与终端一般用不同的客户机地址来区分。1、通信架构 有两种方向的数据…

豪迪QQ群发通杀破解补丁使用教程

测试环境 Windows 7 64位 前期准备 1.所需软件 豪迪官网 下载豪迪 下载破解补丁 2.保存后解压文件夹&#xff08;如果是安装包直接安装就可以&#xff09; 3.将通杀补丁放到软件根目录 使用通杀补丁进行破解 4.打开软件点击“执行补丁”&#xff0c;然后就可以关闭补丁…

最新坦白说破解方法!!!

版权声明:转载必须注明本文转自StathamJ的博客:https://blog.csdn.net/qq_41664447 前言 qq坦白说的推出让许多人感到烦恼,或是被骚扰,或是被撩,完事儿被戏弄之后你还不能屏蔽。。。

【python】如何入门python?

文章目录 前言一、为什么学习Python&#xff1f;二、学习Python的前置条件三、入门Python的步骤3.1 安装Python3.2 安装Python开发环境3.3 学习Python基础语法3.4 编写你的第一个Python程序3.5 学习Python的高级特性3.6 使用Python库和框架 四、Python入门的资源五、常见的Pyth…

Python 最新版破解滑块验证码自动登录QQ空间

本节所讲内容&#xff1a; SeleniumPython环境搭建及配置 滑块验证码步骤分解 QQ空间破解滑块验证码登录&#xff08;全部代码请看最后&#xff09; 1.1 selenium 介绍 1.2 seleniumPython环境配置 前提条件&#xff1a;已安装好Python开发环境&#xff08;python3.7.2&…

使用OpenCV 破解QQ登录中的滑动验证码

系列文章目录 第一篇&#xff1a; Java实现QQ登录 第二篇&#xff1a; Selenium QQ自动化登录 第三篇&#xff1a; 使用OpenCV 破解QQ登录中的滑动验证码 文章目录 系列文章目录 文章目录 前言 一、登录流程 二、验证办法 1.滑动验证码 2.获取缺口坐标 2.1 获得两张验证码的…

java程序破解qq闪图

1.找到闪图存放的位置/sdcard/tencent/MobileQQ/diskcache 下面 就是这些&#xff08;但是这不全是qq闪图的照片 而是缓存&#xff09; 有些手机有时间排序&#xff0c;如果是刚发的闪图 可以通过时间排序&#xff0c;直接手机上通过图片打开方式查看 但是我的红米手机没有这…

尚硅谷大数据hadoop教程_yarn

p125 课程介绍 p126 yarn基础架构 YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。 p127 工作机制 &#xff08;1&#xff09;MR程序提交到客户端所在的节点。 &#xff08;2&#xff09;YarnRunner向ResourceManager申请一个Applicatio…