深度信念网络

  • 1. 玻尔兹曼机
    • 1.1 生成模型
    • 1.2 能量最小化与模拟退火
    • 1.3 参数学习
  • 2. 受限玻尔兹曼机
    • 2.1 生成模型
    • 2.2 参数学习
      • 2.2.1 对比散度学习算法
    • 2.3 受限玻尔兹曼机的类型
  • 3. 深度信念网络
    • 3.1 生成模型
    • 3.2 参数学习
      • 3.2.1 逐层预训练
      • 3.2.1 精调

  对于复杂的数据分布,通常只能观测到有限的局部特征,且含有噪声,如要对这个数据分布进行建模,要挖掘可观测变量之间的依赖关系,以及可观测变量背后隐藏的内部表示
  本文介绍可有效学习变量之间复杂依赖关系的概率图模型( 深度信念网络)以及两基础模型( 玻尔兹曼机受限玻尔兹曼机)。深度信念网络含很多隐变量,可有效学习数据的内部特征表示,也可以作为一种非线性降维方法,学到的特征包含了数据的更高级、有价值的信息,故十分有助于后续的分类和回归任务。
  玻尔兹曼机、深度信念网络都是生成模型,借助隐变量来描述复杂的数据分布,共同问题都是推断和学习问题,常通过MCMC方法来近似估计。

1. 玻尔兹曼机

  玻尔兹曼机(Boltzmann Machine)可看做一个随机动力系统(Stochastic Dynamical System)。每个变量转态以一定概率收到其他变量影响,可用概率无向图模型来描述,一个具有K个节点(变量)的玻尔兹曼机满足三个性质:

  1. 每个随便变量是二值的,所有随机变量可用 X∈{0,1}KX\in\{0,1\}^KX∈{0,1}K表示,其中可观测变量表示为 V\pmb{V}VVV,隐变量表示为H\pmb{H}HHH
  2. 所有节点之间是全连接的,每个变量 XiX_iXi​的取值依赖于所有其他变量Xi\pmb{X}_{\\i}XXXi​
  3. 每两个变量之间的相互影响是(Xi→Xj,Xj→Xi)(X_i \to X_j ,X_j \to X_i)(Xi​→Xj​,Xj​→Xi​)对称的

  包含3个可观测变量和3个隐变量的玻尔兹曼机图示:

  随机向量 X\pmb{X}XXX的联合概率密度由玻尔兹曼分布得到,即:

其中 Z 为配分函数,T表示温度,能量函数 E(x)E(\pmb{x})E(xxx)的定义为:

其中 wijw_{ij}wij​是两个变量 xix_ixi​和xjx_jxj​之间的连接权重,xi∈{0,1}x_i \in \{0,1\}xi​∈{0,1}表示状态,bib_ibi​是变量xix_ixi​的偏置。
  如果XiX_iXi​和XjX_jXj​的取值都为1时,一个正的权重 wij>0w_{ij}>0wij​>0会使得玻尔兹曼机的能量下降,发生的概率变大;相反,一负的权重会使得玻尔兹曼机的能量上升,发生的概率变小。故如果令玻尔兹曼机中每个变量XiX_iXi​代表一个基本假设, 取值为1或0分别表示模型接受或拒绝该假设,那么变量之间连接的权重代表了两个假设之间的弱约束关系。连接权重可正可负的实数:正的权重表示两个假设可以相互支持,或一个假设被接受另一个也很可能被接受,相反,负的权重表示两个假设不能同时被接受。

  玻尔兹曼机可用来解决两类问题:

  1. 搜索问题:当给定变量之间的连接权重时,需找到一组二值向量,使得整个网络的能量最低
  2. 学习问题:当给定变量的多组观测时,学习网络的最优权重

1.1 生成模型

  在玻尔兹曼机中,配分函数Z通常难以计算,因此,联合概率分布p(x)p(\pmb{x})p(xxx)一般通过MCMC方法来近似,生成一组服从p(x)p(\pmb{x})p(xxx)分布的样本。下面介绍基于吉布斯采样的样本生成方法

