训练集、测试集与验证集的含义

训练集、测试集与验证集的含义

1. 定义
(1)在数据量(及标签)很充足的情况下:
如果我们自己已经有了一个大的标注数据集,想要完成一个有监督模型的测试,那么通常使用均匀随机抽样的方式,将数据集划分为训练集、验证集、测试集,这三个集合不能有交集,三个集合符合同分布。常见的比例是可以上网看看。
(2)在数据量(及标签)很少的情况下:
比如在做比赛时,官方只提供了一个标注的数据集(作为训练集)以及一个没有标注的测试集(.txt文档),那么我们做模型的时候,通常会人工从训练集中划分一个验证集出来。这时候我们通常不再划分一个测试集,可能的原因有两个:1、比赛方提供的训练集样本本来就少;2、我们没法保证要提交的测试集是否跟训练集完全同分布,因此再划分一个跟训练集同分布的测试集就没多大意义了。
注意:有的时候,在比赛中,我们首先想到的是定义生成器,模仿提供的数据集,生成大量新的数据(数据增强)

2. 作用
有了模型后,训练集就是用来训练参数的,说准确点,一般是用来梯度下降的。而验证集基本是在每个epoch完成后,用来测试一下当前模型的准确率。因为验证集跟训练集没有交集,因此这个准确率是可靠的。那么为啥还需要一个测试集呢?
这就需要区分一下模型的各种参数了。事实上,对于一个模型来说,其参数可以分为普通参数超参数。在不引入强化学习的前提下,那么普通参数就是可以被梯度下降所更新的,也就是训练集所更新的参数。另外,还有超参数的概念,比如网络层数、网络节点数、迭代次数、学习率等等,这些参数不在梯度下降的更新范围内,都得手动一点一点调试。
那也就是说,从狭义来讲,验证集没有参与梯度下降的过程,也就是说是没有经过训练的;但从广义上来看,验证集却参与了一个“人工调参”的过程,我们根据验证集的结果调节了迭代数、调节了学习率等等,使得结果在验证集上最优。因此,我们也可以认为,验证集也参与了训练。
3. 通过3个集来判断过拟合
在这里插入图片描述
过拟合的基本表现:
训练集loss不断降低,但是测试集的loss开始不断增加。
分析上图,看右边2个loss的图,在第15个epoch之前,训练集上的loss不断降低,验证集上的val_loss也在不断减小,这说明模型在不断拟合数据。但是在第15个epoch之后,训练集上的loss仍然在不断降低,而验证集上的val_loss开始不断增加,这是典型的过拟合问题。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值