受限玻尔兹曼机(RBM,Restricted Boltzmann Machines)浅介

本文是我在阅读[1]之后做的一个读书笔记,所以这里的内容几乎也是翻译外加一些自己的理解,希望对读者有益。

    概括地说,RBM根据MLE原理来估计预定义分布中的参数,以便预定义分布能尽可能地逼近产生观测数据的未知分布。多个RBM分层堆叠而成的DBN(deep belief networks)构成深度学习的主要框架。

   RBM是一个随机无向图模型(上图),分为可见层和隐层。可见层中单元的个数与观测数据的维数相同,用于输入观测数据,隐层则用于刻画观测数据每个维度之间的依赖关系。每个可见层单元和隐层单元都有一个偏置参数,并且每个隐层单元和所有的可见层单元都有一个权重为的无向连接边,这些都是RBM需要学习的参数,记为。另外,每个可见层单元和每个隐层单元的取值是一个0-1随机变量。RBM可以用于提取特征,每当向可见层输入一个观测值时,每个隐层单元取值为1和取值为0的概率便可以确定,此时我们可以将每个隐层单元的期望作为特征输出。

  RBM假设观测数据的概率分布为:


其中是可见层和隐层的联合概率分布,称作能量函数,由可见层取值,隐层取值以及RBM的参数确定。可以看出在所有参数确定以后,任给一个观测值,RBM都可以计算出一个对应的估计概率值。为了使得估计概率值能很接近真实的概率值,RBM需要从观测数据中学习适当的参数。RBM采用的MLE来学习参数,假设只要一个观测数据,那么相应的似然函数为,


为了求得参数的最大似然估计,我们对似然函数进行求导,


注意

如果,给定一个训练样本可以快速计算得到似然函数的梯度,那么我们就可以采用梯度上升算法学习参数,然而似然函数的梯度直接计算起来却非常耗时,因为似然函数梯度的第二项是对所有可能的取值全部进行累加。下面我们就来探讨如何快速准确地计算似然函数的梯度。

    标准的RBM中的能量函数为:

另外,RBM有一个重要的条件概率独立假设,这个假设可以大大简化模型的计算,注意这是一个预定义的模型假设,而非由其他模型中的定义经过数学推导得到的。

通过已有的模型相关定义和假设,我们可以证明如下两个结论,

其中

,上式的具体证明可以参考[1]中的第27式。给定能量函数和条件概率独立假设,并令表示多维随机变量去掉第维分量后形成的随机变量,那么

如此一来,我们就可以很容易地计算似然函数梯度的第一项,而第二项我们可以重写为:

我们可以通过采样从分布获得一些样本值,然后代入进去近似地计算第二项,如果采样方法恰当,那么这样的近似也将很好。问题是分布的计算很费时,不过好在我们知道 ,而且这两个分布也容易计算,那么那么我们可以通过Gibbs采样获得样本。

 

相对于其他参数的梯度可以类似地计算。然而,现在的问题是Gibbs采样算法的原理是基于Markov链的,往往Markov链需要做很多次转移(也即是Gibbs采样算法中的要变得很大)才能到达稳态分布,而只有到达稳态分布才能得到真正来自的采样值。另外,不容易确定究竟什么时候才能到达稳态分布。 所以提出了对比散度(CD,Contrastive Divergence) 算法.CD算法只进行步采样,便将得到的带入计算,也就是似然函数的梯度按如下方式计算,

 

CD算法的详细步骤如下,实验中一般

我们现在想知道为什么CD算法可行。其实有下面两个定理保证了CD算法合理性。这两个定理的意思就是,CD算法中对似然函数梯度的近似误差的期望随着会随着 k 的增大会快速趋近于0.

[1] Asja Fischer and Christian Igel. An introduction to restricted boltzmann machines.In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications, volume 7441, pages 14 –36. ,2012.



http://blog.sciencenet.cn/blog-798994-789555.html 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值