深度生成模型 - 受限玻尔兹曼机(RBM)篇

前言

受限玻尔兹曼机( Restricted Boltzmann Machine,RBM \text{Restricted Boltzmann Machine,RBM} Restricted Boltzmann MachineRBM)是深度学习领域中的一种重要模型,其起源于统计物理学,由保罗·斯模棱斯基最初提出并命名为簧风琴( Harmonium \text{Harmonium} Harmonium)。随后,在杰弗里·辛顿及其合作者的推动下,受限玻尔兹曼机因其独特的结构和高效的训练算法而逐渐受到广泛关注。

序言

受限玻尔兹曼机是一种特殊的玻尔兹曼机,其结构被简化为两层:可见层和隐藏层。这两层之间的神经元是全连接的,但每一层内的神经元之间并没有连接,这种结构使得 RBM \text{RBM} RBM成为了一种二分图模型。 RBM \text{RBM} RBM的神经元都是二值化的,只有激活( 1 1 1)和不激活( 0 0 0)两种状态,这种特性使得 RBM \text{RBM} RBM在处理二值数据时具有独特的优势。

受限玻尔兹曼机(RBM)

  • 受限玻尔兹曼机以簧风琴 ( harmonium \text{harmonium} harmonium) 之名 ( Smolensky, 1986 \text{Smolensky, 1986} Smolensky, 1986) 面世之后,成为了深度概率模型中最常见的组件之一。

    • 我们之前在深度学习中的结构化概率模型 - 结构化概率模型的深度学习方法篇 - 受限玻尔兹曼机实例简要介绍了 RBM \text{RBM} RBM
    • 在这里我们回顾以前的内容并探讨更多的细节。
    • RBM \text{RBM} RBM是包含一层可观察变量和单层潜变量的无向概率图模型。
    • RBM \text{RBM} RBM可以堆叠起来(一个在另一个的顶部)形成更深的模型。
    • 图例1展示了一些例子。
    • 特别地,图例1 - a 显示 RBM \text{RBM} RBM本身的图结构。
    • 它是一个二分图,观察层或潜层中的任何单元之间不允许存在连接。
  • 我们从二值版本的受限玻尔兹曼机开始,但如我们之后所见,这还可以扩展为其他类型的可见和隐藏单元。

  • 更正式地说,令观察层由一组 n v n_v nv 个二值随机变量组成,我们统称为向量 v \textbf{v} v。我们将 n h n_h nh 个二值随机变量的潜在或隐藏层记为 h \boldsymbol{h} h

  • 就像普通的玻尔兹曼机, 受限玻尔兹曼机也是基于能量的模型,其联合概率分布由能量函数指定:
    P ( v = v , h = h ) = 1 Z e ( − E ( v , h ) ) P(\textbf{v}=\boldsymbol{v},\textbf{h}=\boldsymbol{h})=\displaystyle\frac{1}{Z}e^{(-E(\boldsymbol{v},\boldsymbol{h}))} P(v=v,h=h)=Z1e(E(v,h)) — 公式1 \quad\textbf{---\footnotesize{公式1}} 公式1

  • RBM \text{RBM} RBM的能量函数由下给出:
    E ( v , h ) = − b ⊤ v − c ⊤ h − v ⊤ w h E(\boldsymbol{v},\boldsymbol{h})=-\boldsymbol{b}^\top\boldsymbol{v}-\boldsymbol{c}^\top\boldsymbol{h}-\boldsymbol{v}^\top\boldsymbol{w}\boldsymbol{h} E(v,h)=bvchvwh — 公式2 \quad\textbf{---\footnotesize{公式2}} 公式2

  • 其中, Z Z Z是被称为配分函数的归一化常数:
    Z = ∑ v ∑ h e − E ( v , h ) Z=\sum\limits_{\boldsymbol{v}}\sum\limits_{\boldsymbol{h}}e^{-E(\boldsymbol{v},\boldsymbol{h})} Z=vheE(v,h) — 公式3 \quad\textbf{---\footnotesize{公式3}} 公式3

  • 从配分函数 Z Z Z 的定义显而易见,计算 Z Z Z 的朴素方法(对所有状态进行穷举求和)计算上可能是难以处理的,除非有巧妙设计的算法可以利用概率分布中的规则来更快地计算 Z Z Z

    • 在受限玻尔兹曼机的情况下, Long and Servedio (2010) \text{Long and Servedio (2010)} Long and Servedio (2010) 正式证明配分函数 Z Z Z 是难解的。
    • 难解的配分函数 Z Z Z 意味着归一化联合概率分布 P ( v ) P(\boldsymbol{v}) P(v) 也难以评估。

  • 图例1:可以用受限玻尔兹曼机构建的模型示例。
    • 可以用受限玻尔兹曼机构建的模型示例
      在这里插入图片描述

    • 说明:

      • 图(a)
        • 受限玻尔兹曼机本身是基于二分图的无向图模型,在图的一部分具有可见单元,另一部分具有隐藏单元。
        • 可见单元之间没有连接, 隐藏单元之间也没有任何连接。
        • 通常每个可见单元连接到每个隐藏单元,但也可以构造稀疏连接的 RBM \text{RBM} RBM,如卷积 RBM \text{RBM} RBM
      • 图(b)
        • 深度信念网络是涉及有向和无向连接的混合图模型。
        • RBM \text{RBM} RBM一样,它也没有层内连接。
        • 然而, DBN \text{DBN} DBN具有多个隐藏层,因此隐藏单元之间的连接在分开的层中。
        • 深度信念网络所需的所有局部条件概率分布都直接复制 RBM \text{RBM} RBM的局部条件概率分布。
        • 或者,我们也可以用完全无向图表示深度信念网络,但是它需要层内连接来捕获父节点间的依赖关系。
      • 图©
        • 深度玻尔兹曼机是具有几层潜变量的无向图模型。
        • RBM \text{RBM} RBM DBN \text{DBN} DBN一样, DBM \text{DBM} DBM也缺少层内连接。
        • DBM \text{DBM} DBM RBM \text{RBM} RBM的联系不如 DBN \text{DBN} DBN紧密。
        • 当从 RBM \text{RBM} RBM堆栈初始化 DBM \text{DBM} DBM时,有必要对 RBM \text{RBM} RBM的参数稍作修改。
        • 某些种类的 DBM \text{DBM} DBM可以直接训练,而不用先训练一组 RBM \text{RBM} RBM

