神经网络算法详解:反馈神经网络(Hopfield网络、双向联想记忆网络BAM、玻尔兹曼机BM、RBM)

本文主要是介绍神经网络算法详解:反馈神经网络(Hopfield网络、双向联想记忆网络BAM、玻尔兹曼机BM、RBM),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文介绍了反馈神经网络,包括Hopfield网络,离散Hopfield网络(DHNN),连续Hopfield网络(CHNN),双向联想记忆网络(BAM),玻尔兹曼机(BM),受限玻尔兹曼机(RBM)。其中对于BAM、BM、RBM只是对其进行了简单的介绍,并没有详细地推导算法。本文的目的旨在了解这些算法,先知道这些网络的改进和应用场景,当有业务需求的时候,再详细研究。


系列文章:

  1. 【神经网络算法详解 01】-- 人工神经网络基础
  2. 【神经网络算法详解 02】 – 感知神经网络与反向传播算法(BP)
  3. 【神经网络算法详解 03】 – 竞争神经网络【SONN、SOFM、LVQ、CPN、ART】
  4. 【神经网络算法详解 04】 – 反馈神经网络 【Hopfield、DHNN、CHNN、BAM、BM、RBM】
  5. 【神经网络算法详解 05】-- 其它类型的神经网络简介【RBF NN、DNN、CNN、LSTM、RNN、AE、DBN、GAN】

文章目录

  • 系列文章:
  • 1. 反馈神经网络
    • 1.1 知识回顾:前馈神经网络
    • 1.2 反馈与前馈神经网络的区别
  • 2. Hopfield 网
  • 3. 离散Hopfield网络(DHNN)
    • 3.1 DHNN的特点
    • 3.2 DHNN网络状态
    • 3.3 能量函数
    • 3.4 DHNN的工作方式
    • 3.5 DHNN例子
    • 3.6 DHNN网络容量
    • 3.7 DHNN 设计权重和阈值
      • 3.7.1 联立方程组法
      • 3.7.2 外积法
    • 3.8 DHNN简单应用案例:OCR字符识别
  • 4. 连续Hopfield网络
    • 4.1 CHNN网络结构
    • 4.2 CHNN网络拓扑
    • 4.3 CHNN几个特点
    • 4.4 CHNN应用的几个步骤
    • 4.5 TSP 问题
  • 5. 双向联想记忆神经网络(BAM)
    • 5.1 网络运行过程
    • 5.2 能量函数与权值设计
    • 5.3 网络特点
  • 6. 玻尔兹曼机(BM)
    • 6.1 模拟退火算法
    • 6.2 BM的能量函数
    • 6.3 BM的特点
    • 6.4 自联想与异联想
    • 6.5 受限玻尔兹曼机


1. 反馈神经网络

1.1 知识回顾:前馈神经网络

前馈神经网络(FeedForwardNN):是一种最简单的神经网络,采用单向多层结构各神经元分层排列,每个神经元只与前一层的神经元相连。接收前一层的输出并输出给下一层各层间没有反馈。

前馈网络包括三类节点·

  • 输入节点(lnputNodes):外界信息输入,不进行任何计篇,仅向下一层节点传递信息
  • 的藏节点(HiddenNodes):接收上一层节点的输入,进行计算,并将信息传到下一层节点
  • 输出节点(OutputNodes):接收上一层节点的输入,进行计算,并将结果输出
    在这里插入图片描述
    输入层和输出层须有,隐藏层可以没有,即为单层感知器藏层也可以不止一层,有藏层的前馈网络即多层感知器。

1.2 反馈与前馈神经网络的区别

反馈神经网络(FeedBackNN):又称递归网络、回归网络,是一种将输出经过一步时移再接入到输入层的神经网络系统。这类网络中,神经元可以互连,有些神经元的输出会被反馈至同层甚至前层的神经元。常见的有Hopfield神经网络、Elman神经网络、Boltzmann机等。

前馈神经网络和反馈神经网络的主要区别:

  • 前馈神经网络各层神经元之间无连接,神经元只接受上层传来的数据,处理后传入下一层,数据正向流动;反馈神经网络层间神经元有连接,数据可以在同层间流动或反馈至前层。
  • 前馈神经网络不考虑输出与输入在时间上的滞后效应只表达输出与输入的映射关系;反馈神经网络考虑输出与输入之间在时间上的延迟,需要动态方程来描述系统的模型。
  • 前馈神经网络的学习主要采用误差修止法(如BP算法),计算过程一般比较慢,收敛速度也比较慢;反馈神经网络主要采用Hebb学习规则,一般情况下计算的收敛速度很快。
  • 相比前馈神经网络,反馈神经网络更适合应用在联想记忆和优化计算等领域。

