塞巴斯蒂安·拉施卡、瓦希德·米尔贾利利作者大数据来源

一文看懂机器学习3种类型的概念、根本差别及应用

本文将讨论机器学习的主要概念、不同类型及相关术语,为利用机器学习技术成功地解决实际问题奠定基础。

[导 读]机器学习是使数据具有意义的算法的应用和科学,也是计算机科学中最令人兴奋的领域!在数据丰沛的时代,计算机可以通过自我学习获得算法把数据转化为知识。近年来涌现出了许多强大的机器学习开源软件库,现在是进入该领域的最佳时机,掌握强大的算法可以从数据中发现模式并预测未来。

本文将讨论机器学习的主要概念、不同类型及相关术语,为利用机器学习技术成功地解决实际问题奠定基础。

本文将主要涵盖下述几个方面:

  • 机器学习的基本概念

  • 三种类型的机器学习及基本术语

  • 成功设计机器学习系统的基石

  • 数据分析机器学习安装和配置Python

一、构建把数据转换为知识的智能机器

在当今的科技时代,大量结构化和非结构化数据是我们的丰富资源。机器学习在二十世纪下半叶演变为人工智能(AI)的一个分支,它涉及从数据中通过自我学习获得算法以进行预测。

机器学习并不需要先在大量的数据中进行人工分析,然后提取规则并建立模型,而是提供了一种更有效的方法来捕获数据中的知识,逐步提高预测模型的性能,以完成数据驱动的决策。

机器学习不仅在计算机科学研究中越来越重要,在日常生活中也发挥出越来越大的作用。归功于机器学习,今天才会有强大的垃圾邮件过滤、方便的文本和语音识别、可靠的网络搜索引擎、具有挑战性的下棋程序,并有希望在不久的将来可以享受安全和高效的自动驾驶

二、三种不同类型的机器学习

本文将讨论有监督、无监督和强化三种不同类型的机器学习,分析它们之间的根本差别,并用概念性的例子开发一个可以解决实际问题的应用

1. 用有监督学习预测未来

监督学习的主要目标是从有标签的训练数据中学习模型,以便对未知或未来的数据做出预测。“监督”一词指的是已经知道样本所需要的输出信号或标签。

以垃圾邮件过滤为例,可以采用有监督的机器学习算法,基于打过标签的电子邮件语料库来训练模型,然后用模型来预测新邮件是否属于垃圾邮件。带有离散分类标签的有监督学习也被称为分类任务,例如上述的垃圾邮件过滤。有监督学习的另一个子类被称为回归,其结果信号是连续的数值。

  • 预测标签的分类

分类是有监督学习的一个分支,其目的是根据过去的观测结果来预测新样本的分类标签。这些分类标签是离散的无序值,可以理解为样本组成员的关系。前面提到的邮件垃圾检测就是典型的二元分类任务,机器学习算法学习规则以区分垃圾和非垃圾邮件。

但是,数据集的分类并非都是二元的。监督学习算法经过学习得到的预测模型可以将训练集中出现过的标签分配给尚未标记的新样本。

多元分类任务的典型例子是识别手写字符。首先,收集包含字母表中所有字母的多个手写示例形成训练集。然后,当用户通过输入设备提供一个新的手写字符时,预测模型能够准确地将其识别为字母表中的正确字母。

然而,如果0~9之间的数字不是训练集的一部分,那么机器学习系统将无法正确地识别。

下图将通过30个训练样本阐述二元分类任务的概念,其中15个标签为阴性(-),另外15个标签为阳性(+)。该数据集为二元,意味着每个样本都与x1或x2的值相关。现在,可以通过机器学习算法来形成一组规则,用一条断线来代表决策边界以区分两类数据,并根据x1和x2的值为新数据分类。

  • 预测连续结果的回归

上一节学习到分类任务是为样本分配无序的分类标签。第二类有监督学习是对连续结果的预测,也称为回归分析回归分析包括一些预测(解释)变量和一个连续的响应变量(结果或目标),试图寻找那些能够预测结果的变量之间的关系。

