近年来Deep Learning越来越火,先是MS研究院在语音识别取得了突破,后来到国内,百度成立研究院。Deep Learning作为一种机器学习模型的突破,已经被迅速应用到各个领域。我赶时髦,看一些ppt,做做笔记。
《Learning Deep Architectures_Bengio_2009》
1. Bengio 是Deep Learning的领军人物之一了,这个ppt是对其经典论文“Learning Deep Architectures for AI”中内容的描述,共87页。
2. 在deep learning之前,与之有关系的有两种:(1)shallow learning,典型的例子是svm,这些可以看做是有一个隐含层的神经网络,deep learning与之的关键区别是有多个隐含层,而且不是“一般的”多,如,十层;(2)deep neural network,也是包含有多个隐含层的神经网络,不过是用典型的bp算法做训练的,而deep learning引入了pre-training,提升了训练效果。
3. deep learning的初衷
(1)和当初神经网络一样,仿生学基础
(2)维数灾难问题:当参数太多,没有足够的样本来学习这些参数。
deep learning提供了另一种思路,参数不多,不过通过增加层数来提高网络结构的复杂度。而每提高一层,网络的描述能力就会指数及增加。
(3)高描述能力
4. deep learning在2006年取得突破,有三篇经典文章
(1)Hinton, Osindero & Teh « A Fast Learning Algorithm for Deep Belief Nets », Neural Computation , 2006
(2)Bengio, Lamblin, Popovici, Larochelle « Greedy Layer-Wise Training of Deep Networks », NIPS’2006
(3)Ranzato, Poultney, Chopra, LeCun « Efficient Learning of Sparse Representations with an Energy-Based Model », NIPS’2006
5. Greedy Layer-Wise Pre-Training
前文说过,其实多层神经网络从前就有,只不过训练方法不当,模型一直没有取得比较好的效果;而相比之下deep learning只是加了pre-training,就效果大大提升。
pre-training是用RBM(Stacking Restricted Boltzmann Machines)做的。在每一对儿相邻层,都可以看做是一个RBM。RBM是无指导(unsuperwise)训练,所以可以从输入层开始,对上一层进行参数训练。当上一层参数训练好了之后,用这些参数,结合具体输入,继续向更上一层做参数训练。这就是stacking RBM的含义。而整个过程称为pre-training。最终训练出来的参数,作为模型参数的初始值,再用传统的bp方法对整个模型进行细调,从而形成最终的模型。
6. 接下来介绍了几个deep learning取得成功的例子
7. 介绍RBM的理论和训练方法
8. 讨论了一些问题
(1)如果没有最后的bp微调,模型会怎样——效果不好
(2)如果只有一个隐含层,效果怎样——也不好
(3)为什么pre-training之后,效果就好了:pre-training可以看做是对p(x)(先验知识)的一种逼近,而p(x)对预测p(y|x)是有很大帮助的。
《Tutorial on Deep Learning and Applications_Honglak_Bengio_2010》
1. 在“NIPS 2010 Workshop on Deep Learning and Unsupervised Feature Learning”上面的ppt。从作者顺序上看,Honglak是Bengio的学生。从ppt的内容上看,绝大部分内容与《Learning Deep Architectures_Bengio_2009》重复,不过思路更加清晰,更加中规中矩。
2. 反向传播算法在传统deep neural network中效果不好的原因
(1)bp算法根据错误沿着梯度方向进行修正参数,错误大小,随着层数的增加而迅速降低,对于网络深层的参数很难得到有效训练
(2)容易陷入局部最优解
(3)bp要求有监督训练,即需要标注语料,而现实中未标注的语料是最多的
3. deep network training
step1:unsuperwise learning, layerwise training, help the network initialize with good parameters
step2:superwise top-down training
4. Deep Boltzman Machines:这部分比上一个ppt讲得好点,可操作性强,上一个都是理论
5. DNN应用
(1)图像
(2)语音识别:用到了声学模型上
(3)自然语言处理,语言模型,以下两部分工作可以作为参考
Bengio et al. (2000, 2003): via Neural network
Mnih and Hinton (2007): via RBMs
除了语言模型,还用到了其他序列标注问题上,如:词性标注、组块分析、语义角色标注等