一文看尽深度学习中的各种数据增强(一)

简介: 一文看尽深度学习中的各种数据增强

引言

随着深度学习在计算机视觉的广泛应用,以卷积神经网络为代表的深度学习模型取得了突破性的进展。然而,直至今日,尽管提出了以 ViT 为代表的新一代视觉网络架构,但数据问题仍然是构建深度学习模型最常见的挑战之一。在实际的应用场景中,足量且高保真的优质数据集通常是可遇不可求的,一方面费钱费时费力不说,由于隐私保护和极端概率问题,数据集的获取变得尤为困难。因此,一种低成本且有效的方法便是利用数据增强来减少对训练数据的依赖,从而帮助开发人员更好更快地构建高精度的 AI 模型。

今天,CVHub 将为大家集中盘点计算机视觉各大主流任务上的数据增强策略[1],欢迎转发、收藏和关注,感谢大家长久以来的关注,我们将竭诚为大家带来持续高质量的 CV 论文解读,以下是本文的大纲:

  • 数据增强的定义
  • 数据增强的作用
  • 数据增强的方式

数据增强的定义

数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程。这包括对数据进行不同方向的扰动处理或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而人为的扩充新的数据集。

这里我们需要区分两个概念,即增强数据合成数据

  • 合成数据:指在不使用真实世界图像的情况下人工生成数据,合成数据可由 GAN 或者现如今大火的 AGI 技术 Diffusion Model 产生;
  • 增强数据:从原始图像派生而来,并进行某种较小的几何变换(例如翻转、平移、旋转或添加噪声等)或者色彩变换(例如亮度、对比度、饱和度或通道混洗等),以此来增加训练集的多样性。

数据增强的作用

省钱 · 省时 · 省心

在实际的应用场景中,数据集的采集、清洗和标注在大多数情况下都是一个非常昂贵且费时费力且乏味的事情。有了数据增强技术,一方面可以减轻相关人员的工作量,另一方面也可以帮助公司削减运营开支。此外,有些数据由于涉及到各种隐私问题可能用钱都买不到,又或者一些异常场景的数据几乎是极小概率时间,这时候数据增强的优势便充分的体现出来了。

提升模型性能

众所周知,卷积神经网络对平移、视点、大小或光照均具有不变性。因此,CNN 能够准确地对不同方向的物体进行分类。在深度学习中,CNN 通过对输入图像进行卷积运算来学习图像中的不同特征,从而在计算机视觉任务上表现非常出色。随着 ViT 的提出,一系列 Vision Transformer 模型被提出并被广泛地应用。然而,无论是 CNN 还是 Transformer,均离不开数据的支持。特别是,当数据量较小时 CNN 容易过拟合,Transformer 则无法学习到良好的表征。

数据增强的方式

数据增强方式大致可分为两类:基础数据增强和高级数据增强。

Image data augmentation taxonomy

基础数据增强方法

Image Manipulation

图像处理(Image Manipulation)是指在图像中对其位置颜色所做的更改:

  • 位置操作是通过调整像素的位置来进行的;
  • 颜色操作是通过改变图像的像素值来进行的。

Overview of the geometric data augmentations

首先介绍下几何数据增强(Geometric Data Augmentation),它是指对图像几何形状所做的更改。几何指的是位置,比如以一定角度移动等。这种技术改变了图像中像素值的位置,例如旋转、平移和剪切。主要包含以下三种:

  • Rotation

旋转,其让图像在 0 到 360 度之间旋转。此处旋转度数是一个超参数,应该根据实际需要选择。举个例子,就像大家最熟悉的 MNIST 一样,我们不能旋转 180 度,不然数字 6 旋转 180 就变成 9,这就离谱了。

  • Translation

平移,它是另一种几何类型的数据增强,通过向上、向下、向右或向左移动图像以提供不同的视图。

  • Shearing

错切,其字面意思是沿轴扭曲图像。错切是一种数据增强技术,可以将图像的一部分向一个方向移动,而另一部分则向相反方向移动。从技术上讲,它分为两类,即沿x轴切和y轴切。对于 x 轴,图像的顶部沿一个方向移动,底部沿完全相反的方向移动。而在 y 轴中,图像的左侧部分沿一个方向移动,右侧部分沿相反方向移动。

