由于深度置信网络(Deep Belief Networks,DBN)是基于限制性玻尔兹曼机(Restricted Boltzmann Machines,RBM)的深层网络结构, 所以本文重点讨论一下玻尔兹曼机(BM),以及它的学习算法——对比散度(Contrastive Divergence,CD)算法。在介绍BM前,我们首先介绍一下 基于能量的模型(Energy Based Model,EBM),因为BM是一种特殊的EBM。
1. 基于能量的模型(EBM)
基于能量的模型是一种具有普适意义的模型,可以说它是一种模型框架,在它的框架下囊括传统的判别模型和生成模型,图变换网络(Graph-transformer Networks),条件随机场,最大化边界马尔科夫网络以及一些流形学习的方法等。EBM通过对变量的每个配置施加一个有范围限制的能量来捕获变量之间的依赖 关系。EBM有两个主要的任务,一个是推断(Inference),它主要是在给定观察变量的情况,找到使能量值最小的那些隐变量的配置;另一个是学习(Learning), 它主要是寻找一个恰当的能量函数,使样本中正确的输入输出的能量 比错误的输入输出的能量低。
基于能量的模型(EBM)把我们所关心变量的各种组合和一个标量能量联系在一起。我们训练模型的过程就是不断改变标量能量的过程,因此就有了数学上期望的意义。比如,如果一个变量组合被认为是合理的,它同时也具有较小的能量。基于能量的概率模型通过能量函数来定义概率分布:
包含隐单元的EBMs
在很多情况下,我们无法观察到样本的所有属性,或者我们需要引进一些没有观察到的变量,以增加模型的表达能力,这样得到的就是包含隐含变量的EBM,
通常,我们很难精确计算这个梯度,因为式中第一项涉及到可见单元与隐含单元的联合分布,由于归一化因子 Z(θ) 的存在,该分布很难获取。 我们只能通过一些采样方法(如Gibbs采样)获取其近似值,其具体方法将在后文中详述。
2. 玻尔兹曼机
神经元,神经元的输出只有两种状态(未激活、激活),一般用二进制的0和1表示,,状态的取值根据概率统计法则决定。从功能上讲,BM是由随机神经元全连接组成的反馈神经网络,且对称连接,无自反馈,如图(1)所示
BM具有强大的无监督学习能力,能够学习数据中复杂的规则。但是,拥有这种学习能力的代价是其训练/学习时间非常长。此外,不仅无法确切地计算BM所表示的分布,甚至得到服从BM所表示分布的随机样本也很困难。为克服此问题,Sejnowski引入了一种限制的波尔兹曼机(RBM)。RBM具有一个可见层,一个隐层,层内无连接,其结构如图2(b)所示。Roux和Bengio从理论上证明昬只要隐单元的数目足够多,RBM能够拟合任意离散分布。
3. 限制性玻尔兹曼机
玻尔兹曼机(Boltzmann Machine,BM)是一种特殊形式的对数线性的马尔科夫随机场(Markov Random Field,MRF),即能量函数是自由变量的线性函数。 通过引入隐含单元,我们可以提升模型的表达能力,表示非常复杂的概率分布。
限制性玻尔兹曼机(RBM)进一步加一些约束,在RBM中不存在可见单元与可见单元的链接,也不存在隐含单元与隐含单元的链接,如下图所示
![](http://ibillxia.github.io/images/2013/IMAG2013041201.png)
使用二值单元的RBM
如果RBM中的每个单元都是二值的,即有 vj,hi∈{0,1} ,我们可以得到,
4. RBM的学习
前面提到了,RBM是很难学习的,即模型的参数很难确定,下面我们就具体讨论一下基于采样的近似学习方法。学习RBM的任务是求出模型的参数 θ={c,b,W} 的值。
4.1 Gibbs采样
Gibbs采样是一种基于马尔科夫链蒙特卡罗(Markov Chain Monte Carlo,MCMC)策略的采样方法。对于一个 K 为随机向量 X=(X1,X2,…,XK) , 假设我们无法求得关于 X 的联合分布 P(X) ,但我们知道给定 X 的其他分量时,其第 k 个分量 Xk 的条件分布,即 P(Xk|Xk−) ,其中 Xk−=(X1,X2,…,Xk−1,Xk+1,…,XK) ,那么,我们可以从 X 的一个任意状态(比如[ x1(0),x2(0),…,xK(0) ])开始,利用上述条件 分布,迭代的对其分量依次采样,随着采样次数的增加,随机变量[ x1(n),x2(n),…,xK(n) ]的概率分布将以 n 的几何级数的速度收敛于 X 的联合 概率分布 P(X) 。也就是说,我们可以在未知联合概率分布的条件下对其进行采样。
基于RBM的对称结构,以及其中神经元状态的条件独立性,我们可以使用Gibbs采样方法得到服从RBM定义的分布的随机样本。在RBM中进行 k 步Gibbs采样的具体 算法为:用一个训练样本(或可见层的任何随机化状态)初始化可见层的状态 v0 ,交替进行如下采样:
4.2 对比散度算法
尽管利用Gibbs采样我们可以得到对数似然函数关于未知参数梯度的近似,但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍然不高,尤其是当观测数据 的特征维数较高时。2002年,Hinton[4]提出了RBM的一个快速学习算法,即对比散度(Contrastive Divergence,CD)。实践证明,对比散度(CD)是一种成功的用于求解对数似然函数关于未知参数梯度的近似的方法。
与Gibbs采样不同,Hinton指出当使用训练数据初 始化 v0 时,我们仅需要使用 k (通常k=1)步Gibbs采样变可以得到足够好的近似。在CD算法一开始,可见单元的状态被设置成一个训练样本,并利用式⑪第一个式子 来计算所有隐层单元的二值状态,在所有隐层单元的状态确定了之后,根据式⑪第二个式子来确定第 i 个可见单元 vi 取值为1的概率,进而产生可见层的一个重构 (reconstruction)。然后将重构的可见层作为真实的模型代入式⑬各式中第一项,这样就可以进行梯度下降算法了。
在RBM中,可见单元一般等于训练数据的特征维数,而隐层单元数需要事先给定,这里设可见单元数和隐单元数分别为 n 和 m ,令 W 表示可见层与隐层间的链接权重 矩阵(m×n阶), a (n维列向量)和 b (m维列向量)分别表示可见层与隐层的偏置向量。
RBM的基于CD的快速学习算法主要步骤如下: