如何进行数据扩充和训练验证拆分?


14

我正在使用机器学习进行图像分类。

假设我有一些训练数据(图像),并将其分为训练和验证集。我还想通过随机旋转和噪声注入来增强数据(从原始图像生成新图像)。扩充是离线完成的。

进行数据扩充的正确方法是哪种?

  1. 首先将数据分为训练和验证集,然后对训练和验证集进行数据扩充。

  2. 首先将数据分为训练集和验证集,然后仅对训练集进行数据扩充。

  3. 首先对数据进行数据扩充,然后将数据分为训练和验证集。


1
“数据扩充”具有多个含义;它有助于编辑您的问题以弄清楚是您的问题,还是仅举一个例子。
Scortchi-恢复莫妮卡

如果您打算进行TTA,则应将扩充应用于测试集和验证集。
艾比·约克

Answers:


18

首先将数据分为训练集和验证集,然后对训练集进行数据扩充。

您使用验证集来尝试估计您的方法如何处理真实世界的数据,因此它应仅包含真实世界的数据。添加增强数据不会提高验证的准确性。充其量只能说出您的方法对数据扩充的响应程度如何,最坏的情况是破坏了验证结果和可解释性。


我对您的回答有些好奇。如果我停止训练CNN的准则正在减少验证损失,那么您认为验证数据上的数据增强是一个不错的选择吗?
疯狂

1
不,我仍然认为这会“破坏验证结果和可解释性”,因为如果您增加验证数据,验证准确性将不再是新的看不见数据准确性的良好替代。
伯克(Burk)

所以我们根本不需要在验证和测试数据上应用数据扩充吗?
Aadnan Farooq,

@AadnanFarooqA否。当您使用模型进行预测时,通常应该对测试和验证数据执行与对不可见数据相同的操作。
Burk

1
@AadnanFarooqA通常,分割后,您只应对训练数据应用扩充。
Burk

4

永远不要做3,因为您会漏水。例如,假设增强是左移1个像素。如果拆分不了解增强,则在训练和验证中您可能会获得非常相似的数据样本。


0

数据增强意味着将外部数据/信息添加到正在分析的现有数据中。

因此,由于整个增强数据将用于机器学习,因此以下过程将更适合:

做数据扩充->分割数据


谢谢回复。可以将一个样本和扩展样本与原始样本非常相似地分布在不同的集合中吗?
yangjie

您是将现有数据作为训练集,将扩充数据作为验证集?然后,NO
Dawny33

分割是随机的,因此我的意思是,如果先进行数据扩充然后再分割数据,则可能会将某些现有数据(不是全部)分割成训练集,而扩充后的数据会进入验证集。
yangjie

扩充是指追加吗?增强数据是在所有点上都支持当前数据的数据。因此,如果拆分是随机的,则拆分将导致两组数据量与现有数据量相同
Dawny33

是否有纸质参考资料?
Aadnan Farooq,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.