过拟合
所谓过拟合,指的是模型在训练集上表现的很好,但是在交叉验证和集合测试集上表现一般,也就是说模型对未知样本的预测表现一般,泛化(generalization)能力较差。
从图中可以看出,图一是欠拟合,模型不能很好地拟合数据;图二是最佳的情况;图三就是过拟合,采用了很复杂的模型。最后导致曲线波动很大,最后最可能出现的结果就是模型对于未知样本的预测效果很差。
在机器学习算法中,我们常常将原始数据集分为三部分:training data、validation data,testing data。这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些,那么随着训练的进行,我们的网络实际上就是在一点一点地overfitting我们的testing data,导致最后得到的testing accuracy没有任何参考意义。