把这两个概念放到一起来讲,也是由于最近看的书——Deep Learning,之前我一直以为这两个概念是相同的,看完书以后发现,似乎有一些不同,写出来和大家探讨一下。
首先呢,文中给出了这样一个图来说明二者的不同:
(图片来源见水印,摘自Deep Learning)
深度置信网络(deep belief network,DBN):它的定义如下:深度置信网络是具有若干隐变量层的生成模型。隐单元通常是二值的,而可见单元可以是二值或实数。只有一个隐藏层的 DBN 只是一个 RBM。
结构特点:顶部两层之间的连接是无向的,而其他所有层之间的连接是有向的,箭头指向最接近数据的层。
生成性如何体现,文中是这么说的:
为了从 DBN 中生成样本,我们先在顶部的两个隐藏层上运行几个 Gibbs 采样步骤。这个阶段主要从 RBM(由顶部两个隐藏层定义)中采一个样本。然后,我们可以对模型的其余部分使用单次原始采样,以从可见单元绘制样本。
我是这么理解的,也就是说对于一个训练好的模型,我们可以在顶层之间通过几次Gibbs采样来使得结果相对收敛,通过这样的采样结果,我们再通过有向网络一步步地得到可见层的输出结果。
术语“”深度置信网络”通常不正确地指代任意种类的深度神经网络,甚至没有隐变量意义的网络。
术语“信念网路”有时指纯粹的有向模型,而深度信念网路包含一个无向层。
我们看一下联合概率密度函数,还有条件分布概率等公式:
DBN的联合概率密度函数需要通过Bayesian公式得到:
(对于下图的DBN),有:
其实从这个联合概率密度函数的形式可以知道,DBN就是一个多层的,并且层层堆叠的深度网络。
(其实我觉得这些概念讲的都不太好,读了两三遍还是不太理解,大家先了解一下就好)
深度玻尔兹曼机(Deep Boltzmann Machine, DBM):是另一种深度生成模型。与深度信念网络(DBN)不同的是,它是一个完全无向的模型。与 RBM 不同的是,DBM 有几层潜变量(RBM 只有一层)。但是像 RBM 一样,每一层内的每个变量是相互独立的,并条件于相邻层中的变量。深度玻尔兹曼机已经被应用于各种任务,包括文档建模(Srivastava et al., 2013)。
与 RBM 和 DBN 一样,DBM 通常仅包含二值单元(正如我们为简化模型的演示而假设的),但很容易就能扩展到实值可见单元。
(是不是很拗口,什么垃圾概念!!!摔!!!)
其实 DBM就是玻尔兹曼机,只不过它有好多层啊!
注意到:这里的联合概率密度是这个网络中所有层的单元共同决定的。
给出它们的比较:
在学习的过程中:
注意:蓝色箭头和红色箭头只是表示在更新某个单元时,其它单元对它的作用,并不表示网络的有向性。
这里不再给出公式的推导,有兴趣的可以自行去查阅。希望上述内容对大家理解DBN和DBM有所帮助。
领取专属 10元无门槛券
私享最新 技术干货