数据增强是否改变了训练/测试集的分布?

数据挖掘 机器学习 深度学习 训练 数据增强
2022-03-15 16:10:21

我在想一个简单的问题,我刚刚想到了这个问题。

有很多人在他们的图像数据上使用数据增强来训练深度 CNN。

当我学习 Andrew Ng 的 DL 课程时,他提到要训练更好的模型,通常需要让训练/测试数据来自相同的分布。就像,如果你用大量汽车和人类的图像训练你的 CNN,用它来分类猫或狗(通常)不是一个好主意。

增强后,我的训练数据有所提升,那么我还能说我的训练/测试数据集来自同一个分布吗?我违反了他的话吗?为什么?或者,为什么不呢?

3个回答

我认为增强不会改变你的train/test集合分布。

我这样说是因为我认为数据增强是你的训练管道的一部分,而不是你的train集合的一部分。

当有人询问数据增强时,我经常使用下面的管道。在数据被分成train/test(/validation)组的那一刻,每组应该有相同的,或者至少是非常相似的分布。这是您需要通过选择良好的拆分策略来担心的时刻。

然后,无论您对train集合做什么,包括数据增强,都是您训练管道的一部分。您将进行数据扩充,就像其他人提到的那样,确实可以提高您的模型稳健性。和集合validationtest不需要通过你的扩充过程。

          +-> training set ---> data augmentation --+
          |                                         |
          |                                         +-> model training --+
          |                                         |                    |
all data -+-> validation set -----------------------+                    |
          |                                                              +-> model testing
          |                                                              |
          |                                                              |
          +-> test set --------------------------------------------------+

我不知道该怎么说,但是您对分发的理解是错误的,并且使您感到困惑。数据增强是一种有助于模型很好地泛化的技术。当您的数据量有限但仍想训练深度神经网络时,它也很有用。迁移学习就是最好的例子。是的,训练/测试应该来自同一个分布。例如,如果你把这个东西放在现实世界中也是有意义的。如果您接受过英语口语培训,那么评估您的德语水平是否有意义?

增强会改变分布吗?我会问你一个问题,你应该自己推理。这是我的问题:如果将狗的图像旋转 30 度,是否会改变它是狗的事实?

增强后,我的训练数据有所提升,那么,我还能说我的训练/测试数据集来自同一个分布吗?

在我看来,是的,你可以说它们仍然来自同一个发行版。据我了解,数据增强所做的不是改变数据的分布,而是更好地探索它。

从理论上讲,您可以将您的训练集视为您试图理解和探索的假设分布中的一个样本。数据增强为您的模型提供了有关该假设分布如何形成的更多信息。

这就是为什么,恕我直言,数据增强是对抗过度拟合的强大工具,可以提高模型的性能。它的鲁棒性大大提高了。