1.2 基本术语
本节涉及的术语较多且很多术语都有多个叫法,下面梳理各个术语,并将最常用的叫法加粗标注。
样本:也称为“示例”,是关于一个事件或对象的描述。因为要想让计算机能对现实生活中的事物进行机器学习,就必须先将其抽象为计算机能理解的形式,计算机最擅长做的就是进行数学运算,因此考虑如何将其抽象为某种数学形式。显然,线性代数中的向量就很适合,因为任何事物都可以由若干“特征”(或称为“属性”)唯一刻画出来,而向量的各个维度即可用来描述各个特征。例如,如果用色泽、根蒂和敲声这3个特征来刻画西瓜,那么一个“色泽青绿,根蒂蜷缩,敲声清脆”的西瓜用向量来表示即为 (青绿;蜷缩;清脆),其中青绿、蜷缩和清脆分别对应为相应特征的取值,也称为“属性值”。显然,用中文书写向量的方式不够“数学”,因此需要将属性值进一步数值化,具体例子参见“西瓜书”第3章的3.2节。此外,仅靠以上3个特征来刻画西瓜显然不够全面细致,因此还需要扩展更多维度的特征,一般称此类与特征处理相关的工作为“特征工程”。
向量中的元素用分号“;”分隔时表示此向量为列向量,用逗号“,”分隔时表示此向量为行向量
样本空间:也称为“输入空间”或“属性空间”。由于样本采用的是标明了各个特征取值的“特征向量”来进行表示,根据线性代数的知识可知,有向量便会有向量所在的空间,因此称表示样本的特征向量所在的空间为样本空间,通常用花式大写的来表示。
数据集:数据集通常用集合来表示。令集合表示包含个样本的数据集,一般同一份数据集中的每个样本都含有相同个数的特征,假设此数据集中的每个样本都含有个特征,则第个样本的数学表示为维向量,其中表示样本在第个属性上的取值。
模型:机器学习的一般流程为,首先收集若干样本(假设此时有100个),然后将其分为训练样本(80个)和测试样本(20个),其中80个训练样本构成的集合称为“训练集”,20个测试样本构成的集合称为“测试集”。接着选用某个机器学习算法,让其在训练集上进行“学习”(或称为“训练”)。然后产出得到“模型”(或称为“学习器”),最后用测试集来测试模型的效果。当执行以上流程时,表示我们已经默认样本的背后存在某种潜在的规律,我们称这种潜在的规律为“真相”或者“真实”。例如,当样本是一堆好西瓜和坏西瓜时,我们默认的便是好西瓜和坏西瓜背后必然存在某种规律能将其区分开。当我们应用某个机器学习算法来学习时,产出的模型便是该算法找到的它所认为的规律。由于该规律通常并不一定就是所谓的真相,因此我们也将其称为“假设”。通常机器学习算法都有可配置的参数,同一个机器学习算法,使用不同的参数配置或者不同的训练集,训练得到的模型通常也不同。
标记:上文提到机器学习的本质就是学习样本在某个方面的表现是否存在潜在的规律,我们称该方面的信息为“标记”。例如在学习西瓜的好坏时,“好瓜”和“坏瓜”便是样本的标记。一般第个样本的标记的数学表示为,标记所在的空间被称为“标记空间”或“输出空间”,数学表示为花式大写的。标记通常也可以看作样本的一部分,因此一个完整的样本通常表示为。
根据标记的取值类型的不同,可将机器学习任务分为以下两类。
● 当标记取值为离散型时,称此类任务为“分类”,例如学习西瓜是好瓜还是坏瓜、学习猫的图片是白猫还是黑猫等。当分类的类别只有两个时,称此类任务为“二分类”,通常称其中一个为“正类”,称另一个为“反类”或“负类”;当分类的类别超过两个时,称此类任务为“多分类”。由于标记也属于样本的一部分,通常也需要参与运算,因此需要将其数值化。例如对于二分类任务,通常将正类记为,将反类记为,即。这只是一般默认的做法,具体标记该如何数值化可根据具体机器学习算法进行相应的调整,例如第6章的支持向量机算法采用的是。
● 当标记取值为连续型时,称此类任务为“回归”,例如学习预测西瓜的成熟度、学习预测未来的房价等。由于是连续型,因此标记的所有可能取值无法直接罗列,通常只有取值范围,回归任务的标记取值范围通常是整个实数域,即。
无论是分类还是回归,机器学习算法最终学得的模型都可以抽象地看作以样本为自变量,以标记为因变量的函数,即一个从输入空间到输出空间的映射。例如在学习西瓜的好坏时,机器学习算法学得的模型可以看作一个函数,给定任意一个西瓜样本(青绿;蜷缩;清脆),将其输入这个函数即可计算得到一个输出,此时得到的便是模型给出的预测结果。当取值为时,表明模型认为西瓜是好瓜;当取值为时,表明模型认为西瓜是坏瓜。
根据是否用到标记信息,可将机器学习任务分为以下两类。
● 在模型训练阶段用到标记信息时,称此类任务为“监督学习”,例如第3章的线性模型。
● 在模型训练阶段没用到标记信息时,称此类任务为“无监督学习”,例如第9章的聚类。
泛化:由于机器学习的目标是根据已知来对未知做出尽可能准确的判断,因此对未知事物判断的准确与否才是衡量一个模型好坏的关键,我们称此为“泛化”能力。例如在学习西瓜的好坏时,假设训练集中共有3个样本:((青绿;蜷缩),好瓜),((乌黑;蜷缩),好瓜),((浅白;蜷缩),好瓜)},同时假设判断西瓜好坏的真相是“只要根蒂蜷缩就是好瓜”。应用算法在此训练集上训练得到模型,模型学到的规律是“当色泽等于青绿、乌黑或者浅白时,同时根蒂蜷缩即为好瓜,否则便是坏瓜”;再应用算法在此训练集上训练得到模型,模型学到的规律是“只要根蒂蜷缩就是好瓜”。因此,对于一个未见过的西瓜样本 (金黄;蜷缩)来说,模型给出的预测结果为“坏瓜”,模型给出的预测结果为“好瓜”,此时我们称模型的泛化能力优于模型。
通过以上举例可知,尽管模型和模型对训练集学得一样好,即这两个模型对训练集中每个样本的判断都对,但是其所学到的规律是不同的。导致此现象最直接的原因是算法的不同,但算法通常是有限的、可穷举的,尤其是在特定任务场景下,可使用的算法更是有限。因此,数据便是导致此现象的另一重要原因,这也就是机器学习领域常说的“数据决定模型效果的上限,而算法则是让模型无限逼近上限”,下面详细解释此话的含义。
我们先解释“数据决定模型效果的上限”,其中数据是指从数据量和特征工程两个角度考虑。从数据量的角度来说,通常数据量越大模型效果越好,因为数据量大即表示积累的经验多,因此模型学习到的经验也多,自然表现效果越好。在以上举例中,如果训练集中含有相同颜色但根蒂不蜷缩的坏瓜,那么模型学到真相的概率则也会增大。从特征工程的角度来说,通常对特征数值化越合理,特征收集越全越细致,模型效果通常越好,因为此时模型更易学得样本之间潜在的规律。例如,当学习区分亚洲人和非洲人时,样本即为人。在进行特征工程时,如果收集到每个样本的肤色特征,则其他特征(例如年龄、身高和体重等)便可省略,因为只需要靠肤色这一个特征就足以区分亚洲人和非洲人。
“而算法则是让模型无限逼近上限”是指当数据相关的工作已准备充分时,接下来便可用各种可适用的算法从数据中学习其潜在的规律,进而得到模型,不同的算法学习得到的模型效果自然有高低之分,效果越好则越逼近上限,即逼近真相。
分布:此处的“分布”指的是概率论中的概率分布,通常假设样本空间服从一个未知“分布”,而我们收集到的每个样本都是独立地从该分布中采样得到的,即“独立同分布”。通常收集到的样本越多,越能从样本中反推出的信息,即越接近真相。此假设属于机器学习中的经典假设,在后续学习机器学习算法的过程中会经常用到。