《python深度学习》笔记---1.2、深度学习之前:机器学习简史
一、总结
一句话总结:
梯 度提升机用于处理结构化数据的问题,而深度学习则用于图像分类等感知问题。
1、概率建模(probabilistic modeling)?
就是概率模型,比如朴素贝叶斯:概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学 习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法。
2、logistic 回归?
现代机器学习的“hello world”:logistic 回归(logistic regression,简称logreg),它有时被认为是 现代机器学习的“hello world”。
logreg是一种分类算法:不要被它的名称所误导——logreg 是一种分类算法,而不是回 归算法。与朴素贝叶斯类似,logreg 的出现也比计算机早很长时间,但由于它既简单又通用, 至今仍然很有用。
机器学习首先尝试:面对一个数据集,数据科学家通常会首先尝试使用这个算法,以便初步熟悉 手头的分类任务
3、反向传播算法?
梯度下降:一种利用梯度下降优化来训练一系列参数化运算链的方法
4、核方法?
核方法声名鹊起:上节所述神经网络取得了第一次成功,并在20 世纪90 年代开始在研究人员中受到一定的 重视,但一种新的机器学习方法在这时声名鹊起,很快就使人们将神经网络抛诸脑后。这种方 法就是核方法(kernel method)。
核方法是分类算法:核方法是一组分类算法,其中最有名的就是支持向量机(SVM, support vector machine)
5、SVM 的目标?
找决策边界:SVM 的目标是通过在属于两个不同类别的两组数据点之间找到良好决策边界(decision boundary)来解决分类问题。
只需判断在决策边界的哪一侧:决策边界可以看作一条直线或一个平面,将训练数据 划分为两块空间,分别对应于两个类别。对于新数据点的分类,你只需判断它位于决策边界的 哪一侧。
6、SVM 通过两步来寻找决策边界?
将数据映射到高维:将数据映射到一个新的高维表示,这时决策边界可以用一个超平面来表示(如果数据像 图 1-10 那样是二维的,那么超平面就是一条直线)。
让超平面与每个类别最近的数据点之间的距离最大化:尽量让超平面与每个类别最近的数据点之间的距离最大化,从而计算出良好决策边界(分 割超平面),这一步叫作间隔最大化(maximizing the margin)。这样决策边界可以很好 地推广到训练数据集之外的新样本。
7、将数据映射到高维表示从而使分类问题简化,这一技巧可能听起来很不错,但在实践中通 常是难以计算的。这时就需要用到核技巧(kernel trick,核方法正是因这一核心思想而得名)?
不需要在新空间中直接计算点的坐标:要想在新的表示空间中找到良好的决策超平面,你不需要在新空间中直接计算 点的坐标,只需要在新空间中计算点对之间的距离,而利用核函数(kernel function)可以高效 地完成这种计算。
避免了对新表示进行直接计算:核函数是一个在计算上能够实现的操作,将原始空间中的任意两点映射为这两点在目标表示空间中的距离,完全避免了对新表示进行直接计算。
核函数通常是人为选择的:核函数通常是人为选择的, 而不是从数据中学到的——对于 SVM 来说,只有分割超平面是通过学习得到的。
8、SVM不足?
大数据集不行:SVM 很难扩展到大型数据集,并且在图像分类等感知问题上的效果也不好。
不能用于感知问题:SVM 是一种比较浅层的方法,因此要想将其应用于感知问题,首先需要手动提取出有用的表示(这 叫作特征工程),这一步骤很难,而且不稳定。
9、决策树(decision tree)是类似于流程图的结构?
类似于流程图的结构:决策树(decision tree)是类似于流程图的结构,可以对输入数据点进行分类或根据给定输 入来预测输出值决策树的可视化和解释都很简单。
到了 2010 年,决策树经常比核方法更受欢迎:在21 世纪前十年,从数据中 学习得到的决策树开始引起研究人员的广泛关注。到了 2010 年,决策树经常比核方法更受欢迎。
10、随机森林(random forest)算法?
健壮且实用的决策树学习方法:随机森林(random forest)算法,它引入了一种健壮且实用的决策树学习方法,即 首先构建许多决策树,然后将它们的输出集成在一起。
对于任何浅层的机器学习任务来说,它几乎总是第二好的算法:随机森林适用于各种各样的问题—— 对于任何浅层的机器学习任务来说,它几乎总是第二好的算法。广受欢迎的机器学习竞赛网站 Kaggle 在 2010 年上线后,随机森林迅速成为平台上人们的最爱,直到2014 年才被梯度提升机 所取代。
11、梯度提升机(gradient boosting machine)?
将弱预测模型(通常是决策树)集成:与随机森林类似,梯度提升机(gradient boosting machine)也是将弱预测模型(通常是决策树)集成的机器学习技术。
迭代地训练新模型来专门解决之前模型的弱点:它使用了梯度提升方法,通过迭代地训练新模型来专门解决 之前模型的弱点,从而改进任何机器学习模型的效果。
比随机森林好:将梯度提升技术应用于决策树时,得到 的模型与随机森林具有相似的性质,但在绝大多数情况下效果都比随机森林要好。
非感知数据最好的算法之一:它可能是目 前处理非感知数据最好的算法之一(如果非要加个“之一”的话)。和深度学习一样,它也是 Kaggle 竞赛中最常用的技术之一。
12、深度学习发展如此迅速的原因?
性能好:深度学习发展得如此迅速,主要原因在于它在很多问题上都表现出更好的性能。但这并不 是唯一的原因。
特征工程自动化:深度学习还让解决问题变得更加简单,因为它将特征工程完全自动化,而这曾 经是机器学习工作流程中最关键的一步。
13、深度学习相比于浅层学习的优势?
简单变换:先前的机器学习技术(浅层学习)仅包含将输入数据变换到一两个连续的表示空间,通常 使用简单的变换,比如高维非线性投影(SVM)或决策树。但这些技术通常无法得到复杂问题 所需要的精确表示。
手动为数据设计好的表示层:因此,人们必须竭尽全力让初始输入数据更适合用这些方法处理,也必须 手动为数据设计好的表示层。这叫作特征工程。
特征工程自动化:与此相反,深度学习完全将这个步骤自动化:利用深度学习,你可以一次性学习所有特征,而无须自己手动设计。这极大地简化了机器学习 工作流程,通常将复杂的多阶段流程替换为一个简单的、端到端的深度学习模型。
14、如果问题的关键在于有多个连续表示层,那么能否重复应用浅层方法,以实 现和深度学习类似的效果?
三层模型中最优的第一表示层并不是单层或双层模型中最优的第一表示层:在实践中,如果连续应用浅层学习方法,其收益会随着层数增加迅 速降低,因为三层模型中最优的第一表示层并不是单层或双层模型中最优的第一表示层。
共同学习所有表示层:深度 学习的变革性在于,模型可以在同一时间共同学习所有表示层,而不是依次连续学习(这被称 为贪婪学习)。通过共同的特征学习,一旦模型修改某个内部特征,所有依赖于该特征的其他特 征都会相应地自动调节适应,无须人为干预。
模型中的每一处变化都是为了最终目标服务:一切都由单一反馈信号来监督:模型中的每一处 变化都是为了最终目标服务。这种方法比贪婪地叠加浅层模型更加强大,因为它可以通过将复杂、 抽象的表示拆解为很多个中间空间(层)来学习这些表示,每个中间空间仅仅是前一个空间的 简单变换。
15、深度学习从数据中进行学习时有两个基本特征?
逐层:第一,通过渐进的、逐层的方式形成越来 越复杂的表示;
考虑前后层:第二,对中间这些渐进的表示共同进行学习,每一层的变化都需要同时考虑上 下两层的需要。
16、机器学习现状?
Kaggle:要想了解机器学习算法和工具的现状,一个好方法是看一下Kaggle 上的机器学习竞赛。 Kaggle 上的竞争非常激烈(有些比赛有数千名参赛者,并提供数百万美元的奖金),而且涵盖 了各种类型的机器学习问题,所以它提供了一种现实方法来评判哪种方法有效、哪种方法无效。
17、在 2016 年和2017 年,Kaggle 上主要有两大方法?
梯度提升机和深度学习:具体而言,梯 度提升机用于处理结构化数据的问题,而深度学习则用于图像分类等感知问题。
XGBoost库和Keras库:使用前一种方 法的人几乎都使用优秀的XGBoost 库,它同时支持数据科学最流行的两种语言:Python 和 R。 使用深度学习的Kaggle 参赛者则大多使用Keras 库,因为它易于使用,非常灵活,并且支持 Python。
二、内容在总结中
转自或参考: