【问题标题】:Is the usage of on-line data augmentation a fair comparison between CNN models使用在线数据增强是 CNN 模型之间的公平比较吗
【发布时间】:2018-06-28 11:11:55
【问题描述】:

我正在使用我输入卷积神经网络的图像的在线数据增强。我为此使用 Keras ImageDataGenerator。在每批中对图像进行增强,然后在这些图像上训练模型。

我正在比较不同的模型,但由于图像是动态增强的,这真的公平吗,因为每个模型得到的图像略有不同?

【问题讨论】:

    标签: python tensorflow machine-learning keras convolutional-neural-network


    【解决方案1】:

    如果我理解你是正确的,你想知道数据增强引起的随机性是否会影响结果?

    如果您训练的时间足够长,则增强的随机性不会影响结果(至少不会影响到一定程度)。您拥有的其他选择是(我认为):

    1. 在将图像插入模型之前确定性地对图像应用相同的转换来增强数据。这些转换可以是(a)随机的,例如在某些限制或(b)预定的限制之间随机旋转您的图像,例如将所有图片旋转 1、3 和 5 度。
    2. 根本不增加您的数据。使用您的初始数据来训练您的模型。

    这些选择的效果是:

    1. 您将应用的转换数量是有限的,即使选择了选项 1a,也会被预定义设置。如果您愿意显着增加这一点,则会出现其他问题,例如您将在哪里存储所有这些数据,您将如何在训练期间处理它等。因此,动态的优势在于您的数据存储不会改变,您处理数据的方式也不是。缺点当然是使用了较慢的过程(这取决于转换可能会产生很大的不同)。
    2. 此选择有效意味着您拥有大量数据。并且通过意义很多(当然取决于问题)有时很多是不够的。由于您(可能)使用不同的数据进行测试,因此您的训练数据和测试数据之间会出现许多方面的差异。例如,对于人体检测(任意选择),姿势、颜色、光照条件、图像清晰度、图像大小、纵横比的差异很常见。你怎么处理那件事呢?您要么收集大量数据,要么(可能)使用数据增强,对吧?

    总而言之,这是公平的,因为从长远来看,它不会产生太大的影响。例如,考虑为您的模型提前停止的选项。比较那些在最佳迭代中停止训练的模型是否公平?好吧,这并不完全公平,但并没有什么不同。

    【讨论】:

      【解决方案2】:

      在我看来,您已经在问题中给出了部分答案:

      图像是动态增强的,这真的公平吗,因为每个模型得到的图像略有不同?

      1. 对于评估/验证,我通常会尝试在不同架构上提供尽可能相似的情况 - 否则您可能会导致您无法解释的不必要的偏见。
      2. 您还可以通过离线增强减少计算量,然后直接移交相同的增强训练样本

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-07
        • 1970-01-01
        • 2020-01-12
        • 2012-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多