购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 构建机器学习系统的基本问题

视频讲解

本节讨论构建机器学习系统的基本要素及相应的几个基本概念。

1.3.1 机器学习的基本元素

构建一个完整的机器学习系统,需要几个基本元素,以下四个元素是一个机器学习系统不可或缺的:数据集、目标函数、模型和优化算法。

1.数据集

机器学习是从数据中学习,数据集是必需的元素。目前的机器学习方法大多针对特定问题有效,尽管一些将在特定问题有效的算法迁移到更广泛问题的研究已经取得一些进展,但可靠的机器学习算法仍以专用于特定问题的方法为主。例如,针对围棋设计的系统不会用于打麻将,针对垃圾邮件检测设计的系统不会用于对木马病毒的检测。

机器学习要针对具体问题从数据中学习,在确定了要解决的问题后,收集数据是第一步。要从已经发生的该类问题中,收集大量原始数据,并对数据进行适当的预处理,以适合机器学习的后续处理。例如,原始数据中的一些特征是文字描述的,要变成数值。如果是监督学习,要对数据进行标注。

对于监督学习,预处理和标注以后,得到式(1.2.1)所示的数据集。在每个样本( x i y i )中, x i 是特征向量,代表对对象的描述, y i 是标注值,指出对象是什么。为了利用数据集进行学习和测试,可将数据集划分为 训练集 D train 测试集 D test 。训练集用于学习模型,用测试集测试所学模型的有效性。

在机器学习的学习和应用中,数据集有两种典型的来源。在机器学习的学习或算法研究中,可使用标准数据集,这些数据集是有关组织或研究者收集并发布的,其中很多可免费使用,在网络上搜索并下载即可。这些数据集种类很多,语音、文字、图像等通用的数据集更是多种多样,数据集从小规模到大规模都有,为机器学习的学习和研究提供了很大方便。

手写数字识别数据集MNIST,由美国国家标准与技术研究所发布,包含60 000个训练集图像及其标注,以及10 000个测试集图像及其标注,每个手写体图像剪裁成28×28像素的数字图像,图1.3.1是该数据集一部分样本的图像显示。

图1.3.1 MNIST数据集部分样本显示

CIFAR-10是一个中规模彩色图像数据集,包含60 000张图片,均为32×32的彩色照片,每个像素点包括RGB三个数值,数值范围是0~255。所有照片分属10个不同的类别,均做了标注。类型分别是airplane(飞机)、automobile(汽车)、bird(鸟)、cat(猫)、deer(鹿)、dog(狗)、frog(青蛙)、horse(马)、ship(船)和truck(卡车)。其中50 000张图片被划分为训练集,剩下的10 000张图片属于测试集。图1.3.2给出CIFAR-10部分样本的显示。

有一些小的数据集如山鸢尾Iris数据集仅包含150个样本,只有三个类型,这种数据集可用于一些较简单的经典学习算法的实验。也有一些超大规模的数据集,如ImageNet包含1500万张图片,约2.2万类,实际研究中一般只使用其一个子集,例如ISLVRC(ImageNet large scale visual recognition competition)竞赛使用约128万张图片做训练集,共计1000类,这种大规模数据集主要用于训练深度网络。还有许多面向各种应用的数据集,如用于机器翻译的WMT、用于语音识别的TIMIT等。Kaggle网站上有各种各样的由个人或组织公布的各类数据集,并支持在这些数据集上进行机器学习算法的挑战比赛。

图1.3.2 CIFAR-10部分样本显示

数据集的第二种来源就是面对实际问题,从实际问题中采集数据,对数据进行预处理生成合格的数据集。例如,云南当地植物资源极其丰富,可以采集大量植物图片,并可以发动旅游爱好者“众筹”当地的植物照片,剪裁成标准图片并请当地植物行家进行标注,用这样的数据集训练一个当地植物识别软件App。另一个例子是机械故障诊断,通过测量系统积累许多故障下的测量信号,但这样的数据集往往规模有限,可称为小样本情况,传统的机器学习算法如SVM可能更适合解决这类问题。

2.目标函数

一个机器学习系统要完成一类任务,就要有一个评价函数用于刻画系统对于目标的达到程度,即要有一个目标函数(或称评价函数)。一般来讲,衡量系统是否达到所要求的目标,一种方式是评价其与目标系统的差距,另一种是评价系统的收益。前者是目标函数最小化,后者是目标函数最大化。在不同的场景下,可以用目标函数、代价函数、评价函数、风险函数、损失函数、收益函数等名词作为性能评价的函数,一些专用系统还有特定的一些评价函数,本书对此不做进一步讨论。

