Deep Boltzmann Machines是hinton的学生写的,是在RBM基础上新提出的模型,首先看一下RBM与BM的区别
很明显可以看出BM是在隐含层各个节点以及输入层各个节点都是相互关联的,但是RBM只是两层之间的节点互相关联。
而DBM其实就是多层的RBM,类似于DBN,RBM是拥有一个hidden层,而DBM拥有多个hidden层
如上图是一个三层的DBM,十分类似于DBN,但是他的隐层是互相可以传递的,而DBN的几个隐层是不能够互相传递的,是单向的。
关于DBM,使用最大似然估计训练速度太慢了,所以作者采用Greedy Layerwise的贪婪分层法来进行pretrain
1、贪婪分层法预训练DBM
计算的时候例如计算第二个隐层的时候,使用的输入变量为输入层+第一隐层