对于一个复杂的数据分布,往往只能观察到有限的局部特征,这些特征通常会包含一定的噪声,如果要对这个数据分布进行建模,需要挖掘可观测变量之间复杂的依赖关系,以及可观测变量背后隐藏的内部表示。

深度信念网络是一种可以有效学习变量之间复杂依赖关系的概率图模型,包含很多层的隐变量,能够有效学习数据的内部特征表示,也可以作为一种非线性的降维方法,这些学习到的内部特征表示往往有着更有价值的信息,能够便于后续的回归分类等任务。深度信念网络的问题是推断和学习问题,推断就是求隐变量的后验,学习就是学习网络的参数。因为深度信念网络包含隐变量,较为复杂,所以推断和学习一般用MCMC的方法来近似估计。

深度信念网络(DBN)通过采用逐层训练的方式,解决了深层次神经网络的优化问题,通过逐层训练为整个网络赋予了较好的初始权值,使得网络只要经过微调就可以达到最优解。而在逐层训练的时候起到最重要作用的是“受限玻尔兹曼机”

玻尔兹曼机和受限玻尔兹曼机,是根植于统计力学的随机神经网络,这种网络中神经元只有两种状态(未激活、激活),用二进制0、1表示,状态的取值根据概率统计法则决定,而且其概率表达形式类似于物理里的玻尔兹曼分布,于是叫做玻尔兹曼机。

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

 

这里状态$\alpha $指的是一种范围,并非不是一种确切的取值,如12.3,若系统温度不变,状态$\alpha $的能量$E_{\alpha }$与概率$P_{\alpha }$成反比,也就是说,能量越低,概率越大,这个概率是指【停留在状态$\alpha $的概率】,物理里描述的是一个粒子处于状态$\alpha $的概率,如果是放在我们的网络里看的话,它描述的就是整个网络保持这种状态的概率最大,也就是说网络更有可能停留在这种状态,则网络更问题。简言之,能量越低,概率越大,网络更稳定

然后再看温度$T$,在统计学习中,如果我们将需要学习的模型看成高温物体,将学习的过程看成一个降温达到热平衡的过程(热平衡在物理学领域通常指温度在时间或空间上的稳定),最终模型的能量将会收敛为一个分布,在全局极小能量上下波动,这个过程称为“模拟退火”,其名字来自冶金学的专有名词“退火”,即将材料加热后再以一定的速度退火冷却,可以减少晶格中的缺陷,而模型能量收敛到的分布即为玻尔兹曼分布。

上面这段话换成人话就是:通常的想法是,人下山的每一步都选择下降最快的方向走下去,那么人会走到一个盆地里的最低点,but这样做的坏处就是,人会到达一个局部最低点,却不一定是全局最低点。模拟退火就是用来解决这个局部最低却不是全局最低的问题。在物理里,我们先把材料加热,材料加热能量就会变大,粒子就会更加不稳定,然后再把材料慢慢冷却,不能急速冷却,这么做是为了让材料在不同的温度下都达到平衡,最后冷却后的材料就会收敛到一个能量最低,最稳定的状态,而且是全局最低状态。

二、玻尔兹曼机

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

 如图所示,讲明玻尔兹曼机的特点:

(1)所有变量之间相互连接,是无向图模型,即所有变量之间相互影响,每个变量的状态都以一定的概率受到其他变量的影响

(2)每个随机变量都是二值的,要么取1要么取0,取1代表被激活

(3)包含有可观测变量V和隐变量H

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

前面介绍了玻尔兹曼分布,在玻尔兹曼机中变量的概率是由玻尔兹曼分布来定义的,依旧是:能量越低,概率越大。

然后看12.2,我们希望能量越低的话,也就是希望括号里结果越大,假设有两个变量a和b的取值都为1,当连接权重为正时,相当于对整个网络的稳定性起到了一个积极的作用;若为负,就表示这两个变量同时取1不大可能,因为此时相当于给整个网络达到问题拖了后腿。

 (一)能量最小

为了达到我们的目的:让网络稳定,我们有两种方案可选:

1.直接法:

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