以监督学习的损失函数为例,对目标函数进一步说明。设要学习一个模型

这里假设模型是参数模型, w 是模型参数。若模型是理想的,在输入 x 时输出为 y ,但学习得到的模型并不理想,模型的输出 和期望的输出 y 之间有误差,定义一个样本的损失函数为

这里以 L (·,·)表示一个一般的损失函数,实际中可取具体的损失函数,例如误差平方、误差绝对值等。设( x y )的联合概率密度为 p x y ),则总体损失函数为样本损失函数的期望值,可表示为

这里E p x y 表示按概率函数 p x y )取期望。但是,在机器学习的情境中,只有样本集,概率密度函数 p x y )一般是未知的,故式(1.3.3)无法直接计算。实际存在的只是一组样本,例如在学习过程中只有训练集,为了叙述方便,训练集表示为

可以计算训练样本集的平均损失

式(1.3.5)称为 经验损失函数 ,名称源于其通过样本计算获得,样本可以看成一种经验。为了学习得到最优模型(参数模型等价为得到相应的最优模型参数),从原理上需通过最小化式(1.3.3)的损失函数 J * w )得到最优参数 w o ,但由于不能直接使用式(1.3.3),实际通过最小化式(1.3.5)的经验损失函数 J w )得到逼近的最优参数

通过损失函数 J * w )优化得到的解 w o 使用了问题的全部统计知识,因此是该问题的总体最优解,但通过式(1.3.5)的经验损失函数 J w )最小化得到的解 只使用了训练集的数据,即只使用了由部分经验数据所能够表示的统计特征。一个自然的问题:对于训练集中没有的新样本,这个模型的推广能力如何?这个问题称为机器学习的 泛化 (generalization)问题,对未知样本的期望损失称为泛化损失,理论上在一定条件下可估计泛化损失界。

如前所述,如果得到一个数据集,可将其分为训练集和测试集,测试集内的样本与训练集样本来自同一个概率分布(实际中来自对同一类应用场景的采样),对监督学习来讲测试集也是带标注的,但与训练集是互相独立的。测试集表示为

学习过程中用训练集确定了模型,将模型用于测试集,计算测试集平均损失

以测试集损失近似表示泛化损失。当泛化损失满足要求时,才认为机器学习算法得到了所需的模型。很多情况下,损失函数代表的是一类误差,这时可分别用以下几种误差来表达损失:在训练集上的平均损失称为 训练误差 ,在测试集上的平均损失为 测试误差 ,可用测试误差近似表示 泛化误差

3.模型

这里模型指的是一个机器学习算法采用的具体数学表示形式,即式(1.2.2)广义的数学函数的具体化,从大类型来讲可分为参数模型和非参数模型。非参数模型的表示随具体应用而定,不易给出一个一般性的表示。参数模型可表示为式(1.2.4)的一般形式

最基本的参数模型可分为线性模型和非线性模型。这里的线性和非线性既可以指 与参数 w 的关系,也可以指与特征向量 x 的关系。对 w 是否线性决定了系统优化的复杂度,而对 x 是否线性决定了系统的表达能力。若对两者均是线性的,则是一种最简单的模型;若对两者均是非线性的,所描述的问题则更复杂。

机器学习中已存在很多种人们已经构造的模型,如神经网络、支持向量机、决策树、 K 均值聚类等,后续章节会分别介绍这些模型。一些模型的表达能力可能更适合某一类问题,难有一种模型对所有问题都是最优的。在机器学习系统中,需要预先选择一种模型,确定模型的规模,然后进行训练,若无法达到所需要的目标,可以改变模型的规模,或改变模型的类型进行重新学习,找到对所要解决的问题可能最适合的模型。

并不是模型越复杂越好。例如,对于一个回归问题,若损失函数为模型输出与期望输出之间的均方误差,在训练集是有限的情况下,若选择一个非常复杂的模型,模型的表达能力很强,训练过程中可能使得训练误差趋近甚至等于0。这样的模型选择是否最优(测试误差是否也很小),答案可能是否定的。样本集的获得过程难免存在噪声,模型为了尽可能使训练误差小,可能过度拟合了噪声的趋向,由于噪声又是非常杂乱的,拟合的模型可能局部变化过于急剧,这种模型对于新的输入,可能预测性能不好,或者对测试集误差很大,这种情况称为 过拟合 (overfitting)。过拟合的基本表现:训练误差达到很理想的结果,但泛化性能差。

