在线数据增强的使用是否是 CNN 模型之间的公平比较
Is the usage of on-line data augmentation a fair comparison between CNN models
我正在对输入卷积神经网络的图像使用在线数据增强。为此,我正在使用 Keras ImageDataGenerator。在每批中对图像进行扩充,然后在这些图像上训练模型。
我正在比较不同的模型,但由于图像是动态增强的,这真的公平吗,因为每个模型得到的图像都略有不同?
在我看来,您已经在问题中给出了部分答案:
images are augmented on the fly, is this really fair, since each models is getting slightly different images?
- 对于评估/验证,我通常会尝试在不同的架构上提供尽可能相似的情况 - 否则你可能会导致你无法解释的不必要的偏见。
- 您还可以通过离线增强减少计算量,然后直接交出相同的增强训练样本
如果我理解你是对的,你想知道数据扩充引起的随机性是否会影响结果?
如果训练时间足够长,增强的随机性不会影响结果(至少不会影响到一定程度)。您的其他选择是(我认为):
- 在将图像插入模型之前确定性地对图像应用相同的转换
- 增强数据。这些转换可以是 (a) 随机转换,例如在某些限制之间随机旋转图像,或 (b) 预先确定的限制,例如将所有图像旋转 1、3 和 5 度。
- 根本不要增加你的数据。使用您的初始数据训练您的模型。
这些选择的效果是:
- 您要应用的转换次数是有限的,即使选择选项 1a 也是预定义的。如果你愿意大幅增加这个数量,就会出现其他问题,比如你要在哪里存储所有这些数据,你将如何在训练期间处理它等。所以,动态的优势在于你的数据存储不会改变,您处理数据的方式也不是。缺点当然是使用较慢的过程(这取决于转换可能会产生很大的不同)。
- 此选择有效意味着您有大量 数据。并且意味着很多(当然取决于问题)有时很多是不够的。由于您(可能)使用不同的数据进行测试,因此您的训练和测试数据在许多方面都会出现差异。例如,对于人体检测(任意选择),姿势、颜色、光照条件、图像清晰度、图像大小、纵横比等方面的差异很常见。你怎么处理那件事呢?您要么收集大量数据,要么(可能)使用数据扩充,对吗?
总而言之,这很公平,因为从长远来看 运行 它并没有太大的区别。例如,考虑为您的模型选择提前停止。比较那些没有在最佳迭代中停止训练的模型是否公平?好吧,这并不完全公平,但并没有什么不同。
我正在对输入卷积神经网络的图像使用在线数据增强。为此,我正在使用 Keras ImageDataGenerator。在每批中对图像进行扩充,然后在这些图像上训练模型。
我正在比较不同的模型,但由于图像是动态增强的,这真的公平吗,因为每个模型得到的图像都略有不同?
在我看来,您已经在问题中给出了部分答案:
images are augmented on the fly, is this really fair, since each models is getting slightly different images?
- 对于评估/验证,我通常会尝试在不同的架构上提供尽可能相似的情况 - 否则你可能会导致你无法解释的不必要的偏见。
- 您还可以通过离线增强减少计算量,然后直接交出相同的增强训练样本
如果我理解你是对的,你想知道数据扩充引起的随机性是否会影响结果?
如果训练时间足够长,增强的随机性不会影响结果(至少不会影响到一定程度)。您的其他选择是(我认为):
- 在将图像插入模型之前确定性地对图像应用相同的转换
- 增强数据。这些转换可以是 (a) 随机转换,例如在某些限制之间随机旋转图像,或 (b) 预先确定的限制,例如将所有图像旋转 1、3 和 5 度。
- 根本不要增加你的数据。使用您的初始数据训练您的模型。
这些选择的效果是:
- 您要应用的转换次数是有限的,即使选择选项 1a 也是预定义的。如果你愿意大幅增加这个数量,就会出现其他问题,比如你要在哪里存储所有这些数据,你将如何在训练期间处理它等。所以,动态的优势在于你的数据存储不会改变,您处理数据的方式也不是。缺点当然是使用较慢的过程(这取决于转换可能会产生很大的不同)。
- 此选择有效意味着您有大量 数据。并且意味着很多(当然取决于问题)有时很多是不够的。由于您(可能)使用不同的数据进行测试,因此您的训练和测试数据在许多方面都会出现差异。例如,对于人体检测(任意选择),姿势、颜色、光照条件、图像清晰度、图像大小、纵横比等方面的差异很常见。你怎么处理那件事呢?您要么收集大量数据,要么(可能)使用数据扩充,对吗?
总而言之,这很公平,因为从长远来看 运行 它并没有太大的区别。例如,考虑为您的模型选择提前停止。比较那些没有在最佳迭代中停止训练的模型是否公平?好吧,这并不完全公平,但并没有什么不同。