Overview of the non-geometric data augmentations

其次,我们为大家介绍下非几何数据增强(Non-Geometric Data Augmentations),这种增强方式侧重于图像的视觉外观而不是其几何形状。例如噪声注入、翻转、裁剪、调整大小和色彩空间操作是均是非几何增强技术的范畴。下面介绍一些经典的方法:

  • Flipping

翻转,它是一种水平或垂直翻转图像的数据增强技术,几乎会应用在许多视觉任务上。一般来说,我们常用的是水平翻转,垂直翻转在大多数情况下会导致目标歧义,例如一个人翻转过来就很不协调和自然,当然还是那句话,根据你的实际应用场景调整。

  • Cropping and resizing

裁剪,属于另一种数据增强技术,常用作预处理增强。使用随机裁剪或中心裁剪作为数据增强。该技术会减小图像的大小,然后执行调整大小以匹配图像的原始大小,同时不会平滑图像的标签。

  • Noise Injection

注入噪声是另一种数据增强技术,它有助于神经网络学习稳健的特征,对抵御对抗性攻击非常有帮助。

  • Color Space

一般来说,图像通常是由 RGB 三颜色通道组成的。这里如果我们单独操纵每个通道值以控制亮度也是一种数据增强方式,有时也称为光度增强。这种增强有助于避免模型偏向 lightning 条件。执行颜色空间增强的最简单方法是隔离任何通道并添加 2 个填充任何随机值或 0 或 255 的通道。颜色空间常用于照片编辑应用程序,即用于控制亮度或暗度。

  • Jitter

扰动,是一种通过随机改变图像的亮度、对比度、饱和度和色调的数据增强方式。对于这四个是超参数,我们应仔细选择它们的取值范围。例如,如果我们不小心多度提高了肺部疾病检测的X光图像亮度,这会使肺部在X光中变白混杂,对疾病诊断实际是没有帮助的。

  • Kernel Filters

这是一种用来锐化或模糊图像的数据增强方式。一开始,我们可以滑动大小为 n x n 的窗口 Kernel 或高斯模糊过滤器和边缘过滤器的矩阵。高斯模糊滤镜可以使图像变得更加模糊,而边缘滤镜则使图像的水平或垂直边缘锐化。

紧接着,我们继续介绍第三种基于图像擦除的数据增强方式(Image Erasing Data Augmentations):

Overview of the Mixup, Cutout, and CutMix

  • Cutout[2]

Cutout 是通过在训练期间随机擦除子区域并在图像中填充 0 或 255 的一种数据增强技术。

  • Random erasing[3]

Random erasing examples for different tasks

Random erasing 是一种像剪切一样随机擦除图像中子区域的一种增强方式。但它也随机决定是否屏蔽,并决定屏蔽区域的纵横比和大小。例如,我们可以在人脸识别任务中,通过这项数据增强技术来模拟戴口罩的效果。

  • Hide-and-Seek[4]

捉迷藏(Hide-and-Seek)数据增强的关键思想是将图像划分为随机大小的均匀正方形,并随机删除随机数量的正方形。当重要信息被隐藏时,它迫使神经网络学习相关特征。在每个epoch,它都会给出图像的不同视图。

An example of Hide-and-Seek augmentation

  • GridMask[5]

最后,我们向大家介绍基于网格掩码的数据增强方式。先前的方法尝试解决随机删除可能会存在完全擦除对象或删除上下文信息区域的问题。为了在这些问题之间进行权衡,GridMask 创建统一的掩码,然后将其应用于图像,如下图所示:

GridMask augmentation

此图显示了 GridMask 增强的过程,具体的做法是生成一个掩码,然后将其与输入图像相乘。

Image Mixing Data Augmentations

图像混合数据增强在过去几年一直是一个热门话题。图像混合数据增强是关于将图像与其他图像或相同图像混合。在本文中,我们将其大致分为两类,即单图像混合(Single image mixing)增强和非单图像混合(Non-single image mixing)增强。

