理解RBMDBN

article/2025/11/7 0:06:49

RBM

关于受限玻尔兹曼机RBM,网上很多博客[1][2]都总结推导RBM很详细,很少有人能通俗地解释一下RBM的用途和有点,我觉得[2]写得很好,可以参考辅助理解,下面简单总结一下我的理解和一些相关知识。

网络结构

RBM是一个无监督拟合训练数据分布的一种方法。包含两层,可视层(V)和隐藏层(H)。层与层之间是全连接,层内部每个节点互相独立,参数包含(W,a,b)。网络结构比较简单,给定训练数据可以通过W将v和h相互转换。

优化目标

首先引入能量函数,在一个无监督的方法中,我们的优化目标是什么呢?受统计力学的启发,整个概率图引入能量函数来描述稳定状态,在RBM中,是由可视层能量、隐藏层能量和连接部分能量构成的。
在这里插入图片描述
由能量函数可以定义(v,h)出现的联合概率,
在这里插入图片描述
实际上我们关心的是P(v)的分布,也就是上式的边缘分布,由能量函数和联合概率的定义可以推出可视层和隐藏层转换的公式,详细推导可参考[1],
在这里插入图片描述
在这里插入图片描述
至此,我们可以根据每个训练数据v求得h,也可由h计算v,那么我们怎么根据目标函数优化W、a、b呢?

其实就是最大化似然函数,之所以最大化似然函数就是让已知数据出现的概率最高来拟合训练数据吧?给定训练集合S={v1,v2…vn},最大化所有P(vi)的乘积,取ln就变成最大化下面的似然函数:
在这里插入图片描述
有了目标函数进行求梯度进行优化,但是在求梯度的过程中涉及到(v,h)的联合概率分布,需要把v、h的各种组合穷举一遍,复杂度太高,因此采用Gibbs sampling来估计。考虑到每次迭代更新都要进行Gibbs sampling迭代很多次达到稳定,并且需要大量的采样数据,所以Hinton老先生提出了对比散度算法(COntrasive Divergence)。

对比散度算法CD-K

GIbbs sampling 需要迭代很多次才能收敛,Hinton提出直接用训练样本来初始化起始状态,然后迭代采样,一般一步就可以得到较好的结果。算法流程如下图:
在这里插入图片描述
其中两个采样函数就是根据前面可视层和隐藏层的转换来采样的,有转换公式可以得到h或v每个节点的概率(0-1之间,因为过了sigmoid),所以随机生成一个0-1之间的随机数,小于该节点的概率就是1,大于就是0。

模型训练

构建好网络结构,得到目标函数,即可求梯度对训练数据优化模型参数了。
具体训练算法流程如下:
在这里插入图片描述
由此,可以训练一个RBM的网络来拟合我们的训练数据。RBM主要是构建了(v,h)之间的联合分布,根据这个联合分布我们可以用来做分类、降维、参数预训练等等。传说autoEncoder和RBM预训练初始化参数会很好地提升模型的结果,RBM可以预训练参数矩阵和a,b,没试过~可以尝试一发。

DBN

深度置信网络(Deep Belief Network),可用作非监督学习,类似于自编码器,也可用于分类。
DBN就是将多个RBM堆叠起来,前一个RBM的隐藏层作为下一个RBM的可视层,每次训练时,将下层的RBM训练好后再训练上层的RBM,每次训练一层,直至最后。

参考博客:
[1]https://blog.csdn.net/itplus/article/details/19168937
[2]https://zhuanlan.zhihu.com/p/31107178


http://chatgpt.dhexx.cn/article/1jii7WHY.shtml

相关文章

中小企业RBM结合VRRP组网

组网拓扑图 FW-A配置: sysname FW1090-A # track 1 interface GigabitEthernet1/0/1 physical ///检测上行口 # track 2 interface GigabitEthernet1/0/2 physical ///检测下行口 # ospf 1 router-id 192.168.10.254 ///OSPF发布于核心互联路由 defa…

RBM受限玻尔兹曼机

受限玻尔兹曼机(RBM) 一、RBM的网络结构 RBM的网络结构如下图所示: RBM中包括两层,即: 可见层(visible layer),图上的___v___隐藏层(hidden layer),图上的___h___ 由上图可知,在同一层中,如…

RBM

目录 总结: 伯努利-伯努利RBM 概念: 公式定义 训练过程 高斯-伯努利RBM 概念: 总结: RBM是基于能量函数假设的,优化目标是使能量函数最小化,也设定为重构的可见层等于真实值的概率最大化。在利用极…

DL:RBM 简介、网络结构

在学习Hinton的stack autoencoder算法(论文 Reducing the Dimensionality of Data with Neural Networks)之前需要了解什么是RBM,现在就我学习的情况,查找的资料(大部分来自博客、论文),简单介绍…

RBM的理解

