深度学习
目前大多数机器学习能够取得不错的效果,因为可以人工设计表示和特征。机器学习只是用来优化权值,用来作出最终决策或预测。
表示学习的目标是自动学到好的特征或表示。深度学习的目标是学习多级表示,更高一级的表示会更加复杂或更加抽象。
一个深层结构
相关工作主要围绕深度信念网络(DBNs),多层马尔科夫随机场,以及其他的多层神经网络。
下面是一个示例,由输入层,三个隐含层,输出层构成。其中,隐含层越往上学到的特征越抽象。
1.1基础---五个研究深度学习的原因
#1学习表示
人工设计特征比较耗时
特征经常过于特定化,并且不完整
对于每个任务或领域等,都不得不需要重复性工作
需要超越人工设计特征和简单的机器学习
人类可以为学习和推理开发新的表示
计算机也应该做到
深度学习就提供了这样一种方式
#2需要分散式表示
当前的NLP系统非常脆弱,因为它是基于原子符号的表示
需要分布式表示
学习得到的表示对NLP帮助很大,这种方法可以学到单词之间的相似性模型。
KooCollins在年的一篇论文中利用BrownClustering方法使得依赖解析任务中的F1提升了1.4%,误差降低了15.2%。
斯坦福NER利用exchangeclustering使得命名实体识别的F1提升了3.4%,误差降低了23.7%。
分散式表示则依赖更多维度来取得更好的表示。
所学不互斥的特征会使得模型的复杂度相对基于最近邻的模型或聚类模型的复杂度具有指数级的缩减。
分散式表示可以缓解维数灾难。局部泛化,比如最近邻方法,需要对所有相关变换都得到可以用来表示的样例。这方面比较经典的解决方案有:
手工设计特征
假设一个光滑的目标函数,比如线性模型
核方法,线性的基于样本点的核函数
神经网络通过设置适当的参数也可以学到相似性核函数。
#3无监督特征学习与权重学习
当前,大部分实用的效果较好的NLP和机器学习方法都需要有标签的训练数据,即有监督学习。但是几乎所有数据都是无标签的。另外,大部分信息需要无监督学习得到。有幸的是,一个好的模型有助于学习得到分类决策。
#4学习多层表示
深度学习是一种由生物学激发的学习方法。大脑皮层中似乎有一种通用的学习算法,而且大脑具有一种深层结构。
实际应用中需要效果较好的中间表示,这些中间表示可以跨任务共享。多层隐含变量可以组合式共享统计学的优势,不够深的模型表达能力不够强,可能是指数级的缩减。
人类语句由字和短语构成,机器学习模型中需要语义合成。人类语句中具有一种递归性。即同样的算子(相同的参数)重复用于不同的组成部分。
#5为什么现在兴起?
尽管之前对很多算法技巧都有所研究和理解,但是年之前,训练深层结构并不成功。自从年GeofferyHinton在《Science》上发表了论文,情形有所改观:
提出了无监督预训练的新方法,限制性玻尔兹曼机,自编码,对比估计等。
有了更有效的参数估计方法
对模型规整(约束,正则)有了更好的理解。
深度学习在自然语言处理中已经取得惊人的效果。
深度学习在某些场景会非常快,比如:
?SENNA [Collobertetal]在POS或者NER任务中比其他SOTAtaggers快很多,将近16x到x,并且内存缩减了25x
?WSJPOS取得了97.29%的准确率;CoNLLNER任务达到了F1达到了89.59%;CoNLL在Chunking任务中F1达到了94.32%
计算技术的发展也促进了深度学习的兴起 ?在NLP中,传统方法是通过借助稀疏性来获得速度的提升?但是,有了现在的机器,程序分支和稀疏排列的内存访问比较昂贵 ?在密集向量中执行统一的并行操作速度更快一些
有了多核CPU和GPU,这些趋势会得到更加明显的体现。
参考资料资源