RBM阅读笔记

  RBM包含两个层,可见层(visble layer)和隐藏层(hidden layer)。神经元之间的连接具有以下特点:层内无连接,层间全连接。RBM可以看做是一个二分图(神经元当做顶点,神经元之间的连接当做边,)所有节点都是随机二值变量节点(只能取0或者1)。可见层单元用来描述观察数据的一个方面或一个特征,例如,对于黑白图片而言,一个可见单元可能描述的就是图片某处是否为白色。可见层中单元的个数与观测数据的维数相同,用于输入观测数据,隐层则用于刻画观测数据每个维度之间的依赖关系。

RBM阅读笔记

  n_v,n_h:分别表示可见层和隐藏层中包含的神经元的数目;a:可见层的偏置;b:隐藏层的偏置;W:隐藏层和可见层之间的权值。θ=(W,a,b)表示RBM中的参数。

 公式推导:

  统计力学的一个基本结论是当系统与外界达到热平衡时,系统处于状态i的概率P_i具有以下形式:RBM阅读笔记 (1)其中,RBM阅读笔记,被称为归一化常数,这种概率分布的形式叫做正则分布。

定义RBM的能量函数为:RBM阅读笔记,根据(1)式,状态(v,h)的联合概率分布为:RBM阅读笔记,其中RBM阅读笔记

RBM假设观测数据的概率分布:RBM阅读笔记(为方便起见,省去θ),通过已有的模型相关定义和假设,我们可以证明如下两个结论:

RBM阅读笔记

其中σ为sigmoid函数。所以,RBM阅读笔记

  假定训练样本集合为:RBM阅读笔记RBM阅读笔记,i=1,2,...,n_s,n_s为训练样本的数目,训练RBM的目标就是最大化似然函数(另一种说法  算出尽量符合v(即输入)的概率分布P(v)):

RBM阅读笔记

为处理简便,最大化RBM阅读笔记与最大化RBM阅读笔记是等价的,因此,训练RBM的目标就变成了最大化RBM阅读笔记

  最大化常用的数值方法时梯度上升法,通过迭代的方式来进行逼近,迭代格式:RBM阅读笔记,其中η>0为学习率。

  首先考虑只含单个训练样本v的情况(此部分省略了推导过程,详见【1】),此时RBM阅读笔记

RBM阅读笔记

RBM阅读笔记

RBM阅读笔记

上式是只含单个训练样本情形下各偏导数的计算公式。对于含有多个训练样本的情形,即RBM阅读笔记,有RBM阅读笔记,从而有如下公式:

RBM阅读笔记,

RBM阅读笔记,

RBM阅读笔记.

上述三个公式中关于RBM阅读笔记的计算复杂度是RBM阅读笔记的,这里通常采用MCMC(马尔科夫链蒙特卡洛方法)例如Gibbs采样方法进行采样。但是对RBM阅读笔记处理的十分缓慢的原因是需要经过许多步的状态转移才能保证采集到的样本符合目标分布。既然我们的目标是让RBM拟合训练样本的分布,那么就让MCMC的状态以训练样本作为起点,这样就只需要很少次的状态转移就能抵达RBM的分布了。基于这个原因,Hinton大神发明了训练RBM的标准算法:对比散度(CD-k)算法。

k步CD算法的步骤为:对RBM阅读笔记,取初值RBM阅读笔记,然后执行k布Gibbs采样,在实际应用中,k=1就能保证良好的学习效果。其中第t步(t=1,2,...,k)先后执行:

利用RBM阅读笔记采样出RBM阅读笔记;-----sample_h_given_v

利用RBM阅读笔记采样出RBM阅读笔记; -----sample_v_given_h

接着,利用k步Gibbs采样后得到的RBM阅读笔记来近似估计 RBM阅读笔记,具体变为:

RBM阅读笔记,

RBM阅读笔记,

RBM阅读笔记.

这样一来,关于L_S的梯度计算公式就变得具体可算了,CD-k算法的目标是获取一次梯度上升迭代中偏导数RBM阅读笔记RBM阅读笔记的近似值,分别简记为ΔW,Δa,Δb。RBM(W,a,b)表示以W,a,b为参数的RBM网络。这里截取【1】的模块CDK的算法描述:

RBM阅读笔记

完整的RBM训练算法:

RBM阅读笔记

引用:

【1】http://blog.csdn.net/itplus/article/details/19168937

【2】http://blog.sciencenet.cn/blog-798994-789555.html

【3】http://blog.csdn.net/wbgxx333/article/details/9386607

【4】http://blog.csdn.net/u010681136/article/details/40189349

RBM阅读笔记

上一篇:CSS系列:CSS中盒子的浮动与定位


下一篇:App技术框架