由于受限玻尔兹曼机是一个二分图,所以隐层单元的激活在给定可见单元取值的情况下是条件独立的,所以条件概率分布:
单个节点的激活概率为:
和:
σ
为Sigmoid函数。
上面的过程是不是与我们在《浅谈机器学习基础》文中推导LR目标函数的过程有些相似?先利用Sigmoid函数表示出每个节点的激活概率,接下来最大化训练集V
的生成概率,训练RBM也是同理:
训练受限玻尔兹曼机,即最优化权重矩阵W
,使训练集V
的生成概率最大,常采用的算法叫做对比分歧(contrastive divergence,CD)算法。这一算法在梯度下降的过程中使用吉布斯采样完成对权重的更新,与训练前馈神经网络中利用反向传播算法(BP)类似。
首先简单说一下什么是吉布斯采样(Gibbs),当积分、期望、联合概率分布很难计算出来(NP问题)的时候,我们利用条件概率产生符合分布的样本,用于估计分布的期望,边缘分布;是一种在无法精确计算情况下,用计算机模拟的方法。
之后是CD-k算法,CD算法的大概思路是,从任意一个样本开始,用经过k次吉布斯采样得到的样本来近似梯度的计算,然后依照梯度去更新参数,与前面讲过的梯度上升/下降算法原理相同。