1.受限波尔茨曼机的learning问题利用了CD-k算法
2.它对每个观测样本进行一次Gibbs采样,在k-step得到采样样本
3.最终得到跟训练集样本数大小的的M个采样样本,然后执行梯度下降法
在受限波尔茨曼机(RBM)一文中,我们介绍了RBM的联合分布表达式,以及Inference问题,当时我们遗漏了它的Learning问题,求解RBM的学习问题要基于CD-Learning的思想,我们这一篇就介绍RBM的参数估计解法。
开始之前,先回顾一下RBM的概率图模型表示:
以及其联合分布形式:
RBM的似然函数梯度形式
给定训练数据集S,其样本个数是M,能观测的变量是v:
那么对观测变量的对数似然函数为:
对似然函数化简的等号右边第一项求导有:
对等号右边第二项求导有:
所以,对数似然函数的梯度可以化为:
其中要求解的参数θ是:
RBM的参数求解迭代式
有了对数似然函数的梯度,我们利用梯度法求解RMB的参数θ.
先看边的权重参数w。根据能量函数表达式有:
于是:
等号右边第一项可以化简:
注:RBM的隐状态取值0或1
等号右边第二项化简为:
于是得到对p(v)对边权重w的梯度表达式:
按照上面的化简思路,p(v)对α,β的梯度表达式更加容易得到,这里不再赘述。我们重点关注的是对于梯度的第二个式子:
它很难直接求解,我们得利用CD-Learning的思路构造梯度进行近似推断求解。
RBM的对比散度算法
我们观察上一节梯度的第二个式子,它其实是p(v0下的期望:
那么我们就可以利用MCMC采样思想,得到其期望。采取Gibbs的k-step算法(即CD-k)进行采样:
它的采样过程如下图所示:
对每个样本都会进行一次Gibbs采样过程,最终会得到M个采样样本,从而最终得到边权重wij的梯度:
然后执行梯度法即可!