条件分布

训练受限玻尔兹曼机

  • 因为 RBM \text{RBM} RBM允许以高效 MCMC \text{MCMC} MCMC采样( 块吉布斯采样的形式)对 P ~ ( v ) \tilde{P}(\boldsymbol{v}) P~(v) 进行高效评估和求导,所以可以简单地使用面对配分函数中描述的任意训练具有难解配分函数模型的技术。
    • 这包括 CD \text{CD} CD SML \text{SML} SML PCD \text{PCD} PCD)、比率匹配等。
    • 与深度学习中使用的其他无向模型相比, RBM \text{RBM} RBM可以相对直接地训练,因为我们可以以闭解形式计算 P ( h ∣ v ) P(\textbf{h} \mid \boldsymbol{v}) P(hv)
    • 其他一些深度模型,如深度玻尔兹曼机,同时具备难处理的配分函数和难以推论的难题。

总结

受限玻尔兹曼机作为一种无向概率图模型,在机器学习和深度学习领域具有广泛的应用。其结构简洁且训练高效,能够学习到数据中的潜在表示,并用于降维、分类、协同过滤、特征学习和生成模型等多种任务。 RBM \text{RBM} RBM的能量函数和概率分布定义为其提供了坚实的理论基础,而对比散度( Contrastive Divergence,CD \text{Contrastive Divergence,CD} Contrastive DivergenceCD)算法的出现则进一步推动了 RBM \text{RBM} RBM的广泛应用。

随着深度学习技术的不断发展,受限玻尔兹曼机将在更多领域展现其潜力和价值,为人工智能技术的进步贡献更多力量。

往期内容回顾

深度学习中的结构化概率模型 - 结构化概率模型的深度学习方法篇
面对配分函数 - 引言篇

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【再谈设计模式】单例模式~唯一性的守护者

一、引言 在软件工程中,软件开发,设计模式是提高代码复用性和可维护性的有效工具。单例模式(Singleton Pattern)作为一种创建型设计模式,旨在确保一个类只有一个实例,并提供对该实例的全局访问。这一模式在…

如何在 Elasticsearch Ruby 客户端中使用 ES|QL Helper

作者:来自 Elastic Fernando Briano 了解如何使用 Elasticsearch Ruby 客户端编写 ES|QL 查询并处理其结果。 简介 Elasticsearch Ruby 客户端可用于编写 EQ|QL 查询,使处理从 esql.query 返回的数据更加容易。ES|QL 允许开发人员通过查询过滤、转换和分…

redis详细教程(3.ZSet,Bitmap,HyperLogLog)

ZSet Redis 的 ZSet(有序集合)是一种特殊的数据类型,它允许存储一系列不重复的字符串元素,并为每个元素关联一个分数(score)。这个分数用于对集合中的元素进行排序。ZSet 的特点是: 唯一性&am…

MYSQL-SQL-03-DQL(Data Query Language,数据查询语言)(单表查询)

DQL(数据查询语言) DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。 查询关键字: SELECT 在一个正常的业务系统中,查询操作的频次是要远高于增删改的,当我们去访…

Cisco Packet Tracer 8.0 路由器的基本配置和Telnet设置

