Deep Belief Network
为了更好的在下次讨论班讲述 DBN,特开此帖。主要是
介绍 DBN 的相关知识,做一份逻辑上完整的东西。参考
Hinton 的东西来讲吧:
reading list
RBM 相关
[1] 关于 Boltzmann machine 的 scholarwiki
[2] Haykin 书上第 11 章
[3] Duda 书上第 7 章
[4] RBM 的 exponential family 扩展
[5] RBM 的建模能力:作为 universal approximator
Contrastive Divergence 相关
[6] 提出 PoE 的文章,也是 CD 提出的文章
[7] 关于实践中 CD 的效果
[8] 收敛性分析
Helmholtz machine 相关
一个别人的 list
[9] 提出的概念
[10] 训练算法 wake-sleep
PoE 相关
[11] scholarwiki 上 Max Welling 的文章
[12] t-distr 的 PoE
DBN 相关
[13] NIPS2007 Tutorial on DBN
[14] Hinton 课堂 slides
[15] 哲学层面思考:深度是为了提高编码效率
[16] 快速学习算法:DBN + softmax
[17] 做维数约简
[18] 使用 DBN + GP 分类
其他相关文章
[19] Sigmoid belief network
[20] FoE
[21] FoE 原始的文章
简介
理解 DBN 分几个步骤,如何训练一个 DBN 每层的 RBM,
如何把这些 RBM 粘合起来,最后如何使用这些作为一个
belief network 解决实际问题。
RBM 是一个 PoE [6],因此也是一个特殊的 MRF,其学习由
于那个 normalization factor 造成困难,虽然可以用 MCMC
来解决,但是并不好(速度慢、方差大)。在 2002 年左右
Hinton 提出了基于 CD 的训练算法 [6] 取代原来的 MLE获得了
良好的效果,为什么会去做 RBM 可以参看关于 RBM 这个
universal approximator 的文章 [5]。
使用 deep architecture 的主要原因是 encoding efficiency [15],
使用多层需要用一个 greedy 算法 pretraining [16],这个算法
保证第一层上训练出来的隐层的分布作为第二层的显层输入
时可以提高边际似然 [16]。接着需要根据应用的类型对这个模型
进一步的 fine tune。
比如分类问题,可以引入一层 softmax 的 neuron [16],用其在
标注数据上的 loss 使用 BP 进行 fine tune(可能需要
Helmholtz machine 相关的方法 [10]);比如 dimensionaly
reduction [17],其实把原来的网络反过来就可以 reconstruction,
然后根据 reconstruction error 使用 BP;又比如
相关连接
ML project of super big cow soup
Hinton‘s page for the DBN project
Hinton‘s page for the Science paper
Hinton‘s reading list for DBN
研究问题
1. 是否可以用 nonparametric Bayesian method 改变 Boltzmann
machine?