原文地址:[1911.06987] Faster AutoAugment: Learning Augmentation Strategies using Backpropagation (arxiv.org)
数据增强方法是提高深度神经网络性能的不可缺少的启发式方法,特别是在图像识别任务中。最近,一些研究表明,通过搜索算法发现的增强策略优于手工制作的策略。这种方法在具有连续或离散参数的图像变换上采用黑盒搜索算法,需要很长时间才能获得更好的策略。在本文中,我们提出了一种可微策略搜索管道的数据增强方法,它比以前的方法要快得多。我们引入了几种具有离散参数的变换操作的近似梯度,以及选择操作的可微机制。作为训练的目标,我们将增大数据和原始数据分布之间的距离最小化,可以进行区分。我们证明了我们的方法,更快的自动增强,实现了明显更快的搜索比以前的工作没有性能下降。

1. Introduction

数据增强是机器学习的一种强大技术,可以增加数据的数量和多样性,提高性能,特别是在图像识别任务中。传统的数据增强方法包括几何变换,如旋转和颜色增强,如自动对比度。与其他超参数类似,数据增强策略的设计者通常根据他们的先验知识(例如,所需的不变性)来选择转换操作。例如,水平翻转被认为对一般的物体识别有效,但可能对数字识别无效。除了选择之外,设计者还需要结合几种操作并设置它们的大小(例如,旋转度)。因此,数据增强策略的设计是一个复杂的组合问题。

当以数据分割的方式设计数据增强策略时,人们可以将这个问题看作是搜索空间中的最优超参数,随着组合变得复杂,它会变得非常大。因此,需要有效的方法来找到最优策略。如果这些超参数的梯度信息可用,则可以通过梯度下降[20]进行有效的优化。然而,由于一些幅度参数是离散的,且操作的选择过程是不可微的,因此梯度信息通常难以获得。因此,以往的研究都要自动化设计的数据增强策略使用了不需要梯度信息的黑箱优化方法。例如,自动增强[5]使用了强化学习。
在本文中,我们提出通过近似梯度信息来解决这个问题,从而实现基于梯度的数据增强策略的优化。为此,我们使用直导估计器[3]来近似离散图像操作的梯度,并通过结合最近的可微神经结构搜索方法[19],使操作的选择过程可微。作为目标,我们最小化原始图像和增强图像之间的分布距离,因为我们希望数据增强管道转换图像,从而填充训练数据[18]中的缺失点(见图2)。为了使转换后的图像与原始图像的分布相匹配,我们使用了对抗性学习(见图1)。因此,搜索过程变得端到端可微的,并且比以前的工作,如自动增强、PBA和快速自动增强要快得多(见表1)。

我们的经验表明,我们的方法,我们称之为更快的自动增强,可以实现更快的策略搜索,同时实现与之前的标准基准测试工作相当的性能:CIFAR-10,CIFAR-100[16],SVHN[21]和ImageNet[26]。总之,我们的贡献包括以下三点:
1. 我们引入了几个不可微数据增强操作的梯度近似。
2. 我们通过梯度近似、可微操作选择和测量原始图像和增强图像分布之间距离的可微目标,使数据增强策略的搜索端到端可微。
3. 我们表明,我们提出的方法,更快的自动增强,与之前的方法相比,显著减少了没有性能下降的搜索时间。

2. Related Work

2.1 神经架构搜索

神经结构搜索(NAS)的目标是自动设计神经网络的结构,以实现比人工设计更高的性能。为此,NAS算法需要使用强化学习[38]和进化策略[24]等搜索算法从离散搜索空间中选择更好的组件组合(例如,使用3x3核的卷积)。最近,DARTS[19]通过将离散搜索空间放松到连续搜索空间,实现了更快的搜索,使用基于梯度的优化。自动增强[5]的灵感来自于[38],而我们的方法则受到了DARTS[19]的影响。

2.2 数据增强

数据增强方法通过在不收集额外数据样本的情况下增加训练数据的虚拟大小和多样性来提高可学习模型的性能。传统上,几何变换和颜色增强变换被用于图像识别任务。例如,[17,11]随机应用水平翻转和裁剪以及图像色调的交替。近年来,其他的图像处理方法已被证明是有效的。[37,6]从图像中剪出一个随机的补丁,用随机噪声或一个常数值替换它。另一种策略是通过凸组合[36,29]或通过[34]创建一个拼接来混合不同类的多个图像。在这些研究中,操作的选择、它们的大小和被应用的概率都是精心手工设计的。

2.3 自动化数据增强

与NAS类似,实现自动化数据增强也是一个很自然的方向。一个方向是使用黑盒优化技术来寻找更好的符号操作组合:强化学习[5,23]、进化策略[32]、贝叶斯优化[18]和基于种群的训练[12]。作为目标,[5,32,12]的直接目标是最小化错误率,或等价地提高精度,而[23,18]试图匹配增强图像和原始图像的密度。

另一个方向是使用生成性对抗网络[9]。[30,1]使用条件GAN生成提高图像分类器性能的图像。[27,28]使用GANs修改模拟器的输出,使之看起来像真实的物体。自动数据增强也可以应用于表示学习,如半监督学习[4,33]和领域泛化[32]。

3、Preliminaries

在本节中,我们将描述自动增强[5]、PBA[12]和快速自动增强[18]的共同基础(参见图3)。更快的自动增强也遵循这个问题设置。

在这些工作中,输入图像由一个策略来增强,该策略由L个不同的子策略S(l)(l=1,2,...,L)组成。用随机选择的一个子策略变换每个图像x。一个单一的子策略包括K个连续的图像处理操作O(l)1,……,O(l)K,它们一个接一个地应用于图像。我们将连续操作数K称为操作计数。在本文的其余部分中,我们将重点关注子策略;因此,我们省略了上标l。

每个方法都首先搜索更好的策略。搜索阶段结束后,将所得到的策略作为数据增强管道来训练神经网络。

3.1 操作

在每个子策略中使用的操作包括仿射变换,如shear_x 和颜色增强操作,如 solarize 。此外,我们在[5,12,18]后使用裁剪[6]和样本配对[13]。我们在表2中展示了在这些工作中使用的所有16个操作。我们将操作的集合表示为O = {shear_x, solarize, . . .}

表2  用于自动增强、PBA、快速自动增强和快速自动增强的操作。有些操作具有离散的幅度参数µ,而另一些操作则没有或具有连续的幅度参数。与以前的工作不同,我们近似的操作梯度w.r.t.离散量级µ,我们在第1节中描述

有些操作的大小参数是自由变量,例如,旋转中的角度。另一方面,一些操作,如倒置,没有幅度参数。为简单起见,我们使用以下表达式,就好像每个操作都有其大小参数µO(∈[0,1])一样。每个操作都应用于pO的概率(∈[0,1])。因此,每个图像X都被增强为

将此映射重写为O(·;µO、pO),每个子策略S由操作O1、O2、...OK组成,可以写为

其中,µS=(µO1,……,µOK)和pS=(pO1,……,pOK)。在本文的其余部分中,我们根据上下文可互换地表示一个图像操作O,O(·;µ)和O(·;µ,p)。

3.2 搜索空间

