深度学习的数据增强

本文介绍数据增强的基础概念,并对对复杂的混类数据增强作了原理介绍

什么是数据增强?

  • 指在计算机视觉领域中对图像进行数据增强,从而弥补训练图像数据集的不足,达到对训练数据扩充的目的
  • 数据增强可分为同类数据增强(如:翻转、旋转、缩放、移位、模糊等)和混类数据增强(如 mixup)两种方式

什么是同类、混类数据增强?

  • 同类数据增强:对单张图片内的增广操作,包括翻转、旋转、缩放、移位、模糊等,torchvision 的 transforms 实现了大部分的同类数据增强
  • 混类数据增强:对多幅图像进行融合,生成一幅图像

什么是在线、离线数据增强?

  • 在线数据增强:边训练边进行数据增强,好处是生成的样本几乎是无限的,坏处是增加训练时间
  • 离线数据增强:先进行数据增强再进行训练,好处是可以控制数据增强的方向,坏处是增加额外存储

什么是Random Erasing数据增强?

  • 在现实场景中,遮挡问题一直都是一个难以处理和解决的问题。为了更 好的实现对遮挡数据的模拟,利用 Random Erasing 的方式,将原数据集中一部分保持原样, 另外一部分随机擦除一个矩形区域
  • 设置五个超参数,分别表示原数据集中实施 Random Erasing 的概率 P,擦除面积比 率的下界 sl 和上界 sh,擦除矩形长宽比的下界 r1 和上界 r2
  • 首先通过均匀分布得到一个概率 p1,如果满足条件,实施擦除
  • 擦除的过程如下:通过均匀分布取样得到擦除矩形面积,以及长宽值。选择一个满 足所有矩形部分都在图像内的左上角坐标,将这个矩形区域都设置为统一和图像其 他区域无关的纯色值

什么是HideAndSeek数据增强?

  • 将图像分为若干块区域(patch),对于每块区域,都以一定的概率生成掩码,不同区域的掩码含义如图

什么是GridMask数据增强?

  • 过度删除或过度保留成为需要解决的核心问题。过度删除区域可能造成目标主体大部分甚至全部被删除,或者导致上下文信息的丢失,导致增广后的数据成为噪声数据;过度保留,对目标主体及上下文基本产生不了什么影响,失去增广的意义
  • 通过生成一个与原图分辨率相同的掩码,并将掩码进行随机翻转,与原图相乘,从而得到增广后的图像,通过超参数控制生成的掩码网格的大小, 避免过度删除或过度保留问题

什么是Cutout数据增强?

  • Cutout的出发点和 Random Erasing一样,也是模拟遮挡,目的是提高泛化能 力,实际上比 Random Erasing 简单,随机选择一个固定大小的正方形区域,然后采用全 0 填充
  • Cutout 区域的大小比形状重要,所以 Cutout 只要是正方形就行。具体操作是利用固定大小的矩形 对图像进行遮挡,在矩形范围内,所有的值都被设置为 0,或者其他纯色值,而且擦除矩形 区域存在一定概率不完全在原图像中(文中设置为 50%)
  • Cutout 可以理解为 Dropout 的一种扩展操作,不同的是 Dropout 是对图像经过网络后生成的特征进行遮挡,而 Cutout 是直接对输入的图像进行遮挡,相对于Dropout,Cutout 对噪声的鲁棒性更好

什么是Mixup数据增强?

  • Mixup 是最先提出的图像混叠增广方案,其原理简单、方便实现,不仅在图像分类上,在目标检测上也取得了不错的效果。
  • 为了便于实现,通常只对一个 batch 内的数据进行混叠,即随机选取两张样本按比例混合,分类的结果按比例分配
  • 注意:(1)不同类别的图像mix效果会更好;(2) 主要用于分类

什么是CutMix数据增强?

  • 与Mixup直接对两幅图进行相加不一样,Cutmix是从一幅图中随机裁剪出一个ROI,然后覆盖当前图像中对应的区域,分类结果按一定的比例分配
  • 效果等于:Cutout + Mixup

什么是Mosaic数据增强?

  • YOLOv4的Mosaic 数据增强参考了CutMix 数据增强方式,利用了四张图像,然后随机缩放、随机裁剪、随机排布的方式进行拼接
  • 论文中描述其 拥有一个巨大的优点就是丰富检测物体的背景,且在BN 计算的时候一下子会计算四张图片的数据

Mixup、Cutout、CutMix区别?

  • Cutout 和 CutMax 就是填充区域像素的区别
  • Mixup 和 CutMix 是混合两种样本方式上的区别:Mixup 是将两张图按比例进行插值来混合样本,CutMix 是采用 Cut 部分区域再补丁的形式去混合图像,不会有图像混合后不自然的情形

什么是自我对抗​​训练SAT (Self-adversarial-training) 数据增强 ?

  • 一种新的数据增强方法,可以一定程度上抵抗对抗攻击。其包括两个阶段,每个阶段进行一次前向传播和一次反向传播
  • 前向传播: 为了最小化成本函数,神经网络改变原始图像而不是网络权重。通过这种方式,神经网络对自己执行对抗性攻击,改变原始图像以产生图像上没有所需对象的欺骗
  • 反向传播: 神经网络被训练以正常方式检测此修改图像上的物体

什么是测试时增强(Test-Time-Augmentation,TTA)?

  • 数据增强同样也可以应用于测试阶段,将原始的图像进行各种形式的变换得到多张图片,比如图像翻转,图像旋转,图像拉伸等操作,然后对这些图片分别进行推理,再对这多个结果进行综合分析以确定最终结果,这便是测试时增强
  • 通过分析多项数据增强的图像,然后综合分析,有可能会平滑掉某一种变换导致的关键信息丢失现象带来的损失,从而提升预测的准确率