以预测学生SAT数学成绩为例。假设学习时间与考试成绩相关,可以用该关系训练数据学习建模,用将来打算参加该项考试学生的学习时间来预测其考试成绩。

1886年,弗朗西斯·高尔顿在其论文《回归平均的遗传身高》中首次提到回归一词。高尔顿描述了一种生物学现象,即种群身高的变化不会随时间的推移而增加。他观察到父母的身高不会遗传给自己的孩子,相反,孩子的身高会回归种群的均值。

下图说明了线性回归的概念。给定预测变量x和响应变量y,对数据进行线性拟合,谋求样本点和拟合线之间的平均距离最小(距离方差)。现在可以用从该数据中学习到的截距和斜率来预测新数据的结果变量:

2. 用强化学习解决交互问题

另一种机器学习强化学习强化学习的目标是开发系统或代理,通过它们与环境的交互来提高其预测性能。当前环境状态的信息通常包含所谓的奖励信号,可以把强化学习看作是与有监督学习相关的领域。

然而强化学习的反馈并非标定过的正确标签或数值,而是奖励函数对行动的度量。代理可以与环境交互完成强化学习,通过探索性的试错或深思熟虑的规划来最大化这种奖励。

强化学习的常见例子是国际象棋。代理根据棋盘的状态或环境来决定一系列的行动,奖励为比赛结果的输赢:

强化学习有许多不同的子类。然而,大逻辑强化学习代理试图通过一系列与环境的交互来最大化奖励。每种状态都可以与正面或负面的奖励相关联,奖励可以定义为完成一个总目标,如赢棋或输棋。例如,国际象棋每步的结果都可以认为是一种不同的环境状态。

为进一步探索国际象棋的案例,观察一下棋盘上与正面事件相关联的某些位置,比如吃掉对手或威胁皇后的棋子。棋盘上的其他位置与负面事件相关联,例如在接下来的回合中输给对手一个棋子。

实际上并不是每个回合都会有棋子被吃掉,强化学习涉及根据即时或延迟反馈来最大化奖励,从而学习一系列的走法。

本文对强化学习做了基本概述,请注意强化学习应用已超出了本文的范围,我们主要关注分类、回归分析聚类

3. 用无监督学习发现隐藏结构

在有监督学习中训练模型时,事先知道正确的答案;在强化学习过程中,定义了代理对特定动作的奖励。然而,无监督学习处理的是无标签或结构未知的数据。使用无监督学习技术,可以在没有已知结果变量或奖励函数的指导下,探索数据结构以提取有意义的信息。

3.1 寻找聚类的子集

聚类是探索性的数据分析技术,可以在事先不了解组员的情况下,将信息分成有意义的组群。为在分析过程中出现的每个群定义一组对象,它们之间都具有一定程度的相似性,但与其他群中对象的差异性更大,这就是为什么聚类有时也被称为无监督分类。

聚类是构造信息和从数据中导出有意义关系的一种有用的技术。例如,它允许营销人员根据自己的兴趣发现客户群,以便制订不同的市场营销计划。

下图解释了如何应用聚类把无标签数据根据x1和x2的相似性分成三组:

3.2 通过降维压缩数据

监督学习的另一个子类是降维高维数据的每个观察通常都伴随着大量测量数据,这对有限的存储空间和机器学习算法的计算性能提出了挑战。无监督降维是特征预处理中数据去噪的一种常用方法,它也降低了某些算法对预测性能的要求,并在保留大部分相关信息的同时将数据压缩到较小维数的子空间上。

降维有时有利于数据的可视化。例如,为了通过二维或三维散点图或直方图实现数据的可视化,可以把高维特征数据集投影到一、二或三维特征空间。下图展示了一个采用非线性降维将三维瑞士卷压缩成新的二维特征子空间的实例:

三、构建机器学习系统的路线图

前文讨论了机器学习的基本概念及其三种不同类型。本文将讨论伴随算法的机器学习系统的其他重要部分。下图展示了在预测建模中使用机器学习的典型工作流程,将在以下的几个小节中详细讨论:

