DeepLearning Chapter 5

@LoyFan

mathjax:true

机器学习基础

1 学习算法

机器学习中所谓的“学习”是指:
对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习——通过经验E改进后,它能在任务T上由性能度量P衡量的性能有所提升。

1.1 任务T

一般使用机器学习解决的任务是“确定性程序”很难解决的问题。
常见的机器学习任务:分类、回归、图像处理、目标检测、自然语言处理等等

1.2 性能度量P

定量评估机器学习算法的能力。
比如:
准确率Accuracy
查准率Precision
查全率(召回率)Recall
mAP链接
通常,我们会更加关注机器学习算法在未观测数据上的性能如何,因为这将决定其在实际应用中的性能。因此,我们使用测试集数据来评估系统的性能,将其与训练机器学习系统的训练集数据分开。

1.3 经验E

经验在给定的数据集中获取。
机器学习算法可以分为监督(supervised)算法和无监督(unsupervised)算法。
监督学习
训练数据集中的每一样本都有一个标签(label),比如目标分类中每一个样本所属的分类即为标签。
比如:

无监督学习
训练数据不带标签,通常要学习生成整个数据集的概率分布,或者是分布上一些有意思的性质,再或者将数据聚类,提取公共特征,将数据集分成相似样本的集合。

监督学习和无监督学习并没有严格的界限,很多机器学习任务是监督和无监督交织在一起的,并且存在“半监督”学习。

1.4 示例:线性回归

我们的目标是建立一个系统,将向量 $x ∈ R_n$ 作为输入,预测标量 $y ∈ R$ 作为输出。
线性回归的输出是其输入的线性函数。令 $\hat{y}$ 表示模型预测 ${y}$ 应该取的值。我们定义输出为

其中 $w ∈ R_n$ 是 参数(parameter)向量。
Deep-Learning 5.1.4 page105
线性回归实例

2 容量、过拟合和欠拟合

泛化
机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好,而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛化(generalization)。
通常,我们度量模型在训练集中分出来的测试集(test set)样本上的性能,来评估机器学习模型的泛化误差。而我们训练网络的时候目标都是使得训练数据上的误差尽量最小。

  • 当我们只能观测到训练集时,我们如何才能影响测试集的性能呢?
    在数据集生成过程中,要考虑每个数据集中的样本都是彼此相互独立的(in- dependent),并且训练集和测试集是 同分布的(identically distributed),采样自相同的分布。这样训练集和数据集的期望将会相同,他们的区别仅仅是名字不同而已。
  • 两个决定算法效果的因素:
    1.降低训练误差。 -》欠拟合
    2.缩小训练误差和测试误差的差距。 -》过拟合

欠拟合underfitting
模型不能在训练集上获得足够低的误差。
过拟合overfitting
训练误差和测试误差之间的差距太大。
在这里插入图片描述
容量
模型的容量是指其拟合各种函数的能力,容量低的模型很难拟合复杂训练集,但容量高于任务所需,模型可能出现过拟合。
上图中我们用三个模型拟合了这个训练集的样本。(左) 用一个线性函数拟合数据会导致欠拟合——它无法捕捉数据中的曲率信息。(中) 用二次函数拟合数据在未观察到的点上泛化得很好。这并不会导致明显的欠拟合或者过拟合。(右) 一个 9 阶的多项式拟合数据会导致过拟合。

我们必须记住虽然更简单的函数更可能泛化(训练误差和测试误差的差距小), 但我们仍然需要选择一个充分复杂的假设以达到低的训练误差。通常,当模型容量上升时,训练误差会下降,直到其渐近最小可能误差(假设误差度量有最小值)。通常,泛化误差是一个关于模型容量的 U 形曲线函数。如下图所示。
在这里插入图片描述

2.1 没有免费午餐定理

机器学习的没有免费午餐定理(no free lunch theorem)表明 (Wolpert, 1996),在所有可能的数据生成分布上平均之后,每一个分类算法在未事先观测的点上都有相同的错误率。换言之,在某种意义上,没有一个机器学习算法总是比其他的要好。我们能够设想的最先进的算法和简单地将 所有点归为同一类的简单算法有着相同的平均性能(在所有可能的任务上)。
幸运的是,这些结论仅在我们考虑所有可能的数据生成分布时才成立。在真实世界应用中,如果我们对遇到的概率分布进行假设的话,那么我们可以设计在这些分布上效果良好的学习算法。

训练样本数量级对训练误差,测试误差以及最佳容量的影响
一个是二次模型,另一个模型的阶数通过最小化测试误差来选择。
在这里插入图片描述

2.2 正则化

正则化一个学习函数 f(x;θ) 的模型,我们可以给代价函数添加被称为正则化项(regularizer)的惩罚。通过这个惩罚,我们可以选择对函数的特定偏好,只有当非偏好函数比偏好函数的训练效果好很多时,才会选择非偏好函数。
例如:偏好权重$L^2$范数较小的函数。

