深度生成模型 - 深度信念网络(DBN)篇

news/2024/10/30 9:10:14/

序言

深度信念网络( Deep Belief Networks,DBN \text{Deep Belief Networks,DBN} Deep Belief NetworksDBN)作为深度学习领域的一个重要里程碑,自 2006 2006 2006年由 Geoffrey Hinton \text{Geoffrey Hinton} Geoffrey Hinton及其研究小组提出以来,一直受到广泛的关注和研究。 DBN \text{DBN} DBN由多层受限玻尔兹曼机( Restricted Boltzmann Machines,RBMs \text{Restricted Boltzmann Machines,RBMs} Restricted Boltzmann MachinesRBMs)堆叠而成,旨在通过无监督学习有效地训练多层神经网络。这种网络结构通过逐层训练 RBMs \text{RBMs} RBMs来学习数据的层次结构表示,每一层都学习数据中的高级抽象特征。 DBN \text{DBN} DBN不仅结合了深度神经网络和信念网络的优点,还克服了传统神经网络训练困难的问题,为深度学习的发展奠定了重要基础。

深度信念网络

  • 深度信念网络 ( deep belief network, DBN \text{deep belief network, DBN} deep belief network, DBN) 是第一批成功应用深度架构训练的非卷积模型之一 ( Hinton et al., 2006a; Hinton, 2007b \text{Hinton et al., 2006a; Hinton, 2007b} Hinton et al., 2006a; Hinton, 2007b)。

    • 2006 2006 2006 年深度信念网络的引入开始了当前深度学习的复兴。
    • 在引入深度信念网络之前,深度模型被认为太难以优化。
    • 具有凸目标函数的核机器占据了研究前景。
    • 深度信念网络在 MNIST \text{MNIST} MNIST 数据集上表现超过内核化支持向量机,以此证明深度架构是能够成功的 ( Hinton et al., 2006a \text{Hinton et al., 2006a} Hinton et al., 2006a)。
    • 尽管现在与其他无监督或生成学习算法相比,深度信念网络大多已经失去了青睐并很少使用,但它们在深度学习历史中的重要作用仍应该得到承认。
  • 深度信念网络是具有若干潜变量层的生成模型。

    • 潜变量通常是二值的,而可见单元可以是二值或实数。
    • 尽管构造连接比较稀疏的 DBN \text{DBN} DBN是可能的,但在一般的模型中,每层的每个单元连接到每个相邻层中的每个单元(没有层内连接)。
    • 顶部两层之间的连接是无向。
    • 而所有其他层之间的连接是有向的,箭头指向最接近数据的层。
    • 见深度生成模型 - 受限玻尔兹曼机(RBM)篇 - 图例1-b的例子。
  • 具有 l l l 个隐藏层的 DBN \text{DBN} DBN包含 l l l 个权重矩阵: W ( 1 ) , … , W ( l ) \boldsymbol{W}^{(1)},\dots,\boldsymbol{W}^{(l)} W(1),,W(l)。同时也包含 l + 1 l + 1 l+1个偏置向量: b ( 0 ) , … , b ( l ) \boldsymbol{b}^{(0)},\dots,\boldsymbol{b}^{(l)} b(0),,b(l),其中 b ( 0 ) \boldsymbol{b}^{(0)} b(0) 是可见层的偏置。 DBN \text{DBN} DBN表示的概率分布由下式给出:
    P ( h ( l ) , h ( h − 1 ) ) ∝ e ( b ( l ) ⊤ h ( l ) + b ( l − 1 ) ⊤ + h ( l − 1 ) ⊤ W ( l ) h ( l ) ) P(\boldsymbol{h}^{(l),\boldsymbol{h}^{(h-1)}})\propto e^{\big(\boldsymbol{b}^{(l)^\top}\boldsymbol{h}^{(l)}+\boldsymbol{b}^{(l-1)^\top}+\boldsymbol{h}^{(l-1)^\top}\boldsymbol{W}^{(l)}\boldsymbol{h}^{(l)}\big)} P(h(l),h(h1))e(b(l)h(l)+b(l1)+h(l1)W(l)h(l)) — 公式1 \quad\textbf{---\footnotesize{公式1}} 公式1
    P ( h i ( k ) = 1 ∣ h ( k + 1 ) ) = σ ( b i ( k ) + W : , i ( k + 1 ) ⊤ h ( k + 1 ) ) ∀ i , ∀ k ∈ 1 , … , l − 2 P(h_i^{(k)}=1\mid\boldsymbol{h}^{(k+1)})=\sigma(b_i^{(k)}+\boldsymbol{W}_{:,i}^{(k+1)^\top}\boldsymbol{h}^{(k+1)}) \forall_i,\forall_k\in 1,\dots,l-2 P(hi(k)=1h(k+1))=σ(bi(k)+W:,i(k+1)h(k+1))i,k1,,l2 — 公式2 \quad\textbf{---\footnotesize{公式2}} 公式2
    P ( v i = 1 ∣ h ( 1 ) ) = σ ( b i ( 0 ) + W : , i ( 1 ) ⊤ h ( 1 ) ) ∀ i P(v_i=1\mid\boldsymbol{h}^{(1)})=\sigma(b_i^{(0)}+\boldsymbol{W}_{:,i}^{(1)^\top}\boldsymbol{h}^{(1)})\forall_i P(vi=1h(1))=σ(bi(0)+W:,i(1)h(1))i — 公式3 \quad\textbf{---\footnotesize{公式3}} 公式3

  • 在实值可见单元的情况下,替换:
    v ∼ N ( v ; b ( 0 ) + W ( 1 ) ⊤ h ( 1 ) , β − 1 ) \textbf{v}\sim \mathcal{N}(\boldsymbol{v};\boldsymbol{b}^{(0)}+\boldsymbol{W}^{(1)^\top}\boldsymbol{h}^{(1)},\beta^{-1}) vN(v;b(0)+W(1)h(1),β1) — 公式4 \quad\textbf{---\footnotesize{公式4}} 公式4

  • 为便于处理, β \beta β 为对角形式。至少在理论上,推广到其他指数族的可见单元是直观的。只有一个隐藏层的 DBN \text{DBN} DBN只是一个 RBM \text{RBM} RBM

  • 为了从 DBN \text{DBN} DBN中生成样本,我们先在顶部的两个隐藏层上运行几个 Gibbs \text{Gibbs} Gibbs采样步骤。这个阶段主要从 RBM \text{RBM} RBM(由顶部两个隐藏层定义)中采一个样本。然后,我们可以对模型的其余部分使用单次原始采样,以从可见单元绘制样本。

  • 深度信念网络引发许多与有向模型和无向模型同时相关的问题。

  • 由于每个有向层内的解释远离效应,并且由于无向连接的两个隐藏层之间的相互作用, 深度信念网络中的推断是难解的。评估或最大化对数似然的标准证据下界也是难以处理的,因为证据下界基于大小等于网络宽度的团的期望。

  • 评估或最大化对数似然,不仅需要面对边缘化潜变量时难以处理的推断问题,而且还需要面对顶部两层无向模型内难处理的配分函数问题。

  • 为训练深度信念网络,我们可以先使用对比散度或随机最大似然方法训练 RBM \text{RBM} RBM以最大化 E v ∼ p data log ⁡ p ( v ) \mathbb{E}_{\textbf{v}\sim p_{\text{data}}} \log p(\boldsymbol{v}) Evpdatalogp(v) RBM \text{RBM} RBM的参数定义了 DBN \text{DBN} DBN第一层的参数。然后,第二个 RBM \text{RBM} RBM训练为近似最大化:
    E v ∼ p data E h ( 1 ) ∼ p ( 1 ) ( h ( 1 ) ∣ v ) log ⁡ p ( 2 ) ( h ( 1 ) ) \mathbb{E}_{\textbf{v}\sim p_{\text{data}}}\mathbb{E}_{\textbf{h}^{(1)}\sim p^{(1)}(\boldsymbol{h}^{(1)}\mid\boldsymbol{v})}\log p^{(2)}(\boldsymbol{h}^{(1)}) EvpdataEh(1)p(1)(h(1)v)logp(2)(h(1)) — 公式5 \quad\textbf{---\footnotesize{公式5}} 公式5

  • 其中 p ( 1 ) p^{(1)} p(1) 是第一个RBM表示的概率分布, p ( 2 ) p^{(2)} p(2) 是第二个 RBM \text{RBM} RBM表示的概率分布。

    • 换句话说,第二个RBM被训练为模拟由第一个 RBM \text{RBM} RBM的隐藏单元采样定义的分布,而第一个 RBM \text{RBM} RBM由数据驱动。
    • 这个过程能无限重复,从而向 DBN \text{DBN} DBN添加任意多层,其中每个新的 RBM \text{RBM} RBM建模前一个的样本。
    • 每个 RBM \text{RBM} RBM定义 DBN \text{DBN} DBN的另一层。
    • 这个过程可以被视为提高数据在 DBN \text{DBN} DBN下似然概率的变分下界 ( Hinton et al., 2006a \text{Hinton et al., 2006a} Hinton et al., 2006a)。
  • 在大多数应用中,对 DBN \text{DBN} DBN进行贪婪分层训练后,不需要再花功夫对其进行联合训练。然而,使用 wake sleep \text{wake sleep} wake sleep算法对其进行生成微调是可能的。

  • 训练好的 DBN \text{DBN} DBN可以直接用作生成模型,但是 DBN \text{DBN} DBN的大多数兴趣来自于它们改进分类模型的能力。我们可以从 DBN \text{DBN} DBN获取权重,并使用它们定义 MLP \text{MLP} MLP
    h ( 1 ) = σ ( b ( 1 ) + v ⊤ W ( 1 ) ) \boldsymbol{h}^{(1)}=\sigma(b^{(1)}+\boldsymbol{v}^\top\boldsymbol{W}^{(1)}) h(1)=σ(b(1)+vW(1)) — 公式6 \quad\textbf{---\footnotesize{公式6}} 公式6
    h ( l ) = σ ( b i ( l ) + h ( l − 1 ) ⊤ W ( l ) ) ∀ l ∈ 2 , … , m \boldsymbol{h}^{(l)}=\sigma(b_i^{(l)}+\boldsymbol{h}^{(l-1)^\top}\boldsymbol{W}^{(l)}) \forall_l\in2,\dots,m h(l)=σ(bi(l)+h(l1)W(l))l2,,m — 公式7 \quad\textbf{---\footnotesize{公式7}} 公式7

  • 利用 DBN \text{DBN} DBN的生成训练后获得的权重和偏置初始化该 MLP \text{MLP} MLP之后,我们可以训练该 MLP \text{MLP} MLP来执行分类任务。这种 MLP \text{MLP} MLP的额外训练是判别微调的示例。

  • 与近似推断中从基本原理导出的许多推断方程相比这种特定选择的 MLP \text{MLP} MLP有些任意。

    • 这个 MLP \text{MLP} MLP是一个启发式选择,似乎在实践中工作良好,并在文献中一贯使用。
    • 许多近似推断技术是由它们在一些约束下在对数似然上找到最大紧变分下界的能力所驱动的。
    • 我们可以使用 DBN \text{DBN} DBN MLP \text{MLP} MLP定义的隐藏单元的期望,构造对数似然的变分下界,但这对于隐藏单元上的任何概率分布都是如此,并没有理由相信该 MLP \text{MLP} MLP提供了一个特别的紧界。
    • 特别地, MLP \text{MLP} MLP忽略了 DBN \text{DBN} DBN图模型中许多重要的相互作用。
    • MLP \text{MLP} MLP将信息从可见单元向上传播到最深的隐藏单元,但不向下或侧向传播任何信息。
    • DBN \text{DBN} DBN图模型解释了同一层内所有隐藏单元之间的相互作用以及层之间的自顶向下的相互作用。
  • 虽然 DBN \text{DBN} DBN的对数似然是难处理的,但它可以使用 AIS \text{AIS} AIS近似 ( Salakhutdinov and Murray, 2008 \text{Salakhutdinov and Murray, 2008} Salakhutdinov and Murray, 2008)。通过近似,可以评估其作为生成模型的质量。

  • 术语 “深度信念网络’’ 通常不正确地用于指代任意种类的深度神经网络,甚至没有潜变量意义的网络。这个术语应特指最深层中具有无向连接,而在所有其他连续层之间存在向下有向连接的模型。

  • 这个术语也可能导致一些混乱,因为术语 ‘‘信念网络’’ 有时指纯粹的有向模型,而深度信念网络包含一个无向层。 深度信念网络也与动态贝叶斯网络( dynamic Bayesian networks \text{dynamic Bayesian networks} dynamic Bayesian networks) ( Dean and Kanazawa, 1989 \text{Dean and Kanazawa, 1989} Dean and Kanazawa, 1989) 共享首字母缩写 DBN \text{DBN} DBN,它们是表示马尔可夫链的贝叶斯网络。