首先,第一部分我们先介绍下基于单图像混合的数据增强方式。单一图像混合技术顾名思义便是仅使用一个图像,并从不同的视角对其进行处理。最近在单图增强方面做了很多工作,比如LocalAugmentSelfAugmentationSalfMix等,下面分别为大家介绍下。

  • Local Augment[6]

An example of Global and Local Rotation Image

Local Augment,即局部增强的原理是将图像切分成小块,并在每个小块上应用不同类型的数据增强,目的是潜在地改变目标偏差属性,但产生显着的局部特征,如上图所示。虽然这种增强并不主宰全局结构,但提供了非常多样化的图像特征,这对于神经网络以更通用的方式学习局部特征至关重要。

  • Self Augmentation[7]

An example of self augmentation

Self Augmentation 中,图像的随机区域会被裁剪并随机粘贴到图像中,以提高小样本学习的泛化能力。

  • SalfMix[8]

SalfMix 提出的背景主要是关注是否可以泛化基于单图像混合增强的神经网络?为此,其思想是找到图像的第一个显着部分来决定应该删除哪个部分以及应该复制哪个部分。

Conceptual comparison between SalfMix method and other single image-based data augmentation methods

如上图所示,SalfMix 是通过显着性图将图像中显著的区域裁剪出来并放入非显着区域。

  • KeepAugment[9]

This image shows the example of KeepAugment with other augmentations

引入 KeepAugment 是为了防止分布偏移降低神经网络的性能。KeepAugment 的想法是通过保留图像的显着特征和增强非显着区域来提高保真度。其中,被保留的特征进一步允许在不改变分布的情况下增加多样性。

  • YOCO[10]

An example of YOCO augmentation

YOCO,即You Only Cut Once,它可以从部分信息中识别对象并提高增强的多样性,从而鼓励神经网络表现得更好。YOCO 制作了两张图像,每张都应用了一个增强,然后将每张图像连接成一张图像。YOCO 易于实现,且不会引入任何参数,同时也易于使用。

  • Cut-Thumbnail[11]

Comparison between existing data augmentation methods with CutThumbnail

Cut-Thumbnail,即缩略图,是一种新颖的数据增强,它将图像调整到一定的小尺寸,然后用调整后的图像随机替换图像的随机区域,旨在减轻网络的形状偏差。Cutthumbnail 的优点是它不仅保留了原始图像,而且在调整后的小图像中保持全局。

Cut-Thumbnail

此图像显示了缩略图的缩小图像示例。其方式是将图像缩小到一定尺寸 112×112 或 56×56 后,尽管丢失了很多局部细节,但图像中的目标(狗)仍然可以识别。

最后一部分我们向大家介绍非单图像的混合数据增强(Non-Single Image Mixing Data Augmentations)方式,这块涉及的内容比较丰富,包括大家所熟悉的 Mixup、CutMix、CopyPaste 等混合增强技术,下面让我们一起看看吧!

Overview of the Mixup, Cutout, and CutMix

  • Mixup[12]

Mixup 是根据混合因子(alpha)来混合任意两个随机图像,这些图像的相应标签也以相同的方式混合。混合数据增强不仅在准确性方面而且在鲁棒性方面都可持续地提高了性能。

  • CutMix[13]

CutMix 解决了信息丢失和区域丢失问题。它的灵感来自 Cutout,其中任何随机区域都用 0 或 255 填充,而在 cutmix 中,不是用 0 或 255 填充随机区域,而是用另一个图像的补丁填充该区域。相应地,它们的标签也根据混合的像素数按比例混合。

  • SaliencyMix[14]

An example of SaliencyMix augmentation

SaliencyMix 基本上解决了 Cutmix 的问题,并认为用另一个补丁填充图像的随机区域并不能保证补丁具有丰富的信息,因此混合未保证补丁的标签会导致模型学习关于图像的不必要信息 修补。为了解决这个问题,SaliencyMix 首先选择图像的显着部分并将其粘贴到随机区域或另一幅图像的显着或非显着区域。

