本文为清华大学最新出版的《机器学习》教材的Learning Notes,作者是南京大学周志华教授,多个大陆首位彰显其学术奢华。
1.1 引言
傍晚小街路面上沁出微雨后的湿润,和熙的细风吹来,抬头看看天边的晚霞,嗯,明天又是一个好天气。走到水果摊旁,挑了个根蒂蜷缩、敲起来声音浊响的青绿西瓜,一边满心期待着皮薄肉厚瓢甜的爽落感,一边愉快地想着,这学期狠下了工夫,基础概念弄得清清楚楚,算法作业也是信手拈来,这门课成绩一定差不了!
机器学习是致力于研究如何通过计算的手段,利用经验来改善系统自身性能的学科。其表现为对经验(数据)和结论(预测)之间关系的总结和归纳。
1.2 基本术语
要进行机器学习,先要有数据。在机器学习,对数据的描述都有特定的术语。通过下面的例子来讲解机器学习中的基础术语。
假定我们收集了一批关于西瓜的数据,例如:**(色泽=青绿;根蒂=蜷缩;敲声=浊响), (色泽=乌黑;根蒂=稍蜷;敲声=沉闷), (色泽=浅自;根蒂=硬挺;敲声=清脆),……,每对括号内是一条记录,"=",意思是"取值为"。
数据集:所有记录的集合。
示例/样本:其中每一条记录。
属性:反映事件或对象在某方面的表现或性质的事项。例如每条记录中的“色泽”、“根蒂”、“敲声”就是西瓜的属性。
属性空间:属性张成的空间。例如我们把"色泽" “根蒂” "敲声"作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间就是属性空间,也称为“样本空间”或“输入空间”。
特征向量:每个西瓜都可在这个空间中找到自己的坐标位置。由于空间中的每个点对应一个坐标向量,因此我们也把这个坐标向量称为一个特征向量。
三者的关系总结:将每个属性作为一个坐标轴,多个属性就多个坐标轴,从而形成一个描述物体的属性空间。此空间中的每个样本对应一个点,每个点都有一个坐标向量,把这个坐标向量称为特征向量。
此小节以下概念后续经常提到,请务必搞清楚!
在计算机程序学习经验数据生成算法模型的过程中,每一条记录称为一个“训练样本”,同时在训练好模型后,我们希望使用新的样本来测试模型的效果,则每一个新的样本称为一个“测试样本”。定义:
• 所有训练样本的集合为:训练集(trainning set),[特殊]。
• 所有测试样本的集合为:测试集(test set),[一般]。
• 机器学习出来的模型适用于新样本的能力为:泛化能力(generalization),即从特殊到一般。
在西瓜的例子中,我们是想计算机通过学习西瓜的特征数据,训练出一个决策模型,来判断一个新的西瓜是否是好瓜。可以得知我们预测的是:西瓜是好是坏,即好瓜与差瓜两种,是离散值。同样地,也有通过历年的人口数据,来预测未来的人口数量,人口数量则是连续值。定义:
• 预测值为离散值的问题为:分类(classification)。
• 预测值为连续值的问题为:回归(regression)。
对只涉及两个类别的“二分类”任务,通常其中一个类为“正类”,另一个类为“反类”;涉及多个类别时,则称为“多分类”问题。
在我们预测西瓜是否是好瓜的过程中,很明显对于训练集中的西瓜,我们事先已经知道了该瓜是否是好瓜,学习器通过学习这些好瓜或差瓜的特征,从而总结出规律,即训练集中的西瓜我们都做了标记,称为标记信息。但也有没有标记信息的情形,例如:我们想将一堆西瓜根据特征分成两个小堆即对西瓜做“聚类”,使得某一堆的西瓜尽可能相似,即都是好瓜或差瓜,对于这种问题,我们事先并不知道西瓜的好坏,样本没有标记信息。定义:
• 训练数据有标记信息的学习任务为:监督学习(supervised learning),容易知道上面所描述的分类和回归都是监督学习的范畴。
• 训练数据没有标记信息的学习任务为:无监督学习(unsupervised learning),常见的有聚类和关联规则。
1.3 假设空间
假设空间:所有假设构成的集合。
版本空间:只保留了假设空间中与训练数据集中正例一致的假设,由这些正确的假设构成的集合成为版本空间(简单来说,版本空间就是正例的泛化)。
下面介绍假设空间大小计算、构建假设空间以及版本空间。
举个例子,假设西瓜的好坏由“色泽”,“根蒂”以及“敲声”决定,且"色泽"、"根蒂"和"敲声"分别有3、3、3 种可能取值。用布尔表达式表示则是
那么,假设空间大小就等于:(3+1)×(3+1)×(3+1)+1=65。
这里3+1的1表示当色泽无论取什么时的情况,后面的根蒂和敲声类似,而式子最后一个1表示为也许不存在好瓜这种概念,表示空。
则假设空间用下图直观展示:
有许多策略对假设空间搜索,如自顶向下和自底向上、或从一般到特殊,从特殊到一般等,搜索过程中可以不断删除与正例不一致的假设,最终将会获得与训练
集一致的假设,这就是我们学得的结果。
但是现实问题中常面临很大的假设空间,可能多个假设与训练集一致,即存在一个与训练集一致的“假设集合”,我们称之为“版本空间”,西瓜问题根据上标(保留与正例的假设)如下:
1.4 归纳偏好
从假设空间到版本空间是一个归纳过程(即从特殊到一般的过程)。
现在有一个问题,例如(色泽=青绿,根蒂=蜷缩,敲声=沉闷)这新瓜,如果采用(色泽=?) ⋀ (根蒂=蜷缩) ⋀ (敲声=?)这个假设进行判断,这新瓜就是好瓜;但是采用(色泽=?) ⋀ (根蒂=?) ⋀ (敲声=浊响)这个假设判断,这新瓜就是坏瓜。那么,应该采用哪一个模型(或假设)呢?
若仅有上表中的训练样本,则无法断定上述三个假设中明哪一个"更好"。然而,对于一个具体的学习算法而言?它必须要产生一个模型。这时,学习算法本身的"偏好"就会起到关键的作用。
一种常用的、自然科学研究中最基本的“正确的”偏好原则是“奥卡姆剃刀”(Occam’s razor)原则。
奥卡姆剃刀原则:若有多个假设与观察一致,则选最简单的那个
举个例子,在下边回归学习的1.3图示中,每个训练样本是图中的一个点,要习得一个和训练集一致的模型,相当于找到一条穿过所有训练样本点的曲线。显然,这样的曲线有很多条。如果使用奥卡姆剃刀偏好原则的话,更为平滑的曲线A会比曲线B要好。
可实际情况,A曲线却并不一定比B曲线好,因为用来训练的样本只是全量数据的一部分,真正的数据到底是更贴近曲线A还是曲线B是无法得知的。
如图1.4所示,真实的数据是两种情况都有可能出现。换言之,对于一个学习算法a,若它在某些问题上比学习算法b好,则必然存在另一些问题,而在那算法b比算法a好。
Wolpert在1996年提出的“没有免费的午餐”定理(No Free Lunch Theorem,简称NFL定理)证明了无论学习算法a多聪明、学习算法b多笨拙,它们的期望性能都相同。
书中提到跳过下面讨论也并不会影响后续学习!
下面做个简单的讨论:
期望是样本大量重复的平均值,方差(主体是(X-E)^2)是描述样本离散程度,越大波动越厉害。
其中:
可NFL定理(没有免费的午餐No Free Lunch Theorem)有一个重要前提:所有“问题”出现的机会相同、或所有问题同等重要。 (就是公式中f按均匀分布) 但实际情况并不是这样的,很多时候,我们只关注自己正在试图解决的问题。比如,要找到快速从A地到B地的算法,如果我们考虑A地是南京鼓楼、B地是南京新街口,那么“骑自行车”是很好的解决方案;但是这个方案对A地是南京鼓楼、B地是北京新街口的情形显然很糟糕,但我们对此并不关心。
因此我们可以得到,并没有绝对好的机器学习算法,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有的算法都一样好。
针对具体问题选择具体的算法和归纳偏好才是正确的做法。
最后一小节1.5为发展历程,此处不再叙述,有兴趣的可以自己查阅。
学习过程中参考了资料如下:
1、机器学习 - 周志华
2、百度百科
3、https://blog.csdn.net/u011826404/article/details/75577216
4、https://datawhalechina.github.io/pumpkin-book/#/