当前位置:   article > 正文

【深度学习:数据增强】计算机视觉中数据增强的完整指南_数据增强 视角变换

数据增强 视角变换

在这里插入图片描述

为什么要做数据增强?

可能面临的一个常见挑战是模型的过拟合。这种情况发生在模型记住了训练样本的特征,但却无法将其预测能力应用到新的、未见过的图像上。过拟合在计算机视觉中尤为重要,在计算机视觉中,我们处理高维图像输入和大型、过度参数化的深度网络。有许多现代建模技术可以解决这个问题,包括基于丢弃的方法、标签平滑或架构,这些方法可以减少所需的参数数量,同时仍能保持拟合复杂数据的能力。但是,对抗过拟合的最有效方法之一是数据本身。

深度学习模型通常需要大量数据,而提高模型性能的一种有效方法是提供更多数据,这是深度学习的核心要素。这可以通过两种方式完成:

  • 增加原始数据量。这是通过增加数据集中的图像数量来实现的,从而扩充了图像的基本分布,并有助于优化模型的决策边界,对抗过拟合。您拥有的样本越多(比如来自分类问题的特定类别),您就能更准确地描述该类别的特征。
  • 增加数据集的多样性。值得一提的是,无法泛化到新数据也可能是由数据集/分布偏移引起的。想象一下,使用一组训练后的狗在公园里的图像对狗品种进行分类,但在生产中的其他地方看到狗。扩大训练数据集以包含这些类型的图像可能会对模型的泛化能力产生巨大影响。(但大多数时候,图像增强将无法解决这个问题)。

然而,收集数据通常既昂贵又耗时。例如,在医疗保健应用中,收集更多数据通常需要接触患有特定疾病的患者,熟练的医疗专业人员花费大量时间和精力来收集和注释数据,并且通常使用昂贵的成像和诊断设备。在许多情况下,“获取更多数据”的解决方案将非常不切实际。此外,除了在迁移学习中使用之外,公共数据集通常并不适用于定制的计算机视觉问题。如果有某种方法可以在不返回数据收集阶段的情况下增加数据集的大小,那不是很好吗?这就是数据增强。

等等,什么是数据增强?

数据增强是通过各种转换从现有训练样本中生成新的训练样本。它是一种非常有效的正则化工具,几乎所有 CV 问题和模型的专家都在使用它。数据增强可以以一种非常简单有效的方式将几乎任何图像训练集的大小增加 10 倍、100 倍甚至无限大。从数学上讲:

更多的数据=更好的模型。数据增强 = 更多数据。因此,数据增强 = 更好的机器学习模型。

数据增强技术

在这里插入图片描述

用于数据增强的常见图像转换。

上图所示的方法列表绝不是详尽无遗的。还有无数其他方法可以操作图像和创建增强数据。你只受限于自己的创造力!

也不要觉得只限于孤立地使用每种技术。您可以(并且应该)将它们链接在一起,如下所示:

在这里插入图片描述

在这里插入图片描述

单源图像增强组合的更多示例。

图像来源

数据增强的注意事项和潜在陷阱

  • 毋庸置疑,在将数据集拆分为训练、验证和测试子集后,应该进行任何数据增强。否则,您将在模型中造成重大数据泄漏,并且您的测试结果将毫无用处。
  • 如果您正在执行基于本地化的任务(如对象检测或分割),则在应用几何变换(如反射(翻转)、旋转、平移和裁剪)时,您的标签将发生变化。因此,您还需要将相同的转换应用于标签注释
  • 裁剪图像时,会更改模型输入的大小和形状。对于卷积神经网络模型,您需要所有输入(包括测试集)具有相同的维度。处理此问题的常用方法是将裁剪转换也应用于测试集和验证集。调整图像大小是另一种选择。
  • 其中一些转换(如平移、旋转或缩放)可能会导致“空白区域”,即转换后的图像未完全覆盖输入模型的网格空间。在这些情况下,您可以使用恒定的黑/白/灰像素、随机噪声或扩展原始图像内容的插值来填充多余的像素。
  • 注意不要裁剪或平移太多,以免从图像中完全删除相关对象。当您知道对象检测任务中的边界框时,这很容易检测到,但如果完全裁剪掉与标签对应的对象,则可能会成为图像分类的问题。
  • 数据增强通常只在训练集上执行。虽然它也可以用作在非常小的验证甚至测试集中减少方差的策略,但在对测试集进行任何更改时应始终非常小心。您希望测试数据是对推理时间分布中看不见的示例的性能的无偏估计,而增强数据集可能与该分布不同。
  • 不建议同时使用过多的增强技术。你可能会想通过组合所有列出的转换来一次把所有东西都扔进去,厨房水槽,但这会很快使生成的图像变得非常不真实,人类无法识别,并且还会导致上述点中概述的潜在问题。使用所有这些转换并没有错,只是不要一次组合所有这些转换。

话虽如此,转换后的图像并不需要完美才能有用。数据量往往会超过数据质量。示例越多,异常值/错误图像对模型的不利影响就越小,数据集的多样性就越大。

尽管数据增强几乎总是对模型性能有积极影响,但它并非解决所有与数据集大小相关问题的灵丹妙药。你不能指望使用50张图像的微小数据集,使用上述技术将其放大到50,000张,并获得50,000张数据集的所有好处。数据增强可以帮助使模型对旋转、平移、照明和相机伪影等内容更加鲁棒,但不适用于其他变化,例如不同的背景、透视、对象外观的变化、场景中的相对位置等。

什么时候应该做数据增强?

您可能想知道“我应该在什么时候使用数据增强?什么时候有好处?答案是:总是!数据增强通常有助于规范化和改进您的模型,如果您以合理的方式应用它,则不太可能有任何缺点。唯一可以跳过它的情况是,如果你的数据集非常庞大和多样化,以至于增强不会为其增加任何有意义的多样性。但是我们大多数人都没有奢侈地使用这样的童话数据集

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/928961
推荐阅读
相关标签