全条件概率 吉布斯采样需要计算每个变量 XiX_iXi​ 的全条件概率 p(xi∣xi)p(x_i|\pmb{x}_{\\i})p(xi​∣xxxi​),其中 xi\pmb{x}_{\\i}xxxi​表示除变量XiX_iXi​ 外其他变量的取值

吉布斯采样 玻尔兹曼机的吉布斯采样过程为:随机选择一个变量 XiX_iXi​,然后根据其全条件概率 p(xi∣xi)p(x_i|\pmb{x}_{\\i})p(xi​∣xxxi​)来设置其状态,即以p(xi=1∣xi)p(x_i=1|\pmb{x}_{\\i})p(xi​=1∣xxxi​)的概率将变量 XiX_iXi​设为1,否则设为0.在固定温度T的情况下,在运行足够时间之后,玻尔兹曼机会达到热平衡。此时,二和全局状态的概率服从玻尔兹曼机 p(x)p(\pmb{x})p(xxx),只与系统的能量有关,与初始状态无关。
  要使得玻尔兹曼机到达热平衡,其收敛速度和温度T相关。
  当系统温度非常高 T→∞T \to \inftyT→∞时,p(xi=1∣xi)→0.5p(x_i=1|\pmb{x}_{\\i}) \to 0.5p(xi​=1∣xxxi​)→0.5,即每个变量状态的改变十分容易,每一种系统状态都是一样的,从而很快可达到热平衡。
  当系统温度非常低 T→0T \to 0T→0,如果ΔEi(xi)>0\Delta E_i(\pmb{x}_{\\i})>0ΔEi​(xxxi​)>0,则p(xi=1∣xi)→1p(x_i=1|\pmb{x}_{\\i}) \to 1p(xi​=1∣xxxi​)→1;如果ΔEi(xi)<0\Delta E_i(\pmb{x}_{\\i})<0ΔEi​(xxxi​)<0,则p(xi=1∣xi)→0p(x_i=1|\pmb{x}_{\\i}) \to 0p(xi​=1∣xxxi​)→0,即:

因此,当 T→0T\to0T→0时,随机性方法变成了确定性方法,这时,玻尔兹曼机退化成一个Hopfield网络。
  Hopfield网络是一确定性的动力系统,而玻尔兹曼机是一种随机性的动力系统,Hopfield网络的每次状态更新都会使得系统的能量降低,而玻尔兹曼机则以一定概率事系统能量上升,下图是Hopfield网络和玻尔兹曼机运行时系统能量变化对比:

1.2 能量最小化与模拟退火

  在一个动力系统中,找到一个状态使系统能量最小是一个十分重要的优化问题。如动力系统是确定性的,如Hopfield网络,一个简单(但低效)的能量最小化是随机选择一个变量,其他变量保持不变,将这个能量设为使网络能量更低的状态。当每个变量XiX_iXi​取值为0,1{0,1}0,1时,如果能量差异ΔEi(xi)>0\Delta E_i(\pmb{x}_{\\i})>0ΔEi​(xxxi​)>0,则设Xi=1X_i=1Xi​=1,否则Xi=0X_i=0Xi​=0。
  这种方法的解是局部最优的,为跳出局部最优,必须允许偶尔可以将一个变量设为使得能量变高的状态。故引入一定的随机性,以σ(ΔEi(xi)T)\sigma(\frac{\Delta E_i (\pmb{x}_{\\i})}{T})σ(TΔEi​(xxxi​)​)的概率将变量 Xi=1X_i=1Xi​=1,否则Xi=0X_i=0Xi​=0。类似吉布斯采样过程。
  要使动力系统达到热平衡,温度T选择十分关键,一个这种方法是让系统刚开始在一个比较高的温度下运行达到热平衡,然后逐渐降低,直到系统在一个比较低的温度下运行到达热平衡。这样就可以得到一个能量最小的分布。这个过程是模拟退火(Simulated Annealing)。
  模拟退火是一种寻找全局最优的近似方法,名字来源于冶金学“退火”,即将材料加热后再以一定的速度退火冷却,减少晶格中的缺陷。可证明模拟退火算法所得到解依概率收敛到全局最优解。