1. 预处理——整理数据

让我们从讨论构建机器学习系统的路线图开始。原始数据很少以能满足学习算法最佳性能所需要的理想形式出现。因此,数据的预处理是任何机器学习应用中最关键的步骤之一。

以鸢尾花数据集为例,可以把原始数据看成是一系列的花朵图像,要从中提取有意义的特征。有意义的特征可能是颜色、色调、强度、高度、长度和宽度。

▲描述鸢尾属植物数据集的摘要,这是机器学习领域的典型案例,该数据集包含了对Setosa, Versicolor and Virginica三种不同鸢尾属植物 150多朵鸢尾花的测量结果,数据集中每行代表一朵花的样本数据,每种花的数据以厘米为单位按列存储,被称之为特征数据集

许多机器学习算法也要求所选择特征的测量结果具有相同的单位,以获得最佳性能,通常通过把特征数据变换为[0, 1]的取值范围或者均值和单位方差为0的标准正态分布来实现。

某些选定的特征可能是高度相关的,因此在某种程度上是多余的。在这种情况下,降维技术对于将特征压缩到低维子空间非常有价值。降低特征空间维数的优点是减少存储空间,提高算法运行的速度。在某些情况下,如果数据集包含大量不相关的特征或噪声,即数据集具有较低的信噪比,那么降维也可以提高模型预测的性能。

为了确定机器学习算法不仅能在训练集上表现良好,对新数据也有很好的适应性,我们希望将数据集随机分成单独的训练集和测试集。用训练集来训练和优化机器学习模型,同时把测试集保留到最后用以评估最终的模型。

2. 训练和选择预测模型

从戴维·沃尔珀特著名的“天下没有免费的午餐定理”,可以得出的重要结论是学习不是“免费”的(戴维·沃尔珀特1996年的论文《在学习算法之间没有先验差别》以及戴维·沃尔珀特和W. G.麦克里迪1997年的论文《算法优化没有免费的午餐定理》)。

直观地说,可以把这个概念与亚伯拉罕·马斯洛的说法联系起来:“我想这是一种诱惑,如果你拥有的唯一工具就是一把锤子,那会把所有的东西都当作钉子来对待。”

例如,每个分类算法都有其固有的偏差,如果不对任务做任何假设,没有哪个分类模型更优越。在实践中,至少要比较几种不同的算法,以便训练和选择性能最好的模型。

但在比较不同模型之前,首先必须确定性能度量的指标。一个常用的度量标准是分类准确度,其定义为正确分类样本占所有分类样本的百分比。

有人可能会问:如果不用测试集进行模型选择,而将其留做最终的模型评估,那么如何知道哪个模型在最终测试集和真实数据上表现良好?

为了解决嵌套在这个问题中的问题,可以采用不同的交叉检验技术,将训练集进一步分裂为训练集和验证集,以评估模型的泛化性能。最后,也不能期望软件库所提供的不同学习算法的参数默认值对特定问题是最优的。

直观地说,可以把那些超参数看作是从数据中学习不到的,更像模型的旋钮那样,可以来回旋转以改善模型的性能。

3. 评估模型和预测新样本数据

在选择了适合训练集的模型之后,可以用测试集来评估它在新数据上的性能,以评估泛化误差。如果对模型的性能感到满意,那么就可以用它来预测未来的新数据。

需要注意的是前面提到的诸如特征尺度和降维这样的性能测量参数,仅是从训练集获得的,而相同的参数会被进一步转换成测试集,以及任何新的数据样本。否则,对测试数据的性能评估可能会过于乐观。

四、用Python进行机器学习

Python是数据科学中最常用的编程语言,其优秀的开发人员和开源社区为其提供了大量有价值的附加软件。

像Python这样的解释型语言,尽管对计算密集型任务而言,其性能不如低级的编程语言,但是已经在Fortran和C基础上研发出像NumPy和SciPy这样的扩展软件库,可以实现快速矢量化的多维阵列操作。

