DBM 和 DBN 的区别

来源:互联网 发布:mssql数据库管理工具 编辑:程序博客网 时间:2024/05/16 04:50

下边这部分摘自知乎:http://www.zhihu.com/question/24005468

首先,还是纠正下题主,直接叠加RBM是DBN。而DBM是一个真正的无向图模型,层间互有反馈

DBN是hiton在06年发表在science上的“Reducing the dimensionality of data with neural networks.”这篇文章中提到的方法,具体的细节不做过多阐述,因为确实很简介,就是简单的叠加RBM,逐层训练后来个最后的fine turn。方便快捷,而且效果也不错,现在经常用来做一些DNN和CNN的预训练,值得注意的是,hinton在imagenet上的比赛虽然是用的CNN模型,但是就是利用的DBN做的预训练。
重点说下DBM,这是我比较喜欢的一个DL模型。
为什么喜欢,因为DBM才是真正的深度RBM模型!
为什么喜欢,因为DBM才是真正的深度RBM模型!
为什么喜欢,因为DBM才是真正的深度RBM模型!
好吧,这只是我的想法。
RBM,作为一个概率神经网络,当然也可以理解成一个无向图模型,有一点我觉得很重要,那就是连接的无向性,也正是这个性质,才让模型符合了统计力学的各种理论,建立起美妙却虐人的RBM。但是DBN,无疑是一个向计算妥协了的折衷模型。

可以看下DBN的模型结构,就是说其实在计算中,低层的分布并不依赖与高层。这句可能有些难懂,放在后面细说。再来看下DBM的模型,和DBN最大的不同,就是DBM的低层的分布求解其实也依赖与高层的分布。简单的说,DBN的h1层是依赖v的分布,但是DBM的h1却同时依赖h2和v。
这有什么区别呢,其实如果从效果来看,DBM仅仅是比DBN的鲁棒性更好而已,但是计算代价却。。。不忍直视。我感觉这就是为什么hinton大神先提出了DBN,一上来就搞个需要各种mean field 各种变分分析求解的模型,很多工科背景的人可能会直接忽略吧。。。但是先搞个亲民版的DBN,大家一看,效果不错啊,在来继续深究DBM,恩,就会有一些像我这样的傻瓜入坑了。。。
DBM的东西太多,虽然推导都非常漂亮,但是一时半会儿也说不清楚,不过DBM真的是个很美的模型!虽然现在貌似hinton老爷子都不怎么搞DBM,完全由他的Ruslan Salakhutdinov弟子再搞。但是这种将统计力学和图模型还有神经网络完美结合的模型,想想就让人很兴奋呢!


参考文献
Reducing the dimensionality of data with neural networks
Deep Boltzmann Machines
0 0
原创粉丝点击