前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么要使用验证集

为什么要使用验证集

作者头像
狼啸风云
修改2022-09-04 21:39:33
1.2K0
修改2022-09-04 21:39:33
举报

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

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

\tiny \lambda=0
\tiny \lambda=0

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档