[Machine Learning] RBM Brief Introduction


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

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

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

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

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

在模型中,我们已经可以表示出可见层和隐层的联合概率分布了,那么边缘概率分布也能表示出来。边缘分布就可以用来表示样本的分布了,我们希望在这个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模型的初学者一点帮助。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值