三种数据集的目的:

  • 训练集:主要目的是训练模型。

  • 验证集:目的是为了验证不同的算法,检验哪种算法更有效。正确评估分类器的性能,选出合适的分类器。

  • 测试集:测试集的目的是对最终所选定的神经网络系统做出无偏估计。

    无偏估计:估计量的均值等于真实值,即具体每一次估计值可能大于真实值,也可能小于真实值,而不能总是大于或小于真实值(因为这就产生了系统误差)

  1. 在有验证集设置的情况下,你的模型可以从你对训练集的多次不同分割来反推出类似组合优化的次最优解,而你如果只使用训练集,你的调参之间的每次训练的目标都必然是当前先验约束下的局部最优解
  2. 训练集是用来 fit 你的 model 的;验证集是来 tune 你的 model 的;测试集是来 deploy 你的 model 的。

划分验证集与测试集,通过验证集进行训练,从而增加模型的泛化性能,

验证集参与了超参数的训练

在训练模型时参数可以分为两种,一种是普通的模型参数,一种是需要人工调参的超参数,我们都知道普通参数的训练使用的是训练集的数据,验证集的数据并没有参与,因此可以用来进行评估。但实际上,我们在人工选择超参数,并使用验证集来决定最终使用哪组超参数的过程,也可以看作验证集参与了超参数的训练过程,因此我们还需要一个完全没有参与过所有参数训练的测试集来作为最终的结果评估。

当过拟合已经不是你的 main concern 的时候就可以不分数据,各种大模型都是这样的,用的是百万至十亿级别的数据量