前言 对RBM(Restricted Boltzmann Machine)的理解进行简单的总结。   主要涉及RBM的图结构,为什么场能E(v,h)要如此定义,优化的思路到底是怎么来的,MRF与MC在优化时起到怎么样的作用,CD的意义,RBM的实现。 RBM RB…

受限玻尔兹曼机(RBM)理解

受限玻尔兹曼机(RBM)多见深度学习,不过笔者发现推荐系统也有相关专家开始应用RBM。实际上,作为一种概率图模型,用在那,只要场景和数据合适都可以。有必要就RBM做一个初步了解。 1、 RBM定义 RBM记住三个要…

RBM(受限玻尔兹曼机)解析

1.RBM结构 RBM包括隐层、可见层和偏置层。 与前馈神经网络不一样,RBM在可见层和隐层间的链接方向不定的(即可以双向传播:隐层—>可见层和可见层—>隐层)和完全链接的。如下图表示了一个微型的RBM 如上图所示,…

深度学习 --- 受限玻尔兹曼机详解(RBM)

本节终于来到了重头戏受限玻尔兹曼机,为了能深入理解本节,我们深入讲了很多基础知识,这些基础知识很重要,是理解本节的基础,同时也是你学习其他算法的基础如强化学习、自然语言处理等。本节的安排是先对比一下受限玻尔…

超市进销存管理系统软件(JFrame简版)

出于对桌面软件的爱好,学习过程中使用swing做了一个简单系统,所有布局代码自己手写,未使用swing构建工具,swing构建工具会产生的代码非常糟糕 想要快速构建好看的UI组件,可以使用NetBeans,或者idea等相关插件 有兴趣…

基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

基于javaweb的超市进销存管理系统(javassmjspbootstrapjquerymysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功…

Java项目:ssm超市进销存管理系统

作者主页:夜未央5788 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 ssm超市进销存管理系统 项目介绍 超市进销存管理系统,主要分为管理员与员工两种角色:管理员主要功能模块有: 进货管理:进…

基于Spring+SpringMVC+MyBatis超市进销存管理系统

基于SSM超市进销存管理系统 一、系统介绍二、功能展示1.进货信息2.退货信息3.商品信息4.商品类别5.库存信息6.库存预警7.临期商品8.销售信息9.客户退货信息10.客户信息11.供应商信12.用户信息管理(管理员) 三、获取源码 一、系统介绍 系统主要功能&…

Java编写的超市进销存管理系统 功能非常齐全,代码可直接运行

今天为大家分享一个java语言的超市进销存管理系统,目前系统已经完成了初步功能,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步 开发环境 开发语言为Java&#xf…

基于ThinkPHP5+MySQL的超市进销存管理系统

目 录 摘 要 I Abstract II 1 前 言 1 1.1 项目开发背景 1 1.2 项目开发意义 1 1.3 主要工作 1 2 系统分析 2 2. 1 需求分析 2 2. 2 可行性分析 2 2.2.1 经济可行性 2 2.2.2 技术可行性 2 2.2.3 操作可行性 2 2.2.4 社会可行性 2 3 开发环境 3 3.1 开发工具 3 3.1.1 操作系统 3…

计算机毕业设计系列基于SSM的超市进销存管理系统

目录 一、项目介绍 二、开题报告 三、项目截图 四、源码获取 一、项目介绍 计算机毕业设计系列基于SSM的超市进销存管理系统 本项目是一款基于SSM的超市进销存管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1. 包含&…

毕设-基于SpringBoot超市进销存管理系统

环境:开发工具:idea,数据库:MySQL5.7 jdk1.8 架构:SpringBoot,前端html 主要功能 货物管理员:进货管理、退货管理等; 商品管理员:管理商品、商品类别、供应商、客户、商品…

【附源码】Java计算机毕业设计小超市进销存管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: java mybatis Maven等等组成,B/S模式 Maven管理等…

【java毕业设计】基于B/S结构+mysql的超市进销存管理系统设计与实现(程序源码)-超市进销存管理系统

基于B/S结构mysql的超市进销存管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于B/S结构mysql的超市进销存管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方…

基于PHP的超市进销存管理系统

一 项目介绍 此超市进销存管理系统比较基础,系统分为前后台,前台商品展示及下单,后台为商品的进销存管理。可搭建在phpstudy下快速部署!(附带系统说明书和PPT介绍) 技术栈: 原生phpmysqlvscode 二 主要功能 前台 1 …

java毕业设计基于ssm框架的生鲜超市进销存管理系统

目前超市越来越多,越来越普及,如何高效的管理经营超市才是成功的关键,其中对于中小型超市来说,在降低成本的前提下使用最有效的管理方式是非常重要的,所以开发中小型超市管理系统既考虑了成本相对较低又非常实用的特点。中小型超市管理系统主要包含以下几个模块:商品…