1.3 参数学习

  不失一般性,假设一个玻尔兹曼机有K个变量,包括KvK_vKv​个可观测变量 v∈{0,1}Kv\pmb{v}\in\{0,1\}^{K_v}vvv∈{0,1}Kv​和KhK_hKh​个隐变量h∈{0,1}Kh\pmb{h}\in\{0,1\}^{K_h}hhh∈{0,1}Kh​。
  给定一组可观测的向量 D∈{v^(1),v^(2),⋯,v^(N)}D\in\{\hat{\pmb{v}}^{(1)},\hat{\pmb{v}}^{(2)},\cdots,\hat{\pmb{v}}^{(N)}\}D∈{vvv^(1),vvv^(2),⋯,vvv^(N)}作为训练集,要学习玻尔兹曼机的参数 W\pmb{W}WWW和b\pmb{b}bbb使得训练集中所有样本的对数似然函数最大,训练集的对数似然函数定义为:

  对数似然函数对参数θ\thetaθ的偏导数为:


其中 p^(v)\hat{p}(\pmb{v})p^​(vvv) 表示可观测向量在训练集上的实际经验分布,p(h∣v)p(\pmb{h}|\pmb{v})p(hhh∣vvv)和p(v,h)p(\pmb{v},\pmb{h})p(vvv,hhh)为在当前参数 W\pmb{W}WWW,b\pmb{b}bbb条件下玻尔兹曼机的条件概率和联合概率。
  根据公式:


E(v,h)=E(x)=−(∑i<jwijxixj+∑ibixi)E(\pmb{v},\pmb{h})=E(\pmb{x})=-(\sum_{i<j}w_{ij}x_ix_j+\sum_ib_ix_i)E(vvv,hhh)=E(xxx)=−(∑i<j​wij​xi​xj​+∑i​bi​xi​)。因此,整个训练集的对数似然函数 L(D;W,b)L(D;\pmb{W},\pmb{b})L(D;WWW,bbb)对每个权重和偏置的偏导数为:

其中 i,j∈[1,K]i,j\in[1,K]i,j∈[1,K]。这两个公式涉及计算配分函数和期望,难精确。当K比较大时,配分函数和期望计算耗时,故玻尔兹曼机常用MCMC方法(如吉布斯采样)来近似求解。
  以参数 wijw_{ij}wij​的梯度为例,公式:

中第一项在限定可观测变量 v\pmb{v}vvv为训练样本的条件下xixjx_ix_jxi​xj​的期望。为了近似这个期望,可固定可观测变量v\pmb{v}vvv,只对h\pmb{h}hhh进行吉布斯采样。当玻尔兹曼机达到热平衡状态时,采样xixjx_ix_jxi​xj​的值,在训练集上所有的训练样本重复此过程,得到xixjx_ix_jxi​xj​的近似期望 (xixj)data(x_ix_j)_{data}(xi​xj​)data​。
  以参数 bib_{i}bi​的梯度为例,公式:

中第二项为玻尔兹曼机在没有任何限制条件下xixjx_ix_jxi​xj​的期望。这时可以对所有变量进行吉布斯采样,当玻尔兹曼机达到热平衡时,采样xixjx_ix_jxi​xj​的值,得到近似期望(xixj)model(x_ix_j)_{model}(xi​xj​)model​.

  当采用梯度上升法,权重wijw_{ij}wij​可用下面公式近似地更新:

其中 α>0\alpha>0α>0 为学习率,此更新方法一特点是仅仅使用了局部信息。即虽然优化目标是整个网络的能量最低,但每个权重的更新只依赖于它连接的相关变量的状态,这种学习方式和人脑神经网络的学习方式赫布规则(Hebbian Rule)十分类似
  玻尔兹曼机可用于监督学习无监督学习监督学习中,可观测变量v\pmb{v}vvv又可进一步分为输入和输出变量,隐变量则隐式地描述了输入和输出变量之间复杂的约束关系。无监督学习中,隐变量可看做可观测变量的内部特征表示。玻尔兹曼机也可以看做一种随机性的神经网络,是Hopfield神经网络的拓展,并且可以生成对应的Hopfield网络。没有时间限制时,玻尔兹曼机还可以用来解决复杂的组合优化问题。

