受限玻尔兹曼机

受限玻尔兹曼机（英語：restricted Boltzmann machine, RBM）是一种可通过输入数据集学习概率分布的随机生成神经网络。RBM最初由发明者保罗·斯模棱斯基（英语：Paul Smolensky）于1986年命名为簧风琴（Harmonium），但直到杰弗里·辛顿及其合作者在2000年代中叶发明快速学习算法后，受限玻兹曼机才变得知名。受限玻兹曼机在降维、分类、协同过滤、特征学习和主题建模中得到了应用。根据任务的不同，受限玻兹曼机可以使用监督学习或无监督学习的方法进行训练。 正如名字所提示的那样，受限玻兹曼机是一种玻兹曼机的变体，但限定模型必须为二分图。模型中包含对应输入参数的输入（可见）单元和对应训练结果的隐单元，图中的每条边必须连接一个可见单元和一个隐单元。（与此相对，“无限制”玻兹曼机包含隐单元间的边，使之成为循环神经网络。）这一限定使得相比一般玻兹曼机更高效的训练算法成为可能，特别是基于梯度的对比分歧（contrastive divergence）算法。 受限玻兹曼机也可被用于深度学习网络。具体地，深度信念网络可使用多个RBM堆叠而成，并可使用梯度下降法和反向传播算法进行调优。 标准的受限玻尔兹曼机由二值（布尔/伯努利）隐层和可见层单元组成。权重矩阵 W = ( w i , j ) {\displaystyle W=(w_{i,j})} 中的每个元素指定了隐层单元 h i {\displaystyle h_{i}} 和可见层单元 v j {\displaystyle v_{j}} 之间边的权重。此外对于每个可见层单元 v i {\displaystyle v_{i}} 有偏置 a i {\displaystyle a_{i}} ，对每个隐层单元 h j {\displaystyle h_{j}} 有偏置 b j {\displaystyle b_{j}} 。在这些定义下，一种受限玻尔兹曼机配置（即给定每个单元取值）的“能量”(v,h)被定义为 E ( v , h ) = − ∑ i a i v i − ∑ j b j h j − ∑ i ∑ j h j w i , j v i {\displaystyle 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 T v − b T h − h T W v {\displaystyle E(v,h)=-a^{\mathrm {T} }v-b^{\mathrm {T} }h-h^{\mathrm {T} }Wv} 这一能量函数的形式与霍普菲尔德神经网络相似。在一般的玻尔兹曼机中，隐层和可见层之间的联合概率分布由能量函数给出： P ( v , h ) = 1 Z e − E ( v , h ) {\displaystyle P(v,h)={\frac {1}{Z}}e^{-E(v,h)}} 其中， Z {\displaystyle Z} 为配分函数，定义为在节点的所有可能取值下 e − E ( v , h ) {\displaystyle e^{-E(v,h)}} 的和（亦即使得概率分布和为1的归一化常数）。类似地，可见层取值的边缘分布可通过对所有隐层配置求和得到： P ( v ) = 1 Z ∑ h e − E ( v , h ) {\displaystyle P(v)={\frac {1}{Z}}\sum _{h}e^{-E(v,h)}} 由于RBM为一个二分图，层内没有边相连，因而隐层是否激活在给定可见层节点取值的情况下是条件独立的。类似地，可见层节点的激活状态在给定隐层取值的情况下也条件独立。亦即，对 m {\displaystyle m} 个可见层节点和 n {\displaystyle n} 个隐层节点，可见层的配置v对于隐层配置h的条件概率如下： P ( v | h ) = ∏ i = 1 m P ( v i | h ) {\displaystyle P(v|h)=\prod _{i=1}^{m}P(v_{i}|h)} . 类似地，h对于v的条件概率为 P ( h | v ) = ∏ j = 1 n P ( h j | v ) {\displaystyle P(h|v)=\prod _{j=1}^{n}P(h_{j}|v)} . 其中，单个节点的激活概率为 P ( h j = 1 | v ) = σ ( b j + ∑ i = 1 m w i , j v i ) {\displaystyle P(h_{j}=1|v)=\sigma \left(b_{j}+\sum _{i=1}^{m}w_{i,j}v_{i}\right)\,} 和 P ( v i = 1 | h ) = σ ( a i + ∑ j = 1 n w i , j h j ) {\displaystyle \,P(v_{i}=1|h)=\sigma \left(a_{i}+\sum _{j=1}^{n}w_{i,j}h_{j}\right)} 其中 σ {\displaystyle \sigma } 代表逻辑函数。 受限玻尔兹曼机是玻尔兹曼机和马尔科夫随机场的一种特例。这些概率图模型可以对应到因子分析。 受限玻尔兹曼机的训练目标是针对某一训练集 V {\displaystyle V} ，最大化概率的乘积。其中， V {\displaystyle V} 被视为一矩阵，每个行向量作为一个可见单元向量 v {\displaystyle v} ： arg ⁡ max W ∏ v ∈ V P ( v ) {\displaystyle \arg \max _{W}\prod _{v\in V}P(v)} 或者，等价地，最大化 V {\displaystyle V} 的对数概率期望： arg ⁡ max W E [ ∑ v ∈ V log ⁡ P ( v ) ] {\displaystyle \arg \max _{W}\mathbb {E} \left[\sum _{v\in V}\log P(v)\right]} 训练受限玻尔兹曼机，即最优化权重矩阵 W {\displaystyle W} ，最常用的算法是杰弗里·辛顿提出的对比分歧（contrastive divergence，CD）算法。这一算法最早被用于训练辛顿提出的“专家积”模型。这一算法在梯度下降的过程中使用吉布斯采样完成对权重的更新，与训练前馈神经网络中利用反向传播算法类似。 基本的针对一个样本的单步对比分歧（CD-1）步骤可被总结如下： 取一个训练样本v，计算隐层节点的概率，在此基础上从这一概率分布中获取一个隐层节点激活向量的样本h； 计算v和h的外积，称为“正梯度”； 从h获取一个重构的可见层节点的激活向量样本v'，此后从v'再次获得一个隐层节点的激活向量样本h'； 计算v'和h'的外积，称为“负梯度”； 使用正梯度和负梯度的差以一定的学习率更新权重 w i , j {\displaystyle w_{i,j}} ： Δ w i , j = ϵ ( v h T − v ′ h ′ T ) {\displaystyle \Delta w_{i,j}=\epsilon (vh^{\mathsf {T}}-v'h'^{\mathsf {T}})} 。 偏置a和b也可以使用类似的方法更新。 自編碼 自编码器 深度学习 Hopfield神經網絡 Smolensky, Paulgengxin. Chapter 6: Information Processing in Dynamical Systems: Foundations of Harmony Theory. Rumelhart, David E.; McLelland, James L. (编). Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations (PDF). MIT Press. 1986: 194–281 [2014-09-16]. ISBN 0-262-68053-X. （原始内容 (PDF)存档于2013-06-13）.  G. E. Hinton, R. R. Salakhutdinov. Reducing the Dimensionality of Data with Neural Networks. Science. 2006-07-28, 313 (5786): 504–507 [2018-04-02]. ISSN 0036-8075. doi:10.1126/science.1127647. （原始内容存档于2018-03-20） （英语）.  Hugo Larochelle, Yoshua Bengio. Classification using discriminative restricted Boltzmann machines. ACM: 536–543. 2008-07-05 [2018-04-02]. ISBN 9781605582054. doi:10.1145/1390156.1390224.  Salakhutdinov, R.; Mnih, A.; Hinton, G. Restricted Boltzmann machines for collaborative filtering. Proceedings of the 24th international conference on Machine learning - ICML '07: 791. 2007. ISBN 9781595937933. doi:10.1145/1273496.1273596.  Coates, Adam; Lee, Honglak; Ng, Andrew Y. An analysis of single-layer networks in unsupervised feature learning (PDF). International Conference on Artificial Intelligence and Statistics (AISTATS). 2011 [2014-09-16]. （原始内容 (PDF)存档于2013-05-10）.  Ruslan Salakhutdinov and Geoffrey Hinton (2010). Replicated softmax: an undirected topic model （页面存档备份，存于互联网档案馆）. Neural Information Processing Systems 23. Miguel Á. Carreira-Perpiñán and Geoffrey Hinton (2005). On contrastive divergence learning. Artificial Intelligence and Statistics. Hinton, G. Deep belief networks. Scholarpedia. 2009, 4 (5): 5947. Bibcode:2009SchpJ...4.5947H. doi:10.4249/scholarpedia.5947.  Geoffrey Hinton (2010). A Practical Guide to Training Restricted Boltzmann Machines （页面存档备份，存于互联网档案馆）. UTML TR 2010–003, University of Toronto. Sutskever, Ilya; Tieleman, Tijmen. On the convergence properties of contrastive divergence (PDF). Proc. 13th Int'l Conf. on AI and Statistics (AISTATS). 2010 [2014-09-16]. （原始内容 (PDF)存档于2015-06-10）.  Asja Fischer and Christian Igel. Training Restricted Boltzmann Machines: An Introduction （页面存档备份，存于互联网档案馆）. Pattern Recognition 47, pp. 25-39, 2014 María Angélica Cueto; Jason Morton; Bernd Sturmfels. Geometry of the restricted Boltzmann machine (PDF). Algebraic Methods in Statistics and Probability (American Mathematical Society). 2010, 516. arXiv:0908.4425 . [永久失效連結] Geoffrey E. Hinton. Training Products of Experts by Minimizing Contrastive Divergence. Neural Computation. 2006-03-30, 14 (8): 1771–1800 [2018-04-02]. doi:10.1162/089976602760128018. （原始内容存档于2018-11-27） （英语）.  Introduction to Restricted Boltzmann Machines（页面存档备份，存于互联网档案馆）. Edwin Chen's blog, July 18, 2011.