关于RBM、DBN和相关问题

参考文献

1.(深度学习 机器学习)栈式自动编码器与深度信念网络
2.受限玻尔兹曼机(RBM)原理总结
3.受限玻尔兹曼机(RBM)学习笔记(一)预备知识
4.对比散度算法(CD算法)
5.受限玻尔兹曼机(RBM)+对比散度算法(CD-k)
6.B站的视频
7.栈式降噪自编码器( SdA)与深度信念网络(DBN)相比有什么特点优势,应用的范围是什么?
8.深度信念网络(DBN)

9.对CD-K算法的解释,非常重要!!


一、深度信念网络

1.1 玻尔兹曼机

玻尔兹曼机可以看做一个随机动力系统,其每一个变量的状态都以一定的概率受到其他变量的影响,这一模型可以用概率无向图模型来描述。

性质:
(1)每个随机变量是二值的;
(2)所有节点之间是全连接的;
(3)每两个变量之间的影响是对称的;

在这里插入图片描述
在这里插入图片描述
这里这种分布表示形式,就是借用了统计物理中的玻尔兹曼分布形式,将变量的整体情况与能量函数挂钩,这样变量的联合分布p(X)就可以借助玻尔兹曼分布来表示。


玻尔兹曼机应用场景??

1.搜索问题: 这一类问题就是说,当给定变量之间的连接权重 W,需要找到一组二值向量 X,使得整个网络的能量最低。(用白话来说就是在知道变量间关系的情况下,希望确定一组变量的值,使得网络能量最低,也就是最为稳定,也就是出现的可能性最大)

2.学习问题: 这一类问题就是说,当给一组定部分变量的观测值时,计算一组最优的权重。
具体来说,就是玻尔兹曼机可以用在监督学习和无监督学习中。
【1】在监督学习中,可观测的变量 v又进一步可以分为输入和输出变量,隐变量则隐式地描述了输入和输出变量之间复杂的约束关系。
【2】在无监督学习中,隐变量可以看做是可观测变量的内部特征表示。


1.2.1 生成模型(就是说联合分布p(x)怎么得到)

作为一种生成模型,尽管借助热力学中的玻尔兹曼分布得到联合概率的表示,但是在玻尔兹曼机中,配分函数 Z 通常是难以计算的,这样的话,联合概率分布p(x)也就很难计算出来。

因此联合概率分布 p(x) 一般通过 MCMC 方法来近似(这里采用的就是基于吉布斯采样的方法),生成一组服从 p(x) 分布的样本。
在吉布斯采样中,需要计算每个变量 Xi 的全条件概率 p(xi|x\i),其中 x\i 表示除变量 Xi 外其它变量的取值。(吉布斯采样需要计算各变量的全概率,是因为后面需要基于这个概率来设置该变量的状态)

在玻尔兹曼机中,一个变量的全条件概率表示为下式这样:
在这里插入图片描述
玻尔兹曼机的吉布斯采样过程为:
随机选择一个变量 Xi,然后根据其全条件概率 p(xi|x\i) 来设置其状态,即以 p(xi = 1|x\i) 的概率将变量 Xi 设为 1,否则为 0。
在固定温度 T 的情况下,在运行足够时间之后,玻尔兹曼机会达到热平衡。此时,任何全局状态的概率服从玻尔兹曼分布 p(x),只与系统的能量有关,与初始状态无关。

要使得玻尔兹曼机达到热平衡,其收敛速度和温度 T 相关。要使得动力系统达到热平衡,温度 T 的选择十分关键。一个比较好的折中方法是让系统刚开始在一个比较高的温度下运行达到热平衡,然后逐渐降低,直到系统在一个比较低的温度下达到热平衡。比较有效的方法就是采用模拟退火算法,可以证明模拟退火算法所得解依概率收敛到全局最优解。

1.3.1 参数学习(就是求W和b)

在这里插入图片描述

总结: 就是说可以通过对数似然求W和b的偏导来计算,但是很难算,无法操作。
我们也可以用吉布斯采样来计算,具体就是等到达到热平衡后,在训练集上采样xixj,每一次更新权重就要有一次重新达到热平衡因此也不具有操作性。



1.2 受限玻尔兹曼机

1.2.1 提出背景:
全连接的玻尔兹曼机在理论上十分有趣,但是由于其复杂性,目前为止并没有被广泛使用。虽然基于吉布斯采样的方法在很大程度提高了学习效率,但是每更新一次权重,就需要网络重新达到热平衡状态,这个过程依然很低效,需要很长时间。

1.2.2 主要内容:
受限玻尔兹曼机中的变量也分为隐藏变量和可观测变量。我们分别用可观测层和隐藏层来表示这两组变量。同一层中的节点之间没有连接,而不同层一个层中的节点与另一层中的所有节点连接。
在这里插入图片描述
核心组成:[v,h,w,a,b]
在这里插入图片描述

生成模型

受限玻尔兹曼机的联合概率分布 p(h, v) 一般也可以通过吉布斯采样的方法来近似,生成一组服从 p(h, v)分布的样本。(使用较为麻烦,下面主要介绍对比散度算法)

在受限玻尔兹曼机中,一个变量的全条件概率表示为下式这样,因此受限玻尔兹曼机可以并行地对所有的可观测变量(或所有的隐变量)同时进行采样,而从可以更快地达到热平衡状态:
在这里插入图片描述
受限玻尔兹曼机的采样过程:
在这里插入图片描述
虽然说受限玻尔兹曼机可以通过吉布斯采样以及最大化似然函数的方式,和前面介绍的玻尔兹曼机一样,来计算出模型参数,但是由于受限玻尔兹曼机的特殊结构,因此可以使用一种比吉布斯采样更有效的学习算法,即对比散度算法,其只需要 K 步吉布斯采样(一般K=1效果就很好)就可以完成计算。