欠拟合 (underfitting)是另一种趋向,即模型过于简单,无法表达数据中较复杂的变化规律,因此训练误差无法下降到较小的程度,既然对训练样本都无法得到好的拟合,也就谈不上有好的泛化性能。在确定机器学习系统的过程中,不希望过拟合和欠拟合。实际系统开发者为避免欠拟合,往往选择相对复杂一些的模型,对这种选择的关键技术是克服过拟合,克服过拟合问题的一种方法是 正则化 (regularization)。

针对系统复杂性方面,正则化的基本做法是对目标函数增加一个约束项。若原来的目标函数是一个损失函数,则新目标函数由原损失函数加上一个约束项组成,约束项用于控制系统复杂度,约束项上一般施加一个权因子 λ ,用于平衡损失函数和约束项的影响强度, λ 是一种 超参数 ,超参数一般不能通过训练过程确定,大多通过交叉验证的方式确定。

4.优化算法

当数据集、目标函数、模型都选定后,就要通过优化算法将模型内容确定下来。例如,对于参数模型,需要用训练数据对描述模型的目标函数进行优化得到模型参数。一般来讲,对较为复杂的机器学习模型,难以得到对参数解的闭式公式,需要用优化算法进行迭代寻解。若一类机器学习问题直接使用已有的优化算法即可有效求解,则直接使用这些算法;若没有直接求解算法,或直接使用现有算法效率太低,则可针对具体问题设计改进现有算法或探索新的专门算法。

1.3.2 机器学习的一些基本概念

对于以上讨论的元素,给出几个更专业化的名词:输入空间、输出空间、假设空间。

输入空间 :可包含所研究对象的特征向量的空间。例如,特征向量 x 是十维的实向量,则该输入空间是全部的十维实向量空间,该输入空间可包含的对象是无穷的,是无限集合。例如,在第4章讨论的朴素贝叶斯分类中,若 x 是1000维向量,每个分量只取0、1,这里特征向量能够表示的模式与1000位二进制数相同,即2 1000 ,尽管数量巨大,但这是一个有限集合。

输出空间 :可以表示模型预测目标的空间。例如,垃圾邮件检测系统,其输出空间只有两个元素,即{垃圾邮件,正常邮件},一个股票预测系统的输出空间则是一维实数域。

假设空间 :能够表示从输入空间到输出空间映射关系的函数空间。例如,线性回归模型

其假设空间为将 K 维向量空间映射为一维实数空间的所有线性函数集合,这个集合有无穷多成员。另一个例子是二叉树结构的决策树(第7章),若树的深度是有限的,且每个节点是由逻辑变量划分的,则全体二叉树的集合是有限成员的。

在具体机器学习算法的介绍中,这些空间往往是自明的,故一般不会给予特别关注,但在机器学习理论中,对各空间往往是有预先假设的,例如假设空间是有限的还是无限的。

在机器学习中,要研究各种模型,有没有一个通用模型对所有问题是最佳的?答案是否定的。Wolp ert给出的 没有免费午餐定理 (no free lunch theorem)回答了这个问题。定理的结论:对于一个特殊问题,我们可以通过交叉验证这类方法实验地选择最好的模型,然而,没有一个最好的通用模型。正因为如此,需要发展各种不同类型的模型以适用于现实世界的各类数据。

另外一个思考是,对于解决一个实际问题来讲,并不是选择越先进、越复杂的模型越好,模型选择和系统实现的一条基本原理是 Occam剃刀原理 ,该原理叙述为: 除非必要 ,“ 实体 不应该随便增加 或设计者不应该选用比 必要 更加复杂的系统 。这个问题也可表示为方法的“适宜性”,即在解决一个实际问题时,选择最适宜的模型。在机器学习过程中,若选择的模型过于复杂,要面对过拟合问题。

维数灾难 是机器学习面对的另一个问题,在无约束的条件下,在高维情况若保持样本的稠密性,需要样本数目随着空间维度的增加而呈指数增加。一些机器学习模型复杂度也随着维度增加而快速增加。但当一个模型针对一类特定应用时,高维数据实际集中在高维空间的一个等效低维子空间上,这种情况下可缓解维数灾难的影响,但这与没有免费午餐定理类似,一个模型往往针对一个特定应用有效。 jYYLc6W2/8KTr3L9Tw9UVq5xnDNsK60lz0PIO3fTjfEX1ctAzFD2dOgG/JR0JF2Z

点击中间区域
呼出菜单
上一章
目录
下一章
×