机器学习编程主要用scikit-learn,这是目前最为常用和可访问的开源机器学习库。

1. 从Python包索引安装Python和其他包

Python可用于微软Windows、苹果MacOS和开源Linux所有三大操作系统,可以从Python官网下载安装程序及文档:

https://www.python.org

建议使用最新的Python 3,尽管大部分的代码示例也可以与Python 2.7.13或更新版兼容。如果决定使用Python 2.7来执行这些代码示例,那么请确保了解这两个版本之间的主要差异。从下述网站可以找到专门比较Python 3.5和Python 2.7之间差异的优秀总结文章。

https://wiki.python.org/moin/python2orpython3

附加软件包可以通过pip程序安装,该程序从Python 3.3起就一直是标准库的一部分。可以在这里发现更多关于pip的信息。

https://docs.python.org/3/installing/index.html

在成功地安装Python后,可以在终端上执行pip命令来安装Python的附加包:

pip install SomePackage

对已经安装的包可以通过- - upgrade选项完成升级:

pip install SomePackage --upgrade

2. 采用Anaconda Python和软件包管理器

高度推荐由Continuum Analytics发行的Anaconda作为Python的科学计算软件包。免费的Anaconda既可用于商业,也可供企业使用。该软件包括数据科学、数学、工程在内的所有基本包,并把它们捆绑在用户友好的跨平台版本中。

下载Anaconda的安装程序:

http://continuum.io/downloads

下载Anaconda的快速启动指南:

https://conda.io/docs/test-drive.html

在成功地安装了Anaconda之后,可以执行下述命令安装Python包:

conda install SomePackage

已经安装过的包可以通过执行下述命令升级:

conda update SomePackage

关于作者:塞巴斯蒂安·拉施卡(Sebastian Raschka),密歇根州立大学博士,他在计算生物学领域提出了几种新的计算方法,还被科技博客Analytics Vidhya评为GitHub上最具影响力的数据科学家。

瓦希德·米尔贾利利(Vahid Mirjalili),密歇根州立大学计算机视觉机器学习研究员,致力于把机器学习应用到各种计算机视觉研究项目。他在学术和研究生涯中积累了丰富的Python编程经验,其主要研究兴趣为深度学习计算机视觉应用。

本文摘编自《Python机器学习(原书第2版)》,经出版方授权发布。

THU数据派
THU数据派

THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。

入门强化学习无监督学习监督学习Python数据分析机器学习
2
相关数据
弗朗西斯·高尔顿人物

英格兰维多利亚时代的博学家、人类学家、优生学家、热带探险家、地理学家、发明家、气象学家、统计学家、心理学家和遗传学家,查尔斯·达尔文的表弟。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

数据分析技术

数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息。其他一些用于收集数据,以便弄清哪些是同质的,从而更好地了解数据。 数据分析可以处理大量数据,并确定这些数据最有用的部分。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

多元分类技术

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

数据压缩技术

数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。数据压缩包括有损压缩和无损压缩。在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据位元(或者其它信息相关的单位)表示信息的过程。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

决策边界技术

在具有两类的统计分类问题中,决策边界或决策曲面是一个超曲面,它将底层的向量空间分成两组,每组一个。分类器会将决策边界一侧的所有点分为属于一个类,而另一侧属于另一个类。也即二元分类或多类别分类问题中,模型学到的类别之间的分界线。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

回归分析技术

回归分析是一种用于估计变量之间的关系(当一个自变量变化而其它变量固定时,因变量会如何变化)的统计过程,在预测任务中有广泛的应用。回归分析模型有不同的种类,其中最流行的是线性回归和 逻辑回归(Logistic Regression)。另外还有多变量回归、泊松回归、逐步回归、脊回归(Ridge Regression)、套索回归(Lasso Regression)和多项式回归等等。随机梯度下降(SGD)就是一种起源于回归分析的常用方法,可用于控制复杂度。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

暂无评论
暂无评论~