搜索的目标是找到最佳的操作组合O1,……,OK和参数集(µS,pS)。因此,总搜索空间的大小大致为(#O×[0,1]×[0,1])^KL。使用多个子策略会导致对暴力搜索的过大的搜索空间。[18]在这个搜索空间中使用了贝叶斯优化。[5,12]将连续部分[0,1]离散为10或11个值,并使用强化学习和基于总体的训练来搜索空间。然而,即使离散了搜索空间,这个问题仍然难以天真地解决。例如,如果连续操作的子策略L为10,离散的空间大小为(16×10×11)^2×10≈8.1×10^64。

以前的方法[5,12,18]使用黑盒优化。因此,他们需要用候选策略来训练cnn,并获得其验证的准确性。重复这个过程需要大量的时间。相比之下,更快的自动增强通过基于梯度的优化实现更快的搜索,以避免重复的评估,即使搜索空间与快速自动增强相同。我们将在下一节中详细描述它们。

4. Faster AutoAugment

更快的自动增强探索搜索空间,以基于梯度的方式寻找更好的策略,这区分了我们的方法。在第4.1节中,我们描述了策略搜索的梯度近似的细节。为了完成基于梯度的训练,我们采用增广图像和原始图像分布之间的距离最小化作为学习目标,我们将在第4.2节中介绍。

4.1 可微分数据增强管道

以前的搜索方法[5,12,18]使用了图像处理库(例如,pllow),它们不支持通过表2中的操作进行反向传播。与之前的工作相反,我们将这些操作修改为可微的——每个操作都可以根据概率p和大小µ来区分。由于有了这个修改,搜索问题变成了一个优化问题。每个子策略中的操作序列也需要以相同的方式进行优化。

关于概率参数p

首先,我们认为方程如下所示,其中,b∈{0,1}从伯努利分布伯尔尼(b;p)中采样,即b=1,概率为p。由于这个分布是不可微的,所以我们使用松弛伯努利分布[14]

这里,ς(x)=sigmoid函数,它保持了函数范围在(0,1)中,而u是从[0,1]上均匀分布采样的值。在温度λ较低时,这种松弛分布表现为伯努利分布。使用这种重新参数化,每个操作O(·;µO,pO)都可以是可微的w.r.t.它的概率参数p。

关于大小参数µ

对于某些操作,如旋转或平移x,它们的梯度为w.r.t.它们的幅度参数µ很容易地得到。然而,一些操作,如离散和孤立离散大小值。在这种情况下,梯度为w.r.t.µ不能通过这些操作进行反向传播。因此,我们以类似于直接估计器[3,31]的方式来近似它们的梯度。更准确地说,我们用一个算子O将一个增广图像的(i,j)个元素近似为

其中,Stopgrad是一个停止梯度操作,它将其操作数作为一个常数。在前向计算过程中,增强量被精确地操作了:˜O(X;µ)i,j=O(X;µ)i,j。但是在逆向计算过程中,由于方程5右边的第一项是常数,所以被忽略,然后得到一个近似的梯度:

尽管它很简单,但我们发现这种方法在我们的实验中工作得很好。使用这个近似,每个操作O(·;µO,pO)都可以是可微的w.r.t.其大小参数µ。

搜索子策略中的操作

每个子策略S由K个操作组成。为了选择适当的操作Ok,其中k∈{1,2,……,K},我们使用一种类似于神经结构搜索[19]中使用的策略(详情参见算法1和图4)。

图4 K=2时单个子策略中操作的示意图。在搜索过程中,我们将所有的操作应用于一个图像,并将结果的加权和作为一个增广图像。权重w1和w2也作为其他参数进行了更新。经过搜索后,我们根据训练后的权值对操作进行采样。

具体地说,我们通过所有操作的输出的加权和,将单个选择的第k个操作Ok(X)的输出近似为

其中,O(n)k是O中的一个操作,O(n)k和O(m)k是不同的操作,如果n6=m.wk是一个可学习的参数,ση是一个softmax函数,温度参数η>0。在低温η,ση(wk)成为一个简单的载体。在推理过程中,我们根据分类分布Cat(σk(wk))对第k个操作进行抽样。

4.2 数据增强作为密度匹配

使用上述技术,我们可以通过数据增强过程进行反向传播。在本节中,我们将描述政策学习的目标。该目标的一个可能的候选方案是最小化验证损失,如在DARTS[19]中。然而,这种双级公式需要大量时间,并且花费大量内存占用[7]。为了避免这个问题,我们采用了一种不同的方法。

数据增强可以看作是一个填充训练数据[18,23,30]中缺失的数据点的过程。因此,我们最小化原始图像和增强图像之间的分布距离。这一目标可以通过使用带有梯度惩罚[10]的Wasserstein GAN[2]来最小化这些分布dθ之间的Wasserstein距离来实现。在这里,θ是它的批评家,或者几乎等价地,鉴别器的参数。与通常用于图像修改的通用算法不同,我们的模型没有一个典型的生成器来学习使用传统的神经网络层来转换图像。相反,将训练前面章节中解释的策略,它使用预定义的操作来转换图像。在之前的工作[5,12,18]之后,我们使用宽ResNet-40-2[35](用于CIFAR-10、CIFAR-100和SVHN)或ResNet-50[11](用于ImageNet),并将它们的分类器头替换为两层感知器作为评论家。此外,我们还添加了一个分类损失,以防止某一类别的图像转换为另一个类别的图像(见算法2)。

5. Experiments and Results

在本节中,我们展示了我们的方法在CIFAR-10、CIFAR-100[16]、SVHN[21]和ImageNet[26]数据集上的实证结果,并将这些结果与自动增强[5]、PBA[12]和快速自动增强[18]进行了比较。除了ImageNet外,我们运行了所有实验三次,并报告了平均结果。数据集的详细情况见表3。

5.1 实施细节

之前的方法[5,12,18]采用Python的Pillow作为图像处理库。我们将第3.1节中描述的操作移植到PyTorch[22]中,这是一个具有自动微分的张量计算库。对于几何运算,我们扩展了kornia[25]中的函数。对于颜色增强操作,示例配对[13]和裁剪[6],我们使用PyTorch来实现它们。具有离散大小参数的操作如4.1节所述,附加CUDA内核。我们使用CNN模型和基线预处理程序,可从快速自动增强的存储库3,并遵循他们的设置和超参数的CNN训练,如初始学习率和学习率调度。

5.2 实验设置

为了将我们的结果与之前的研究[5,18,12]进行比较,我们遵循了他们对每个数据集的实验设置。我们在表3中所示的每个数据集的随机选择的子集上训练该策略。在评估阶段,我们用学习到的快速自动增强策略在每个数据集上从头开始训练CNN模型。对于SVHN,我们同时使用训练集和其他数据集。

与快速自动增强[18]类似,我们的策略由10个子策略组成,每个子策略的操作计数为K=2,如第3.2节所述。我们使用ReageNet-50的ImageNet和其他数据集的WideResNet-40-2来训练20个时代的策略。在所有实验中,我们将温度参数λ和η设置为0.05。我们使用Adam优化器[15],学习速率为1.0−3,运行平均系数(beta)为(0,0.999),分类损失系数为0.1,梯度惩罚系数为10。由于gpu为批张量计算进行了优化,我们将子策略应用于图像块。数据块的数量决定了速度和多样性之间的平衡。在搜索过程中,我们将ImageNet的块大小设置为16,将其他数据集设置为8。为了进行评估,我们对ImageNet使用32的块大小,对其他数据集使用16。

5.3 实验结果

CIFAR-10 and CIFAR-100

在表4中,我们展示了CIFAR-10和CIFAR-100的测试错误率:WideResNet-40-2,WideResNet-28-10[35],Shake-Shake(26 2×{32,96,112}d)[8]。我们训练WideResNet 200个[5]epoch,训练Shake-Shake 1800个[5]epoch,并记录三次运行的平均值以获得更快的自动增强。基线和裁剪的结果来自[5,18]。更快的自动增强不仅显示了与之前的工作有竞争的结果,而且这种方法的训练速度要快得多(见表1)。对于CIFAR-100,我们记录了在[5]后减少CIFAR-10训练的策略以及使用减少CIFAR-100训练的策略的结果。后者的结果优于前者,说明了训练策略对目标数据集的重要性。

我们还在图5中展示了几个增强图像的示例。该策略似乎更倾向于在自动增强[5]中报告的颜色增强操作。

在表5中,我们报告了减少的CIFAR-10的错误率,以显示在低资源场景下更快的自动增强的影响。在这个实验中,我们从训练数据集中随机抽取4000张图像。我们使用该子集训练策略,并在同一子集上使用WideResNet-28-10评估200个时代的策略。可以看出,更快的自动增强提高了7.7%的性能,并实现了一个接近于自动增强的错误率。这一结果表明,数据增强可以适度地减轻从小数据中学习的难度。

SVHN

在表4中(表4在前面),我们展示了用训练了200个时代的宽resnet-28-10对SVHN的测试错误率。为了实现更快的自动增强,我们报告了三次运行的平均值。更快的自动增强达到了1.2%的错误率,比cutt提高了0.1%,与PBA相当。增强的图像如图5所示。此外,我们在图5中展示了使用了子策略的增强图像,它们似乎比自动增强[5]中报告的CIFAR-10的策略选择了更多的几何变换。

ImageNet
在表6中,我们比较了ImageNet与[5,18]上的前1个和前5个验证错误率。为了将我们的结果与[5]保持一致,我们还对ResNet-50进行了200个时代的训练。[5,18]报告的前1名/前5名的错误率为23.7%/6.9%;然而,尽管我们努力重现结果,我们还是无法达到相同的基线性能。更快的自动增强在前1个错误率上比基线提高了1.0%。这一增益接近于自动增强和快速自动增强的增益,这验证了更快的自动增益的效果可与之前在大型和复杂数据集上的工作相媲美。

6. Analysis

6.1.更改子策略的数量

子策略L的数量是任意的。图6显示了使用WideResNet-40-2对CIFAR-10数据集的子策略数量和最终测试错误之间的关系。可以看出,我们所拥有的子策略越多,错误率就越低。这种现象是直接的,因为子策略的数量决定了增强图像的多样性;然而,子策略数量的增加会导致搜索空间的指数级增长,这对于标准的搜索方法来说是禁止的。

6.2.更改操作计数

每个子策略的操作计数K也是任意的。与子策略的数量L一样,子策略K的操作计数也以指数级增加搜索空间。我们使用WideResNet-40-2将CIFAR-10数据集上的K从1更改为4。我们在图7中展示了结果的错误率。可以看出,随着每个子策略中的操作计数的增长,性能也会提高,即错误率也会降低。第6.1节和第6.2节的结果显示,更快的自动增强可以扩展到较大的搜索空间。

6.3.更改数据大小

在第5节的主要实验中,我们使用4000张图像中的CIFAR-10的一个子集来进行策略训练。为了验证该采样的效果,我们对50,000张图像的完整CIFAR-10训练了一个策略作为[18],并使用WideResNet-40-2评估获得的策略。我们发现,随着子策略数量L=10的增加,数据大小的增加导致性能显著下降(从3.7%下降到4.1%)。我们假设这种下降是由于L=10时政策能力较低。因此,我们使用L=80子策略训练一个策略,并随机抽样10个子策略来评估该策略,从而得到可比的错误率(3.8%)。我们在表7中给出了结果,并与快速自动增强[18]进行了比较,它显示了使用子集进行快速自动增强和快速自动增强的有效性。

6.4.策略性训练的效果

为了证实经过训练的策略比随机初始化的策略更有效,我们比较了有无策略训练的CIFAR-10上的测试错误率,如AutoAugment[5]中所述。使用WideResNet-28-10,经过训练的策略的错误率为2.6%,而随机初始化的策略的错误率稍差,为2.7%(两个错误率均为三次运行的平均值)。这些结果表明,数据增强策略搜索是一个有意义的研究方向,但仍有很大的改进空间。

7. Conclusion

在本文中,我们提出了更快的自动增强,它比以前的方法[5,12,18]实现了更快的数据增强策略搜索。为了实现这一点,我们对几种不可微图像操作引入了梯度近似,并使策略搜索过程端到端可微。我们已经在几个标准基准上验证了我们的方法,并表明更快的自动增强可以实现与其他自动数据增强方法的竞争性能。

此外,我们的额外实验表明,基于梯度的策略优化可以扩展到更复杂的场景。我们认为,更快的策略搜索将有利于表示学习的研究,如半监督学习[4,33]和领域泛化[32]。此外,使用可学习的策略从小数据中学习可能是一个有趣的未来方向。

论文阅读:Faster AutoAugment: Learning Augmentation Strategies using Backpropagation相关推荐

  1. 论文阅读:AutoAugment: Learning Augmentation Strategies from Data

    文章目录 1.论文总述 2.MNIST 与 ImageNet 数据集上有效数据增强的不同 3.The key difference between our method and GAN 4.A sea ...

  2. 论文阅读【6】Autoaugment: Learning augmentation strategies from data

    本文提出的AutoAugment方法可以依据验证集上的损失值自动选择数据增强策略. 目录 问题描述 解决思想 具体实现 为什么有效 参考 问题描述 数据增强基于已有的训练样本数据生成更多的训练数据,其 ...

  3. AutoAugment: Learning Augmentation Strategies from Data

    论文地址:https://arxiv.org/pdf/1805.09501v3.pdf 本文提出一种数据增强(data augument)策略.通过创建一个搜索空间(search space),利用搜 ...

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

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

  5. 《论文阅读》Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response Gener

    <论文阅读>Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response ...

  6. 论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea

    论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea ...

  7. 论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey

    论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey 从背景介绍到未来挑战,一文综述移动和无线网络深度学习研究 近来移动通信和 5 ...

  8. 论文阅读 [TPAMI-2022] On Learning Disentangled Representations for Gait Recognition

    论文阅读 [TPAMI-2022] On Learning Disentangled Representations for Gait Recognition 论文搜索(studyai.com) 搜索 ...

  9. 【论文阅读】Cross-X Learning for Fine-Grained Visual Categorization

    [论文阅读]Cross-X Learning for Fine-Grained Visual Categorization 摘要 具体实现 OSME模块 跨类别跨语义正则化(C3SC^{3} SC3S ...

最新文章

  1. java jsch api_详解Java使用Jsch与sftp服务器实现
  2. 计算机专业是否限制语种,高考日语选什么专业(如果高考选日语,大学选专业有什么限制)...
  3. delphi 打开资源管理器并定位到指定目录下的文件
  4. c语言水仙花数(输入判断),用c语言判断一个数是否为水仙花数?
  5. openstreetmap_OpenStreetMap成立10周年,开源医疗设备等等
  6. mysql 备用字段_数据库设计之备用字段
  7. 为什么有人宁愿每年买一部千元机,也不愿一次买部高端机?
  8. 昨晚学妹参加了B站秋招笔试,还想考考我?
  9. POJ - 3250 Bad Hair Day 单调栈
  10. JSON RPC API
  11. 大麦盒子 Android4.4,大麦盒子DM4036机顶盒刷安卓系统教程
  12. 网易云播放器外链插入html,Wordpress网易云外链音乐播放调用
  13. 隐语义模型(Latent Factor Model, LFM)原理以及代码实现
  14. Word标题样式前编号显示黑块
  15. 我的第一个JS组件-跨浏览器JS调试工具
  16. 计算机 布局菜单栏 无法打勾,w7系统 我的电脑工具栏不见了
  17. 淘宝购物车计算总价格
  18. Spring Cloud Alibaba - 27 Gateway源码解析
  19. Excel-数据分析-线性回归判断及预测分析
  20. Android显示来去电归属地

热门文章

  1. 租用游戏服务器的优势
  2. 写一些生活的琐事(纯属发泄)
  3. 管理日常工作、生活琐事的待办事项提醒工具便签
  4. 电流的磁效应与安培右手定则实验
  5. Flutter之声网Agora实现音频体验记录
  6. 利用Python实现ARCGIS中栅格计算器的简单功能
  7. 2021年茶艺师(中级)报名考试及茶艺师(中级)复审考试
  8. 后台开发与APP配合开发中的一些拙见
  9. Android 切换系统语言功能实现(下)
  10. background and notification of local