2. 受限玻尔兹曼机

  全连接的玻尔兹曼机太复杂,难广泛应用,虽然基于采样的方法很大程度上提高了学习效率,但每更新一次权重,就需要网络重新达到热平衡状态,过程低效。实际中,广泛应用的是一种带限制的版本,就是受限玻尔兹曼机。
  受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是一个二分图结构的无向图模型。受限玻尔兹曼机中的变量也分为隐变量可观测变量。用可观测层隐藏层来表示这两组变量,同一层中的节点之间没有连接,而不同层一个层中的节点与另一层中的所有节点连接,这和两层的全连接神经网络相同:

  一个受限玻尔兹曼机由 KpK_pKp​个可观测变量和KhK_hKh​个隐变量组成,定义如下:

  1. 可观测的随机向量 v∈RKv\pmb{v} \in \R^{K_v}vvv∈RKv​
  2. 隐藏的随机向量 h∈RKh\pmb{h} \in \R^{K_h}hhh∈RKh​
  3. 权重矩阵 W∈RKv×Kh\pmb{W}\in \R^{K_v \times K_h}WWW∈RKv​×Kh​,其中每个元素 wijw_{ij}wij​为可观测变量 viv_ivi​和隐变量hjh_jhj​之间边的权重
  4. 偏置a∈RKv\pmb{a} \in \R^{K_v}aaa∈RKv​和 b∈RKh\pmb{b} \in \R^{K_h}bbb∈RKh​,其中aia_iai​为每个可观测的变量viv_ivi​的偏置,bib_ibi​为每个可观测的变量hjh_jhj​的偏置

  受限玻尔兹曼机的能量函数定义为:

  受限玻尔兹曼机的联合概率分布 p(v,h)p(\pmb{v},\pmb{h})p(vvv,hhh)定义为:

其中 Z=∑v,hexp(−E(v,h))Z = \sum_{v,h}exp(-E(\pmb{v},\pmb{h}))Z=∑v,h​exp(−E(vvv,hhh))为分配函数

2.1 生成模型

  在给定受限玻尔兹曼机的联合概率分布 p(h,v)p(\pmb{h},\pmb{v})p(hhh,vvv)后,可以通过吉布斯采样方法生成一组服从p(h,v)p(\pmb{h},\pmb{v})p(hhh,vvv)分布的样本

全条件概率 吉布斯采样需要计算每个变量 ViV_iVi​和 HjH_jHj​的全条件概率。受限玻尔兹曼机中同层变量之间无连接,从无向图性质可知,给定可观测变量时,隐变量之间相互条件独立。同样,给定隐变量,可观测变量之间也相互条件独立,因此有:

其中 vi\pmb{v}_{\\i}vvvi​为除变量 ViV_iVi​外其他可观测变量的取值, hi\pmb{h}_{\\i}hhhi​为除变量 HiH_iHi​外其他隐变量的取值。因此, ViV_iVi​的全条件概率只需计算 p(vi∣h)p(v_i|\pmb{h})p(vi​∣hhh),HjH_jHj​的全条件概率只需计算 p(hj∣v)p(h_j|\pmb{v})p(hj​∣vvv)

  受限玻尔兹曼机的全条件概率中,可观测变量之间相互条件独立,隐变量之间也相互条件独立。因此,首先玻尔兹曼机可以并行地对所有的可观测变量(或隐变量)同时进行采样,从而更快到达热平衡。

吉布斯采样 受限玻尔兹曼机的采样过程如下:

  1. 给定或随机初始化一个可观测的向量 v0\pmb{v}_0vvv0​,计算隐变量的概率,并从中采样一个隐变量 h0\pmb{h}_0hhh0​
  2. 基于隐变量 h0\pmb{h}_0hhh0​,计算可观测变量的概率,并从中采样一个可观测的向量 v1\pmb{v}_1vvv1​
  3. 重复 t 次后,获得 (vt,ht)(\pmb{v}_t,\pmb{h}_t)(vvvt​,hhht​)
  4. 当 t→∞t \to \inftyt→∞, (vt,ht)(\pmb{v}_t,\pmb{h}_t)(vvvt​,hhht​)的采样服从p(v,h)p(\pmb{v},\pmb{h})p(vvv,hhh)分布

2.2 参数学习

  和玻尔兹曼机一样,受限玻尔兹曼机通过最大化似然函数来找到最优的参数 W,a,b\pmb{W},\pmb{a},\pmb{b}WWW,aaa,bbb。给定一组训练样本 D={v^(1),⋯,v^(N)}D=\{\hat{\pmb{v}}^{(1)}, \cdots, \hat{\pmb{v}}^{(N)}\}D={vvv^(1),⋯,vvv^(N)},其对数似然函数为:

  和玻尔兹曼机类似,受限玻尔兹曼机的对数似然函数 L(D;W,b)L(D;\pmb{W},\pmb{b})L(D;WWW,bbb)对参数的偏导数为:

其中p^(v)\hat{p}(\pmb{v})p^​(vvv)为训练数据集上v\pmb{v}vvv的实际分布。
  上述公式,都需要计算配分函数Z以及两个期望 Ep(h∣v)E_{p(h|v)}Ep(h∣v)​和Ep(h,v)E_{p(h,v)}Ep(h,v)​,因此很难计算,故用MCMC方法近似。
  首先,将可观测向量 v\pmb{v}vvv设为训练样本中的值并固定,然后根据条件概率对隐向量 h\pmb{h}hhh进行采样,受限玻尔兹曼机的值记为 (⋅)data(\cdot)_{data}(⋅)data​。然后再不固定可观测向量v\pmb{v}vvv,通过吉布斯采样来轮流更新 v\pmb{v}vvv和 h\pmb{h}hhh,当达到热平衡状态时,采集v\pmb{v}vvv和 h\pmb{h}hhh的值,记为(⋅)model(\cdot)_{model}(⋅)model​
  采用梯度上升方法,参数W,a,b\pmb{W},\pmb{a},\pmb{b}WWW,aaa,bbb可利用下面公式近似更新:

其中 α>0\alpha > 0α>0为学习率
  根据受限玻尔兹曼机的条件独立性,可以对可观测变量隐变量进行分组轮流采样,这样受限玻尔兹曼机的采样效率会有很大提高,但仍需经过很多步采样才可以采集到的符合真实分布的样本。

2.2.1 对比散度学习算法

  由于受限玻尔兹曼机的特殊结构,因此可以使用一种吉布斯采样更有效的学习算法,即对比散度(Contrastive Divergence)。对比散度算法仅需k步吉布斯采样。
  为提高效率,对比散度算法用一个训练样本作为可观测向量的初始值,然后交替对可观测向量和隐向量进行吉布斯采样,不需等到收敛,只需k步就足够。这就是CD-k算法,通常k=1就可以学得很好。对比散度的流程:

2.3 受限玻尔兹曼机的类型

  实际中,处理的数据不一定是二值的,也可能是连续值,为能够处理这些数据,就需要根据输入或输出的数据类型来设计新的能量函数。
  常见的受限玻尔兹曼机有三种:

  1. “伯努利-伯努利”受限玻尔兹曼机(Bernoulli-Bernoulli RBM, BB-RBM):上面介绍的可观测变量和隐变量都为二值类型的受限玻尔兹曼机

  2. “高斯-伯努利”尔兹曼机(Bernoulli-Bernoulli RBM, BB-RBM):可观测变量为高斯分布,隐变量为伯努利分布,其能量函数定义为:

    其中每个可观测变量 viv_ivi​服从(μi,σi)(\mu_i,\sigma_i)(μi​,σi​)的高斯分布

  3. “伯努利-高斯”受限玻尔兹曼机(Bernoulli-Gaussian RBM, BG-RBM):可观测变量为伯努利分布,隐变量为高斯分布,其能量函数定义为

    其中每个隐变量 hjh_jhj​服从(μi,σi)(\mu_i,\sigma_i)(μi​,σi​)的高斯分布。

