为什么要使用验证集

大多数机器学习算法都有超参数,可以设置来控制算法的行为。超参数的值不是通过学习算法本身学习出来的(尽管我们可以设计一个嵌套的学习过程,一个学习算法为另一个学习算法学出最优超参数)。

有时一个选项被设为学习算法的超参数,是因为它太难优化了。更多的情况是,该选项必须是超参数,因为它不适合在训练集上学系。这适用于控制模型容量的所有超参数,如果在训练接上学习超参数,这些超参数总是趋向于最大可能的模型容量,导致过拟合。例如,相比低次多项式和正的权重衰减设定,更高次的多项式和权重衰减参数设定

总能在训练集上更好地拟合。

为了解决这个问题,我们需要一个训练算法观测不到的验证集样本。早先我们讨论过和训练数据相同分布的样本组成的测试集,它可以用来估计学习过程完成之后的学习器的泛化误差。其重点在于测试样本不能以任何形式参与到模型选择中,包括设定超参数。基于这个原因,测试集中的样本不能用于验证集。因此,我们总是从训练数据中构建验证集。特别地,我们将训练数据分成两个不相交的子集。其中一个用于学习参数。另一个作为验证集,用于估计训练中或训练后的泛化误差,更新超参数。用于学习参数的数据参数的数据子集被称为验证集。通常,80%的训练数据用于训练,20%用于验证。由于验证集是用来“训练”超参数的,尽管验证集的误差通常会比训练集误差小,验证集会低估泛化误差。所有超参数优化完成后,泛化误差可能会通过测试集来估计。

在实际中,当相同的测试集已在很多年中重复地用于评估不同算法的性能,并且考虑学术界在该测试集上的各种尝试,我们最后可能会对测试集有乐观的估计。基准会因之变得陈旧,而不能反映系统的真实性能。值得庆幸的是,学术界往往会移到新的基准数据集上。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • KL散度与交叉熵

    也记作H(P)。换言之,一个分布的香农熵是指遵循这个分布的时间所产生的期望的信息总量。它给出了对依据概率分布P生成的符号进行编码所需的比特数在平均意义上的下界。...

    于小勇
  • 深度学习的调参经验

    确保要有高质量的输入/输出数据集,这个数据集要足够大、具有代表性以及拥有相对清楚的标签。缺乏数据集是很难成功的。

    于小勇
  • Fast R-CNN

    提出了一种基于区域卷积网络的快速目标检测方法(Fast R-CNN)。Fast R-CNN建立在以前工作的基础上,使用深度卷积网络有效地分类目标建议。与之前的工...

    于小勇
  • 从零开始,了解元学习

    传统的机器学习研究模式是:获取特定任务的大型数据集,然后用这个数据集从头开始训练模型。很明显,这和人类利用以往经验,仅仅通过少量样本就迅速完成学习的情况相差甚远...

    机器人网
  • 一个简单的AXIS远程调用Web Service示例

    Java学习123
  • 视频教学:什么是机器学习

    YJango
  • 超智能体S01:什么是机器学习

    YJango
  • jquery调用页面的方法

    本文转载:http://www.cnblogs.com/chenxizhang/archive/2009/05/28/1491250.html

    跟着阿笨一起玩NET
  • 今日 Paper | 多轨迹预测研究;3DMM 人脸模型;对抗网络判别器;交叉模态信息等

    论文名称:The Garden of Forking Paths: Towards Multi-Future Trajectory Predictio

    AI科技评论
  • Java.lang.Illegalaccessexception 或 java.lang.NoSuchMethodError

    今天和小伙伴讨论一个mybatis-plus的一个诡异问题,最后定位到原因竟然是lombok@Data和@Builder一起用无法添加无参构造方法引起的,非常隐...

    AlbertZhang

扫码关注云+社区

领取腾讯云代金券