文章目录 构建拓扑图配置IP地址配置路由器命令说明测试效果 构建拓扑图 1,添加2811路由器。 2,添加pc0。 3,使用交叉线连接路由器和pc(注意线路端口)。 4,使用配置线连接路由器和pc(注意线路…

优化网站结构提升用户体验的关键要素

内容概要 在数字时代,网站的架构和用户体验密切相关。一个合理的网站结构不仅能帮助用户快速找到所需信息,还能提升整体的访问满意度。为了达到这一目的,网站需要强调几个关键要素。 首先,清晰的导航设计至关重要。导航应当直观…

Android Gradle

#1024程序员节|征文# Gradle 是一款强大的自动化构建工具,广泛应用于 Android 应用开发。它通过灵活的配置和丰富的插件系统,为项目构建提供了极大的便利。本文只是简单的介绍 Gradle 在 Android 开发中的使用,包括其核心概念、构…

微积分复习笔记 Calculus Volume 1 - 3.8 Implicit Differentiation

3.8 Implicit Differentiation - Calculus Volume 1 | OpenStax

Java——lambda表达式和StreamAPI

一、lambda 1. lambda表达式 1.1 Lambda表达式的使用举例: (o1,02)->Integer.compare(o1,o2); 1.2 Lambda表达式的格式举例: Lambda形参列表->lambda 1.3 Lambda表达式的格式 lambda操作符或箭头操作符 的左边:lambda形参列表,对应着要重写的接口中的…

django游戏门户系统

想做毕业设计但还没有头绪?🙋‍♂️django游戏门户系统了解一下!这个系统不仅功能全面,还能轻松解决你的项目选题难题! 我们这个基于Django开发的游戏门户系统提供了用户注册、登录、内容发布以及管理功能&#xff0c…

大数据日志处理框架ELK方案

介绍应用场景大数据ELK日志框架安装部署 一,介绍 大数据日志处理框架ELK(Elasticsearch、Logstash、Kibana)是一套完整的日志集中处理方案,以下是对其的详细介绍: 一、Elasticsearch(ES) 基本…

【SQL实验】表的更新和简单查询

完整代码在文章末尾 在上次实验创建的educ数据库基础上,用SQL语句为student表、course表和sc表中添加以下记录 【SQL实验】数据库、表、模式的SQL语句操作_创建一个名为educ数据库,要求如下: (下面三个表中属性的数据类型需要自己设计合适-CSDN博客在这篇博文中已经…

LeetCode反转链表

题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例 3&#…

011:软件卸载工具TotalUninstall安装教程

摘要:本文详细介绍软件卸载工具TotalUninstall安装流程。 一、软件介绍 TotalUninstall是一款功能强大的卸载与清理工具,它能够彻底卸载不需要的应用程序,并清除相关的注册表项、文件残留和临时文件,确保系统干净无残留&#xff…

美畅物联丨视频上云网关如何配置上级联网云平台

在当今的智慧交通与安防监控体系中,视频上云网关发挥着至关重要的作用。以美畅视频上云网关为例,具备强大的兼容性,能够对接来自不同厂家、不同型号的视频设备,将这些设备输出的各异视频流进行汇聚整合。在获取摄像机视频流后&…

深入理解JavaScript:两大编程思想和ES6类以及对象概念解析

文章目录 两大编程思想ES6中的类和对象 两大编程思想 面向过程 (Procedural-Oriented Programming,POP) 定义:面向过程的编程是一种基于过程调用的编程范式,它将程序看作是一系列函数或过程的集合。每个函数负责完成…

推荐一个好用的VSCode插件

还在花馒头使用 Copilot?别再做大冤种啦! 现在有个更好用的AI编程助手--豆包 MarsCode!它不仅完全免费,而且功能强大,让你在编程时得心应手!再也不用担心高昂的订阅费用,省下来的馒头&#xff…

衡石分析平台系统分析人员手册-图表查询应用

查询应用​ 在业务分析过程中,查询明细数据有时需要满足如下场景: 在自助化的操作界面中用户可以自主选择查询字段及相应的筛选条件进行查询。用户通过简单的鼠标点击能够快速获得所需数据,并提供聚合计算等高级功能。 上述场景可以通过查…

数据结构与算法-21算法专项(中文分词)(END)

中文分词 搜索引擎是如何理解我们的搜索语句的? mysql中使用 【like “%中国%”】,这样的使用方案 缺点1:mysql索引会失效缺点2:不能模糊,比如我搜湖南省 就搜不到湖南相关的 1 trie树 Trie树,又称前缀树…

C++ 中的可调用对象

目录 一.可调用对象简介 1.什么是可调用对象? 2.可调用对象有什么用? 二.函数指针和仿函数 1.函数指针 a.函数指针的使用语法 b.函数指针的应用场景 2.仿函数 a.仿函数的基本概念 b.仿函数的优点 三.lambda表达式和function 1.lambda表达式 …