使用某个训练集训练机器学习模型,并且通过计算在模型训练集上的损失函数来度量一些被称为训练误差( Training Error )的误差,使用前几节介绍的优化算法去优化损失函数可以逐渐减小训练、误差。
然而在真实的应用中,不仅仅是让模型能够在训练集上表现良好,而且希望训练得到的模型也能在未知的新输入数据上(这些新输入数据就是测试集)表现良好。这种能在未知的新输入数据上表现良好的能力被称为泛化(Generalization)。
模型在未知的新输入数据上得到的误差称为泛化误差( GeneralizationError ,或称测试误差( Test Error))。在降低训练误差和测试误差的过程中,我们面临着机器学习中的两个主要挑战:欠拟合和过拟合。欠拟合( Underfitting )是指模型不能够在训练集上获得足够低的误差,而过拟合( Overfitti ng )是指训练误差和测试误差之间差距太大。
假设需要拟合一个样本分布满足二次函数的训练集,我们可以尝试分别设计3 个容量不同的模型并比较拟合的情况。第一个模型是线性回归模型,这可以通过一次多项式来完成:
y = wx +b
接下来对线性回归模型引入x2项作为第二个模型,这样模型就能够学习关于x 的二次函数:
y = w1x2+ w2x +b
为了再次提高模型的容量,我们可以对模型继续追加x 的更高次幂,例如下面的九次多项式:
图5-12 、图5