01 绪论 | 机器学习

164 阅读15分钟

第 1 章 绪论

《机器学习 Machine Learning (Chinese Edition)》Zhou Zhihua 周志华


1.1 引言

机器学习(machine learning):

一门致力于研究如何通过计算的手段,利用经验来改善系统自身的性能的学科

主要内容:

在计算机上从数据中产生模型(model)的算法,即学习算法(learning algorithm)

机器学习的形式化定义:

假设用 P 来评估计算机程序在某任务类 T 上的性能,若一个程序通过利用经验 ET 中任务上获得了性能改善,则我们就说关于 TP ,该程序对 E 进行了学习

本书用“模型”泛指从数据中学得的结果

有的文献中用“模型”指全局性结果(例如一棵决策树),而用“模式”指局部性结果(例如一条规则)


1.2 基本术语

输入空间:

(attribute=value; attribute=value; ...)
  • 一组记录的集合称为数据集(data set)

  • 每条记录是关于一个事件或对象的(这里是一个西瓜)的描述,称为一个示例(instance)或样本(sample)

  • 反映事件或对象的在某方面的表现或性质的事项称为属性(attribute)或特征(feature)

  • 属性上的取值称为属性值(attribute value)

  • 属性张成的空间称为属性空间(attribute space)、样本空间(sample space)或输入空间

  • 把示例的属性作为维度,属性值作为坐标,每个示例对应一个坐标向量,因此把一个示例称为一个特征向量(feature vector)

✅ 一般地,令 D={x1,x2,...,xm}D = \{ x_{1},x_{2},...,x_{m}\} 表示包含 mm 个示例的数据集,每个示例由 dd 个属性描述,则每个示例 xi=(xi1,xi2,...,xid)x_{i}=(x_{i1},x_{i2},...,x_{id})dd 维样本空间 X\mathcal{X} 中的一个向量, xiχx_{i}\in \chi ,其中 xijx_{ij}xix_{i} 在第 jj 个属性上的取值, dd 称为样本 xix_{i}维数(dimensionality)。

获得模型:

  • 从数据中学得模型的过程称为学习(learning)或训练(training),这个过程通过执行某个学习算法来完成

  • 训练过程中使用的数据集称为训练数据(training data),其中每个样本称为一个训练样本(training sample),训练样本组成的集合称为训练集(training set)

  • 学得模型对应了关于数据的某种潜在的规律,因此亦称为假设(hypothesis);这种潜在规律自身,则称为真相真实(ground-truth),学习的过程就是为了找出或逼近真相

  • 本书有时将模型称为学习器(learner),可看作学习算法在给定数据和参考空间上的实例化

输出空间:

(attribute=value; attribute=value; ..., label)
  • 要建立关于预测(prediction)的模型,需要获得训练样本的结果信息

  • 关于示例结果的信息称为标记(label),拥有了标记信息的示例,称为样例(example)

✅ 一般地,用 (xi,yi)(x_{i},y_{i}) 表示第 ii 个样例,其中 yiYy_{i}\in \mathcal{Y} 是示例 xix_{i} 的标记, Y\mathcal{Y} 是所有标记的集合,亦称标记空间(label space)或输出空间

根据标记划分任务:

  • 预测的是离散值:分类(classification)

    • 只涉及两个类别:二分类(binary classification)任务,其中一个为正类(positive class),另一个为反类(negative class)
    • 涉及多个类别:多分类(multi-class classification)任务
  • 预测的是连续值:回归(regression)

