Deep Learning - Chapter 5
机器学习基础
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 x ∈ R_n x∈Rn 作为输入,预测标量 y ∈ R y ∈ R y∈R 作为输出。
线性回归的输出是其输入的线性函数。令 y ^ \hat{y} y^ 表示模型预测 y {y} y 应该取的值。我们定义输出为
y ^ = w ⊤ x \hat{y}=\boldsymbol{w}^{\top} \boldsymbol{x} y^=w⊤x
其中 w ∈ R n w ∈ R_n w∈Rn 是 参数(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 L^2 L2范数较小的函数。
J ( w ) = M S E t r a i n + λ w ⊤ w J(\boldsymbol{w})=\mathrm{MSE}_{\mathrm{train}}+\lambda \boldsymbol{w}^{\top} \boldsymbol{w} J(w)=MSEtrain+λ