我正在按照本教程构建分类器: 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
我了解火车数据的用途,测试数据的用途,但是我无法弄清楚验证数据的用途……我用Google搜索它,发现了本教程:{{3} } 但我变得更加困惑。说以下是什么意思?
验证数据集:用于调整模型超参数时用于对训练数据集上的模型拟合进行无偏评估的数据样本。由于将验证数据集的技能整合到模型配置中,因此评估变得更加有偏见。
验证数据的目的是什么?
答案 0 :(得分:1)
这个想法是为了避免过度拟合,换句话说,是要比一般特征更多地了解特定示例。如果您只是在训练数据上测试了模型,则可以通过“记住”这100张照片轻松地了解想要与100张狗照片区分开的1000张猫图片。内存的权重相当于100张照片。显然,它并不是要记住的整个图片,而只是需要区分那些特定的猫图片和那些特定的狗图片的东西。只要模型中的免费参数数量可以与训练集中的信息量竞争,就会发生这种情况。为避免这种情况,测试应针对另一组数据,即验证组。但是验证集也会发生同样的事情!如果将网络设置为最大程度地减少验证集上的错误,那么验证集本身可能会变得过拟合。因此,将使用第三项测试(原则上仅使用一次,以避免再次对该数据进行过度拟合,以此类推)进行最终评估。
答案 1 :(得分:1)
验证数据集用于衡量模型在应用于之前从未见过的新数据时的概括程度。以一位数学老师为例,该老师正在教学生算术。理想的情况下,期末考试应该有与作业中相同的问题,但又是题号不同的新问题,以确保老师可以评估学生是否真的学会了加减法。 ,乘除法与简单地反省记忆的答案,以解决先前在分配的作业中发现的问题。换一种说法,保持单独的验证数据集(该数据由模型训练中未使用的数据组成)的目的是为了避免将模型与训练集过度拟合。