通过改变λ来避免高阶模型过拟合(使用 9 阶多项式):
在这里插入图片描述
有很多其他方法隐式或显式地表示对不同解的偏好。总而言之,这些不同的方法都被称为正则化(regularization)。正则化是指我们修改学习算法,使其降低泛化误差而非训练误差。

3 超参数和验证集

超参数
超参数是可以控制机器学习算法行为,但不是学习出来的参数。有时一个选项被设为学习算法不用学习的超参数,是因为它太难优化了。更多的情况是,该选项必须是超参数,因为它不适合在训练集上学习。这适用于控制模型容量的所有超参数。如果在训练集上学习超参数,这些超参数总是趋向于最大可能的模型容量,导致过拟合。
验证集
用于挑选超参数的数据子集被称为验证集(validation set)。通常,80% 的训练数据用于训练,20% 用于验证。由于验证集是用来 ‘‘训练’’ 超参数的,尽管验证集的误差通常会比训练集误差小,验证集会低估泛化误差。所有超参数优化完成之后,泛化误差可能会通过测试集来估计。

3.1 交叉验证

问题:将数据集分成固定的训练集和固定的测试集后,若测试集的误差很小,意味着平均测试误差估计的统计不确定性,使得很难判断算法 A 是否比算法 B 在给定的任务上做得更好。

k-折交叉验证
将数据集分成 k 个不重合的子集。测试误差可以估计为 k 次计算后的平均测试误差。在第 i 次测试时, 数据的第 i 个子集用于测试集,其他的数据用于训练集。该算法返回 D 中每个示例的误差向量 e,其均值是估计的泛化误差。

4 估计、偏差和方差

4.1 点估计

令 ${x(1), . . . , x(m)}$ 是 m 个独立同分布(i.i.d.)的数据点。 点估计(point estimator)或统计量(statistics)是这些数据的任意函数:

4.2 偏差

估计的偏差被定义为:

其中期望作用在所有数据(看作是从随机变量采样得到的)上,$\theta$ 是用于定义数据生成分布的 $\theta$ 的真实值。
如果 $bias(\hat\theta_m) = 0$,那么估计量 $\hat\theta_m$ 被称为是无偏(unbiased),这意味着$E(\hat\theta_m) = θ$。
如果 $lim_{m→∞} bias(\hat\theta_m) = 0$,那么估计量 $\hat\theta_m$ 被称为是渐近无偏(asymptotically unbiased),这意味着 $lim_{m→∞} E(θm) = θ$。

Deep-Learning 5.4.2 page122

4.3 方差和标准差

我们有时会考虑估计量的另一个性质是它作为数据样本的函数,期望的变化程度是多少。正如我们可以计算估计量的期望来决定它的偏差,我们也可以计算它的方差。估计量的方差(variance)

其中随机变量是训练集。另外,方差的平方根被称为标准差(standard error),记作

均值的标准差

其中 $\sigma^2$ 是样本 $x^{(i)}$ 的真实方差。样本方差的平方根和方差无偏估计的平方根被用于实际中得到标准差。
均值的标准差在机器学习实验中非常有用,我们通常用测试集样本的误差均值 来估计泛化误差。

4.4 权衡偏差和方差以最小化均方误差

当我们可以在一个偏差更大的估计和一个方差更大的估计中进行选择时,该如何选择?
判断这种权衡最常用的方法是交叉验证。另外,我们也可以比较这些估计的均方误差(mean squared error, MSE):

MSE 估计包含了偏差和方差。理想的估计具有较小的 MSE 或是在检查中会稍微约束它们的偏差和方差。偏差和方差的关系和机器学习容量、欠拟合和过拟合的概念紧密相联。用 MSE 度量泛化误差(偏差和方差对于泛化误差都是有意义的)时,增加容量会增加方差,降低偏差。如图 5.6 所示,我们再次在关于容量的函数中,看到泛化误差的 U 形曲线。在这里插入图片描述
图 5.6: 当容量增大(x 轴)时,偏差(用点表示)随之减小,而方差(虚线)随之增大,使得泛化误差(加粗曲线)产生了另一种 U 形。如果我们沿着轴改变容量,会发现最佳容量,当容量小于最佳容量会呈现欠拟合,大于时导致过拟合。这种关系与第 5.2 节中讨论的容量、欠拟合和过拟合之间的关系类似。

4.5 一致性

通常,我们也会关注训练数据增多后估计量的效果。特别地,我们希望当数据集中数据点的数量 m 增加时,点估计会收敛到对应参数的真实值。

符号 plim 表示依概率收敛,即对于任意的 $ε > 0$,当 $m → ∞$ 时,有 $P(|θm − θ| >
ε) → 0$。上式表示的条件被称为一致性(consistency)。
一致性保证了估计量的偏差会随数据样本数目的增多而减少。