3. 深度信念网络

  深度信念网络(Deep Belief Network,DBN)是一种深层的概率有向图模型,其图结构由多层的节点构成。每层节点的内部没有连接,相邻两层节点之间为全连接。网络的最底层为可观测变量,其它层节点为隐变量。最顶层的两层间的连接时无向的,其它层之间的连接时有向的:

  对一个有L层隐变量的深度信念网络,令v=h(0)\pmb{v}=\pmb{h}^{(0)}vvv=hhh(0)表示最底层(0)为可观测变量,h(1),⋯,h(L)\pmb{h}^{(1)},\cdots, \pmb{h}^{(L)}hhh(1),⋯,hhh(L)表示其余每层的变量,顶部的两层是一个无向图,可以看做是一个受限玻尔兹曼机,用来产生 p(h(L−1))p(\pmb{h}^{(L-1)})p(hhh(L−1))的先验分布。除了最顶上两层外,每一层变量 h(l)\pmb{h}^{(l)}hhh(l)依赖于其上一层h(l+1)\pmb{h}^{(l+1)}hhh(l+1),即:

其中 l={0,⋯,L−2}l=\{0,\cdots,L-2\}l={0,⋯,L−2}
  深度信念网络中所有变量的联合概率可以分解为:

其中 p(h(l)∣h(l+1))p(\pmb{h}^{(l)}|\pmb{h}^{(l+1)})p(hhh(l)∣hhh(l+1))为Sigmoid型条件概率分布:

其中 σ(⋅)\sigma(\cdot)σ(⋅)为按位计算的logistic sigmoid函数,a(l)\pmb{a}^{(l)}aaa(l)为偏置参数,W(l+1)\pmb{W}^{(l+1)}WWW(l+1)为权重参数。每一个层可看做一个Sigmoid信念网络

3.1 生成模型

  深度信念网络是一个生成模型,可用来生成符合特定分布的样本,隐变量用来描述在可观测变量之间的高阶相关性,加入训练数据服从分布p(v)p(\pmb{v})p(vvv),通过训练得到一个深度信念网络。
  生成样本时,首先在最顶两层进行足够多的吉布斯采样,生成h(l+1)\pmb{h}^{(l+1)}hhh(l+1),然后依次计算下一层隐变量的分布。因在给定上一层变量取值时,下一层的变量是条件独立的,故可独立采样。这样,从第L−1L-1L−1层开始,自顶向下进行逐层采样,最终得到可观测层的样本。

3.2 参数学习

  深度信念网络最直接的训练方式是最大化可观测变量的边际分布 p(v)p(\pmb{v})p(vvv)在训练集上的似然 。但是在深度信念网络中,隐变量h\pmb{h}hhh之间的关系十分复杂,由于“贡献度分配问题”,很难直接学习。即使对于简单的单层Sigmoid信念网络:

在已知可观测变量时,其隐变量的联合后验概率 p(h∣v)p(\pmb{h}|v)p(hhh∣v)不再相互独立,因此很难估计所有隐变量的后验概率,早期深度信念网络的后验概率一般通过蒙特卡洛方法或变分方法来近似估计,但效率低,从而导致其参数学习比较困难。
  为了有效训练深度信念网络,我们将每一层的Sigmoid信念网络转换为受限玻尔兹曼机,这样做的好处是隐变量的后验概率事相互独立的,从而可容易进行采样。这样,深度信念网络可看做多个受限玻尔兹曼机从下到上进行堆叠,第 lll层受限玻尔兹曼机的隐层作为第 l+1l+1l+1受限玻尔兹曼机的可观测层。进一步,深度信念网络课采用逐层训练的方式来快速训练,即从最底层开始,每次只训练一层,直到最后一层。
  深度信念网络的训练过程可分为逐层预训练精调两个阶段,先通过逐层预训练将模型的参数初始化为较优的值,然后通过传统机器学习方法对参数进行精调。

