在本教程中,我将在代码的这一部分构建一个分类器:https://towardsdatascience.com/a-simple-cnn-multi-image-classifier-31c463324fa:
# loading up our datasets
train_data_dir = ‘data/train’
validation_data_dir = ‘data/validation’
test_data_dir = ‘data/test我理解什么是使用火车数据,什么是使用测试数据,但我无法弄清楚什么是使用验证数据.我搜索了一下,找到了这个教程:https://machinelearningmastery.com/difference-test-validation-datasets/,但我更困惑了。说以下几句是什么意思?
验证数据集::用于在调整模型超参数时对训练数据集上的模型进行无偏评估的数据样本。当验证数据集上的技能被合并到模型配置中时,评估变得更加偏颇。
验证数据的目的是什么?
发布于 2019-12-11 18:28:40
验证数据集用于度量模型在应用于以前从未见过的新数据时的泛化程度。以一位数学老师为例,他教小学生算术。理想情况下,期末考试的问题应该与家庭作业中的问题相同,但它们是新的问题,有不同的数字,以确保老师能够评估学生是否真正学会了加、减、乘和除法,而不是简单地反悔记忆了以前在作业中看到的问题的答案。另一种方法是,保持一个单独的验证数据集,该数据集由未用于模型培训的数据组成,目的是避免将模型与培训集过度匹配。
发布于 2019-12-11 18:24:25
这样做是为了避免过于合适,或者换句话说,学习更多的具体例子,而不是一般的特征。如果你只是在训练数据上测试你的模型,它就可以很容易地学习到你想要区别于100张狗图片的1000张猫图片,方法是“记住”这100张照片-- CNN很容易就有相当于100张照片重量的内存。很明显,需要记住的并不是全部的图片,而只有一些东西才能区分那些特定的猫图片和那些特定的狗图片。这可以发生在任何时候,模型中的自由参数数可以与训练集中的信息量进行竞争。为了避免这种情况,测试应该在另一组数据上进行,即验证集。但是同样的事情也会发生在验证集上!如果网络被设置为最小化验证集上的错误,那么它就会这样做,因此验证集本身可能会变得过于合适。因此,使用第三个测试(原则上只使用一次,以避免对该数据再次过度拟合,等等)进行最终评估。
https://stackoverflow.com/questions/59291741
复制相似问题