受限玻尔兹曼机

受限玻尔兹曼机（, RBM）是一种可通过输入数据集学习概率分布的随机生成神经网络。RBM最初由发明者于1986年命名为簧风琴（Harmonium），但直到杰弗里·辛顿及其合作者在2000年代中叶发明快速学习算法后，受限玻兹曼机才变得知名。受限玻兹曼机在降维、分类、协同过滤、特征学习和主题建模中得到了应用。根据任务的不同，受限玻兹曼机可以使用监督学习或无监督学习的方法进行训练。

正如名字所提示的那样，受限玻兹曼机是一种玻兹曼机的变体，但限定模型必须为二分图。模型中包含对应输入参数的输入（可见）单元和对应训练结果的隐单元，图中的每条边必须连接一个可见单元和一个隐单元。（与此相对，“无限制”玻兹曼机包含隐单元间的边，使之成为循环神经网络。）这一限定使得相比一般玻兹曼机更高效的训练算法成为可能，特别是基于梯度的对比分歧（contrastive divergence）算法。

受限玻兹曼机也可被用于深度学习网络。具体地，深度信念网络可使用多个RBM堆叠而成，并可使用梯度下降法和反向传播算法进行调优。

结构 
标准的受限玻尔兹曼机由二值（布尔/伯努利）隐层和可见层单元组成。权重矩阵中的每个元素指定了隐层单元和可见层单元之间边的权重。此外对于每个可见层单元有偏置，对每个隐层单元有偏置。在这些定义下，一种受限玻尔兹曼机配置（即给定每个单元取值）的“能量”被定义为

或者用矩阵的形式表示如下：

这一能量函数的形式与霍普菲尔德神经网络相似。在一般的玻尔兹曼机中，隐层和可见层之间的联合概率分布由能量函数给出：

其中，为配分函数，定义为在节点的所有可能取值下的和（亦即使得概率分布和为1的归一化常数）。类似地，可见层取值的边缘分布可通过对所有隐层配置求和得到：

由于RBM为一个二分图，层内没有边相连，因而隐层是否激活在给定可见层节点取值的情况下是条件独立的。类似地，可见层节点的激活状态在给定隐层取值的情况下也条件独立。亦即，对个可见层节点和个隐层节点，可见层的配置对于隐层配置的条件概率如下：

.

类似地，对于的条件概率为

.

其中，单个节点的激活概率为

和

其中代表逻辑函数。

与其他模型的关系 
受限玻尔兹曼机是玻尔兹曼机和马尔科夫随机场的一种特例。这些概率图模型可以对应到因子分析。

训练算法 
受限玻尔兹曼机的训练目标是针对某一训练集，最大化概率的乘积。其中，被视为一矩阵，每个行向量作为一个可见单元向量：

或者，等价地，最大化的对数概率期望：

训练受限玻尔兹曼机，即最优化权重矩阵，最常用的算法是杰弗里·辛顿提出的对比分歧（contrastive divergence，CD）算法。这一算法最早被用于训练辛顿提出的“专家积”模型。这一算法在梯度下降的过程中使用吉布斯采样完成对权重的更新，与训练前馈神经网络中利用反向传播算法类似。

基本的针对一个样本的单步对比分歧（CD-1）步骤可被总结如下：

 取一个训练样本，计算隐层节点的概率，在此基础上从这一概率分布中获取一个隐层节点激活向量的样本；
 计算和的外积，称为“正梯度”；
 从获取一个重构的可见层节点的激活向量样本，此后从再次获得一个隐层节点的激活向量样本；
 计算和的外积，称为“负梯度”；
 使用正梯度和负梯度的差以一定的学习率更新权重：。

偏置和也可以使用类似的方法更新。

参见 
 自編碼
 自编码器
 深度学习
 Hopfield神經網絡

参考资料

外部链接 
 Introduction to Restricted Boltzmann Machines. Edwin Chen's blog, July 18, 2011.

人工神经网络