3.2.1 逐层预训练

  采用逐层训练的方式,将深度信念网络的训练简化为对多个受限玻尔兹曼机的训练。
  具体的逐层训练过程为自下而上依次训练每一层的首先玻尔兹曼机。假设已训练好前 l−1l-1l−1层的受限玻尔兹曼机,可计算隐变量自下而上的条件概率:

这样可按照 v=h(0)→⋯→h(l−1)\pmb{v} = \pmb{h}^{(0)} \to \cdots \to\pmb{h}^{(l-1)}vvv=hhh(0)→⋯→hhh(l−1)的顺序生成一组 h(l−1)\pmb{h}^{(l-1)}hhh(l−1)的样本,记为 H^(l−1)={h^(l,1),⋯,h^(l,M)}\pmb{\hat{H}}^{(l-1)}=\{\pmb{\hat{h}}^{(l,1)},\cdots,\pmb{\hat{h}}^{(l,M)} \}H^H^H^(l−1)={h^h^h^(l,1),⋯,h^h^h^(l,M)}。然后将h(l−1)\pmb{h}^{(l-1)}hhh(l−1)和h(l)\pmb{h}^{(l)}hhh(l)组成一个受限玻尔兹曼机,用H^(l−1)\pmb{\hat{H}}^{(l-1)}H^H^H^(l−1)作为训练集充分训练第 lll 层的受限玻尔兹曼机

  大量时间表明,逐层预训练可以产生非常好的参数初始值,从而极大地降低了模型的学习难度。

3.2.1 精调

  经过预训练,再结合具体的任务(监督或无监督学习),通过传统的全局学习算法对网络进行精调(fine-tuning),使模型收敛到更好的局部最优点。

作为生成模型的精调 除了顶层的受限玻尔兹曼机,其它层之间的权重可以被分为向上的认知权重(Recognition Weight)W′\pmb{W}^{'}WWW′和向下的生成权重(Generative Weight)W\pmb{W}WWW。认知权重用来计算后验概率,生成权重用来定义模型,认知权重初始值 W′(l)=W(l)T\pmb{W}^{'^{(l)}}=\pmb{W}^{{(l)}^T}WWW′(l)=WWW(l)T
  深度信念网络一般采用 Contrastive Wake-Sleep算法进行精调:

  1. Wake阶段:认知过程,通过外界输入(可观测变量)和向上的认知权重,计算每一层隐变量的后验概率并采样。修改下行的生成权重使得下一层的变量的后验概率最大。
  2. Sleep阶段:生成过程,通过顶层的采样和向下的生成权重,逐层计算每一层的后验概率并采样。然后,修改向上的认知权重使得上一层变量的后验概率最大。
  3. 交替进行Wake和Sleep过程,直到收敛

作为判别模型的精调 深度信念网络的一个应用是作为深度神经网络的预训练模型,提供神经网络的初始权重,这时只需要向上的认知权重,作为判别模型使用:

  具体的精调过程为:在深度信念网络的最顶层增加一层输出层,然后使用反向传播算法对这些权重进行调优。在训练数据少时,预训练的作用非常大,因不恰当的初始化权重会显著影响最终模型的性能,而预训练获得的权重在权重空间中比随机权重更接近最优的权重,避免了反向传播算法因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点。