在这里插入图片描述


2. Hopfield 网

在这里插入图片描述

John J. Hopfield

HopfieId网】是一种单层对称全反馈网络,1982年由加州理工学院的物理学家上J. J.HopfieId 提出,因此被称作HopfieId网。他在该反馈网络中引入了“能量函数”,即认为该网络为一种基于能量的的模型(Energy Based Model,EBM)。能量函数的提出意义重大,它保证了向局部极小的收敛,使神经网络运行稳定性的判断有了明确的可靠的依据。Hopfield网提供了模拟人类记忆的模型。1985年的时候还和D.W.Tank一块模拟电子线路实现了Hopfield网络,并用此解决了旅行商TSP问题。

  • 根据激活函数不同,分为两种:离散HopfieId网(Discrete Hopfield Neural Network,DHNN)连续 Hopfield网(Continuous Hopfield Neural Network,CHNN)
  • DHNN主要用于联想记忆,输入部分信息即可联想到完整的输出,即具有容错性;
  • CHNN主要用于优化计算,如旅行商TSP、调度等。

3. 离散Hopfield网络(DHNN)

3.1 DHNN的特点

  • 单层、全连接、反馈:任一神经元输出 x i x i x i xixi x_i xixixiwii=0

在这里插入图片描述

6.1 模拟退火算法

模拟退火算法(SimulatedAnneal)】:所谓退火是指物体温度逐渐降低的现象,随着温度降低,物体的能量状态会低,在结晶状态时能量最低。模拟退火算法也是模拟退火的过程,但是它在搜索过程中加入了随机因素:即在达到最优值(可能是局部最优值)后会以一定的概率跳出来。如右图,当搜索到局部最优值B后,会按照某个概率继续向右移动,使得搜索有可能跳出局部最优值,而去获得下一个最优值(可能是局部最优也可能是全局最优)。

在这里插入图片描述
在这里插入图片描述

6.2 BM的能量函数

在这里插入图片描述
在这里插入图片描述

6.3 BM的特点

在这里插入图片描述

6.4 自联想与异联想

自联想的输出节点和输出节点相同,即可见节点既是输入节点又是输出节点;异联想的输出节点
和输入节点不同,即部分可见节点为输入节点,其余可见节点为输出节点。
在这里插入图片描述
通过有导师学习,BM可以对训练集中各模式的概率分布进行模拟,从而实现联想记忆。学习的
目的是通过调整网络权值使训练集中的模式在网络状态中以相同的概率再现。

  • 到第一阶段:正向学习
    向网络输入一对输入一输出模式,将网络的输入一输出节点限制到期望的状态,即固定住输入输出的状态,而去自由调整隐藏层,以完成输入输出之间的映射。

  • 第二阶段:反向学习
    对于异联想学习,用输入模式固定输入节点,而让输出和隐藏节点自由活动;对于自联想学习让可见节点和隐藏节点都自由活动,以体现输入一输出对应规律的模拟情况。输入一输出的对应规律表现为网络达到热平衡时,相连节点状态同时为1的概率。期望对应规律与模拟对应规律之间的差别就表现为两个学习阶段所对应的平均概率的差值,基于该值去调节权重。

6.5 受限玻尔兹曼机

聪明绝顶警告!
在这里插入图片描述

Paul Smolesky

受限玻尔兹曼机(Restricted Boltzmann Machine,RBM),是一种简化的特殊的玻尔兹曼机,1986年由Paul Smolensky提出。和BM比,其隐藏层中的节点之间没有互相连接,其可见节点间也没有连接,因此其计算相对更简单。RBM可以应用于降维、分类、协同过滤、特征学习和主题建模等领域,根据任务的不同,可以选择监督学习或者非监督学习等方式进行神经网络模型训练。

在这里插入图片描述

  • 到两层结构:可见层和隐藏层
  • 同层内无连接,不同层全连接:同层内节点激活状态独立
  • 节点状态二值状态:0 和 1
  • 计算相对BM简单
  • 只要隐层节点足够多,能拟合任何离散分布

这篇关于神经网络算法详解:反馈神经网络(Hopfield网络、双向联想记忆网络BAM、玻尔兹曼机BM、RBM)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727979

相关文章

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

Linux之软件包管理器yum详解

《Linux之软件包管理器yum详解》文章介绍了现代类Unix操作系统中软件包管理和包存储库的工作原理,以及如何使用包管理器如yum来安装、更新和卸载软件,文章还介绍了如何配置yum源,更新系统软件包... 目录软件包yumyum语法yum常用命令yum源配置文件介绍更新yum源查看已经安装软件的方法总结软

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构