深度学习入门:训练集、验证集、测试集

大家好,好久不见,也不知道大家有没有想我,最近事情比较多一直没有时间发文章。

深度学习入门:训练集、验证集、测试集_第1张图片

 

在深度学习的过程中我们可能会经常听说三种数据集,即训练集、验证集、测试集,但是这三个集合之间有什么异同我们可能很难弄明白其中之间的关系,尤其是验证集与测试集,今天我们就来讲一讲这三种集合之间的关系。

训练集:

对于我们来说训练集是一个什么样的东西我们很容易明白,就是用来训练的数据所组成的集合呗,其中的数据就是用来训练的原始数据,我们明白因为模型就是拿这些训练集的数据进行训练的,所以模型很容易就在这些数据上表现的很好,所以训练集无法作为评判模型好坏的标准。

总结:训练集是训练模型的数据所组成的组成的,因为这个数据集直接拿来训练所以此数据集不能作为评判模型好坏的标准。

验证集:

验证集顾名思义就是用来进行模型验证的数据集,其主要是用来初步验证模型的好坏,验证集中的数据全部是模型没有见到过的数据,所以我们可以初步根据模型在验证集上表现的好坏来选择模型,如果模型在验证集上的表现都不好的话那么很大的可能会在其他没有见到过的数据上表现的也不好,所以验证集的作用是用来初步验证模型的好坏。

测试集:

如果我们使用验证集对模型进行了验证,且在验证集上得到了较好的结果,那么我们可以初步判断模型可能会具有较好的性能,但是因为验证集上的数据只是有限的数据,在验证集上的表现好并不意味着在其他没有见到过的数据上也表现的会好,没有这种内在的联系在里面,即在验证集上表现的好并不意味着在其他数据集上表现得好,也就是仅通过验证集对模型的性能进行初步的验证并无法提供充分的说服力。

上面的这种情况,我们可以用我们的高考进行一个举例,一个学生平常做了大量的模拟试卷来进行训练(训练集),平时还需要经历联考(验证集),就算这个学生在联考(验证集)上面表现好,也只能说这个学生在高考的时候(泛化时)有可能表现得好,当然在联考(验证集)上表现的好,在高考(泛化时)也可能表现得不好。所以因为通过验证集无法为模型的性能提供说服力,所以又做了一个测试集,来提供这种说服力。

而且验证集是训练的一部分,大家听到这种说法时可能会一愣,你说的不对啊,验证集怎么能说是训练的一部分呢?诸位不要着急,且听在下给你细细道来。

首先模型在训练的时候,无法通过训练集检验模型训练的情况,也就是原有的训练数据无法作为检验模型的依据,那么靠什么数据来检验模型呢?这时候验证集就出来了,说就是在下了。也就是说如果没有验证集训练就无法完成闭环,即只有训练没有反馈,不知道模型的训练情况,也就无法判断下一步操作是继续进行训练呢?还是停止训练呢?而验证集则提供了这种反馈,所以它在间接的影响着训练的过程,正是因为验证集指导着模型是否继续训练,所以我说验证集是训练的一部分。既然验证集是训练的一部分了,那么训练的一部分怎么能够用来检验训练的结果呢?所以需要另外一个模型没有见过的其他数据所组成的集合来最终判定模型的好坏,那么这个集合就是我们的测试集了。测试集中的数据既没有直接参与训练的过程又没有间接的指导训练过程的进行所以它更能充分的证明模型的好坏,提供了一种充分的说服力。

验证集与测试集的关系以及区别:

首先验证集与测试集都是模型没有见过的数据,所以从集合中的数据模型有没有见过这一个方面来说验证集与测试集是一样的,其中的数据都是模型没有见过的数据。这也是大家可能会将验证集与测试集混淆的点。但是验证集中的数据间接指导了模型的训练过程,即验证集与训练是有关系的。而测试集是模型既没有见过的数据而且这些数据也没有间接的指导模型的训练。有没有间接的指导模型的训练是区别验证集和测试集的一个很重要的点。

验证集间接的指导了模型的训练过程所以验证集无法提供充分的说服力且无法充分证明模型是有效的。

测试集没有间接的指导模型的训练过程,其中的数据又是模型所没有见过的,所以能够提供模型有效的说服力。

总结:因为上述的这种区别,如果你想证明你所设计的模型是有效的一定要加上测试集,来对模型进行测试。

总结图:

深度学习入门:训练集、验证集、测试集_第2张图片

如果有什么地方讲的不好或者讲错的地方欢迎大家指出来,如果我所讲的对你们有帮助不要忘了点赞、收藏、关注哦!

我是你们的好伙伴apprentice_eye

一个致力于让知识变的易懂的博主。

深度学习入门:训练集、验证集、测试集_第3张图片

 

你可能感兴趣的:(深度学习入门,深度学习,人工智能)