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

1.4 从简单示例理解机器学习

视频讲解

本节通过两个简单的示例进一步说明机器学习的一些概念。

1.4.1 一个简单的回归示例

基本的回归学习算法在第3章进行详细介绍,这里不涉及算法细节,只给出结果用于说明概念。

假设存在一个函数关系 f x )=1/[1+exp(- x )],这个函数称为sigmoid函数,通过采样得到一组样本,设采样过程混入了噪声,采样值为 y n = f x n )+ v n ,其中 v n 是高斯白噪声,均值为0,方差为0.0225,在 x ∈[-1,1]区间等间隔采样。用同样的采样方式得到训练样本集 和测试样本集 ,学习一个回归模型来拟合该函数关系。图1.4.1示出了函数 f x )和一组样本值,注意样本标注是带噪声的。

图1.4.1 函数和样本值

本例是说明性的示例,在实际问题中函数 f x )是未知的,需要用一个机器学习模型来拟合这个函数。这里,采用简单的多项式回归作为模型,模型表达式为

其中 M 是多项式模型的阶,这是一种参数模型。为训练模型,以均方误差作为损失函数,即

首先以训练样本集的样本数 N =10为例进行说明,为了对比模型复杂度对结果的影响,多项式的阶数分别取 M =0,1,3,9计算模型参数(具体算法在第3章详述),并将训练获得的模型所表示的函数与图1.4.1的内容放在一起对比,结果示于图1.4.2中。

对比发现,当模型过于简单,即 M =0,1时,训练得到的模型无法表示原函数的复杂度,这是欠拟合情况。当 M =3时,训练的模型对原函数拟合较好,给出新的输入 x 可在一定精度内预测原函数的值。当 M =9时,在训练集得到最好的结果,训练的函数与各训练样本均重合,训练集误差为0。但显然,该函数起伏太大,若给出新的输入值 x ,模型得到的预测与原函数的输出可能相差巨大,泛化性能很差,这是一种过拟合现象。造成过拟合的原因,一是 M =9时模型对该训练样本集过于复杂,二是样本存在噪声,这样为了尽可能降低训练误差,模型过于倾向趋从数据中的噪声分布,从而使模型过于起伏。

可以进一步从训练误差和测试误差的角度理解模型复杂度与适应性之间的关系。本例中,测试集取100个样本,为了比较方便,训练误差和测试误差都使用均方根误差(均方误差的平方根)。 M 取值从0到9变化,通过训练集得到训练误差最小意义下的最优解后,分别计算训练误差和测试误差,并显示于图1.4.3中。从图1.4.3中可见,训练误差随着 M 增加单调下降,本例中可下降到0。测试误差先随 M 增加而下降,然后从 M 取8起又上升,测试误差呈现“U”形曲线,尽管这是由一个简单例子得到的结果,但是该曲线却是一般性的。在本例中 M 取3~7的值是合适的选择。

图1.4.2 阶 M 不同时的拟合曲线

图1.4.3 训练误差和测试误差曲线

解决过拟合问题的两个基本方法分别为增加训练集规模和正则化。先看增加训练集规模的效果。取模型阶为 M =9,图1.4.4分别示出训练集大小 N 分别为30和150时的情况,在 N =30时过拟合得到很大抑制,在 N =150时,过拟合已消失,得到了相当好的拟合。在大样本情况下,样本的噪声影响得以平滑,抑制了过拟合问题。

在训练集非常受限时,第二种抑制过拟合的方法是正则化。正则化是一种非常通用的技术,这里只讨论对权系数施加限制的一种正则化技术。正则化是指在式(1.4.2)所示损失函数基础上,施加对权系数的约束,最常用的是对权系数的范数平方约束,即

图1.4.4 样本数分别为30和150时模型的拟合情况

这里 λ 是一个超参数,需要通过实验确定。一般 λ 越小越关注误差损失, λ 越大越约束权系数的范数取值。使得权系数范数取更小的值,相当于降低了系统复杂度。以 M =9、 N =10为例观察正则化带来的影响,图1.4.5显示了不同 λ 取值的情况下,正则化的效果。可见 λ 太小,没有明显效果, λ 太大则限制了模型复杂性,模型趋于欠拟合,而适中的 λ 取得较好的正则化效果。图1.4.6给出了训练误差和测试误差随 λ 的变化曲线,测试误差再次是U型曲线。本例中lg λ 取-2~-4是合适的正则化参数。

图1.4.5 正则化系数 λ 的影响

图1.4.6 训练误差和测试误差随λ的变化

1.4.2 一个简单的分类示例

与回归对应,给出一个简单的分类例子并通过一个示例样本集和一个简单算法进行说明。图1.4.7所示的是一组训练样本 ,其中特征向量 x 是两维的,故可显示于平面图中。该样本集包含3种类型, y n 只取3个不同值, y n 的取值可分别用 C 1 C 2 C 3 表示,图1.4.7中对应用3种不同的符号表示,分别是“+”“×”和“*”。图1.4.7中实心圆表示一个待分类的新样本。

图1.4.7 分类标注样本的例子

讨论一种最基本的分类算法: K 近邻算法( K- nearest neighbors,KNN)。 x 是二维的情况可直观地描述KNN算法。对于给定的近邻数 K ,当给出一个新的待分类样本时,以该样本为中心形成一个圆(三维以上情况时对应为超球体),半径逐渐扩大直到圆内包含了 K 个训练集样本,将圆内包含的 K 个训练样本表示为 D K ,统计 D K 内各类型样本数,对本例只需用 K 1 K 2 K 3 表示各类型的数目,若其中最大的是 K i ,则将新样本分类为 C i 。例如,图1.4.7的待分类样本,取 K =10,计数得到 K 1 =1, K 2 =8, K 3 =1,显然,可将该样本分类为 C 2 ,即图中“×”所示的样本类。

KNN算法是一种非参数方法。KNN算法也存在欠拟合、过拟合、超参数确定等问题。近邻数目 K 是一个超参数,它不能由学习过程确定,需要预先确定。当 K 取最小值1时(可称为最近邻方法),对样本集自身可完全正确分类(即样本自身的标注)。但对于新输入,由于只由最近的一个训练集样本的类型确定其类型输出,对分类结果的可信度不高,分类误差(即泛化误差)较大,这是一种过拟合。但当 K 很大时,如极限情况 K = N K 为训练集样本数时,对于所有的新输入,输出类型都由训练集中数目最多的类型作为输出,无法反映样本集的局部性质,这显然是一种欠拟合情况。

本节通过两个易于理解的示例,直观地介绍了机器学习中的一些基本术语。包括模型、训练集、测试集、训练误差、测试误差、欠拟合、过拟合、泛化性能、正则化等。可以看到,在一种简单模型下,在给定的数据集下,因模型复杂度不同可能存在欠拟合或过拟合,训练误差和测试误差随模型复杂度有不同表现、泛化性能不同等现象。在完整的机器学习框架内,问题更复杂,尤其不同类型模型之间的各类性能更是相差甚远。解决一个实际问题时,会遇到诸如模型表达能力、训练集规模、泛化误差界等问题,需要更好的理论指导。机器学习中的重要分支——机器学习理论关注从理论上回答这些问题,但遗憾的是,目前学习理论的结果与应用需求之间还有很大的缝隙,实际中更多的还是通过交叉验证等更实用的技术手段来解决这些问题。 B5C0ex/IuqK6QdKGGvsOfHSGtvrzODJXR11jXZ8uDluChLha/rzqd2feZpucU8Aq

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