《神经网络与深度学习》-深度信念网络相关推荐

  1. 【深度学习】图网络——悄然兴起的深度学习新浪潮

    [深度学习]图网络--悄然兴起的深度学习新浪潮 https://mp.weixin.qq.com/s/mOZDN9u7YCdtYs6DbUml0Q 现实世界中的大量问题都可以抽象成图模型(Graph ...

  2. 【深度学习】孪生网络(Siamese Network)的模式和训练过程

    [深度学习]孪生网络(Siamese Network)的模式和训练过程 文章目录 1 概述 2 Siamese network 孪生神经网络 3 孪生神经网络和伪孪生神经网络分别适用于什么场景呢? 4 ...

  3. 新论文推荐:Auto-Keras:自动搜索深度学习模型的网络架构和超参数

    Auto-Keras 是一个开源的自动机器学习库,由美国德州农工大学(Texas A&M University)助理教授胡侠和他的两名博士生:金海峰.Qingquan Song提出.Auto- ...

  4. HALCON 20.11:深度学习笔记(4)--- 网络和训练过程

    HALCON 20.11:深度学习笔记(4)--- 网络和训练过程 HALCON 20.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的. ...

  5. 【火炉炼AI】深度学习001-神经网络的基本单元-感知器

    [火炉炼AI]深度学习001-神经网络的基本单元-感知器 (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotl ...

  6. 详解深度学习之经典网络:AlexNet(2012) 并利用该网络架构实现人脸识别

    @[TOC](详解深度学习之经典网络:AlexNet(2012) 并利用该网络架构实现人脸识别**) 近来闲来无事,翻出了搁置已久的轻薄版电脑,望着积满灰尘的显示屏,觉得有愧于老师的尊尊教导,心中叹息 ...

  7. 详解深度学习之经典网络架构(十):九大框架汇总

    目录 0.概览 1.个人心得 2.总结 本文是对本人前面讲的的一些经典框架的汇总. 纯手打,如果有不足之处,可以在评论区里留言. 0.概览 (1)详解深度学习之经典网络架构(一):LeNet (2)详 ...

  8. 深度学习深度前馈网络_深度学习前馈网络中的讲义第1部分

    深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...

  9. 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分

    深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...

  10. 吴恩达神经网络与深度学习——深度神经网络

    吴恩达神经网络与深度学习--深度神经网络 深度神经网络 符号 前向传播 矩阵维度 m个样本 为什么使用深层表示 搭建深层神经网络块 正向传播和反向传播 前向和反向传播 前向传播 反向传播 参数和超参数 ...

最新文章

  1. Linux 运维工程师入门须掌握的 10 个技术点
  2. 检测字符串包含emoji表情
  3. 修改matlab的工作路径(图解版)
  4. 【模拟】蓝桥20:蛇形填数
  5. 机器数.原码 反码 补码比较理解
  6. 斗战神服务器正在维护6,斗战神6月5日维护公告
  7. 编写一个生成器函数,能够生成斐波那契数列
  8. 站长屋VPS独家erphpdown10.2会员中心美化页面wordpress通用插件
  9. 开源ERP安装之Opentaps和Openbravo安装指南
  10. 汽车喇叭语音芯片,警报音效ic选型
  11. cesium设置相机的初始位置
  12. 从数据库中查询列表倒序排列(按照时间顺序)
  13. 电子合同可以被打印出来吗
  14. 英语学习打卡day1
  15. 权重衰减weight_decay参数从入门到精通
  16. Mac OS X 10.7.5 Lion 系统安装 U 盘制作
  17. 操作系统如何建立异常处理?
  18. ATmega16开发板教程(4)——定时器
  19. 海尔“灯塔”张瑞敏,一把锤子砸出的硬核人生
  20. 行政边界矢量数据shp/kml/json/csv(省、市、区、县、乡镇)

热门文章

  1. VR火灾隐患排查,模拟多种火灾场景
  2. Android studio添加依赖是什么意思以及添加依赖的方法
  3. 执行SOA——SOA实践指南
  4. Python项目分析:预测双色球福利彩票中奖号码(随便玩玩,不要当真)
  5. linux网络重设,Linux ADSL拨号上网
  6. python组合数计算cmnn_《Python机器学习——预测分析核心算法》——2.5 用实数值属性预测实数值目标:评估红酒口感...
  7. AS导入项目或开启项目时,Gradle一直卡在build状态
  8. android内核编译 me525,今天给ME525+刷了Android 4.0系统,很流畅!
  9. 《大道至简》第二章(是懒人创造了方法)读后感
  10. Rename_suffix