受限玻尔兹曼机

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

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

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

结构
标准的受限玻尔兹曼机由二值(布尔/伯努利)隐层和可见层单元组成。权重矩阵W = (w_{i,j})中的每个元素指定了隐层单元h_i和可见层单元v_j之间边的权重。此外对于每个可见层单元v_i有偏置a_i,对每个隐层单元h_j有偏置b_j。在这些定义下,一种受限玻尔兹曼机配置(即给定每个单元取值)的“能量”被定义为

:E(v,h) = -\sum_i a_i v_i - \sum_j b_j h_j -\sum_i \sum_j h_j w_{i,j} v_i

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

:E(v,h) = -a^{\mathrm{T}} v - b^{\mathrm{T}} h -h^{\mathrm{T}} W v

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

:P(v,h) = \frac{1}{Z} e^{-E(v,h)}

其中,Z为配分函数,定义为在节点的所有可能取值下e^{-E(v,h)}的和(亦即使得概率分布和为1的归一化常数)。类似地,可见层取值的边缘分布可通过对所有隐层配置求和得到:。这些概率图模型可以对应到因子分析。

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

:\arg\max_W \prod_{v \in V} P(v)

或者,等价地,最大化V的对数概率期望:。这一算法在梯度下降的过程中使用吉布斯采样完成对权重的更新,与训练前馈神经网络中利用反向传播算法类似。

基本的针对一个样本的单步对比分歧(CD-1)步骤可被总结如下:

取一个训练样本,计算隐层节点的概率,在此基础上从这一概率分布中获取一个隐层节点激活向量的样本;

计算和的外积,称为“正梯度”;

从获取一个重构的可见层节点的激活向量样本,此后从再次获得一个隐层节点的激活向量样本;

计算和的外积,称为“负梯度”;

使用正梯度和负梯度的差以一定的学习率更新权重w_{i,j}:\Delta w_{i,j} = \epsilon (vh^\mathsf{T} - v'h'^\mathsf{T})。

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

参见

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

参考资料
外部链接

评论 (0)

  • 还没有评论,来抢沙发吧。