前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【重磅】3分钟,带你深入了解机器学习和深度学习!

【重磅】3分钟,带你深入了解机器学习和深度学习!

作者头像
ShuYini
发布2019-08-08 15:42:05
5780
发布2019-08-08 15:42:05
举报

点击上方的“小小白AI”,选择“关注”

重磅知识,第一时间送达

本文概述

本次推文主要讲述深度学习中浅层模型和深度模型之间的区别,其中主要包括浅层模型的缺点,在了解浅层模型的基础上采用深层模型具有什么优势。

引言

为了能够让大家更好的理解,本次文章将以问答的形式进行展现,其中会先从几个关键词的介绍,并逐步深入到浅层模型、深度模型。

什么是高纬度数据?

在复杂的识别任务中,由于需要很多的观察变量来表征识别环境的具体因素,由于变量之间还存在一些内在的关系,这些变量组合到一块便形成了高维数据。举个简单的例子,如用集合S表示一只羊,那么S={羊毛类型、羊毛长度、犄角的长度、颜色、高度、体重....},但是你会发现羊的特征不止这么多,还有很多,那么越多这样的特征就会组成高纬度数据。

什么是机器理解?

如果机器能够捕获足以解释数据变量中的统计性的变化因素,以及这些因素如何相互作用形成我们所观测到的数据,那么我们可以认为该机器明白了这些变化因素构成的世界。举个例子来说,就是如果机器根据羊的多个特征、以及这些特征的组合能够识别出这是一只羊,那么就可以认为机器理解了。

什么是维度灾难,以及解决方法?

为了让机器理解周围环境,需要处理高纬度数据,但是机器的学习复杂度会随着数据维度的增加呈指数级增长。Bellman将这一现象称为维度灾难。传统解决方法:对数据进行预处理,并将数据的维度降低到一个适合学习器处理的范围,这一过程通常被称为特征抽取。所以最初的机器学习系统建立的过程中最重要的一个步骤就是手工构造合理的特征抽取方法。但是手工地选取特征是一件非常费力、启发式(需要专业知识)的方法,能不能选取好很大程度上靠经验和运气,而且它的调节需要大量的时间。并且如果抽取特征不合适将会限制机器学习系统的性能。

怎么解决传统学习方法的缺点?

为什么不能在高维数据中学习出我们需要的特征呢?带着这个问题,我们就从传统机器学习到了深度学习。在介绍深度学习之前,有几个问题需要知道。

什么是浅层模型和深度模型。如果说可以将一个计算机模型看作是由若干个计算单元构成的图,根据图论的定义,该模型的深度为输入节点到输出节点之间最长路径的长度。类似的在神经网络中,每个神经元均可被视为一个计算单元,因此一个神经网络模型可以视为由这些计算单元构成的图,该图中输入节点到输出节点之间最长路径的长度即为该神经网络模型的深度,在分层前馈网络中该深度等于模型中神经元的层数。因此,深度模型指的是深度较大的模型,浅层模型指的是深度较小的模型(一般只有一个隐藏层)。

为了让大家进一步了解浅层模型和深度模型在实际应用之间的差距,这里举一个图像方面提取特征的例子:首先最接近输入数据的隐藏层1的输入是原始数据,即图像中的像素值,隐藏层1处理这些像素值,并从中抽取出诸如色块、线条等等基本特征,并输入位于其上的隐藏层2,隐藏层2处理隐藏层1得到的这些基本特征,并从中进一步抽取出诸如圆形、矩形等等较为高层的特征,并进一步输入位于其上的隐藏层3,……以此类推,深度模型通过这中逐层处理的方式,最终可以从原始数据中抽取出具有强表达能力的高层特征,这些特征是原始数据的分布式表示。通过使用这些特征再完成分类等具体任务的处理,相比于直接使用原始数据或者使用浅层模型从原始数据中抽取的简单特征而言,模型的性能由了显著的提高。(简单的理解就是说,如果是一个立方体,深度模型是从点到线,然后线到面,最后面到体的识别过程,而浅层模型就是根据计算从点直接识别出来这是个立方体,可见浅层模型的局限性)。

深度模型训练遇到的问题及其解决方法?

上面可以发现,深度模型相对于浅层模型在表达能力上具有很好的优势,但是经验证据表明,深度模型的训练是一个比浅层模型的训练要困难得多的优化问题,大量实验表明深层神经网络的训练非常容易被困于局部极值点,最后模型的泛化能力甚至不如只有1或者2个隐藏层的神经网络。为了解决这个问题,伟大的Hinton通过“贪婪逐层预训练”的方法【1】,成功的解决了该难题,并首次有效的训练出了用于手写数字识别的包含多个隐藏层的深度神经网络。

预训练是指在使用传统的反向传播算法训练神经网络前,先逐层对模型进行特征提取导向的训练,使得模型的每一层都可以从数据中抽取出有效的分布式表(提取特征)示。

“贪婪逐层”是指在预训练时通过分层训练的方法,逐层向神经网络中增加经过预训练的隐藏层,直到构造出深度足够的模型,从而在预训练的过程中避免梯度消失。经过预训练构造出深度神经网络后,可根据实际应用在最后一个隐藏层之上增加一个面向具体任务的输出层,此时通过反向传播算法并结合任务相关的有监督训练数据即可有效的训练深度模型,这一过程称为深度模型的“有监督调优训练”。

通过先进行“贪婪逐层预训练”再进行“有监督调优训练”得到的深度神经网络可以看成由两个部分组成:第一个部分是输入层和所有经过预训练的隐藏层组成的特征抽取器,该特征抽取其具有深层结构,因此,可以从数据中抽取复杂的高层特征;第二个任务就是softmax分类器,负责使用特征抽取器中抽取出的复杂高层特征完成具体的分类任务。从优化问题的角度来说,反向传播算法是一种基于梯度的优化算法,其优化过程是从模型参数空间中的某个初始位置开始,在参数空间中根据梯度寻找目标函数的极值点。但是由于深度模型中的梯度小时问题,如果从模型参数空间的随机位置开始搜索,这一搜索过程将是非常困难,因此反向传播算法无法被有效地直接用于训练深度模型。但是通过预训练则可以预先调整模型的参数,使得在基于梯度的搜索开始之前就将模型参数置于参数空间中相对靠近极值点的位置,此时在根据梯度寻找极值点项对比于从随机位置开始寻找极值点将容易很多。这是预训练能够有效的提升深度神经网络性能的根本原因。

参考文献

【1】Hinton G E,Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. NeuralComputation, 2006, 18(7):1527-1554.

【2】吴轲. (2014). 基于深度学习的中文自然语言处理. (Doctoral dissertation, 东南大学).

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AINLPer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档