总结

深度信念网络 DBN \text{DBN} DBN在多个方面展现了其强大的能力和广泛的应用前景。首先, DBN \text{DBN} DBN通过逐层预训练的方式,使得深层神经网络的训练变得更为稳定和高效。在预训练阶段,每个 RBM \text{RBM} RBM独立地进行无监督训练,学习数据的分布,为后续的有监督微调提供了良好的初始化参数。这种训练方式不仅提高了模型的泛化能力,还使得 DBN \text{DBN} DBN在处理高维数据和未标记数据时表现出色。

其次, DBN \text{DBN} DBN具备生成模型的特性,能够基于学习到的数据表示生成新的数据示例。这一点与纯粹的判别模型如卷积神经网络( CNN \text{CNN} CNN)和循环神经网络( RNN \text{RNN} RNN)不同,为数据分析和合成提供了更多的可能性。

此外, DBN \text{DBN} DBN已广泛应用于图像识别、自然语言处理、推荐系统、语音识别等多个领域。随着技术的不断发展, DBN \text{DBN} DBN有望在更多领域得到应用和发展,为机器学习人工智能的进步做出更大的贡献。然而, DBN \text{DBN} DBN也存在一些潜在的缺点,如训练时间长、计算复杂度高以及易过拟合等,这些问题需要在未来的研究中得到进一步的解决和优化。