如该式,我们对每一个变量,都去寻找该变量在0和1状态下,全局能量的差值。如果这个差值大于0,说明变量的状态为1时能够使得全局能量最低,于是变量取1,然后继续更换一个新的变量,继续计算该变量在0和1状态下全局能量的差值。这个方法看似很有道理的样子,但是很有可能最后收敛到的是局部最优解。为了解决这个问题,可以借用开头提出的模拟退火的思想来寻找全局最优解。

 2.模拟退火

首先,先定义一下全条件概率,省略证明步骤:

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

我们会发现,12.6括号中分子部分长得跟我们前面提到的能量差值一模一样,对于这个全条件概率,我们换一种表达方式——一个变量在温度不变的情况下,被激活为1的概率,与能量差有关,也就是说,12.6是一个变量被激活的概率。

前面粗略说了一下模拟退火的物理过程,但是还是没有解释清楚【为什么模拟退火的思想可以解决局部最优的困境】,先思考之所以会产生局部最优,是因为我们的每一步做法都是“确定的”,我们乖乖的按照指示,每一步只选择最陡峭的方向,不会叛逆,所以我们走到了一个局部最优点;而要跳出这个局部最优,我们需要“不乖”,也就是说,我们的每一步都有一定的概率不遵守规则。

而12.6提出的概率,就是引入了一个随机性。相比起第一种方法,因为每次都是选择让全局能量最低的节点状态,没有随机性,故而会陷入局部最优的问题中。

 (二)玻尔兹曼机的参数估计

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

因为玻尔兹曼机很复杂,耗时长,所以用受限玻尔兹曼机更为平常。

三、受限玻尔兹曼机

 深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

 受限玻尔兹曼机的条件与玻尔兹曼机大体相同,不同点只有:受限玻尔兹曼机是二分无向图模型,不同层的节点之间全连接,而同层节点之间不连接

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

 

 由无向图的性质可以知道,在给定隐变量的时候,可观测变量之间条件独立;同样在给定可观测变量的时候,隐变量之间条件独立:

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

 提出这个条件概率的具体形式主要是为了后边采样,因为吉布斯或MCMC都是基于条件概率来采样的。而为什么要采样,是因为受限玻尔兹曼机同样在优化参数的时候也有计算导数困难的问题。

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

比如12.52,的第一项,涉及vh在条件概率分布中的期望,我们就可以用吉布斯采样,固定v为训练样本中的值,对h采样,得到一个数值;对于第二项,因为是全局中的采样,就采用吉布斯采样对hv轮流进行采样,又得到一个数值。大体就是这么个过程。受限玻尔兹曼机的采样已经比在玻尔兹曼机上采样效率得到了提升,但是还有一个对比散度算法也可以很好的计算这些复杂的期望:

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

四、深度信念网络

深度信念网络(DNN)实一种深层的概率有向图模型,其图结构是多层的,每层节点的内部没有连接,但相邻两层节点之间为全连接。网络的最底层是可观测变量,其它层节点为隐变量,最顶部两层是无向连接,可看做受限玻尔兹曼机,其余为有向。

深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

其实这个有向无向我也是很纠结,因为不同的地方写的好像都不一样。我暂且理解是,除了前两层外,其它层之间都有条件概率关系,如果方向自下而上,通常是在逐层训练这个模型的参数;而从上到下,通常是在拿这个已经训练好参数的模型来生成样本,就是前两层多做几次吉布斯采样,然后就一层层往下继续基于条件概率的独立性采样,直到输出可观测变量作为样本的补充。

(一)模型的训练(逐层预训练和精调)

1.逐层预训练

深度信念网络可以看作是由多个受限玻尔兹曼机从下到上进行堆叠,第????层受限玻尔兹曼机的隐层作为第???? + 1层受限玻尔兹曼机的可观测层。进一步地,深度信念网络可以采用逐层训练的方式来快速训练,即从最底层开始,每次只训练一层,直到最后一层。

 深度学习(七):玻尔兹曼机、受限玻尔兹曼机、深度信念网络

2.精调

然后就是用传统的学习方法来调整这个预训练出来的模型参数结果了