✅ 一般地,预测任务是希望通过对训练模集 {(x1,y1,(x2,y2),...,(xm,ym)}\{(x_{1},y_{1},(x_{2},y_{2}),...,(x_{m},y_{m})\} 进行学习,建立一个从输入空间 X\mathcal{X} 到输出空间 Y\mathcal{Y} 的一个映射 XY\mathcal{X} \mapsto \mathcal{Y}

  • 对二分类任务,通常令 Y={1,+1}\mathcal{Y} = \{-1,+1\}{0,1}\{0,1\}

  • 对多分类任务,Y>2|\mathcal{Y}|>2

  • 对回归任务,Y=R\mathcal{Y}=\mathbb{R}R\mathbb{R} 为实数集

模型预测:

  • 学得模型后,使用其进行预测的过程称为测试(testing),被预测的样本称为测试样本(testing sample)

    • 例如在学得 ff 后,到测试例 xix_{i} 可得到其预测标记 y=f(x)y=f(x)
  • 聚类(clustering):将训练集中的西瓜分成若干组,每组称为一个(cluster);这些自动形成的簇可能对应一些潜在的概念划分

  • 聚类的学习过程有助于我们了解数据内在的规律,能为更深入地分析数据建立基础。

  • 聚类学习中的概念划分事先未知,而且学习过程中使用的训练样本通常不拥有标记信息

根据是否拥有标记划分任务:

  • 监督学习(supervised learning)

    • 分类
    • 回归
  • 无监督学习(unsupervised learning)

    • 聚类

适用于新样本:

  • 机器学习的目标是使得学得的模型能很好地适用于新样本,而不是仅仅在训练样本上工作得很好;即便对于聚类这样的无监督学习任务,我们也希望学得的簇划分能适用于没在训练集中出现的样本

  • 学得模型适用于新样本的能力,称为泛化(generalization)能力

  • 具有强泛化能力的模型能很好地适用于整个样本空间

  • 于是,尽管训练集通常只是样本空间的一个很小的采样,我们仍希望它能很好地反映出样本空间的特性,否则就很难期望在训练集上学得的模型能在整个样本空间上都工作得很好

✅ 通常假设样本空间中全体样本服从一个未知分布(distribution)D\mathcal{D} ,我们获得的每个样本都是独立地从这个分布上采样获得的,即独立同分布(independent and identically distributed,简称 i.i.di.i.d

✅ 一般而言,训练样本越多,我们得到关于 D\mathcal{D} 的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型


1.3 假设空间

推理

归纳(induction)与演绎(deduction)是科学推理的两大手段

  • 归纳:从特殊到一般的泛化(generalization)过程,即从具体的事实归结出一般性规律

  • 演绎:从一般到特殊的特化(specialization)过程,即从原理推演出具体状况

归纳学习

“从样例中学习”是一个归纳的过程,亦称归纳学习(inductive learning)

  • 广义的归纳学习:大体相当于从样例中学习

  • 狭义的归纳学习:要求从训练数据中学得概念(concept),因此亦称为概念学习概念形成

概念学习技术目前研究、应用都比较少,因为要学得泛化性能好且语义明确的概念实在太困难了,现实常用的技术大多是产生“黑箱”模型

然而,对概念学习有所了解,有助于理解机器学习的一些基础思想

概念学习

布尔概念学习:对可表示为 0/1 布尔值的目标概念的学习

  • “记住”训练样本,就是所谓的“机械学习”或称“死记硬背式学习”

可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集匹配(fit)的假设

假设的表示一旦确定,假设空间及其规模大小就确定了

Pasted image 20220911102931.png

✅ 计算假设空间规模的方法:每个属性的取值加一(通配取值)相乘后再加一(概念不成立的假设,即空集 \varnothing

例如:若“色泽”、“根蒂”、“敲声”分别有 3、2、2 种可能取值,则我们面临的假设空间规模大小为 4 x 3 x 3 + 1 = 37

搜索策略:

  • 自顶向下,从一般到特殊

  • 自底向上,从特殊到一般

搜索过程:

可以不断删除与正例不一致的假设、和(或)与反例一致的假设

最终将会获得与训练集一致(即对所有训练样本能够进行正确判断)的假设,这就是我们学得的结果

版本空间

需要注意的是,现实问题中我们常面临很大的假设空间,但学习过程是基于有限样本训练集进行的

因此,可能有多个假设与训练集一致,即存在着一个与训练集一致的假设集合,称为版本空间(version space)

Pasted image 20220911103753.png


1.4 归纳偏好

归纳偏好

通过学习得到的模型对应了假设空间中的一个假设

版本空间的多样性带来了麻烦,有多种假设但面临新样本时会产生不同的输出

对于有限的训练样本,无法断定产生的多种假设哪个”更好“

但对于一个具体的学习算法而言,它必须要产生一个模型

这时,学习色法本身的”偏好“就会起到关键的作用,例如”尽可能特殊的模型“或者”尽可能一般的模型“

  • 机器学习算法在学习过程中对某种类型假设的偏好,称为归纳偏好(inductive bias),或简称偏好

  • 任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上”等效“的假设所迷惑,而无法产生确定的学习结果

例如,在图示回归学习中,对有限个样本点组成的训练集,存在着很多条曲线与其一致

我们的学习算法必须有某种偏好,才能产出它认为”正确“的模型

Pasted image 20220911105004.png

若认为相似的样本应有相似的输出,则对应的学习算法可能偏好体重比较”平滑“的曲线 A 而不是比较崎岖的曲线 B

奥卡姆剃刀

归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或”价值观“

需要一般性的原则来引导算法确立”正确的“偏好

  • 奥卡姆剃刀(Occam's razor)是一种常用的、自然科学研究中最基本的原则,即若有多个假设与观察一致,则选最简单的那个

⚠ 注意:奥卡姆剃刀并非唯一可行的原则。它本身存在不同的诠释,使用奥卡姆剃刀并不平凡,因为有时候哪一个模型更简单并不好判断

事实上,归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设.在具体的现实问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能.

Pasted image 20220911111324.png

✅ 对于一个学习算法 La\mathcal{L}_{a} ,若它在某些问题上比学习算法 Lb\mathcal{L}_{b} 好,则必然存在另一些问题,在那里 Lb\mathcal{L}_{b}La\mathcal{L}_{a}

假设样本空间 X\mathcal{X} 和假设空间 H\mathcal{H} 都是离散的,令 P(hX,La)P(h|X,\mathcal{L}_{a}) 代表算法 La\mathcal{L}_{a} 基于训练数据 XX 产生假设 hh 的概率,再令 ff 代表我们希望学习的真实目标函数

La\mathcal{L}_{a}训练集外误差,即 La\mathcal{L}_{a} 在训练集之外的所有样本上的误差为:

Eote(LaX,f)=hxXXP(x)I(h(x)f(x))P(hX,La)(1.1)E_{ote}(\mathcal{L}_{a}|X,f)=\sum\limits_{h}\sum\limits_{x\in\mathcal{X}-X} P(x)\, \mathbb{I}(h(x)\neq f(x))\, P(h|X,\mathcal{L}_{a}) \tag{1.1}

其中 I()\mathbb{I}(\cdot) 为指示函数,若 \cdot 为真则取值 11 ,否则取值 00

公式解读:有了学习算法基于训练数据产生假设的概率,乘以这次概率中其他样本数据在这种假设下的符合情况然后累加

考虑二分类问题,且真实目标函数可以是任何函数 X{0,1}\mathcal{X} \mapsto \{0,1\} ,函数空间为 {0,1}X\{0,1\}^{|\mathcal{X}|} 。对所有可能的 ff 按均匀分布误差求和,有:

fEote(LaX,f)=fhxXXP(x)I(h(x)f(x))P(hX,La)=xXXP(x)hP(hX,La)fI(h(x)f(x))=xXXP(x)hP(hX,La)122X=122XxXXP(x)hP(hX,La)=2X1xXXP(x)1(1.2)\begin{aligned} \sum\limits_{f}E_{ote}(\mathcal{L}_{a}|X,f) &=\sum\limits_f\sum\limits_{h}\sum\limits_{x\in\mathcal{X}-X} P(x)\, \mathbb{I}(h(x)\neq f(x))\, P(h|X,\mathcal{L}_{a}) \\ &=\sum\limits_{x\in \mathcal{X}-X}P(x)\sum\limits_{h}P(h|X,\mathcal{L}_{a})\sum\limits_{f}\mathbb{I}(h(x)\neq f(x)) \\ &=\sum\limits_{x\in \mathcal{X}-X}P(x)\sum\limits_{h}P(h|X,\mathcal{L}_{a}) \cfrac12 2^{|\mathcal{X}|} \\ &= \cfrac12 2^{|\mathcal{X}|}\sum\limits_{x\in \mathcal{X}-X}P(x)\sum\limits_{h}P(h|X,\mathcal{L}_{a}) \\ &=2^{|\mathcal{X}|-1}\sum\limits_{x\in \mathcal{X}-X}P(x)\cdot 1 \tag{1.2} \end{aligned}

公式解读:若 f 均匀分布,则有一半的 f 对 x 的预测与 h(x) 不一致,一半一致,因此对函数空间乘以 12\cfrac12

(1.2)(1.2) 显示出,总误差与学习算法无关

对于任意两个学习算法 La\mathcal{L}_{a}Lb\mathcal{L}_{b} ,都有:

fEote(LaX,f)=fEote(LbX,f)(1.3)\sum\limits_{f}E_{ote}(\mathcal{L}_{a}|X,f)=\sum\limits_{f}E_{ote}(\mathcal{L}_{b}|X,f) \tag{1.3}

也就是说,无论学习算法 La\mathcal{L}_{a} 多聪明、学习算法 Lb\mathcal{L}_{b} 多笨拙,它们的期望性能都相同,这就是没有免费的午餐定理(No Free Lunch Theorem,简称 NFL 定理)

⚠ 注意:NFL 定理有一个重要前提 —— 所有”问题“出现的机会相同、或所有问题同等重要

很多时候,我们只关注自己正在试图解决的问题(例如某个具体应用任务),希望为它找到一个解决方案,至于这个解决方案在别的问题、甚至在相似的问题上是否为好方案,我们并不关心

事实上,上面 NFL 定理的简短论述过程中假设了 ff 的均匀分布,而实际情形并非如此

所以,NFL 定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好

要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用


1.5 发展历程

机器学习是人工智能(artificial intelligence)研究发展到一定阶段的必然产物

20 世纪 50~70 年代:推理期

  • A. Newell / H. Simon 逻辑理论家(Logic Theorist)程序

  • 通用问题求解(General Problem Solving)程序

20 世纪 70 年代中期开始:知识期

  • 知识工程瓶颈:由人来把知识总结出来再教给计算机是相当困难的

  • 希望机器自己学习知识

1950 图灵再关于图灵测试的文章中就曾提到了机器学习的可能

20 世纪 50 年代初已有机器学习相关研究,例如 A. Smuel 著名的跳棋程序

20 世纪 50 年代中后期:基于神经网络的”连接主义“(connectionism)学习

  • F. Rosenblatt 感知机(Perceptron)

  • B. Widrow Adaline

20 世纪 60~70 年代:基于逻辑表示的”符号主义“(symbolism)学习

  • P. Winston 结构学习系统

  • R. S. Michalski 等 基于逻辑的归纳学习系统

  • E. B. Hunt 等 概念学习系统

以决策树为理论基础的学习技术以及强化学习技术等也得到发展

  • N. J. Nilson 学习机器

  • 统计学习理论的一些奠基性杰结果

1980 年夏,在美国卡耐基梅隆大学举行了第一届机器学习研讨会(IWML);同年,《策略分析与信息系统》连出三期机器学习专辑

1983 年,《机器学习:一种人工智能途径》出版,对当时的机器学习研究工作进行了总结

1986 年,第一本机器学习专业期刊 Machine Learning 创刊

1989 年,人工智能领域的权威期刊 Artificial Intelligence 出版机器学习专辑,刊发了当时一些比较活跃的研究工作

总的看来,二十世纪八十年代是机器学习成为一个独立的学科领域、各种机器学习技术百花初绽的时期

20 世纪 80 年代以来,被研究最多、应用最广的是“从样例中学习”(也就是广义的归纳学习),它涵盖了监督学习、无监督学习等,本书大部分内容均属此范畴

技术回顾

20 世纪 80 年代,”从样例中学习“的一大主流是符号主义学习,其代表包括决策树(decision tree)和基于逻辑的学习

20 世纪 90 年代中期之前,”从样例中学习“的另一主流技术是基于神经网络的连接主义学习

20 世纪 90 年代中期,”统计学习“(statistical learning)闪亮登场并迅速占据主流舞台,代表性技术是支持向量机(Support Vector Machine,SVM)以及更一般的”核方法“(kernel methods)

21 世纪初,连接主义学习卷土重来,掀起了以”深度学习“为名的热潮


1.6 应用现状

计算机科学:

  • 多媒体、图形学、网络通信、软件工程、体系结构、芯片设计

  • 计算机视觉、自然语言处理

交叉学科:

  • 生物信息学

事实上,随着科学研究的基本手段从传统的“理论 + 实验”走向现在的“理论 + 实验 + 计算”,乃至出现“数据科学”这样的提法,机器学习的重要性日趋显著,因为“计算”的目的往往是数据分析,而数据科学的核心也恰是通过分析数据来获得价值

大数据时代的三大关键技术:

  • 机器学习

  • 云计算

  • 众包(crowdsourcing)

统计学主要是通过机器学习对数据挖掘发挥影响,而机器学习领域和数据库领域则是数据挖掘的两大支撑

大众生活:

  • 天气预报

  • 商业营销

  • 搜索引擎

  • 自动驾驶

  • 政治选举

值得一提的是,机器学习备受瞩目当然是由于它已成为智能数据分析技术的创新源泉,但机器学习研究还有另一个不可忽视的意义,即通过建立一些关于学习的计算模型来促进我们理解“人类如何学习


1.7 阅读材料

机器学习领域最重要的国际学术会议是国际机器学习会议(ICML)、国际神经信息处理系统会议(NIPS)和国际学习理论会议(COLT)

重要的区域性会议主要有欧洲机器学习会议(ECML)和亚洲机器学习会议(ACML)

最重要的国际学术期刊是 Journal of Machine Learning ResearchMachine Learning

人工智能领域的重要会议如 IJCAI 、AAAI 以及重要期刊如 Artificial IntelligenceJournal of Artificial Intelligence Research

数据挖掘领域的重要会议如 KDD、ICDM 以及重要期刊如 ACM Transactions on Knowledge Discovery from DataData Mining and Knowledge Discovery

计算机视觉与模式识别领域的重要会议如 CVPR 以及重要期刊如 IEEE Transactions on Pattern Analysis and Machine Intelligence

神经网络领域的重要期刊如 Neural ComputationIEEE Transactions on Neural Networks and Learning Systems

此外,统计学领域的重要期刊如 Annals of Statistics 等也常有关于统计学习方面的理论文章发表

国内机器学习领域最主要的活动是两年一次的中国机器学习大会(CCML)以及每年举行的“机器学习及其应用”研讨 会(MLA);很多学术刊物都经常刊登有关机器学习的论文