训练、验证和测试集的分布?

Distribution of training, validation, and test set?

我想问下train、validation、test set的分布? 让我们假设,我想用 'cat' 和 'dog'.

中的两个 class 制作一个二进制 resnet classifier

假设每个 class 图像的名称是:

猫:a、b、c、d、e

狗:f、g、h、i、j

假设我希望每个 class 中的 2 个图像成为 测试集 1 来自每个 class 的图像成为 验证集 .

哪种分配方案才是正确的?


方案一

测试集

猫:a,b

狗:我,j

训练集

猫: c, d

狗: f, g

设定值

猫:e

狗:h


方案二

测试集

猫:a,b

狗:我,j

训练集

猫:c、d、e

狗:f、g、h

设定值

猫:e

狗:h


让我感到困惑的是,验证集是像方案2中那样也是训练集的成员吗?还是验证集是来自训练集的separate/different就像 方案 1 一样? 感谢帮助

训练集、验证集、测试集——这三个集必须完全不同。在单个纪元的执行过程中,一个不能溢出到另一个。

Training Set用于训练模型,即学习权重。

验证集用于根据性能微调超参数。在达到令人满意的模型之后,将测试集带入画面。

测试集就像一个惊喜,真正的展示。直到模型最终确定后才能看到。它有助于分析真正意义上的学习模型。

如何区分它们?最好将它们随机分开,并在每个集合中平均分配每个 class。

对于培训,您还可以查看 CrossValidation。它有助于消除在训练和验证同一组图像时可能出现的偏差。