《深度学习》花书 - 第五章 机器学习基础
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 示例:线性回归
我们的目标是建立一个系统,将向量 作为输入,预测标量 作为输出。
线性回归的输出是其输入的线性函数。令 表示模型预测 应该取的值。我们定义输出为
其中 是 参数(parameter)向量。
Deep-Learning 5.1.4 page105
线性回归实例
2 容量、过拟合和欠拟合
泛化
机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好,而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛化(generalization)。
通常,我们度量模型在训练集中分出来的测试集(test set)样本上的性能,来评估机器学习模型的泛化误差。而我们训练网络的时候目标都是使得训练数据上的误差尽量最小。
- 当我们只能观测到训练集时,我们如何才能影响测试集的性能呢?
在数据集生成过程中,要考虑每个数据集中的样本都是彼此相互独立的(in- dependent),并且训练集和测试集是 同分布的(identically distributed),采样自相同的分布。这样训练集和数据集的期望将会相同,他们的区别仅仅是名字不同而已。 - 两个决定算法效果的因素:
1.降低训练误差。
2.缩小训练误差和测试误差的差距。