深度学习 – 数据集中训练集、验证集、测试集的划分以及各自作用
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:深度学习 – 数据集中训练集、验证集、测试集的划分以及各自作用
原文链接:https://www.stubbornhuang.com/1982/
发布于:2022年02月24日 14:30:14
修改于:2022年02月24日 14:47:07
1 数据集的划分比例
一般情况而言,当数据集数据量较少时,如数据集中只有10000条数据,且不划分验证集时,训练集与测试集的比例一般为7:3;当数据集数据量较少时,如数据集中只有10000条数据,且划分验证集时,训练集与验证集、测试集的比例一般为6:2:2。
当数据集中数据量较大时,比如数据集中有1000000条数数据,那么可以训练集、验证集与测试集的划分比例可以考虑98:1:1,在这种情况下,也能很好的进行训练与测试。
2 训练集、验证集、测试集的作用
训练集的作用
训练集(Training Dataset)是用来训练模型使用的。训练集是用来学习的样本集,通过拟合一些参数来建立一个分类器,作用是用来训练模型参数,通过设置分类器的参数,训练分类模型。
验证集的作用
当我们的模型训练好之后,我们并不知道他的表现如何。这个时候就可以使用验证集(Validation Dataset)来看看模型在新数据(验证集和测试集是不同的数据)上的表现如何。同时通过调整超参数,让模型处于最好的状态。
验证集是在某个模型的学习过程中用来调试超参数的数据集。因为大多数算法有可配超参数(如神经网络层数、EM类算法的最大迭代数等),所以验证集在机器学习领域也很常见。
从《机器学习》这本书中,我们知道,训练集是拿来训练模型参数的,对于所有的训练集,训练一个epoch之后,我们会用验证集来测试一下模型在上面的性能,由于训练集和验证集的不可交性,所以在验证集上面的结果是有参考意义的。
- 验证集并没有参与训练过程梯度下降过程的,狭义上来讲是没有参与模型的参数训练更新的。
- 但是广义上来讲,验证集存在的意义确实参与了一个“人工调参”的过程,我们根据每一个epoch训练之后模型在valid data上的表现来决定是否需要训练进行early stop,或者根据这个过程模型的性能变化来调整模型的超参数,如学习率,batchsize等等。
验证集有2个主要的作用:
1. 评估模型效果,为了调整超参数而服务
2. 调整超参数,使得模型在验证集上的效果最好
说明:
- 验证集不像训练集和测试集,它是非必需的。如果不需要调整超参数,就可以不使用验证集,直接用测试集来评估效果。
- 验证集评估出来的效果并非模型的最终效果,主要是用来调整超参数的,模型最终效果以测试集的评估结果为准。
测试集的作用
当我们调好超参数后,就要开始「最终考试」了。我们通过测试集(Test Dataset)来做最终的评估。
训练集就是用来训练参数的,说准确点,一般是用来梯度下降的。而验证集基本是在每个epoch完成后,用来测试一下当前模型的准确率,然后调整超参数。因为验证集跟训练集没有交集,因此这个准确率是可靠的。那么为啥还需要一个测试集呢?
这就需要区分一下模型的各种参数了。事实上,对于一个模型来说,其参数可以分为普通参数和超参数。在不引入强化学习的前提下,那么普通参数就是可以被梯度下降所更新的,也就是训练集所更新的参数。
另外,还有超参数的概念,比如网络层数、网络节点数、迭代次数、学习率等等,这些参数不在梯度下降的更新范围内。尽管现在已经有一些算法可以用来搜索模型的超参数,但多数情况下我们还是自己人工根据验证集来调。
那么就很明显了,我们还需要一个完全没有经过训练的集合,那就是测试集,我们既不用测试集梯度下降,也不用它来控制超参数,只是在模型最终训练完成后,用来测试一下最后准确率,确定模型的泛化能力强弱。
参考链接:
当前分类随机文章推荐
- 深度学习 - 卷积神经网络CNN简介 阅读531次,点赞0次
- 深度学习 - 语音识别框架中wenet最大动态chunk大小为什么取值为25? 阅读891次,点赞0次
- 深度学习 - 归纳轻量级神经网络(长期更新) 阅读185次,点赞0次
- 深度学习 - Python实现CTC Decode解码算法Greedy Search Decode,Beam Search Decode,Prefix Beam Search Decode 阅读1469次,点赞0次
- 深度学习 - 理解LSTM网络[翻译] 阅读335次,点赞0次
- 深度学习 - 数据集中训练集、验证集、测试集的划分以及各自作用 阅读2463次,点赞1次
- 深度学习 - 基础的Greedy Search和Beam Search算法的Python实现 阅读819次,点赞0次
- 深度学习 - 动作识别Action Recognition最重要的问题 阅读423次,点赞1次
- 深度学习 - 深度学习中的术语/专有名词归纳 阅读630次,点赞0次
- 深度学习 - 经典的卷积神经网络(CNN)模型结构 阅读509次,点赞0次
全站随机文章推荐
- 资源分享 - Computational Geometry - Algorithms and Applications, Second Edition 英文高清PDF下载 阅读1817次,点赞0次
- C++ - 智能指针的正确使用方式 阅读580次,点赞0次
- Youtube运营 - 删除视频会不会影响累积的观看时长和订阅人数 阅读291次,点赞0次
- C++ – 字节数组byte[]或者unsigned char[]与long double的相互转换 阅读1054次,点赞0次
- 资源分享 - Essential Mathematics for Games and Interactive Applications(Third Edition) 英文高清PDF下载 阅读1988次,点赞0次
- Unity - 字节数组byte[]保存为文件 阅读4582次,点赞2次
- 书籍翻译 – Fundamentals of Computer Graphics, Fourth Edition,第6章 Transformation Matrices中文翻译 阅读1700次,点赞7次
- 资源分享 - OpenGL 4.0 Shading Language Cookbook (First Edition) 英文高清PDF下载 阅读1687次,点赞0次
- 资源分享 - Light & Skin Interactions - Simulations for Computer Graphics Applications 英文高清PDF下载 阅读1436次,点赞0次
- 资源分享 - Introduction to Computer Graphics - A Practical Learning Approach 英文高清PDF下载 阅读1122次,点赞0次
评论
169