关于超参数与验证集

为什么需要验证集?

大多数机器学习算法都具有超参数,用来控制算法行为,超参数的值并不是通过算法本身学习出来的。

举例说明就是,假如用一个多项式函数来拟合一组数据,多项式的次数就是一个超参数。对于这样的一个问题,如果我们只有训练集和测试集,通过训练集学习,可以明确的是当我们的多项式次数越高,在训练集上取得的成绩就会越好,但是事实告诉我们当多项式次数过高,它确实可以在少数点(训练集)上达到很小的误差,但是对于其余点往往不能很好拟合。

下图摘自花书:

关于超参数与验证集

验证集就是为了解决上述问题而出现的,验证集中的样本是训练算法时观测不到的样本。通过在验证集上的表现,我们就可以挑选到合理的超参数。

生活化解释

训练集可以当做我们的作业,写作业的过程就相当于算法的训练过程,在这个过程中获取经验和知识;验证集被看作是平时的测验,用于检验我们是否真正的学到了知识,而不是“死记硬背”;测试集就是期末考试了,它是用来最终检验我们学习的效果。

总结

  • 验证集是独立于测试集和训练集的数据,在实际使用时,是从给定的训练数据中划分20%作为验证集。
  • 验证集的作用是通过反复训练,挑选合理的超参数,以在测试集上范化良好。

评论区 0 已关闭评论