0

我有自己的图像数据集并使用 Mask-R-CNN 进行训练。在那里,您将数据集划分为训练、验证和测试。

我想知道验证和测试之间的区别。我知道验证通常用于在每个时期之后查看 NN 的质量。基于此,您可以看到 NN 有多好以及是否发生过拟合。但我想知道 NN 是否基于验证集进行学习。

基于训练集,NN 在每个图像之后学习并调整每个神经元以减少损失。在 NN 完成学习后,我们使用测试集来看看我们的 NN 在处理新的看不见的图像时到底有多好。

但是在基于验证集的 Mask-R-CNN 中到底发生了什么?验证集是否仅用于查看结果?还是会根据验证结果调整一些参数以避免过拟合?即使是这种情况,验证集对参数有多大影响?神经元本身是否会被调整?

如果影响非常非常小,那么我会选择与测试集相等的验证集,因为我没有很多图像(800)。

所以基本上我想知道 Mask-R-CNN 中测试和验证之间的区别,即验证集如何以及在多大程度上影响 NN。

4

1 回答 1

4

该模型不会从验证集学习。验证集仅用于给出任何时期的泛化误差的近似值,但至关重要的是,用于超参数优化。因此,我可以迭代几个不同的超参数配置并评估验证集上的超参数配置的准确性。

然后在我们根据验证集的准确率选择最佳模型之后,我们可以根据测试集计算测试误差。理想情况下,测试集和验证集的准确性之间没有很大的差异。有时,如果您迭代许多不同的超参数,您的模型基本上可以“过度拟合”验证集。

如果您有大量数据,则在此验证集评估之后保留另一组(测试集)进行评估是一种奢侈。很多时候,您可能缺少足够的标记数据,甚至值得保留一个单独的测试集。

最后,这些东西并不是 Mask RCNN 特有的。验证集永远不会影响模型的训练,即权重或偏差。验证集与测试集一样,纯粹用于评估目的。

于 2019-04-17T15:34:42.740 回答