最近在看管与深度学习的东西,发现hitton 的RBM 推广的DBN与DBM之间的差异,不是很清楚,就查阅一些资料,总结一下
![](http://img.e-com-net.com/image/info8/dfe8a3c4ead9410f817ae859de9458c6.jpg)
如上图是一个三层的DBM,十分类似于DBN,但是他的隐层是互相可以传递的,而DBN的几个隐层是不能够互相传递的,是单向的。
关于DBM,使用最大似然估计训练速度太慢了,所以作者采用Greedy Layerwise的贪婪分层法来进行pretrain
从图中可以看出DBN是一种有向图,DBM是无向图,
广义的来看DBN是含有多个连接层的隐含变量的sigmoid belief networks
DBM是含有多个连接层的隐含变量的Markov random fields
两者都是概率图模型,都是由RBMs堆叠起来的,主要的不同是来自他们的连接方式
DBN连接两个层是有方向的,在RBM中是无向的,在外部的连接是有向的,
DBM连接所有的层是无向的,每一层都是RBM,
DBM
在其中每一层捕获前一层的隐含的神经元之间复杂的,高阶的相关性,
可以潜在的去学习一些复杂的内部表示
与DBN不同的是其可以自上而下的调节其反馈调节,具有更好的鲁棒性,但是计算复杂。
DBN
在程序中查看MATLAB的代码中(DeepLearnToolbox)中DBNs中的训练其实是为了给NN提供连接的权重初始化的数值,
在DBNs中的训练也是调用RBM,是以RBM为单元进行的逐层的训练。感觉跟DBM没有太大去分。
把隐藏层的层数增加,我们可以得到Deep Boltzmann Machine(DBM);如果在靠近可视层的部分使用贝叶斯信念网络(即有向图模型,当然这里依然限制层中节点之间没有链接),而在最远离可视层的部分使用Restricted Boltzmann Machine,可以得到DeepBelief Net(DBN)。
RBM,作为一个概率神经网络,当然也可以理解成一个无向图模型,有一点很重要,那就是连接的无向性,也正是这个性质,才让模型符合了统计力学的各种理论,建立起美妙却虐人的RBM。但是DBN,无疑是一个向计算妥协了的折衷模型。
![]()
![DBM 与DBM的区别_第1张图片](http://img.e-com-net.com/image/info8/49386962e18648509c064420ff1e67b7.jpg)
上图是从DBM的文章中截取的,或许可以说明差异吧
![]()
![DBM 与DBM的区别_第2张图片](http://img.e-com-net.com/image/info8/82f598f734b847dcb7b990c62bdb1fcf.jpg)
此图是从DBN的文章截取的在对RBM的单元的组合上存在着差异
在知乎上看到下面的解释感觉还是比较中肯的,
可以看下DBN的模型结构,就是说其实在计算中,低层的分布并不依赖与高层。再来看下DBM的模型,和DBN最大的不同,就是DBM的低层的分布求解其实也依赖与高层的分布。简单的说,DBN的h1层是依赖v的分布,但是DBM的h1却同时依赖h2和v。
从网上查找DBN与DBM的差异还是不好找的,从数学的角度上或许有很多吧。
下面附上原文中的解释,(本人翻译水平不行),还是看原版吧。。。
其中,DBN和DBM的图结构和联合概率表达已经被大家所熟知,但是在DBN的Pretraining中,为什么可以将一个infinite logistic belief net看做一个RBM仍然得不到一个完美的解释,这个问题同时牵涉到了stackd RBMs形成的是一个DBN,而不是一个DBM。同时在训练DBM时,Pretraining的阶段,首层和尾层训练的是一个modified RBM,此处也未得到合理的解释,最后这样形成的就是DBM。在fine-tune DBM的过程中,我们需要重新构建一个新的网络,如何得到这样的网络仍然是一个未被解释清楚的问题。
应用部分,我们可以看到DBN和DBM来做字符的识别时,错误率分别是1.25%和0.95%。用DBN和DBM生成伪造样本时,DBM似乎生成出来的效果更好。广义上来说,DBN和DBM可以是用来做降维(升维)或特征学习的,Hinton 的 Science 文章中也指出了,降维的过程中,DBN具有无监督聚类的作用,并且效果奇好。
在查看一些资料后总结如下
![]()
一般来说主要的区分还是看是否有向.
有向图一般是DBN,而无向一般是DBM,在手写字符识别中使用的是DBM(DBN)这样看来在hitton的文章中是指DBM. Stacked RBM->DBN网络
且在识别上DBM较DBN效果好.
DBM是hitton的学生的一篇论文中所展示的.
After the stack of RBM’s has been learned, the whole stack can be viewed as a single probabilistic model, called a “deep belief network“
从文章中可以看出DBM更像是一种层次的训练的时候权重w是不对称的,DBN是一种一层一层的训练但是一层的权重是对称的。
Although Deep Belief Networks (DBNs) and Deep Boltzmann Machines (DBMs) diagrammatically look very similar, they are actually qualitatively very different. This is because DBNs are directed and DBMs are undirected. If we wanted to fit them into the broader ML picture we could say DBNs are sigmoid belief networks with many densely connected layers of latent variables and DBMs are markov random fields with many densely connected layers of latent variables.