表征学习Representation Learning( 三 )
2) 树模型
树模型的一大优势在于算法本身的高度可解释性,因此树模型在表征学习应用上是很有潜力的。前几章我们提到过当模型是可微分模型时,反向传播的效果非常好,又精确又高效,但是当使用的模型是非可微分的时候,我们该怎么解决这类问题呢?这里有个可替代模型——基于树的集成。这种模型可以为离散或表格类数据建模,使用树的集成可以获得分层分布式表征。但此时,我们不能再用链式法则来传播误差,反向传播也不再可行。所以决策树模型很难整合深度神经网络的表征学习能力,但是多层GBDT森林可以使用层见目标传播的变体进行联合训练,这样就无需推导反向传播和可微性。
3) 深度学习
深度学习是最灵活的表征学习。要理解深度神经网络为什么可以做表征学习很简单,其实一般深度神经网络的最后一层都是一个线性分类器,其他层则可看成是在给这个线性分类器提供特征,所以最后一层之前的隐藏层都可被理解为是表征学习。而在这之前,深度学习在CNN图像识别的任务上大获成功,却在实际被诟病为黑箱,让很多搞理论的专家百思不得其解。所以从表征学习这点上看,深度学习的黑箱或许是可以被一窥究竟的。其实就单隐层神经网络已经很好用了,它有个普适性的特点,意思就是给足了隐节点,它就能够估算任何函数来适应你给它的训练数据,也就是单隐层就可以很好地学习表征。近期的研究已经开始为深度学习的表征建立信息论基础,比如观察到的信息瓶颈损失可以被用于计算最佳表征。
表征学习vs. 特征工程
说完表征学习典型的算法,那么问题来了,我们什么时候用表示学习,什么时候又用特征工程呢?第一个需要考虑的是数据的大小,如果数据量很大的时候,我们比较依赖于自动化的表示学习,如果数据量很小,其实目前特征工程的表现更加好。这是什么原因呢?因为数据小,我们根据自己的数据经验和先验知识,就可以判断用什么模型更好,但是数据一旦多了,我们对数据的理解就相对比较浅薄,先验知识所占的分量急剧下降,此时就需要依靠极其强大的计算力去弥补我们自身知识的不足。不管是全自动化的表征学习也好,人为经验的特征工程也好,都是基于数据和经验选择模型,这个过程其实是一个贝叶斯模型。在中小数据集上的机器学习往往使用的就是强假设模型(人类知识先验)+一个简单线性分类器。当数据愈发复杂,数据量逐渐加大后,我们对于数据的理解越来越肤浅,做出的假设也越来越倾向于随机,那么此时人工特征工程往往是有害的,而需要使用摆脱了人类先验的模型,比如深度学习或者集成模型。
不管是特征工程还是特征学习,我们衡量它们作用的一个标准就是看后续的学习任务是否能够得益于这种表示。这是机器学习的一个核心问题——到底是什么因素决定了一种表示比另一种表示更好呢?大概有三个方面的解释:
1.是否能提供解离性的线索。假设数据是基于互相独立的因素(这些因素内部也存在一定的变化范围)生成的,比如目标图像中的目标方向和光照条件,作为一个元先验,解离性更倾向于用表征中不同的独立变量表示这些因素。这样应该就能得到数据的简洁的抽象表示,从而可用于各种下游任务并有望提升样本效率。因此,某种方法更能得到数据的简介的抽象的表示就更占据优势; 2. 是否有分布式表示的优势。分布式表示可以租和许多特征来表达指数级别的概念特征。有很多分布式表示的算法比如聚类算法,KNN算法,决策树等等,同时分布式表示也是深度学习的最重要的性质之一,深度学习的分布式实现了参数共享,即非局部繁华的目的,可以有效应对curse of dimensionality。3. 深度可以带来指数级别的增益。
微调:「特征工程」与「表示学习」
揭秘深度学习成功的数学原因:从全局最优性到学习表征不变性-云栖社区-阿里云
http://shartoo.github.io/represationlearning/
推荐阅读
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 婴儿|美国儿科学会: 1岁以下婴儿不推荐学习游泳
- 在美国大学学习computer science 是啥样的体验
- 作为软件工程大二的学生,学习一般,编程一般,毕业后能干些啥
- 计算机深度学习方面sci三区期刊推荐
- 零基础入门学习啥语言好
- 有哪些好的学习英文的视频网站
- 马云说的大数据时代到底是,用到啥技术,如果想要学习大数据技术,要学习哪些基础的东西要先会编程么
- “盐城师范学院”学习强国号上线
- 广发银行|学习“铁军精神”:广发银行无锡分行开展党建活动增强发展动力