SaliencyMix data augmentation procedure

上面这张图展示了该方法的实现过程。

  • Puzzle Mix[15]

Puzzle Mix 提出了一种拼图混合数据增强技术,该技术侧重于灵活地使用图像的显着信息和基本统计数据,目的是打破神经网络对现有数据增强的误导监督。

A visual comparison of the mixup methods.

uzzle Mix 确保包含足够的目标类信息,同时保留每个样本 的局部统计信息。

  • SnapMix[16]

SnapMix 是一种基于语义比例的混合数据增强,它利用类激活图来降低标签噪声水平。SnapMix 根据实际参与增强图像的显着像素创建目标标签,确保增强图像和混合标签之间的语义对应。

A visual Comparison of Mixup, CutMix, and SnapMix

该图给出了一个基本示例,可以看出,与 CutMix 和 Mixup 相比,SnapMix 生成的标签在视觉上更符合混合图像的语义结构。

  • FMix[17]

FMix 也是一种混合样本数据增强(MSDA),利用随机二分类掩码。这些随机二分类掩码是通过对从傅立叶空间获得的低频图像应用阈值来获取的。一旦获得掩码,一个颜色区域将应用于其中一个输入,另一个颜色区域将应用于另一个输入。整体流程如下图所示:

Example masks and mixed images from CIFAR-10 for FMix


目录
相关文章
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
116 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的魔法:如何用神经网络解锁数据的奥秘
在人工智能的璀璨星空中,深度学习犹如一颗最亮的星,它以其强大的数据处理能力,改变了我们对世界的认知方式。本文将深入浅出地介绍深度学习的核心概念、工作原理及其在不同领域的应用实例,让读者能够理解并欣赏到深度学习技术背后的奇妙和强大之处。
47 3
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护
74 1
|
3月前
|
机器学习/深度学习 数据采集 计算机视觉
深度学习之缺失数据的图像修复
基于深度学习的缺失数据图像修复是一种通过深度学习技术填补图像中缺失或损坏部分的过程。这种技术在图像处理领域具有重要意义,能够改善图像的视觉质量,并在许多实际应用中发挥作用,如图像恢复、视频编辑和图像生成等。
69 4
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与神经网络:探索复杂数据的表示
【9月更文挑战第26天】深度学习作为人工智能领域的明珠,通过神经网络自动从大数据中提取高级特征,实现分类、回归等任务。本文介绍深度学习的基础、张量表示、非线性变换、反向传播及梯度下降算法,并探讨其在计算机视觉、自然语言处理等领域的应用与挑战。未来,深度学习将更加智能化,揭示数据背后的奥秘。
|
2月前
|
机器学习/深度学习 自然语言处理
【绝技揭秘】模型微调与RAG神技合璧——看深度学习高手如何玩转数据,缔造预测传奇!
【10月更文挑战第5天】随着深度学习的发展,预训练模型因泛化能力和高效训练而备受关注。直接应用预训练模型常难达最佳效果,需进行微调以适应特定任务。本文介绍模型微调方法,并通过Hugging Face的Transformers库演示BERT微调过程。同时,文章探讨了检索增强生成(RAG)技术,该技术结合检索和生成模型,在开放域问答中表现出色。通过实际案例展示了RAG的工作原理及优势,提供了微调和RAG应用的深入理解。
72 0
|
4月前
|
机器学习/深度学习 自然语言处理 数据处理
深度学习的数据增强
基于深度学习的数据增强技术旨在通过生成或变换现有数据,来提高模型的泛化能力和鲁棒性。数据增强在图像、文本、语音等各种类型的数据处理中都起着至关重要的作用。
54 1
|
3月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
69 0
|
4月前
|
机器学习/深度学习 编解码 自动驾驶
lidar激光雷达介绍,以及使用激光雷达数据通过深度学习做目标检测
lidar激光雷达介绍,以及使用激光雷达数据通过深度学习做目标检测
69 0
|
4月前
|
机器学习/深度学习 算法
数据规范化在深度学习中的重要性
【8月更文挑战第23天】
68 0