通常的做法是在训练和测试集上或仅训练数据集中增加数据(以编程方式添加样本,例如在由图像组成的数据集的情况下随机作物等)?
答案 0 :(得分:6)
仅限于培训。数据增强用于增加训练集的大小并获得更多不同的图像。 从技术上讲,您可以在测试集上使用数据增强来查看模型在这些图像上的行为,但通常人们不会这样做。
答案 1 :(得分:2)
答案 2 :(得分:2)
我认为,在某些情况下,对验证集使用数据增强可能会有所帮助。
例如,我训练了很多用于医学图像分割的 CNN。许多 the augmentation transforms that I use 旨在降低图像质量,以便训练网络对此类数据具有鲁棒性。如果训练集看起来很糟糕而验证集看起来不错,则很难比较训练期间的损失,因此评估过拟合会很复杂。
除非我使用测试时间增强来改善结果或estimate aleatoric uncertainty,否则我永远不会对测试集使用增强。
答案 3 :(得分:1)
数据增强仅在训练集上完成,因为它有助于模型变得更加通用和健壮。所以没有必要增加测试集。
答案 4 :(得分:1)
仅在训练集上进行。
我们首先使用训练和测试集的原因是我们想要估计我们的系统实际存在的错误。因此,测试集的数据应尽可能接近实际数据。
如果在测试集上执行此操作,则可能会出现引入错误的问题。例如,假设你想要识别数字并通过旋转来增强。然后,6
可能看起来像9
。
答案 5 :(得分:1)
This answer on stats.SE提出了在验证/测试集上应用农作物的理由,以使该输入类似于在网络上进行训练的训练集中的输入。
答案 6 :(得分:1)
一些图像预处理软件工具,如 Roboflow (https://roboflow.com/) 也将数据增强应用于测试数据。我想说的是,如果要处理小而稀有的物体,例如脑微出血(在磁共振图像上很小且难以发现),那么增加一个人的测试集可能会很有用。然后,您可以验证您的模型是否已经学会了在不同方向和亮度条件下检测这些物体(假设您的训练数据已以相同方式增强)。
答案 7 :(得分:0)
数据增强的目的是对模型进行泛化,使其学习更多的图像方向,以便在测试过程中模型能够很好地理解测试数据。因此,将增强技术仅用于训练集是一种很好的做法。
答案 8 :(得分:0)
添加验证数据的目的是构建通用模型,因此它只是预测真实世界的数据。为了预测真实世界的数据,验证集应该包含真实数据。增加验证数据没有问题,但不会增加模型的准确性。