1.1 让文科生也能读懂机器学习
什么是机器学习
对于没有经验的同学来说,直接给出一个关于机器学习的定义太不友好了,所以我们通过换个方式来说明到底什么是机器学习(machine learning)。
当你看到路上有一堆密密麻麻的蚂蚁在搬家,心想快要下雨了,我得早点回家;当你在街道上看到一个眼睛蓝色、头发金色、鼻梁高挺的人,心想这肯定又是一个白种人老外。
我们看到蚂蚁搬家,知道要下雨是因为我们之前经历过很多次蚂蚁搬家,然后下雨的情况;我们看到眼睛蓝色、头发金色、鼻梁高挺的人认定是白种人是因为大多数长这样的人都是白种人。也就是说利用我们之前学习到的经验,我们能够对未来的一些新事务做出有效判断。
那么问题来了,既然利用人学习到的经验可以对新事物做出有效判断,那能不能让机器也学习一些经验,然后帮助我们去做一些事情呢?
机器学习正是这样一门学科,它致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。在机器的眼中,“经验”基本上都是以“数据”的形式存在的,因此,机器学习要研究的就是一个学习算法,这个学习算法能够从数据中产生模型(model),而模型能够给我们提供相应的判断(例如,是否属于黄种人)。
常用术语
机器学习这门学科中包含了一些常用术语,我们来介绍一些常用的术语。想要进行机器学习,自然就离不开数据。所以我们先从数据说起。假定我们收集了关于是否属于黄种人的数据。
编号眼睛发色发型鼻梁身高黄种人1棕色黑色直中170属于2黑色黄色直低180属于3灰色金色卷高180不属于4蓝色黄色卷高185不属于
我们将所有的数据称为数据集(data set),其中数据集中的每一条数据称为样本(sample)或示例(instance)。描述每个样本在某个方面的性质,例如,眼睛、发色、发型,称为特征(feature)或属性(attribute)。特征上的取值,例如棕色、黑色、灰色、蓝色,称为特征值(feature value)。特征值按照是否连续可以分为离散特征(也叫分类特征)和连续特征(也叫数值特征),例如眼睛就属于离散特征,身高就属于连续特征。特征张成的空间称为样本空间(sample space)。例如我们把眼睛、发色、发型作为三个坐标轴,则它们张成的一个用于描述人的三维空间,每个人都可以在这个空间中找到属于自己的坐标位置。由于空间中每个点对应一个坐标向量,因此我们也把一个样本称为一个特征向量(feature vector)。
一般地,令 image.png表示包含了 m 个样本的数据集,
其中 image.png 是 image.png 在第 j 个特征上的取值。例如,上面的是否属于黄种人的数据集总共包含了 4 个样本,每个样本包含了 5 个特征(眼睛、发色、发型、鼻梁、身高),第 2 个样本在第 3 个特征上的取值就是“直”。
机器从数据中学得模型的过程称为训练(learning)或学习(learning),完成这个过程可以通过执行某个算法来达到。训练过程中使用的数据称为训练数据(train data)或训练集(train set),其中每一个样本称为训练样本(train sample)。
学得模型对应了关于数据的某种潜在规律,我们称为假设(hypothesis)。这种潜在规律本身,我们称为真相(truth),学习过程就是为了逼近真相或找出真相。
当我们学得模型后,使用它来进行预测,被预测的数据称为测试数据(test data)或测试集(test set),测试集中的每个样本称为测试样本(test sample)。
在上面的数据集中,我们针对每个样本都标注了它的结果,是否属于黄种人,样本的标注结果我们称为标签(label),标签我们一般使用y来表示。
机器学习的学习任务
机器学习按照学习任务基本上可以分为:监督学习、无监督学习、半监督学习、强化学习。我们这里只介绍下前面的两种:监督学习和非监督学习。
监督学习(supervised learning)是说使用有标注结果的数据来进行训练,监督学习包含两种学习任务:分类(classification)和回归(regression)。上面的例子中,我们要预测的任务为是否属于黄种人,也就是要预测的结果为离散值的话,这种学习任务称为分类,由于我们要预测的结果只包含属于和不属于这两种情况,这时候叫做二分类(binary classification),如果说要预测的结果有超过两种情况的话,这时候叫做多分类(muti-class classification)。一般地,对于二分类来说,通常令 y={-1,+1} 或者 y={0,1}, -1或者0表示负样本。(对应上面例子中的不属于黄种人),+1 或者 1 表示正样本(对应上面例子中的属于黄种人)。
如果我们要预测的结果为一个连续的值,例如人的身高170,185,此类学习任务称为回归。实际上,监督学习是目前在实际的生活中应用中最为广泛的一类机器学习任务。
无监督学习(unsupervised learning)使用的数据是没有标注过的,即不知道输入数据对应的输出结果是什么。无监督学习只能默默的读取数据,自己寻找数据的模型和规律,比如聚类(clustering)和异常值检测(outlier detection)。以聚类为例,假如说我们要根据上面数据中包含的特征去将这些人分为几个小组,每个组称为簇(cluster),每个簇具体代表什么含义我们其实是不清楚的,也就是说无法解释的,并且事先是没有标注。假设最终我们通过聚类算法将这些人分成了 3 个簇(组),机器会认为每个簇中的人存在某种潜在的相似关系,所以将他们归为了一个簇(组),但是我们无法知道这 3 个簇所代表的的具体含义。
模型的泛化能力
需要注意的是,机器学习的目标是使学得的模型在新的样本中工作很好,而不仅仅只是在训练样本中工作得很好。即便对聚类这样的无监督学习任务,我们也希望学得的簇划分能够适用于没在训练集中出现的样本。模型适用于新样本的能力,称为泛化(generalization)能力。
一般来说,训练集越大,模型的泛化能力越强。如何理解呢?通常假定样本空间中全部样本服从一个未知分布(distribution)N,我们的训练样本是独立地从这个分布采样得到的,即独立同分布。一般而言,训练样本越多,我们得到的关于分布 N 的信息就越多,这样就越有可能通过学习获得更强泛化能力的模型。
练习题
你真的读懂本文了吗?我们做几个练习题测试一下:
机器学习中模型与学习算法之间的关系是什么?
训练时如果数据中包含了正确答案,这种学习任务属于有监督学习还是无监督学习?
广告点击率预估属于哪种学习任务呢?
垃圾邮件检测属于分类学习任务还是回归学习任务呢?
房价预测属于分类学习任务还是回归学习任务呢?
是不是训练样本越多,模型的泛化能力就一定越强呢?请举例说明。
网友评论