对比散度算法(CD-k算法)

为了提高效率,对比散度算法用一个训练样本作为可观测向量的初始值。然后,交替对可观测向量和隐藏向量进行吉布斯采样,不需要等到收敛,只需要 k 步就足够了。这就是 CD-k 算法。通常, k = 1就可以学得很好。
在这里插入图片描述
在这里插入图片描述
参考附件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


1.3 深度信念网络(DBN)

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

在这里插入图片描述
深度信念网络最直接的训练方式可以通过最大似然方法使得可观测变量的边际分布 p(v)在训练集合上的似然达到最大。但在深度信念网络中,隐变量 h之间的关系十分复杂,由于“贡献度分配问题”,很难直接学习。

为了有效地训练深度信念网络,我们将每一层的 Sigmoid 信念网络转换为受限玻尔兹曼机。 这样做的好处是隐变量的后验概率是相互独立的,从而可以很容易地进行采样。这样,深度信念网络可以看作是由多个受限玻尔兹曼机从下到上进行堆叠,第 l 层受限玻尔兹曼机的隐层作为第 l + 1层受限玻尔兹曼机的可观测层。进一步地,深度信念网络可以采用逐层训练的方式来快速训练,即从最底层开始,每次只训练一层,直到最后一层。(Hinton 2006)

深度信念网络的训练过程可以分为预训练和精调两个阶段。
【1】逐层预训练
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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


DBN用途的发展历程

深度信念网络的一个应用是作为深度神经网络的预训练部分,提供神经网络的初始权重。在深度信念网络的最顶层再增加一层输出层,然后再使用反向传播算法对这些权重进行调优。特别是在训练数据比较少时,预训练的作用非常大。因为不恰当的初始化权重会显著影响最终模型的性能,而预训练获得的权重在权值空间中比随机权重更接近最优的权重,避免了反向传播算法因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点。这不仅提升了模型的性能,也加快了调优阶段的收敛速度。

除了深度信念网络之外,自编码器[Bengio et al., 2007]以及它的变体,比如稀疏自编码器 [Ranzato et al., 2006]和去噪自编码器 [Vincent et al., 2008],也可以用来作为深度神经网络的参数初始化,并可以得到和深度信念网络类似的效果。并随着人们对深度学习认识的加深,出现了很多更加便捷的训练深层神经网络的技术,比如 ReLU激活函数、权重初始化、逐层归一化、各自优化算法以及快捷连接 [He et al., 2016]等,使得我们可以不用预训练就可以训练一个非常深的神经网络。这些新技术的出现,使得采用DBN做逐层预训练变得不再需要,DBN因此很少再使用。

但其在深度学习发展进程中的贡献十分巨大,并且其理论基础为概率图模型,有非常好的解释性,依然是一种值得深入研究的模型。


关于DBN和栈式自编码器的区别

自编码器在实际应用中用的很少,2012年人们发现在卷积神经网络中使用自编码器做逐层预训练可以训练深度网络,但很快人们发现良好的初始化策略在训练深度网络上要比费劲的逐层预训练有效得多,2014年出现的Batch Normalization技术使得更深的网络也可以被有效训练,到了2015年底,通过使用残差学习(ResNet)我们基本上可以训练任意深度的神经网络。
自编码器吸引了一大批研究和关注的主要原因之一是很长时间一段以来它被认为是解决无监督学习的可能方案,即大家觉得自编码器可以在没有标签的时候学习到数据的有用表达。再说一次,自编码器并不是一个真正的无监督学习的算法,而是一个自监督的算法。自监督学习是监督学习的一个实例,其标签产生自输入数据。要获得一个自监督的模型,你需要想出一个靠谱的目标跟一个损失函数,问题来了,仅仅把目标设定为重构输入可能不是正确的选项。基本上,要求模型在像素级上精确重构输入不是机器学习的兴趣所在,学习到高级的抽象特征才是。事实上,当你的主要任务是分类、定位之类的任务时,那些对这类任务而言的最好的特征基本上都是重构输入时的最差的那种特征。

目前,和DBN有关的研究包括堆叠自动编码器(SAE),它是通过用堆叠自动编码器来替换传统DBN里面的RBM。这就使得可以通过同样的规则来训练产生深度多层神经网络架构,但它缺少层的参数化的严格要求。
与DBN不同,自动编码器使用判别模型,这样这个结构就很难采样输入采样空间,这就使得网络更难捕捉它的内部表达。但是,降噪自动编码器却能很好的避免这个问题,并且比传统的DBN更优。它通过在训练过程添加随机的污染并堆叠产生场泛化性能。训练单一的降噪自动编码器的过程和RBM训练生成模型的过程一样。

稀疏自动编码器(sparse autoencoder)堆叠得到栈式自动编码器(stacked autoencoders),RBM堆叠得到DBN;而且二者都可以被用来做有监督DNN的预训练,用的还都是同样的无监督逐层预训练方法,二者实际上也都是起到了特征探测器的作用,都是给定一个输入,得到一个中间层,并利用中间层去重构一个和输入相同的样本,然后利用不同的评价指标,通过某种优化方法,尽可能的缩小输出样本和输入样本之间的差异。那它们的区别在什么地方呢?


首先Autocoder是一个确定模型,它的输入和输出之间有着严格的数学公式;而RBM源于BM(玻尔兹曼机),源于玻尔兹曼分布,是一个基于概率的不确定模型。
Autocoder训练时采用BP算法,直接做梯度下降(看成只有一层的BP神经网络),而RBM采用CD-k算法,只能利用k次吉布斯采样的结果去近似的计算梯度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值