码迷,mamicode.com
首页 > 系统相关 > 详细

[Machine Learning] RBM Brief Introduction

时间:2014-12-24 21:32:22      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:machine learning   rbm   contrastive divergen   gradient descent   


这里简单概括一下RBM模型构建、求解以及评估的基本思路,希望能给想了解RBM模型的同学一点帮助。

Restricted Boltzmann Machine 是一个基于能量表示而定义的模型,其结构就是两层的神经网络,一个可见层V和一个隐层H,同一层之间的单元不存在连接,层之间全连接。

根据RBM的网络结构,可以定义出系统中的能量函数,我们称为E。在物理中,一个系统的能量越小,那么其稳定的概率越大。因此有了能量函数之后,就能定义该系统稳定的概率了,这里我们称为P,这个P是V和H的联合概率。

在RBM中,已知其中一层的状态,另外一层的状态是条件独立的。我们常用RBM中每个单元的取值是二元的,即非0及1。

那么通过上面的描述,一个模型就构建完成了。现在给定训练数据,我们需要用这个模型来拟合训练数据,并且求解这个模型中的参数。

在模型中,我们已经可以表示出可见层和隐层的联合概率分布了,那么边缘概率分布也能表示出来。边缘分布就可以用来表示样本的分布了,我们希望在这个RBM表示的边缘分布下,样本的似然函数最大,这就是我们的目标函数。

在目标函数确定的情况下,最简单的优化方法就是梯度法咯。我们通过将目标函数对各参数进行求导,就能得到梯度了。但是求导之后发现,梯度中带有\sum_V的项,也就是相当于有对P(V)的期望项。这下糟了,如果说可见层有n个单元,那么V的状态为2^n种,显然这是不可枚举的。

于是你想到了使用MCMC的Gibbs方法进行采样来近似这个期望,但是在Gibbs中,需要进行多次的采样才能逼近真正的分布,这下复杂度又觉得略高了。既然我们RBM模型的最终目的是要拟合训练数据的分布,那么我们可不可以在Gibbs的一开始就从样本开始,然后进过K步进行sampling,这样是不是能更快的收敛到目标分布呢?基于这个想法,Hinton就在2002年发明了 Contrastive Divergence 算法,这个算法通常在进行1次迭代的时候就能取得好的效果,因此RBM的优化问题的复杂度就降下来了。

最后,我们如何评价RBM模型的好坏呢?比如说我们在分类问题中,需要使用正确率或者错误率来判断模型的优劣,那么我们如何判断RBM模型的优劣呢?你肯定会想,我们就是用模型对训练数据的似然表示评价该模型呗,但是要知道通过能量函数到概率那一步,存在一个归一化因子,这个归一化因子要枚举是非常困难的。

因此我们考虑使用重构误差来评价模型,所谓重构误差就是样本根据RBM的分布,经过一次Gibbs采样得到的V‘,我们计算V和V‘之间的差异,这个差异可以是1范数也可以是2范数。

以上就是RBM模型整体思路的简单概括了,希望能给想了解RBM模型的初学者一点帮助。

[Machine Learning] RBM Brief Introduction

标签:machine learning   rbm   contrastive divergen   gradient descent   

原文地址:http://blog.csdn.net/geniusluzh/article/details/42128657

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!