《Tutorial on Deep Belief Nets_Hinton_2007_NIPS》
2007年在NIPS的一个报告,70页ppt,那时候deep learning刚起步,作者解释了很多“为什么这么做”或者“为什么这么做了效果好”。
1. 首先讲了“统计学”和“人工智能”的区别
统计学:在低维度数据集合上,用简单模型来表示数据中的结构,其主要困难是去除噪声对真正模型(分布)的影响
人工智能:在高维度的数据集合上,有很多复杂的结构,难以用单一的简单模型来描述,人工智能用复杂模型来学习这些结构
2. bp算法的缺点:
(1)要求是label data
(2)当有多个隐含层的时候,训练速度慢
(3)容易陷入局部最优解
3. 如何克服bp算法的缺点:估计先验概率而不是条件概率
4. 介绍brief nets
(1)对于0-1 vector的时候如何处理
(2)推理容易,训练难
(3)sigmoid belief nets
(4)几种训练方法:
蒙特卡洛抽样(慢)
90年代人们的方法
breakthrough:Boltzmann Machine
Restricted Boltzmann Machines,学习过程,迭代公式
微调过程:bp就很好
5. 实验
用于数字识别,当然效果比svm等方法要好了
6. 为什么上面那么做效果会好
个人觉得,还没有统一理论,碰巧好了,然后来猜是为什么。
(1)用RBM不是严格意义上的训练先验概率,有偏差,不过这种偏差看起来微不足道
(2)可以证明,不断迭代,能够使得模型对数据的描述(log likelihood)的下界不断提升——就是效果越来越好的意思
(3)多少层为好?每层多少神经元为好?
层数还没有定论,不过肯定比单层要好;每层的神经元也没有定论,不过top level的(距离实际输入最远的那层)一定要多一些神经元。
7. 对于实数vector的输入,怎么办?
The Gaussian-Binary RBM
The mean and covariance RBM (mcRBM)
RBM’s with replicated binary units
8. 如何处理时序问题?
类似ngram的思路,只不过把ngram作为实际深度网络的输入。该模型和CRF的关联(讲的简略,个人也没看懂)。
9. reading list
www.cs.toronto.edu/~hinton/deeprefs.html