引用

  Ekin D. Cubuk, Barret Zoph, Dandelion Mane, Vijay Vasudevan, Quoc V. Le; Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2019: 113-123.

  摘要

  数据扩增是一种能够提高图像分类器准确度的技术,目前是手动设计实现。本文将简述 AutoAugment 的执行过程,即通过自动搜索的方式改进数据扩增策略。我们设计了一个搜索空间,将一个策略划分为多个子策略,一个子策略每次批处理随机选取一张图片。子策略由两个操作组成,每次操作包括对图像进行平移、旋转或剪切等处理,以及执行这些处理的概率和幅度。我们使用搜索算法来寻找最佳策略,以使神经网络在目标数据集上产生最高的验证准确率。我们的方法在 CIFAR-10、CIFAR-100、SVHN 和 ImageNet 上达到当下最先进的准确度。在 ImageNet 获得 %的最高准确率,比之前的记录 %高出 %;在 CIFAR-10 实现 %的错误率,这比目前最优的方法要好 %。我们的扩增策略可在数据集之间移植。在 ImageNet 学到的策略,在其他数据集上同样可以获得很好的提升效果,例如 Oxford Flowers、Caltech-101、Oxford-IIT Pets、FGVC Aircraft 和 Stanford Cars 等数据集。

  介绍

  深度神经网络是功能强大的机器学习系统,使用大量数据进行训练后,它们往往会运行良好。数据扩增是通过随机“扩充”数据来增加数据量和多样性的有效技术。在图像领域,常见的扩增方法包括将平移或翻转图像。数据扩增常被用于训练关于数据域不变性的模型:分类对象通常对水平翻转或平移不敏感。与直接将不变性硬编码到模型体系结构中相比,使用数据扩增合并潜在的不变性会更容易。

  表 1 不同数据集上的错误率对比表

  

  本文旨在使目标数据集找到有效数据扩增策略的过程自动化。在我们的实现方法中,每个策略表示扩增操作的几种潜在选择及其顺序。其中每种扩增操作都是对图形进行处理(平移、旋转或颜色归一化)以及调用各个处理的概率和幅度。我们使用搜索算法来挖掘这些操作的最佳选择和顺序,以便可以训练神经网络并获得最佳验证准确率。实验中,我们暂且将强化学习作为搜索算法,如果存在更合适的算法,相信实验结果可以进一步得到优化。

  大规模的实验表明 AutoAugment 在以下两个用例中有出色的提升:

  1)直接应用于某个数据集,以找到最佳的扩充策略;

  2)将学习到的策略移植到新的数据集。

  首先,对于直接应用,我们的方法在诸如 CIFAR-10、CIFAR-100、SVHN 和 ImageNet 等数据集上达到了最先进的准确性。在 CIFAR-10,我们实现了 %的错误率,这比最新其他技术要好 %。 在 SVHN,我们将错误率从 %提高到了 %。在精简的数据集上,我们的方法无需使用任何未标记的数据即可实现与半监督方法相当的性能。在 ImageNet,我们实现了高达 %的准确率,比之前的最优记录 %高出 %。其次,如果认为直接应用成本过高,那么移植扩增策略是一个不错的选择。我们已经证明获得的策略可以在不同模型和数据集之间得到很好地移植。例如,在 ImageNet 发现的策略对各种 FGVC 数据集都有显着地改进。即使对于在 ImageNet 上预训练权重微调权重的数据集也无明显帮助,例如 斯坦福汽车公司(Stanford Cars)和 FGVC 飞机公司通过 ImageNet 策略进行培训,分别将测试集误差降低了 %和 %。该结果表明,移植数据扩增策略为权重标准化移植学习提供了另一种方法。

  相关工作

  图像领域的数据扩增方法通常是手动设计的,最佳的扩增策略也是针对特定数据集的。例如,在 MNIST,大多数排名靠前的模型都使用弹性变形、比例、平移和旋转。在自然图像数据集(例如 CIFAR-10 和 ImageNet)上,随机裁剪、图像镜像和颜色偏移/增白更为常见。由于这些方法是手动设计的,因此需要专业知识和时间。我们从数据中学习数据扩增策略的方法原则上可以用于任何数据集,而不仅仅是一个数据集。

  我们将寻找最佳扩增策略的问题转化为离散搜索问题。我们的方法包括两个部分:一个搜索算法和一个搜索空间。在较高的级别上,搜索算法(实现为控制器 RNN)对数据扩增策略 S 进行采样,该策略包含使用哪种图像处理操作、每轮使用该操作的概率以及操作幅度等信息。方法的核心是使用策略 S 来训练具有固定体系结构的神经网络,该神经网络的验证精度 R 被反馈以更新控制器。由于 R 是不可微的,控制器将通过策略梯度方法进行更新。

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

  1) 应用该操作的概率;2)该操作的幅度。

  

  图 1 数据扩增策略框架概述

  图 2 是一个在搜索空间中包含 5 个子策略的策略。第一个子策略规定 ShearX 和 Invert 先后顺序,应用 ShearX 的概率为 ,其幅度为 7/10。我们以 的概率应用 Invert,Invert 操作不使用幅度信息。值得注意的是,这些操作是根据特定顺序执行的。

  

  图 2 SVHN 上的一种训练策略

  我们的搜索空间中合计有 16 个图片操作手段。我们将幅度范围离散为 10 个值(均匀间距),以便我们可以使用离散搜索算法来找到它们。我们用同样的方式离散化了将该操作应用于 11 个值(均匀间距)的概率。在

  个可能的空间中查找每个子策略必然成为一个搜索问题。我们的目标是同时找到 5 个这样的子策略,以增加多样性。具有 5 个子策略的搜索空间大约有

  种可能性。

  搜索算法:包含两个部分:一个控制器(递归神经网络)和一个训练算法(近距离策略优化算法)。在每个步骤中,控制器都会预测 softmax 产生的决策。然后将该谓词作为嵌入信息送入下一步。控制器总共有 30 个 softmax 预言,以便预测 5 个子策略,每个子策略有 2 个操作,每个操作都需要一个操作类型、幅度和概率。

  控制器 RNN 的训练:控制器通过奖励信号进行训练,这是该策略在改善“子模型”的泛化性方面的策略。在我们的实验中,我们预留了一个验证集来衡量子模型的泛化。通过在训练集(不包含验证集)上应用 5 个子策略生成的扩增数据来训练子模型。对于小批量中的每个示例,随机选择 5 个子策略之一来扩增图像。然后,在验证集上评估子模型,以测量准确性,该准确性用作训练循环网络控制器的奖励信号。在每个数据集上,控制器采样约 15,000 个策略。

  控制器 RNN 和训练超参数的架构:控制器 RNN 是一层 LSTM,每层具有 100 个隐藏单元,并为与每个体系结构决策相关的两个卷积单元(其中 B 通常为 5)提供 2×5B softmax 预测。控制器 RNN 的 10B 个预测中的每个都与一个概率相关联。子网络的联合概率是这些 10Bsoftmax 时所有概率的乘积。该联合概率用于计算控制器 RNN 的梯度。通过子网络的验证精度来缩放梯度,以更新控制器 RNN,以便控制器为较差子网络分配低概率,为较好子网络分配高概率。我们采用学习策略为 的近距离策略优化(PPO)。为促进探索,还使用权重为 的熵罚。基线函数是先前奖励的指数移动平均值,权重为 5。控制器的权重在 到 之间均匀初始化。为了方便起见,我们选择使用 PPO 训练控制器,尽管先前的工作表明其他方法(例如,扩增型随机搜索和进化策略)甚至可以达到更好的效果。

  在搜索结束时,我们将最佳 5 个策略中的子策略合并为一个策略(包含 25 个子策略)。具有 25 个子策略的最终策略用于训练每个数据集的模型。

  以上搜索算法是我们可以用来找到最佳策略的许多可能的搜索算法之一。有可能使用其他离散搜索算法,例如遗传编程甚至随机搜索进一步改善本文的实验结果。

  实验

  首先,我们将通过直接搜索数据集(CIFAR-10、CIFAR-100、SVHN 和 ImageNet)的最佳扩增策略来对 AutoAugment 进行基准测试。结果表明,直接应用的方式能显着改善基线模型,并在这些具有挑战性的数据集上获得最先进的准确率。其次,我们将研究扩增策略在数据集之间的可移植性。最后结果表明,扩增策略具有惊人的可移植性,显着改进许多数据集的基础模型。与其他自动数据扩充方法比较,AutoAugment 明显更好。

  为节省扩充数据期间训练子模型的时间搜索过程,我们在由 4000 个随机选择的示例组成的“精简 CIFAR-10”数据集上搜索最佳策略。结果表明,训练相同的时间,子模型训练的周期数比数据量更为有效。

  CIFAR-10 结果:我们在 TensorFlow 中构建并复现 Wide-ResNet-28-10、Shake-Shake 和 ShakeDrop 模型,发现权重衰减和学习率超参数为基线扩增的常规训练提供最佳的验证集准确率。其他超参数与模型论文中叙述的相同,除了对 Wide-ResNet-28-10 使用余弦学习衰减。随后,我们使用相同的模型和超参数来评估 AutoAugment 的测试集准确性。对于 AmoebaNets,我们使用与基线扩增和 AutoAugment 相同的超参数。我们通过 ShakeDrop 模型获得了 %的错误率,这比最新技术要好 %。此收益远大于 AmoebaNet-B 先前对 ShakeDrop 取得的收益(+ %)和 ShakeDrop 对 Shake-Shake 取得的收益(+ %)

  我们还在最近提出的 CIFAR-10 测试集上评估 AutoAugment 训练出的最佳模型。Recht 等人的 Shake-Shake + Cutout 在此新数据集上表现最佳,错误率达 %(相对于原始 CIFAR-10 测试集的错误率高 %)。此外,PyramidNet + ShakeDrop 在新数据集上实现了 %的错误率(相对于原始测试集高 %)。我们最好的模型 PyramidNet + ShakeDrop 经过 AutoAugment 训练,可实现 %的错误率(比原始测试集的错误率仅高 %)。与在此新数据集上评估的其他模型相比,我们的模型的准确率下降幅度小得多。

  CIFAR-100 结果:我们还在 CIFAR-100 上训练模型,并在“精简 CIFAR-10”使用相同的自动扩增策略。我们获得的最新结果,击败 ShakeDrop 正则化之前的错误率 %。最后,我们用相同的 AutoAugment 策略在“精简 CIFAR-10”上训练模型(用于寻找最佳策略的相同 4000 个示例训练集)。我们训练了 4,000 个带有标签的样本,但在训练期间不使用 46,000 个未标记的样本。与完整数据集相比,准确性在精简数据集的提高更为显著。随着训练集规模的增长,我们预计数据扩增的效果会降低。但实际上即使应用于 SVHN 和 ImageNet 等较大的数据集,AutoAugment 仍然可以提高泛化精度。

  SVHN 结果:为节省搜索时间,我们创建一个精简的 SVHN 数据集,其中包含从 SVHN 核心训练集中随机采样的 1,000 个示例。子模型的模型架构和训练过程与 CIFAR-10 的上述实验相同。

  搜索结束后,我们将 5 个最佳策略组合在一起,将它们应用于现有标准扩增策略体系结构,并预留训练集中的最后 7325 个样本来构造验证集。我们根据验证集的性能调整权重衰减和学习率。由于整个 SVHN 数据集很大,我们仅针对 160 个周期(而不是 1,800 个)训练 Shake-Shake 模型。AutoAugment 结果将基线预处理与在 SVHN 上学习到的策略结合在一起。

  我们还训练获得“精简 SVHN”上的最佳策略(在相同的 1000 个示例训练集中找到了最佳策略)。精简集上的 AutoAugment 结果与目前领先的半监督方法相当,其误差范围从 %到 %。与完整数据集相比,AutoAugment 在精简数据集上带来更大的优化。

  ImageNet 结果:我们使用 ImageNet 训练集的缩减子集(具有 120 个类别(随机选择)和 6,000 个样本)来搜索策略。我们使用余弦衰落训练 200 个周期的 Wide-ResNet 40-2。权重衰减为,学习速率为 。在 ImageNet 上找到的最佳策略类似于在 CIFAR-10 上找到的最佳策略,重点是基于颜色的转换。一个区别是 ImageNet 策略上通常使用旋转变换。

  

  图 3 ImageNet 上一种成功策略

  同样,我们将 5 个最佳策略组合在一起,总共使用了 25 个子策略,以创建 ImageNet 培训的最终策略。然后,我们使用 ResNet-50 和 ResNet-200 模型针对 270 个周期使用此策略从头开始训练整个 ImageNet。我们使用的批量大小为 4096,学习率为 。在第 90、180 和 240 个周期,我们将学习率降低了 10 倍。对于基线扩增,我们使用标准的 Inception-style 进行预处理,将像素值缩放为[-1,1],以 50%的概率进行水平翻转,以及颜色的随机失真。对于使用 AutoAugment 训练的模型,我们使用基线预处理和 ImageNet 上学习的策略。 我们发现消除颜色的随机失真不会更改自动扩增的结果。

  表 2 ImageNet 上 Top-1 / Top-5 的验证准确性(%)

  

  从结果可以看出,在从 ResNet-50 到最先进的 AmoebaNets 的各种模型中,AutoAugment 改进了广泛使用的 Inception 预处理。其次,将 AutoAugment 应用于 AmoebaNet-C 可以将其 top-1 和 top-5 准确性从 %/ %提高到 %/ %。鉴于在 5,000 张图像上显示了最佳扩增策略,因此改进得非常出色。我们希望当有更好的计算性能时,实验结果会更好,AutoAugment 可以使用更多图像来发现更好的扩增策略。 %/ %的准确度也是该数据集上最新的 top-1 / top-5 准确度。

  可移植性:直接在特定数据集(AutoAugment-direct)上找扩增策略,这种方式很多时候会占用大量资源。我们试图探索是否能将扩增策略从一个数据集转移到另一个数据集(AutoAugment-transfer)。为了评估在 ImageNet 上找到的策略的可移植性,我们对五个图像大小与 ImageNet 相似的 FGVC 数据集使用在 ImageNet 上学习到的策略。实验结果如图所示,使用 AutoAugment-transfer 后错误率仍然能得到显著优化。

  表 3 FGVC 数据集的最佳错误率

  

  消融实验:即使是从我们的搜索空间中随机采样的数据扩增策略也优于基线扩增策略。但是,随机策略的改进效果要逊于 AutoAugment 策略(%±%对 %±%的错误率)。此外,在 AutoAugment 策略中学习的概率和幅度信息似乎很重要,因为当这些参数随机化时,其效果会大大降低。

  致谢

  本文由南京大学软件学院 2020 级硕士生钱雨波翻译转述。