往期内容回顾

深度生成模型 - 受限玻尔兹曼机(RBM)篇
近似推断 - 引言篇


http://www.ppmy.cn/news/1543058.html

相关文章

Java 实现协同过滤算法推荐算法

1. 什么是协同过滤 协同过滤主要分为两种类型: 基于用户的协同过滤:根据用户之间的相似性推荐物品。例如,如果用户A和用户B的评分相似,那么用户A喜欢的物品也可能会被推荐给用户B。 基于物品的协同过滤:根据物品之间…

基于uniapp微信小程序的校园二手书交易系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Flume的安装配置

一、上传解压 tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /usr/local/soft/#***在环境变量中增加如下命令,可以使用 soft 快速切换到 /usr/local/soft***alias softcd /usr/local/soft/ 二、配置环境变量 soft #重命名 mv apache-flume-1.9.0-bin/ flume-1.9.0…

用Python在Excel工作表中添加、修改及删除超链接

在创建Excel工作簿时,内部文档的互链、报告自动化生成或是创建外部资源快速访问路径是比较常见的需求。通过超链接,我们可以将工作表与外部资源、文件或网页无缝连接,提升数据的交互性和可读性。无论是为了快速导航、动态更新内容&#xff0c…

更强的可操作性!Midjourney两大重要功能更新!

​ 2024年10月24日,Midjourney在其官方渠道发布了令人振奋的更新,推出了三项全新功能,全面提升了用户的创作体验。这一升级无疑再次巩固了Midjourney在AI生成图像领域的领先地位。尤其是其中两个主要功能——外部图像编辑功能和图像重新纹理模…

UML外卖系统报告(包含具体需求分析)

1 系统背景 随着互联网技术的快速发展,外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制,而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来,…

Django+Vue全栈开发项目入门(四)

前端和服务端进行接口交互是Web开发中的核心环节,它涉及数据的传输、处理和展示。 接口交互的基本概念 前端,即用户界面层,负责展示数据和接收用户输入;服务端(或称为后端),即服务器层&#x…

DIY可视化-uniapp悬浮菜单支持拖动、吸附-代码生成器

在Uniapp中,悬浮菜单支持拖动和吸附功能,可以为用户带来更加灵活和便捷的操作体验。以下是对这两个功能的详细解释: 悬浮菜单支持拖动 提高用户体验:用户可以根据自己的需要,将悬浮菜单拖动到屏幕上的任意位置&#x…