本文编写于 370 天前,最后修改于 370 天前,其中某些信息可能已经过时。

AutoAugment是Google提出的自动选择最优数据增强方案的研究,也是最早的使用AutoML技术来搜索数据增强策略的研究。
它的基本思路是使用增强学习从数据本身寻找最佳图像变换策略,对于不同的任务学习不同的增强方法,流程如下:

  1. 准备16个常用的数据增强操作。
  2. 从16个中选择5个操作,随机产生使用该操作的概率和相应的幅度,将其称为一个sub-policy,一共产生5个sub-polices。
  3. 对训练过程中每一个batch的图片,随机采用5个sub-polices操作中的一种。
  4. 通过模型在验证集上的泛化能力来反馈,使用的优化方法是增强学习方法。
  5. 经过80~100个epoch后网络开始学习到有效的sub-policies。

之后串接这5个sub-policies,然后再进行最后的训练。
总的来说,就是学习已有数据增强的组合策略,

这次实验中微调了他们训练好用在imagenet上的policy。选择这个policy的原因是该策略中本身含有较少的旋转和裁切策略,更多的是在像素值方面的操作,我认为更适合语谱图一些。

以下为我们用到的subpolicy

  1. Color:给定一个参数范围,调整图像饱和度
  2. Posterize:保留Image各通道像素点数值的高bits位,将连续渐变色调转换为更少色调的一些区域
  3. Solarize:调整图像对比度。增强因子为0.0将产生纯灰色图像;为1.0将保持原始图像。将高于参数的值取反
  4. Sharpness:创建一个调整图像锐度的增强对象。增强因子为0.0将产生模糊图像;为1.0将保持原始图像,为2.0将产生锐化过的图像
  5. Brightness:创建一个调整图像亮度的增强对象。增强因子为0.0将产生黑色图像;为1.0将保持原始图像。
  6. Autocontrast:自动对比度。图像对比度最大化
  7. Equalize:直方图均衡化。也是在图像对比度上的调整
  8. Invert:图像取反
    最终对每一张原始图片我们进行了1:1生成。对于一张原图利用数据增强生成一张图片。

通过上述subpolicy,组成了17个policy。
每个policy每次用两个subpolicy。如下图所示


对于每张原图随机选择一种policy,进行生成。

PS:这些参数和组合是作者通过作者在imagenet上进行搜索学习得到的。并不是手动调参,但是作者似乎只给出了三个训练好的policy,并没有给出训练policy的代码。实际增强图片的效果和一些实验细节有空会补上。

这篇文章是之前给语谱图做数据增强时的简单记录和尝试方法,在我们的课题中效果不是很好,最终并未采用。具体原因有待分析,猜测可能是原方法主要还是用在目标识别上