自动增强-AutoAugment: Learning Augmentation Strategies from Data

原文链接:https://openaccess.thecvf.com/content_CVPR_2019/html/Cubuk_AutoAugment_Learning_Augmentation_Strategies_From_Data_CVPR_2019_paper.html

摘要

主要思想:设计了一个搜索空间,其中一个策略由许多子策略组成,对于每个batchsize中的图像,每个图像随机选择一个子策略。每个策略中含有几个可能的增强操作,采用一个搜索算法Reinforcement Learning来找到增强操作的最佳选择和顺序,以便神经网络产生最佳的验证准确性。

引言 & 相关工作

通常,我们要求分类对象对一些潜在的变换(平移几个像素或者水平翻转图像)不敏感(即具有不变性)。虽然神经网络具备平移不变性,但使用数据扩充来合并潜在的不变性比直接将不变性硬编码到模型体系结构中要容易得多。然而,机器学习和计算机视觉社区的一大焦点一直是设计更好的网络架构。很少有人注意到如何找到更好的数据扩充方法,以包含更多的不变性。

  • 什么是数据增强:数据增强是通过随机“扩充”数据来增加数据量和多样性的有效技术,也是提高图像分类精度的一种有效技术。

  • 现有数据增强存在的问题:(1)常用的图像增强方法是人工设计的,因此需要专业知识和时间。(2)况且最佳的增强策略是针对特定数据集的,无法将增强方法有效地转移到其他数据集上。如,在MNIST上使用弹性变形、比例、平移和旋转等增强操作效果更好。在cifar10和ImageNet,随机裁剪、图像镜像和颜色移动/白化是更常见的。

  • AutoAugment的优势:(1)AutoAugment可以直接应用于感兴趣的数据集,以找到最佳的增强策略(AutoAugment-direct)(2)学习后的策略可以转移到新的数据集(AutoAugment-transfer)。

  • 相关工作:(1)智能增强(Smart Augmentation),它提出了一种网络,通过合并来自同一类的两个或多个样本,自动生成增强数据。(2)Tran等人使用贝叶斯方法,根据从训练集学习到的分布来生成数据。(3)DeVries和Taylor在学习的特征空间中使用简单的变换来扩充数据。(4)一般利用生成对抗网络直接生成扩充数据,而Ratner等人使用GANs生成描述数据增强策略的序列。

自动增强方法:在感兴趣的数据集上直接搜索最佳的增强策略

方法: 本文将寻找最佳增强策略的问题表述为离散搜索问题。该方法由两个部分组成:一个搜索算法和一个搜索空间。在较高的层次上,搜索算法(实现为控制器RNN)对数据增强策略S进行采样,该策略包含关于使用什么图像处理操作、在每批中使用该操作的概率以及操作的大小的信息。该方法的关键是,策略S将被用来训练一个具有固定架构的神经网络,该神经网络的验证精度R将被送回以更新控制器。由于R不可微,控制器将通过策略梯度方法进行更新。
简言之,RNN选择不同的策略S,将所选择的策略S喂入一个神经网络得到验证精度R,将R反向传播给RNN,用以更新RNN。使用搜索方法(如强化学习)来搜索更好的数据增强策略的框架概述如下
在这里插入图片描述

搜索空间: 在我们的搜索空间中,一个策略由5个子策略组成,每个子策略由两个要依次应用的图像操作组成。此外,每个操作还与两个超参数相关联:1)应用操作的概率,2)操作的大小。

以SVHN数据集为例,如下图所示。对于小批处理中的每一幅图像,我们均匀随机地选择一个子策略生成一幅变换后的图像来训练神经网络。每个子策略包含2个操作,每个操作与两个数值相关联:调用操作的概率和操作的大小。如第一个子策略运用ShearX的概率是0.9,当其应用时,它的大小为0.7。然后第一个子策略运用Invert(反向)的概率是0.8。Invert运算不使用量值信息。(这一块文章中是这样描述的,也就是在sub-policy1中3这个信息没用上)。

因而AutoAugment在不同的小批量中,可以以不同的方式转换一张图像来强调应用子策略时的随机性(即使使用相同的子策略)。

在这里插入图片描述

  • 在搜索空间中,本文总共有16个操作。搜索操作集 = {ShearX/Y, TranslateX/Y, Rotate, AutoContrast, Invert, Equalize, Solarize, Posterize, Contrast, Color, Brightness, Sharpness, Cutout, Sample Pairing}
  • 应用该操作的概率为离散的11个值(均匀间隔)。
  • 每个操作的大小为为离散为10个值(均匀间距)。
  • 搜索空间的大小为:(16 × 10 × 11)2。我们的目标是找到五个这样的子策略,因而搜索空间的大小为:(16 × 10 × 11)10≈2.9×1032

搜索算法:

该搜索算法由两部分组成:控制器(递归神经网络RNN)和训练算法(近端策略优化算法)。

  • 在每一步,控制器预测由softmax产生的决策;然后将预测作为嵌入输入下一步。
  • 控制器总共有30个(523)softmax预测,以预测5个子策略。每个策略有2个操作,每个操作需要一个操作类型,大小和概率。3表示的是:使用什么样的操作(维度大小为16),使用这个操作的概率(维度大小为11),以及这个操作的量级(维度大小为10)。

控制器RNN的训练:

  • 通过在训练集(不包含验证集)上应用5个子策略生成的增强数据来训练子模型。对于小批处理中的每个样本,将随机选择5个子策略中的一个来增强图像。
  • 在验证集上对子模型进行评估,以测量其准确性(评估子模型的泛化能力),并以此作为奖励信号(验证精度R)来训练RNN控制器。在每个数据集上,控制器采样大约15,000个策略。

控制器RNN体系结构及训练超参数:

  • 控制器RNN是一个单层LSTM,每层有100个隐藏单元,两个卷积层有2×5B个softmax预测(B通常为5)。控制器RNN的每一个10B预测都与一个概率相关。

  • 子网络的联合概率是在10B软最大值下所有概率的乘积。该联合概率用于计算控制器RNN的梯度。

  • 梯度通过子网络的验证精度进行缩放,以更新控制器RNN,使控制器为坏子网络分配低概率,为好子网络分配高概率。

  • 本文采用学习率为0.00035的近端策略优化(Proximal Policy Optimization, PPO)。还使用了权值为0.00001的熵惩罚。基线函数是先前奖励的指数移动平均,权重为0.95。控制器的权值在-0.1 ~ 0.1之间统一初始化。

  • 在搜索结束时,我们将最好的5个策略中的子策略连接成一个策略(有25个子策略)。这个带有25个子策略的最终策略用于为每个数据集训练模型。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值