彼得劳伦斯
我正在使用我输入卷积神经网络的图像的在线数据增强。我为此使用了 Keras ImageDataGenerator。图像在每批中被增强,然后模型在这些图像上进行训练。
我正在比较不同的模型,但由于图像是动态增强的,这真的公平吗,因为每个模型得到的图像略有不同?
埃普罗斯
如果我理解你是正确的,你想知道数据增强引起的随机性是否会影响结果?
如果训练时间足够长,增强的随机性不会影响结果(至少不会在某种程度上产生影响)。您拥有的其他选择是(据我所知):
- 在将图像插入模型之前,确定性地对图像应用相同的转换来增强数据。这些转换可以是 (a) 随机转换,例如在某些限制之间随机旋转图像,或 (b) 预定转换,例如将所有图像旋转 1、3 和 5 度。
- 根本不要扩充您的数据。使用您的初始数据来训练您的模型。
这些选择的效果是:
- 您将应用的转换数量是有限的,即使选择了选项 1a,也将是预定义的集合。如果您愿意显着增加这一点,则会出现其他问题,例如您将所有这些数据存储在哪里,您将如何在训练期间处理这些数据等。因此,动态的优势在于您的数据存储不会改变,您处理数据的方式也不是。缺点当然是使用较慢的过程(这取决于转换可能会产生很大的不同)。
- 这个选择有效意味着你有很多数据。并且意味着很多(当然取决于问题)有时很多是不够的。由于您(可能)使用不同的数据进行测试,因此您的训练和测试数据在许多方面都存在差异。例如,对于人体检测(任意选择),姿势、颜色、光照条件、图像清晰度、图像大小、纵横比的差异很常见。你怎么处理?您要么收集超级庞大的数据集合,要么(可能)使用数据增强,对吗?
总而言之,这是公平的,因为从长远来看,它不会产生太大的影响。例如,考虑为您的模型提前停止的选项。比较在最佳迭代中停止训练的模型是否公平?嗯,这并不完全公平,但没有任何区别。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句