受限玻尔兹曼机RBM

先验知识——Gibbs采样
    Gibbs采样是一种基于马尔可夫链蒙特卡洛策略的采样方法。对于K维随机向量X=(X1, ..., XK),假设无法求得关于X的联合分布P(X),但知道给定X的其他分量Xk的条件分布——P(Xk|X1, ..., Xk-1, Xk+1, ..., XK)。这时我们可以从X的任意状态 [x1(0), ..., xK(0)] 开始,利用上述条件分布,通过迭代对其各个分量采样,随着采样次数的增加随机变量 [x1(n), ..., xK(n)] 的概率分布将以n的几何级数的速度收敛于X的联合分布P(X)。相当于说,可以在未知联合分布P(X)的条件下对P(X)采样,而无需费时费力地去计算P(X)。简单来说,Gibss采用是需要知道样本中一个属性在其它所有属性下的条件概率,然后利用这个条件概率来分布产生各个属性的样本值,其过程如下,
 
对于MRF,将更为简单,
模型
         玻尔兹曼机(BM)和受限玻尔兹曼机(RBM)结构如下图所示,
两者区别在于同层之间有无连接(上图没有画全,可见层和隐层各有一个偏移量)。BM拥有很强大的无监督学习能力,但训练时间非常长,而且无法计算BM所表示的分布甚至得到其分布的随机样本也很难。 RBM具有以下的性质:给定可见层单元状态时,隐层单元的激活条件独立;给定隐层单元状态,可见层单元激活条件也是独立的。这样,尽管RBM所表示的分布也无法有效计算,但通过Gibbs采样可以得到服从RBM所表示分布的随机样本。
          RBM可以视为一个无向图模型,如下所示,
v为可见层用于表示观测数据(输入),h为隐层用于抽取特征,W为两层之间的连接权重。在一般的文章中,都把这2层的节点看做是二值的,也就是只能取0或1,实际上,RBM中节点是可以取实数值的,以取二值作讨论只是为了更好的解释各种公式。如果一个RBM由n个可见单元和m个隐单元,用vi和hj表示相应状态。
         RBM作为一个系统,具备能量的定义,
θ={W, a, b}是RBM的参数,分别为权值,可见层偏移量向量和隐层偏移量向量。基于能量函数,可得(v,h)的联合分布,
其中Z( θ )为归一化因子(也成分配函数,partition function)。由RBM的性质可知,
上式中的σ(.) 激活函数,一般取sigmoid函数。
模型求解
         知道RBM的模型后,需要求出其参数θ的值,这可以通过最大化训练集(T个样本)上的对数似然函数得到,即,
为了获取最优参数 θ ,可以采用随机梯度上升法SGA来求L( θ )的最大值。关键在于 求logP(v| θ)对各参数的偏导,计算过程如下,
假设只有一个训练样本,分别用"data"和"model"来表示P(h|v, θ )和P(v,h| θ )两个概率分布,则 logP(v| θ) 对Wij, ai, bj的偏导数如下,
(8)式中,由于归一化因子Z ( θ ) 的存在,(v,h)的联合分布P(v,h)很难获取(v和h分别为n维和m维的列向量,所以需要计算2^(n+m)次),这将导致(8)式的第2项不好计算,只能通过一些采样方法获取其近似值。在RBM中进行Gibbs采样的具体做法为:用1个训练样本初始化可见层的状态v0,交替进行如下采样过程,
即(v0->h0,h0->v1,v1->h1,……,vk->hk, hk->v(k+1))。在采样步数k足够大的情况下,可以得到服从具体RBM所定义分布的样本,从而得到(8)式第2项的一个近似。
         先前看Gibbs采样还似懂非懂,通过RBM上的例子,个人理解如下:RBM模型表示的分布为P(v, h),我们手头对RBM的了解仅仅是v和h这两个分量的条件分布(式4和5),而要知道RBM模型需要知道联合分布P(v,h);之所以可以用Gibbs采样,是因为RBM模型符合Gibbs采样的特性——知道该联合分布的条件分布P(h|v)和P(v|h)且两者独立,所以可以给定任意初始状态(v0,h(-1))进行上面的采样过程(这里h(-1)是什么无所谓 ,因为 在用v0和 P(h|v)采样时h(-1)不参与计算 ),采样进行足够的步骤后便可以采到RBM模型所表示的分布的一个样本(vk, hk)而无需计算P(v,h)联合分布。总之,Gibbs采样在RBM中的作用就是:知道可视层v的一个样本,采样得到隐层h状态,两者联合起来就是RBM模型所表示的分布的一个样本,即,我们得到了RBM模型的随机样本了~
RBM快速学习算法
         虽然Gibbs采样可以得到关于近似,但需要进行很多次的采样,尤其在观测数据维数较高时(图像数据)。所幸2002年Hinton提出了RBM的快速学习方法——对比散度(Contrastive Divergence, CD)。CD算法一开始,可见单元被设置成一个训练样本,利用4式计算所有隐层单元的 二值(式计算结果是概率值,但要通过随机采样——与随机数比较把它们置为0或1)状态。确定隐层单元的状态后,根据式5来确定可见层各个单元vi取1的概率,相当于产生可见层的一个重构。这时,各参数的更新准则类似下面公式,
括号前的因子是学习率。RBM基于CD的快速学习算法可如下描述,
    
算法中,P(hk=1|vk)是m维列向量,其第j个元素为P(hkj=1|vk)。 需要注意的一点是,RBM在训练时,隐层单元的状态是二值化来进行反向计算可视层单元的。
          在CD算法的基础上,还有一些在其基础上改进的算法,比如持续对比散度算法(Persistent CD, PCD),该算法相对CD的区别在于:1.PCD不使用训练数据初始化;2.PCD的学习率较小且不断衰减。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值