训练集、验证集和测试集

1. 训练集、验证集和测试集

  如何证明我们提出的模型可以解决(部分解决)一个问题,即如何证明一个模型的有效性?这和我们平时的考试是一样的,证明我们掌握了某类知识的方式,就是去参加考试。那么如何设计考试以客观的考察出每个人的能力呢?回想我们的高中阶段,有一些教材,让我们平时学习其基本知识(训练集),有一些模拟考试,让我们知道我们到底掌握的怎么样,然后再改进我们的学习(验证集),最后的高考决定我们的去向(测试集)。

  • 训练集:用于训练的样本集合,主要用来训练网络参数;
  • 验证集:用于验证模型性能的样本集合。不同网络模型(不同超参数/结构的神经网络)在训练集上训练结束后,通过验证集来比较判断各个模型的性能;
  • 测试集:对于训练完成的神经网络,用于客观评价神经网络的性能。

2. 验证集和测试集的区别

  验证集和测试集的概念容易混淆,如上图所示,验证集和测试集间的主要区别为:

  • 网络模型的参数主要有普通参数(权重/偏置等)和超参数(学习率/网络层数等)。普通参数在训练集上进行训练,超参数则通过验证集确定;
  • 测试集用于客观评价训练完成后的网络模型,因此与验证集和训练集之间相互独立,而且测试集不能提出对参数/超参数的修改意见,只能作为评价网络性能的一个指标。

  使用验证集是为了快速调参,也就是用验证集选择超参数(网络层数,网络节点数,迭代次数,学习率等)。此外验证集还可用于监控模型是否异常(是否过拟合),然后决定是否需要提前停止训练。验证集的关键在于 选择超参数,手动调参是为了让模型在验证集上的表现越来越好,如果把测试集作为验证集,调参以拟合测试集,就有作弊之嫌。而测试集既不参与参数的学习过程,也 不参与参数的选择过程,仅仅用于模型评价。

参考

  1. 深度学习: 验证集 & 测试集 区别;
  2. 数据集的划分–训练集、验证集和测试集
  3. 验证集和测试集的区别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值