- 1. 原理
- 2. 结构
1. 原理
参考: https://bacterous.github.io/2018/05/22/Restricted Boltzmann Machine/
受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。
Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及逐层预训练的训练方法,开启了深度学习的序章。其中,DBN中在层间的预训练就采用了RBM算法模型。RBM是一种无向图模型,也是一种神经网络模型。
深度信念网络DBN可以参考:
https://snowkylin.github.io/blogs/DBN.html
深度信念网络(Deep Belief Networks, DBNs)由Geoffrey Hinton于2006年提出,是一种经典的深度生成式模型,通过将一系列受限玻尔兹曼机(RBM)单元堆叠而进行训练。这一模型在MNIST数据集上的表现超越了当时流行的SVM,从而开启了深度学习在学术界和工业界的浪潮,在深度学习的发展历史中具有重要意义。尽管随着大量表现更好的深度学习算法的出现,深度信念网络已经很少使用,但其理论的优美性、方法的开创性和历史意义的重要性。
回到RBM受限玻尔兹曼机,
RBM具有两层:可见层(V层),以及隐藏层(H层)。可以看到,两层神经元之间都是全连接的,但是每一层各自的神经元之间并没有连接,也就是说,RBM的图结构是一种二分图(bipartite graph)。
正是这个特点,才叫受限玻尔兹曼机,玻尔兹曼机是允许同一层之间的神经元相连的。RBM其实是一种简化了的BM模型。
还有一个特点,RBM中的神经元都是二值化的,也就是说只有激活和不激活两种状态,也就是0或者1;可见层和隐藏层之间的边的权重可以用W来表示,
W是一个VxH大小的实数矩阵。
算法难点主要就是对W求导,用于梯度下降的更新;但是因为V和H都是二值化的,没有连续的可导函数去计算,实际中采用的sampling的方法来计算,
这里面就可以用比如Gibbs sampling的方法,当然,Hinton提出了对比散度Constractive Divergence CD方法,比Gibbs方法更快,已经成为求解RBM的标准解法。
2. 结构
因为RBM隐层和可见层是全连接的,为了描述清楚与容易理解,把每一层的神经元展平即可,
RBM是一个能量模型(Energy based model, EBM),是从物理学能量模型中演变而来;能量模型需要做的事情就是先定义一个合适的能量函数,然后基于这个能量函数得到变量的概率分布,最后基于概率分布去求解一个目标函数(如最大似然)。RBM的过程如下:
现在变量是(v,h),包括隐层和可见层神经元;参数包括θ=(W,a,b)。能量函数定义:
如果写成向量/矩阵: