【发布时间】:2017-06-27 17:57:42
【问题描述】:
我正在做一个图像分割项目,并且一直在尝试采用图像增强技术来增加训练集的大小。一开始,我只是尝试使用水平翻转将图像大小翻倍,但我发现性能比不使用要差得多。有什么见解可以分享。谢谢。
【问题讨论】:
标签: tensorflow computer-vision deep-learning caffe keras
我正在做一个图像分割项目,并且一直在尝试采用图像增强技术来增加训练集的大小。一开始,我只是尝试使用水平翻转将图像大小翻倍,但我发现性能比不使用要差得多。有什么见解可以分享。谢谢。
【问题讨论】:
标签: tensorflow computer-vision deep-learning caffe keras
所以基本上你需要回答自己一个重要的问题:翻转的图像在你的域中是有效的图像吗?
如果是 - 那么您的模型开始表现不佳的原因可能有很多。其中之一可能是它的容量太小,无法学习数据中的所有模式。其次 - 你没有足够的例子 - 当你添加翻转的图像时,结果证明它实际上记住了你的训练案例的负载。另一件事是,也许您学习它的时间太短,将迭代次数设置为更大的值可能是个好主意。
有一点是肯定的 - 由于您翻转的数据是有效的,因此您的模型没有很好地泛化。
【讨论】:
当你说数据增强的性能更差时,你是在同一个数据集上比较两者吗?
我只是将我在增强数据集上使用数据增强训练的模型的准确性与在常规数据集上未使用数据增强训练的模型进行比较时犯了一个错误。
我很惊讶地发现数据增强的准确性更差。然而,当我在没有增强的数据集上比较两种精度时,数据增强的模型显示出比另一个更好的性能。
请务必记住,模型可能更难以处理增强数据集。因此,即使准确率没有以前那么高,但在常规数据集上进行评估时,它实际上可能会更高。
【讨论】:
图像增强是stretch your dataset 的好方法,但正如您所展示的,它不是灵丹妙药。图像增强(在一定程度上)通过改变与模型的底层映射函数无关的图像特征(即图像亮度不应与狗的存在相关)来工作,同时仍然使图像中的对象可识别。
我认为您可以做出的最简单的改进是改变您的增强技术。不要只是水平翻转图像,而是尝试缩放、裁剪、旋转、拉伸、调整亮度、对比度、添加噪点等。这将改变您的原始图像,而不仅仅是一种增强模式。 This blog 我写的工作经历了不同类型的增强以及它们的作用,this library 是我们更喜欢实现图像增强的方式。
不同的增强示例: 剪切 Shear Augmentation 噪音: Noise Augmentation 色彩空间: Color Space Augmentation
过度依赖增强来增加其大小,您总是冒着将模型过度拟合到训练数据集的风险,但改变增强技术将帮助您避免过度拟合。如果你有资源,没有什么比新数据更有效了,如果你想变得超级花哨,你可以研究生成对抗网络,在其中你基本上可以从头开始创建新数据。
【讨论】: