
1. 机器学习是什么
机器学习是一门这样的学科,它致力于研究如何通过计算
的手段,利用经验
来改善自身
的性能。
从这个句子中我们可以发现三个重要的内容:
- 计算,机器学习的本质是数学问题,既然需要通过计算来改善,那么计算能力肯定会成为影响其性能的一个关键点
- 经验,计算机理解的经验和人类理解的经验不同,计算机系统中的经验是以数据形式存在的。它不是一个精练后的抽象概念及其表述,而是一些经过处理的数据集合。
- 改善自身,机器学习的一定是具有学习能力的,所以通过计算和经验计算机可以改善自身,达到学习的效果。
[Mitchell,1997] 给出了一个更形式化的定义:
假设用 PP 来评估计算机程序在某任务类 TT 上的性能,若一个程序通过利用经验 EE 在 TT 中任务上获得了性能改善,则我们就说关于 TT 和 PP,该程序对 EE 进行了学习。
2. 从例子出发
任务目标:分辨一个人的客观条件(先不考虑主观热爱程度等)是否适合成为篮球运动员。
为解决完成这个任务,我们先搜集了许多篮球运动员的个人信息以及从各行各业(非体育类)随机抽取了一批普通人的个人信息(假定个人信息包罗万象,包含了这个人的所有信息),所有的个人信息组成了一个数据集(data set)
,同时我们认为成了为篮球运动员的人他身上存在有利于其成为篮球运动员的客观条件,所以将这些人的标签(label)
标定为 “适合”,用数字 1 表示,其余普通人的标签标定为 “不适合”,用数字 0 表示。如果我们从数据集中随便选一个人(假定名字叫:张三)的资料出来看一下有些什么,这个人称为示例(instance)
或 样本(sample)
,看到张三的信息,我们发现他身高 160 公分、体重 50 公斤,身高,体重等称为 特征(feature)
或 属性(attribute)
;160 公分、50 公斤等称之为该特征下的特征值(feature value)
或 属性值(attribute value)
。张三的信息表除了身高,体重之外还有很多的特征,这些特征组成了属性空间(attribute space)
、样本空间 (sample space)
或 输入空间
。我们将张三所有特征都定量处理成数字(例如:[160,50,...][160,50,…],分别表示身高、体重等)用来抽象表示张三这个人,这个数组(向量)称为特征向量(feature vector)
。
将所有数据集中所有示例都处理为特征向量来表示后,我们将其一分为二(假如我们以8:28:2的比例),占比 8 的用来让机器学习称为训练集(training set)
或训练数据(training data)
,占比 2 的用来测试机器学习的效果称为测试集(test set)
或训练数据(test data)
。这和考试是不是一样的?平常做的《5年高考3年模拟》就是用来学习的,正式考试时的用来测试,两者偶尔有重合,但绝大部分是不重合的。
经过7749天后,机器学会了怎么分辨一个人是否适合称为篮球运动员,这个过程称作训练(training)
或学习(learning)
。学到的模型对应了关于数据的某种潜在的规律,称之为假设(hypothesis)
,这种潜在规律本身(就是客观事件存在的真的可以判断一个人适不适合成为篮球运动员的规律)称之为真相
或真实(ground-truth)
。
现在我们手上有了训练好的模型,我们打算试试效果怎么样!我们从测试集中随机抽出一个测试样本(test sample)
,让模型判断他是否适合,机器叮叮咚咚计算了一阵(估计也就几毫秒,当然也不会出声音)给出一个结论——“适合”,这个过程称为预测(predict)
,然后我们拿预测结果和客观事实进行比对发现正确!真乃神算子也!!接下来我们将所有的测试集都预测一遍,同时也都比对一下是不是正确,发现正确的结果占比91.2%,这个过程称为测试(test)
,91.2%这个结果称为准确率(precision)
,而且所有问题机器都没回避全部做出了回答,回答率100%,我们称为召回率(recall)
.
通过上面整个过程,我们获得了一个准确率91.2%且召回率100%的模型,能够很好地完成“分辨一个人的客观条件是否适合称为篮球运动员”这项工作!bravo!!!是否会存在这样的情况:我们训练的模型在测试集上效果还不错,但是运用到实际中时却差强人意。我们描述学习模型适用于新样本的能力为泛化(generalization)能力
,一个好的模型应该具有比较好的泛化能力,如果泛化能力太差证明可以认为模型并没有捕捉到真实。
3. 机器学习的任务
机器学习所有任务大致可以分为 3 类:分类(classification)
,回归(regression)
和聚类(clustering)
。分类是指通过学习知道每个示例应该分到什么类别,预测出的结果是离散的(例如:通过身高和头发长度判断性别)。回归是指通过特征及特征值计算出一个连续结果(例如:通过历史房价预估下个月深圳的平均房价)。聚类是值没有标定数据的情况下将一堆数据自动聚成若干个类别(例如:一堆水果包括苹果,梨子,橘子,通过外观特征将他们聚类成 3 类)。
依据训练数据是否有标签,可以将任务分为 2 类:监督学习(supervised learning)
和无监督学习(unsupervised learning)
,分类和回归一般是监督学习,聚类一般是非监督学习。
4. 假设空间
上文已经提到了假设是指某种规律的表达,更加数学地定义方式(未必准确)是:假设是一种从特征空间映射到标签空间的映射方式,例如:[身高200公分,体重80公斤,百米时间10秒,10公里时间40分钟] -> 适合成为篮球运动员,这是一种假设;[身高201公分,体重80公斤,百米时间10秒,10公里时间40分钟] -> 适合成为篮球运动员,这又是另外一种假设。如果我们将所有表达方式穷举,得到的所有可能可以表示所有的假设情况(不要忘了可能客观世界不存在 ground-truth 的这种情况),我们称之为假设空间(hypothesis space)
。
由于我们能搜集到的数据集肯定不能 100% 涵盖客观世界,只能尽量逼近真相,所以模型可能存在多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,我们称之为版本空间(version space)
,这时就会出现取舍问题,假设集合之间不存在好坏的差异,但是对于具体问题会出现好与坏的差异。
不同的机器学习算法在学习过程中会有对不同类型的假设的偏好,称之为归纳偏好(inductive bias)
或者简称偏好
。偏好之间不存在优劣,往往是设计理念上的差异,一种常规的偏好原则是“奥克姆剃刀”(Occam’s razor)即“若有多个假设与观察一致,则选择最简单的那个”[1]。
5. 没有免费的午餐
这个世界上是否存在某个模型可以解决所有的问题呢?答案是否定的!这个问题和“世界上不存在一张只有正面没有反面的报纸”一样(请不要说人民日报)。和报纸的调侃不一样,我们这个问题能够给出客观的数学证明。
假定,样本空间 XX 和假设空间 HH 都是离散的,令 P(h|X,La)P(h|X,La) 表示算法 LaLa 基于训练数据 XX 产生假设 hh 的概率,再令 ff 代表我们希望学习的真实目标函数。LaLa 的训练集外误差
,即 LaLa 在训练集之外的所有样本上的误差为:
其中,I(⋅)I(⋅) 是指示函数,若 ⋅⋅ 为真取值为1,否则为0.
考虑二分类问题,且真实目标函数可以使任何函数 x→0,1x→0,1,函数空间为 0,1|X|0,1|X|。对所有可能的 ff 按均匀分布对误差求和,有
上式第三行推断使用了“ff 是均匀分布”的假设,因为均匀分布,所以有一半的 ff 对 xx 的预测与 h(x)h(x) 不一致。上式可以看出,总误差与学习算法无关!对于任意两个学习算法 LaLa 和 LbLb,我们都有:
也就是说,无论学习算法 LaLa 多么聪明,学习算法 LbLb 多么笨拙(比如就瞎猜),它们的期望性能相同!这就是“没有免费午餐”定理(No Free Lunch Theorem,简称 NFL 定理)
[Wolpert, 1996; Wolpert and Macready, 1995]。
既然没有免费的午餐,那我们还研究什么算法呢?好在任务往往是有侧重的,不需要解决所有问题,在特定任务下不同的算法是会存在性能的差异的。学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用。
6. 术语
- 数据集(data set):数据集是对用于训练 / 测试等的数据集合的称谓
- 标签(label):标明示例的目标结果的值
- 示例(instance):又称为样本(sample),是数据集中一个事件或对象的称谓
- 特征(feature):又称为属性(attribute),是任意示例的某个可量化特性(例如:示例是人,特征可以是性别,年龄,身高,体重等)。
- 特征值(feature value):又称为属性值(attribute value)对应特征的标量值
- 属性空间( attribute space):又称为样本空间(sample space),由选定特征组成的空间(可以理解为选定的特征的所有可能形成的空间)。
- 特征向量(feature vector):用向量的形式来组织表征特征及特征值
- 训练集(training set):又称为训练数据(training data),用来让机器学习的数据集
- 测试集(test set):又称为测试数据(test data),用来测试机器学习效果的数据集
- 训练(trainig):又称为学习(learning),表示机器进行学习的过程
- 假设(hypothesis):机器学习产出模型后对应于特征-标签的一种映射关系
- 真相:又称为真实(ground-truth),表示客观世界存在的完美特征-标签映射关系
- 测试样本(test sample):表示测试集中某个数据的
- 预测(predict):训练好的模型进行一次判定的过程(本质是映射一次的计算过程)
- 测试(test):测试训练模型效果的过程,往往需要同时兼顾准确率和召回率
- 准确率(precision):表示所有预测结果中正确的结果所占的比重
- 召回率(recall):表示所有待预测结果中模型给出了预测结果所占的比重,模型可以针对某些问题拒绝给出答案
- 分类(classification):目标结果是离散的监督学习模型
- 回归(regression):目标结果是连续的监督学习模型
- 聚类(clustering):一种利用特征将相似的结果聚在一起的无监督学习模型
- 监督学习(supervised learning):训练数据包含标签的机器学习方法的称谓
- 无监督学习(unsupervised learning):训练数据不包含标签的机器学习方法的称谓
附录
[1] 简单的定义又变得不好量化,常见的可以是曲线的平滑程度。