论文标题
《RandAugment: Practical automated data augmentation with a reduced search space》
随机增强: 缩小搜索空间的实用自动数据扩增技术
作者
Ekin D. Cubuk、Barret Zoph、Jonathon Shlens 和 Quoc V. Le
来自 Google Research, Brain Team
初读
摘要
- 最近的研究表明,数据增强有潜力显著提高深度学习模型的泛化能力。
- 最近,自动增强(Automated Augmentation)策略在图像分类和目标检测方面取得了最先进的结果。
- 虽然这些策略是为了提高验证准确率而优化的,但它们也在半监督学习中取得了最先进的结果,并提高了对图像常见损坏的鲁棒性。
- 这些方法大规模采用的一个障碍是单独的搜索阶段,
- 它增加了训练的复杂性,并可能大幅增加计算成本。
- 此外,由于单独的搜索阶段,这些方法无法根据模型或数据集大小调整正则化强度。
- 自动增强策略通常是通过在小型数据集上训练小型模型来找到的,然后应用于训练更大的模型。
- 在这项工作中,我们消除了这两个障碍。
- RandAugment 具有显著减少的搜索空间,这使得它可以在目标任务上进行训练,而无需单独的代理任务。
- 此外,得益于参数化,RandAugment 可以针对不同的模型和数据集大小定制正则化强度。
- RandAugment 可以跨不同的任务和数据集统一使用,并且开箱即用,匹配或超过了所有先前的自动增强方法在 CIFAR-10/100、SVHN 和 ImageNet 上的表现。
- 在 ImageNet 数据集上,我们实现了 85.0% 的准确率,比先前最先进的方法提高了 0.6%,比基线增强提高了 1.0%。
- 在目标检测方面,RandAugment 比基线增强提高了 1.0-1.3%,在 COCO 上的 mAP 与 AutoAugment 相差不到 0.3%。
- 最后,由于其可解释的超参数,RandAugment 可以用来研究数据增强在不同模型和数据集大小中的作用。
代码已上网
结论
再读
Section 1 Introduction
-
数据增强:
- 数据增强是一种广泛使用的方法,用于生成额外的数据以改善机器学习系统,适用于图像分类(image classification)、目标检测(object detection) 、实例分割(instance segmentation)和语音识别(speech recognition)。
- 不幸的是,数据增强方法需要专业知识,以及手动设计策略以捕捉每个领域的前置知识。这一要求使得将现有的数据增强方法扩展到其他应用和领域变得困难。
-
数据增强学习策略:
最近,用于自动化设计增强策略的学习数据增强策略已经作为一种方法出现,因此有可能解决传统数据增强方法的一些弱点。
-
优点:
-
使用学习到的数据增强策略训练机器学习模型可以显著提高准确性、模型的健壮性以及图像分类的半监督学习性能;同样地,对于 COCO 和 PASCAL-VOC 上的目标检测任务也是如此。
-
值得注意的是,与设计更优的网络架构不同,所有这些预测性能的改进在推理时都不会产生额外的计算成本。
-
-
缺点:
- 尽管学习到的数据增强策略带来了诸多益处,但其计算需求以及两次独立优化过程增加的复杂性可能成为阻碍。
- 神经架构搜索(NAS)的最初提出就展现了一个类似的情形,其中双重优化过程导致了更优的预测性能,但最初的实现方式在复杂性和计算需求方面是难以承受的。后续工作加速了训练效率并提高了该流程的有效性,最终使得该方法能够基于可微过程进行统一优化。
- 对于学习增强而言,后续研究发现了更高效的搜索方法,然而这些方法仍然需要一个独立的优化过程,这显著增加了训练机器学习模型的计算成本和复杂度。
-
-
自动数据增强:
- 自动数据增强的原始构想是在一个小规模的代理任务上进行独立搜索,其结果可以转移到更大的目标任务上。这种构想强烈假设代理任务能为更大任务提供预测性的指示。
- 在学习数据增强的情况下,我们提供了实验证据来质疑这一核心假设。
- 具体来说,我们证明了这种策略是次优的,因为增强的强度强烈依赖于模型和数据集的大小。
- 这些结果表明,如果能去除在代理任务上的独立搜索阶段,可能会实现更好的数据增强。
-
在本工作中,我们提出了一种实用的自动数据增强方法——称为 RandAugment——该方法不需要单独的搜索过程。
- 为了去除单独的搜索步骤,我们发现有必要大幅度减少数据增强的搜索空间。
- 参数空间的减少实际上非常显著,以至于简单的网格搜索就足以找到一个数据增强策略,其性能超过所有采用单独搜索阶段的已学习增强方法。
-
我们的贡献可以总结如下:
-
我们证明了数据增强的最佳强度取决于模型大小和训练集大小。这一观察表明,在较小的代理任务上单独优化增强策略对于学习和转移增强策略可能是次优的。
-
我们引入了一个大大简化的数据增强搜索空间,其中包含2个可解释的超参数。可以通过简单的网格搜索来调整增强策略以适应特定的模型和数据集,从而消除了对单独搜索过程的需求。
-
利用这一方案,我们在CIFAR [22]、SVHN [34]和ImageNet [6]上展示了最先进的结果。在对象检测任务[27]中,我们的方法与最先进的方法在mAP上的差距仅为0.3%。在ImageNet上,我们达到了85.0%的顶尖准确率,比先前的方法提高了0.6%,比基础增强方法提高了1.0%。
-
Section 2 Related Work
- 数据增强在深度视觉模型的训练中扮演了核心角色。在自然图像上,水平翻转和图像的随机裁剪或平移在分类和检测模型中被普遍采用。
- 在 MNIST 数据集上,通过跨尺度、位置和方向的弹性扭曲(elastic distortions)实现了令人印象深刻的成果。虽然前面的例子在保持数据位于训练集分布内的情况下进行了增强,但那些执行相反操作(即将数据移出训练集分布)的方法也能有效提高泛化能力。
- 某些方法通过随机擦除图像块或向图像块添加噪声来提高验证精度、健壮性或两者兼备。
- Mixup 是一种在 CIFAR-10 和 ImageNet 上特别有效的增强方法,其中神经网络接受图像及其对应标签的凸组合进行训练。
- 对象中心裁剪(Object-centric cropping)常用于对象检测任务,而 [9] 通过剪切粘贴的方式在训练图像上添加新对象。
- 从单独的操作转向增强数据,其他工作则专注于寻找组合不同操作的最优策略。
- 例如,Smart Augmentation 学习一个网络,将同一类别的两个或多个样本合并以生成新数据。
- Tran 等人基于从训练集中学习到的分布,通过贝叶斯方法生成增强数据。
- DeVries 等人在学习到的特征空间中使用变换(如噪声、插值和外推)来增强数据。
- 此外,生成对抗网络(GAN)已被用来选择数据增强操作的最优序列。GAN 也被用来直接生成训练数据,然而这种方法似乎不如学习预定义的数据增强操作序列那样有益。
- 从数据中学习数据增强策略的另一种方法是 AutoAugment,它最初使用强化学习来选择操作序列及其应用概率和幅度。
- AutoAugment 策略的应用涉及多个层面的随机性:
- 对于每个小批量中的每张图像,均以均匀概率选择一个子策略。
- 每个子策略中的操作都有关联的应用概率。
- 一些操作在方向上具有随机性。例如,图像可以顺时针或逆时针旋转。
- 这种多层次的随机性增加了网络训练所面对的多样性,进而发现在许多数据集上显著提高了泛化性能。
- 最近,有几篇论文使用了 AutoAugment 的搜索空间和形式,并结合改进的优化算法,以更高效地找到 AutoAugment 策略。尽管寻找策略所需的时间已大幅减少,但需要在单独的搜索阶段实现这些方法降低了 AutoAugment 的适用性。因此,本研究旨在完全消除在单独的代理任务上的搜索阶段。
- AutoAugment 策略的应用涉及多个层面的随机性:
- RandAugment 的一些发展灵感来源于最近在数据增强策略搜索方面的改进。
- 例如,Population Based Augmentation(PBA)发现增强的最适幅度会在训练过程中逐渐增大,这启发我们不去为每次转换搜索最佳幅度,而是制定一个固定的幅度调度,我们将在第3节详细讨论这一点。
- 此外,Fast AutoAugment 的作者发现,为密度匹配训练的数据增强策略可以提高泛化精度,这激发了我们为改进增强引入的一阶可微项(见第 4.7 节)。
Section 3 Methods
-
RandAugment 的主要目标是消除在代理任务上进行单独搜索阶段的需要。
- 我们希望去除搜索阶段的原因在于,
- 单独的搜索阶段会显著增加训练的复杂度并造成较大的计算开销。
- 更重要的是,代理任务可能提供次优的结果(见第 4.1 节)。
- 为了去除单独的搜索阶段,我们致力于将数据增强策略的参数融入模型训练的超参数中。鉴于先前的学习增强方法包含了 30 多个参数,我们着重于大幅度减小数据增强的参数空间。
- 我们希望去除搜索阶段的原因在于,
-
变换方法选择:
-
先前的工作表明,学习增强策略带来的主要好处在于增加了样本的多样性。确实,以前的工作通过从 \(K=14\) 种可用变换中选择要应用哪些变换,以及应用每个变换的概率来枚举策略,具体形式如下:
-
保持原图(identity) 自动对比度(autoContrast) 同色量化(equalize)
-
旋转(rotate) 反转颜色(solarize) 调整色彩平衡(color)
-
色阶(posterize) 对比度(contrast) 亮度(brightness)
-
锐化(sharpness) 水平剪切(shear-x) 垂直剪切(shear-y)
-
水平平移(translate-x) 垂直平移(translate-y)
-
-
为了减小参数空间同时仍保持图像多样性,我们用一种无参数的程序替换掉每个变换的学习策略及其应用概率,
- 该程序总是以均匀概率 \(\frac{1}{K}\) 选择一个变换。
- 对于一个训练图像,如果有 \(N\) 种变换,RandAugment 可以表达 \(K^N\) 种潜在的策略。
-
-
增强幅度
最后需要考虑的一组参数是每个增强畸变的幅度。
- 遵循 [5] 的做法,我们采用了相同的线性尺度来指示每个变换的强度。
- 简而言之,每个变换位于一个从 0 到 10 的整数标度上,其中 10 表示给定变换的最大尺度。数据增强策略包括为每个增强指定一个整数。
- 为了进一步减小参数空间,我们观察到在训练过程中每个变换的学习幅度遵循类似的计划(例如,见 [20] 中的图 4),并假设单一的全局畸变幅度 \(M\) 可能足以参数化所有变换。我们尝试了 \(M\) 在训练期间的四种计划方法:恒定幅度、随机幅度、线性递增幅度,以及上限递增的随机幅度。该实验的具体细节可在附录 A.1.1 中找到。
- 遵循 [5] 的做法,我们采用了相同的线性尺度来指示每个变换的强度。
-
算法参数:
-
得到的算法包含两个参数 \(N\) 和 \(M\),可以用 Python 代码的两行简单表达(见图 2)。这两个参数都是人类可解释的,即 \(N\) 和 \(M\) 的较大值会增加正则化强度。
- 图片注解:图 2. 基于 numpy 的 RandAugment Python 代码。
-
可以采用标准方法来有效地执行超参数优化,但鉴于极小的搜索空间,我们发现简单的网格搜索是非常有效的(见第 4.1 节)。
- 我们将在随后的章节中,通过将所提出的增强算法的效果与所有先前的已学习数据增强方法进行比较,来证明该算法所有选择的合理性。
-
Section 4 Results
为了探索数据增强的空间,我们在核心的图像分类和对象检测任务上进行了实验。特别是,我们关注 CIFAR-10、CIFAR-100、SVHN 和 ImageNet 数据集,以及 COCO 目标检测,以便我们可以与之前的工作进行比较。对于所有这些数据集,我们都复现了相应的架构和数据转换集合。我们的目标是展示使用这种方法相对于之前的已学习增强方法的相对优势。
4.1. Systematic failures of a separate proxy task
单独代理任务的系统性失效
-
学习数据增强的一个中心前提是构建一个小型的、能够反映更大任务的代理任务。尽管这种假设足以识别出能够提升性能的已学习增强策略,但不清楚这一假设是否过于严格,可能导致次优的数据增强策略。
-
在本节中,我们将挑战这样一个假设,即以小型代理任务的形式表述问题对于学习数据增强是合适的。
-
具体来说,我们沿着两个通常限制以形成小型代理任务的维度来探讨这个问题:模型大小和数据集大小。
-
为了检验这一假设,我们系统地测量了数据增强策略对 CIFAR-10 的影响。
- 首先,我们训练了一系列 Wide-ResNet 架构家族,其中模型大小可以通过控制卷积滤波器数量的拓宽参数系统地改变。
- 对于这些网络中的每一个,我们都在 CIFAR-10 上训练模型,并与使用默认数据增强(即左右翻转和随机平移)训练的基本模型的最终准确率进行比较。
- Wide-ResNet 模型在 \(K=14\) 种额外的数据增强(见方法部分)上进行训练,全局畸变幅度 \(M\) 在 \([0, 30]\) 区间内的均匀线性标度上进行参数化。
- (注意,幅度的范围超出了方法部分中指定的幅度范围,因为我们希望为这个初步实验探索一个更大的幅度范围。我们保留了当值为 10 时与 [5] 相同的尺度,以保持可比较的结果。)
- 首先,我们训练了一系列 Wide-ResNet 架构家族,其中模型大小可以通过控制卷积滤波器数量的拓宽参数系统地改变。
-
如图 3 所示:
-
图片注解:图 3 展示了数据增强的最优幅度取决于模型大小和训练集大小。所有结果报告了 CIFAR-10 验证准确率,针对 Wide-ResNet 模型架构平均了 20 次随机初始化的结果,其中 \(N=1\)。
(a) Wide-ResNet-28-2、Wide-ResNet-28-7 和 Wide-ResNet-28-10 在不同畸变幅度下的准确率。模型在 45K 训练样本上训练 200 个周期。方块表示达到最大准确率的畸变幅度。
(b) 在 7 种具有不同拓宽参数(k)的 Wide-ResNet-28 架构中,畸变幅度的最优值。
(c) Wide-ResNet-28-10 在三个训练集大小(1K、4K 和 10K)下,不同畸变幅度的准确率。方块同样指示达到最大准确率的畸变幅度。
(d) 在 8 个不同训练集大小上的最优畸变幅度。虚线曲线展示了 AutoAugment 策略中畸变幅度的缩放期望值。
综上所述,图 3 通过一系列实验说明了数据增强的最优畸变幅度与模型容量和训练数据量的直接关联,为理解和优化数据增强策略提供了重要洞见。
-
-
-
结果分析:
-
图 3a 显示了三种 Wide-ResNet 模型在不断增加的畸变幅度下训练的模型准确率相对于基线的增益。方块表示达到最高准确率的畸变幅度。
- 请注意,尽管存在测量噪声,图 3a 还是揭示了畸变幅度上的系统性趋势。
- 特别是,将所有 Wide-ResNet 架构与其最优畸变幅度进行对比,突显了随着网络规模增大而出现的清晰单调趋势(图 3b)。
- 也就是说,较大的网络需要更大的数据畸变来进行正则化。
-
图 1 强调了不同大小模型的最优畸变幅度在视觉上的差异。相反,基于 [5] 的已学习策略为所有架构提供了一个固定的畸变幅度(图 3b,虚线),明显是次优的。
- 图片注解:图 1 展示了通过 RandAugment 增强的示例图像。在这些示例中,\(N=2\),并展示了对应于 ResNet-50、EfficientNet-B5 和 EfficientNet-B7 各自最优畸变幅度的三种幅度。随着畸变幅度的增加,增强的强度也随之增强。这说明了随着所选幅度的不同,RandAugment 如何通过调节增强的强度来改变图像的外观,以适应不同复杂度的模型需求。
-
构建小型代理任务的第二个维度是在训练数据的一个小子集上训练该代理。
- 图 3c 显示了在不同数量的 CIFAR-10 训练数据下,Wide-ResNet-28-10 模型在不断增加的畸变幅度下训练的相对准确率增益。方块表示达到最高准确率的畸变幅度。
- 请注意,尽管存在测量噪声,图 3c 还是揭示了畸变幅度上的系统性趋势。
- 我们首先观察到,在较小训练集上训练的模型可能从数据增强中获得更多的改进(例如,图 3c 中的 3.0% 对比 1.5%)。
- 此外,我们看到在更大数据集上训练的模型其最优畸变幅度也更大。乍一看,这可能与小型数据集需要更强正则化的预期相矛盾。
-
图 3d 显示,随着训练集大小的增加,最优畸变幅度呈现单调上升趋势。
- 对于这种反直观行为的一种假设是,在小型数据集中,激进的数据增强会导致信号噪声比降低。
- 无论如何,这一趋势强调了在更大数据集上增强数据增强强度的必要性,以及在由训练数据子集构成的代理任务上优化已学习增强策略的不足之处。
- 也就是说,学习到的增强可能更多地适应代理任务的增强强度,而不是更感兴趣的更大任务。
-
增强强度对于数据集和模型大小的依赖表明,小型代理任务可能无法为更大任务的性能提供最优指标。
- 这一经验结果提示我们,寻找最优数据增强策略可能需要一种不同的策略。
- 具体而言,在本工作中,我们建议专注于模型权重和数据增强策略的统一优化。图 3 表明,仅仅在所有变换中寻找共享畸变幅度 \(M\) 可能就足以提供超过已学习优化方法的显著增益。此外,我们还看到,进一步优化各个幅度可以带来性能上的微小提升(见附录 A.1.2 节)。
-
此外,图 3a 和 3c 表明,仅仅采样几个畸变幅度就足以实现良好的结果。
- 结合第二个自由参数 \(N\),我们认为这些结果为学习增强策略规定了一种算法。
- 在接下来的部分中,我们通过最小网格搜索确定了指定 RandAugment 的两个自由参数 \(N\) 和 \(M\),并将这些结果与基于代理任务的、计算量大的已学习数据增强方法进行比较。
-
4.2. CIFAR
- - 图片注解:表 2 展示了在 CIFAR-10、CIFAR-100、SVHN 及 SVHN 核心数据集上的测试准确率(%)。比较了默认数据增强(基线)、基于人群的数据增强(PBA)、快速自动增强(Fast AA)、自动增强(AA)以及提出的 RandAugment(RA)。需要注意的是,基线和 AA 在本工作中被重新复制。SVHN 核心数据集包含 73,000 个样本。Shake-Shake 模型采用了 26 2×96d 的配置,而 PyramidNet 模型采用了 ShakeDrop正则化。我们报告的结果基于 10 次独立运行的平均值。加粗字体表示最佳结果。
-
CIFAR-10 数据集已经被广泛应用于先前的数据增强方法研究中,我们首先在该数据集上测试了这个新提出的 RandAugment 方法。所有方法的默认增强包括翻转、填充并裁剪以及 Cutout 操作。
- \(N\) 和 \(M\) 的选取基于从训练集中保留的 5K 个验证样本上进行的性能评估,分别为 \(N\) 设定了 \(1\) 种设置,为 \(M\) 设定了 \(5\) 种设置。
- 结果显示,无论是在四个网络架构上的竞争力(即误差在 0.1% 以内)还是 CIFAR-10 上的最先进技术状态,RandAugment 都能达到(表 2)。
-
作为一个更具挑战性的任务,我们还额外比较了在 CIFAR-100 上对 WideResNet-28-2 和 WideResNet-28-10 使用 RandAugment 的有效性。
- 在保留的 5K 数据集上,我们分别对 \(N\) 和 \(M\) 采样了 2 种和 4 种设置(即 \(N=\{1,2\}\),\(M=\{2,6,10,14\}\))。
- 对于 WideResNet-28-2 和 WideResNet-28-10,我们发现 \(N=1\)、\(M=2\) 以及 \(N=2\)、\(M=14\) 分别能达到最佳结果。
- 再次,无论在这两种架构上,RandAugment 都表现出竞争性或更优的性能(表 2)。
4.3. SVHN
-
由于 SVHN 由数字而非自然图像组成,其数据增强策略可能与 CIFAR-10 有显著不同。
- 确实,[5] 为 CIFAR-10 识别出了与 SVHN 在性质上不同的策略。同样,在 CIFAR-10 的半监督设置中,从 CIFAR-10 学习到的策略比从 SVHN 学习到的策略表现更好。
- 这意味着数据增强策略的选择应考虑数据集的特性,针对特定类型的数据调整增强策略可能会更加有效。
- 因此,尽管 RandAugment 在 CIFAR-10 和 CIFAR-100 上取得了优异的表现,其在 SVHN 上的表现还需通过实验来验证,以确认是否需要调整策略以适应这种特定类型的图像数据。
-
SVHN 有一个核心训练集包含 73,000 张图像。另外,SVHN 还包含 531,000 张较不困难的“额外”图像以扩充训练数据。我们在有无这些额外数据的情况下,比较了在 Wide-ResNet-28-2 和 Wide-ResNet-28-10 上各增强方法的性能(表 2)。
- 尽管 SVHN 与 CIFAR 之间存在较大差异,RandAugment 在不改变所采用变换列表的情况下,仍然持续与或超越了先前方法的表现。
- 值得注意的是,对于 Wide-ResNet-28-2,仅在核心训练数据集上应用 RandAugment 比通过增加 531,000 张额外训练图像进行增强更能提高性能(98.3% 对比 98.2%)。
- 而对于 Wide-ResNet-28-10,RandAugment 在核心训练集上增强的性能与增加 531,000 张训练图像增强的性能相当(即误差在 0.2% 以内)。
- 尽管如此,应用了 RandAugment 的 Wide-ResNet-28-10 在 SVHN 上仍然达到了与之前使用更高级模型的最先进准确率相匹配的水平。
4.4. ImageNet
-
能提升 CIFAR-10 和 SVHN 模型性能的数据增强方法并不总能改善像 ImageNet 这样的大规模任务。
- 例如,Cutout 显著提升了 CIFAR 和 SVHN 的表现,但在 ImageNet 上未能取得改善。
- 同样,AutoAugment 在 ImageNet 上的性能提升不如在其他任务上那么显著,特别是对于大型网络(比如 AmoebaNetC 提升 0.4%,EfficientNet-B5 提升 0.1%)。
- 缺乏显著提升的一个可能原因是,小型代理任务通过仅限于 ImageNet 约 1000 类中的 10% 类别,而显得尤为贫乏。
-
表 3 比较了 RandAugment 在 ImageNet 上与其他已学习增强方法的性能。
-
在最小的模型(ResNet-50)上,RandAugment 与 AutoAugment 和 Fast AutoAugment 的性能相当,
-
但在更大的模型上,RandAugment 显著优于其他方法,实现了相比基线最多 +1.3% 的提升。例如,在 EfficientNet-B7 上,得到的模型达到了 85.0% 的准确率——这是一个新的最先进水平,相比基线增强提升了 1.0%。
-
这些系统的提升类似于通过设计新架构所达成的改进,但这些提升在推理时间并未带来额外的计算成本。
- 图片注解:表 3 展示了在 ImageNet 上的实验结果。包括 Top-1 和 Top-5 的准确率(%)。ResNet-50 上的基线和 AutoAugment(AA)结果来自 [5]。Fast AutoAugment(Fast AA)的结果来自 [25]。EfficientNet 模型有无 AutoAugment 的结果均来自[47]。每个模型的最佳准确率以粗体表示。需要注意的是,基于人口的数据增强(PBA)尚未在 ImageNet 上实施。
-
4.5. COCO
-
为了进一步测试这种方法的通用性,我们接下来探索了在 COCO 数据集上大规模目标检测的相关任务。
- 已学习的增强策略已经改进了目标检测并导致了最先进的结果。我们遵循了之前的研究,使用相同的架构进行训练并遵循相同的训练计划(见附录 A.3)。
- 简而言之,我们使用了 RetinaNet 作为骨干网,配合 ResNet-101 和 ResNet-200。模型从随机初始化开始训练 300 个周期。
-
表 4 比较了基线模型、AutoAugment 和 RandAugment 之间的结果。
-
为了增强图像的局部边界框,AutoAugment 利用了额外的、未提供给 RandAugment 的专门转换。
-
此外,请注意,AutoAugment 在搜索上消耗了约 15000 GPU小时,而 RandAugment 仅通过对超参数的 6 个值进行调整(见附录 A.3)。尽管转换库较小且没有单独的搜索阶段,RandAugment 仍然超越了基线模型,并提供了与 AutoAugment 相竞争的准确性。
-
我们预留未来工作扩展转换库,以包含针对边界框的特定转换,有可能进一步提升 RandAugment 的结果。
- 图片注解:表 4 展示了对象检测的结果。这是在 COCO 检测任务上的平均精度(mAP)。数值越高表示性能越好。搜索空间大小以可能的数据增强策略数量的量级来报告。模型按照 [57] 的方法,从随机初始化开始训练 300 个周期。
-
4.6. Investigating the dependence on the included transformations
研究与所含变换的关系
-
RandAugment 使用相同的变换列表在不同的任务和数据集上达到了最先进水平的结果。这一结果表明,RandAugment 对于不同数据集的变换选择很大程度上是不敏感的。为了进一步研究其敏感性,
-
我们在 CIFAR-10 上对使用 Wide-ResNet-28-2 进行训练时,对全部 14 种变换的随机子集进行了 RandAugment 的实验。
-
我们没有使用翻转、填充并裁剪或 Cutout,仅专注于因随机子集的 RandAugment 所带来的改进。
-
图 4a 表明,随着变换数量的增加,由于 RandAugment 造成的验证准确率中位数有所提高。然而,即使只有两种变换,RandAugment 也能平均带来超过 1% 的验证准确率提升。
- 图片注解:图 4 显示了当 RandAugment 包含更多变换时,平均性能有所提高。所有图表均报告了使用 RandAugment(\(N=3,\) \(M=4\))训练的 Wide-ResNet-28-2 模型架构在 CIFAR-10 上的中位数验证准确率,变换子集是随机抽取的。训练中不包含其他数据增强。误差线表示 30th 和 70th 百分位数。(a) 随机抽取变换子集的中位数准确率。(b) 包含和不包含 Rotate 变换子集的中位数准确率。(c) 包含和不包含 translate-x 变换子集的中位数准确率。(d) 包含和不包含 posterize 变换子集的中位数准确率。虚线曲线表示未使用任何增强训练的模型的准确率
-
-
为了了解单个变换的影响,我们计算了当它们添加到变换的随机子集中时,每个变换对验证准确率的平均改进
-
我们按照最有帮助到最不有帮助的顺序在表 5 中列出了这些变换。我们看到,虽然几何变换单独来看影响最大,但某些颜色变换平均导致验证准确率下降。
- 图片注解:表 5 列出了每个变换所带来的平均改进。当某一特定变换被加入到随机抽取的变换集合中时,验证准确率的平均差异(%)。对于这项消融研究,使用 RandAugment(\(N=3\), \(M=4\))和随机抽取的变换集合在 CIFAR-10 上训练 Wide-ResNet-28-2 模型,未使用其他数据增强。
-
需要注意的是,虽然表 5 显示了向随机抽样的变换子集添加单个变换的平均效果,但图 4a 显示包含所有变换在一起能带来很好的结果。
-
平均来看,“旋转”是最有帮助的变换,这在之前也被观察到过。
-
为了更详细地了解代表性变换的影响,我们重复了图 4a 中的分析,这次是对于包含和不包含(旋转、水平平移、色阶)的子集。令人惊讶的是,即使在 RandAugment 变换的小子集中包含,“旋转”也能显著提高性能并降低变化性,而“色阶”似乎对所有大小的子集都有负面影响。
-
4.7. Learning the probabilities for selecting image transformations
学习选择图像变换的概率
-
RandAugment 以相等的概率选择所有图像变换。这就引出了一个问题,即是否学习 \(K\) 个概率能够进一步提高性能。
- 大多数图像变换(除了 posterize、equalize 和 autoContrast)都是可微分的,这允许反向传播学习 \(K\) 个概率。
- 我们用 \(\alpha_{ij}\) 表示选择图像变换 \(i\) 进行操作 \(j\) 的学到的概率。对于 \(K=14\) 个图像变换和 \(N=2\) 个操作,\(\alpha_{ij}\) 构成了 \(28\) 个参数。
- 我们初始化所有权重,使得每个变换被选择的概率相等(即 RandAugment),并根据模型如何分类由 \(\alpha_{ij}\) 扭曲的一组保留验证图像的好坏来更新这些参数。这种方法受到了密度匹配的启发,但使用了可微分的方法替代贝叶斯优化。我们把这个方法标记为一阶密度匹配近似(\(1^\text{st}\))。
-
为了测试密度匹配学习每个变换概率的有效性,我们使用 Wide-ResNet28-2 和 Wide-ResNet-28-10 在 CIFAR-10 及其缩减形式(包含 4K 训练样本的 CIFAR-10)上进行了训练。
-
表 6 表明,学习概率 \(\alpha_{ij}\) 略微提高了在缩减版和完整 CIFAR-10 上的性能(RA 与 \(1^\text{st}\))。
- 图片注解:表 6 显示了针对增强的可微优化可以改进 RandAugment。该表格呈现了使用可微分的 RandAugment 在减小版(4000 个样本)和完整 CIFAR-10 数据集上的测试准确率(%)。一阶近似(\(1^\text{st}\))是基于密度匹配(第 4.7 节)。在减小版 CIFAR-10 上训练的模型进行了 500 个周期的训练。CIFAR-10 模型使用与之前相同的超参数进行训练。每个结果都是基于 10 次独立运行的平均值。
-
在一阶方法下,对于缩减版 CIFAR-10,两种模型的准确率分别比翻转和填充-裁剪的基线提高了超过 3.0%。
- 在 CIFAR-10 上,一阶方法使较小模型的准确率提高了 0.9%,较大模型的准确率提高了 1.2%,与基线相比。
- 我们进一步看到,一阶方法始终表现优于 RandAugment,最大的提升体现在使用缩减版 CIFAR-10 训练的 Wide-ResNet-28-10上(87.4% 对比 86.8%)。
- 在 CIFAR-10 上,一阶方法在 Wide-ResNet-28-2 上的表现优于 AutoAugment(96.1% 对比 95.9%),在 Wide-ResNet28-10 上与 AutoAugment 持平。
-
尽管密度匹配方法前景光明,但由于必须独立地对每个图像应用所有 \(K\) 次变换 \(N\) 次,因此这种方法可能代价高昂。因此,由于 \(K N\) 次变换的计算需求对于大图像来说是禁止的,我们将其留待未来探索。总之,我们认为这些结果表明,通过密度匹配学习概率可能提高小规模任务的性能,并将对大规模任务的探索留给将来。
-
Section 5 Discussion
-
数据增强是实现最先进性能不可或缺的方法,被广泛应用于各种深度学习任务中。近年来,通过学习来自动设计数据增强策略也取得了显著成果,并达到了顶尖水平。
-
本文贡献:
- 在本研究中,我们揭示了以往的学习型数据增强方法存在一些系统性的缺陷,主要在于没有根据数据集的大小或模型的规模来调整扭曲的数量和强度,这导致了次优的表现。
- 为了解决这一问题,我们提出了一种简单直接的参数化方法,用于针对特定模型尺寸和数据集大小来定制数据增强策略。
- 我们证明了所提出的 RandAugment 方法,在无需单独搜索数据增强策略的情况下,于 CIFAR-10/100、SVHN、ImageNet 和 COCO 等数据集上,能够与先前的策略相竞争甚至超越它们。这意味着,通过合理的目标参数化,我们可以更有效地利用数据增强,优化模型学习过程,从而提升在多个标准数据集上的性能表现。
-
在之前的工作中,将已学习的数据增强方法扩展到更大的数据集和模型上一直是一个显著的障碍。
- 例如,AutoAugment 和 Fast AutoAugment 只能针对数据的子集上的小型模型进行优化;
- 基于群体的数据增强并没有报道在大规模问题上的应用情况。而所提出的方法很好地扩展到了如 ImageNet 和 COCO 这样的大型数据集上,同时只带来了极小的计算成本(例如,仅 2 个超参数),却能显著提升预测性能。
- 一个悬而未决的问题是,这种方法如何能提高模型的鲁棒性或半监督学习能力。未来的工作将研究这一方法如何应用于其他机器学习领域,这些领域已知数据增强可以提高预测性能,如图像分割、三维感知、语音识别或音频识别。特别是,我们希望更好地理解何时或何种数据集或任务可能需要一个单独的搜索阶段来达到最优性能。最后,一个开放的问题是,如何针对特定任务定制变换集以进一步提高模型的预测性能。
附录
A.1. Second order term from bilevel optimization
双级优化的二阶项
对于增强参数的二阶项优化,我们遵循了 [30] 中的公式,下面对其进行总结。我们将增强参数的优化和神经网络权重的优化视为一个双层优化问题,其中 \(\alpha\) 代表增强参数,\(w\) 代表神经网络的权重。目标是找到最优的增强参数 \(\alpha\),使得当权重在给定α参数进行数据增强的训练集上优化时,验证损失最小化。换句话说:
\[\min_{\alpha}\mathcal{L}_{val}(w^{*}(\alpha),\alpha) \mathrm{s.t.} w^{*}(\alpha)=\operatorname{argmin}_{w}\mathcal{L}_{train}(w,\alpha).\qquad(1) \]然后,继续沿用 [30] 中的方法,我们通过一个单一的虚拟训练步骤来近似这个双层优化问题,
\[\nabla_{\alpha}\mathcal{L}_{val}(w^{*}(\alpha),\alpha)\approx\nabla_{\alpha}\mathcal{L}_{val}(w-\xi\nabla_{w}\mathcal{L}_{train}(w,\alpha),\alpha),\qquad(2) \]其中 \(\xi\) 表示虚拟学习率。方程 2 可以展开为:
\[\nabla_{\alpha}\mathcal{L}_{val}(w^{*}(\alpha),\alpha)\approx\nabla_{\alpha}\mathcal{L}_{val}(w-\xi\nabla_{w}\mathcal{L}_{train}(w,\alpha),\alpha)-\xi\nabla_{\alpha,w}^{2}\mathcal{L}_{train}(w,\alpha)\nabla_{w^{\prime}}\mathcal{L}_{val}(w^{\prime},\alpha),\qquad(3) \]其中 \(w^{\prime}=w-\xi\nabla_{w}\mathcal{L}_{train}(w,\alpha)\)。如果虚拟学习率 \(\xi\) 为零,则第二项消失,第一项变为 \(\nabla\mathcal{L}_{val}(w,\alpha)\),这被称为一阶近似。发现一阶近似对于架构搜索非常关键,大部分的改进(在 0.5% 中的 0.3%)可以通过这种方式更高效地实现(相比 4 天只需要 1.5 天)。不幸的是,当 \(\alpha\) 代表增强参数时,一阶近似变得不相关,因为模型在干净验证图像上的预测并不依赖于增强参数 \(\alpha\)。于是我们只剩下 \(\xi>0\) 时的二阶近似,我们通过有限差分近似来估算它,即
\[\nabla_{\alpha,w}^{2}\mathcal{L}_{train}(w,\alpha)\nabla_{w^{\prime}}\mathcal{L}_{val}(w^{\prime},\alpha)\approx\frac{\nabla_{\alpha}\mathcal{L}_{train}(w^{+},\alpha)-\nabla_{\alpha}\mathcal{L}_{train}(w^{-},\alpha)}{2\epsilon},\qquad(4) \]其中 \(w^{\pm}=w\pm\epsilon\nabla_{w^{\prime}}\mathcal{L}_{val}(w^{\prime},\alpha)\),并且 \(\varepsilon\) 是一个很小的数。
A.1.1 Magnitude methods
幅度方法
-
随机幅度在两个指定值之间均匀随机抽取畸变幅度。恒定幅度在训练过程中将畸变幅度设定为一个恒定数值。
-
线性递增幅度在训练过程中,在两个指定值之间对畸变幅度进行线性插值。
- 具有递增上限的随机幅度与随机幅度相似,但其上限在训练过程中会线性增加。
-
在初步实验中,我们发现所有这些策略都表现出相似的效果。因此,我们选择了恒定幅度策略,因为这个策略仅包含一个超参数,便于操作,我们在后续工作中也采用了这一策略。关于尝试不同幅度策略的实验结果,可见于表 7 中。
- 图片注解:表 7 展示了不同方法设置全局幅度参数 \(M\) 的结果。所有幅度方法都在 CIFAR10 数据集上使用 Wide-ResNet-28-10 模型进行了 200 个周期的训练。报告的准确率是为每种幅度方法的最佳超参数设置,在验证集上进行 10 次运行的平均准确率。所有尝试的幅度方法都探索了 48 种不同的超参数设置。
A.1.2 Optimizing individual transformation magnitudes
优化单个转换量级
-
图 5 展示,在其他所有变换保持不变的情况下,仅改变某一个变换的幅度,会导致准确率发生非常微小的变化。
- 图片注解:图 5 展示了当改变某个图像变换的幅度时的性能。此图使用了所有图像变换共享的幅度,然后仅改变一个操作的幅度而保持其他操作的幅度不变。试验了两种不同的架构(WRN-28-2 和 WRN-28-10)以及改变了两种不同的图像变换(Rotate 和 TranslateX),从而产生了所示的 4 条线。对于选定的变换尝试了 20 种不同的幅度值([0-19])。方块表示找到的最优幅度,菱形表示用于所有其他变换的幅度(WRN-28-2 使用 4,WRN-28-10 使用 5)。此图表明,即便改变单一变换的幅度,对整体性能影响也非常有限,暗示了将所有变换的幅度统一设置为一个值(即共享幅度M)是一个可行且有效的策略。
-
这表明,将所有幅度绑定到一个单一值 \(M\) 上,并不会严重影响模型的性能。
-
在图 5 的所有设置中,绑定幅度与针对旋转操作实验找到的最优幅度相比,准确率差异仅为 0.19% 和 0.18%;而对于 TranslateX 操作实验,这一差异更是微乎其微,仅为 0.07% 和 0.05%。改变一个变换对性能没有重大影响,这使我们认为将所有幅度参数绑在一起是一种合理的做法,能大幅度减少搜索空间的大小。
A.2. Experimental Details
A.2.1 CIFAR
-
训练配置:
- Wide-ResNet 模型训练配置如下:共训练 200 个周期,学习率为 0.1,批次大小为 128,权重衰减为 5e-4,并采用余弦学习率衰减策略。
- Shake-Shake 模型的训练配置为:共训练 1800 个周期,学习率为 0.01,批次大小为 128,权重衰减为 1e-3,同样采用余弦学习率衰减策略。
- ShakeDrop 模型的训练配置则是:同样训练 1800 个周期,学习率为 0.05,由于 128 的批次大小无法单个 GPU 上适配,故调整为批次大小 64,权重衰减为 5e-5,余弦学习率衰减策略保持不变。
-
扰动的幅度
在 CIFAR-10数据集上,对于应用的操作数量(记作N)我们采用了3,而对于扰动的幅度(magnitude),我们尝试了 4、5、7、9 和 11 这几个值。
- 对于 Wide-ResNet-2 模型,发现最优的扰动幅度是 4;
对于 Wide-ResNet-10 模型,最优的扰动幅度是 5。 - 至于 Shake-Shake(26 2x96d)模型,其最优的扰动幅度为 9;
PyramidNet + ShakeDrop 模型的最优扰动幅度则是 7。 - 这些配置是在实验中确定的,用于最大化模型的性能或最小化其错误率,展示了不同模型架构对超参数敏感度的差异。
- 对于 Wide-ResNet-2 模型,发现最优的扰动幅度是 4;
A.2.2 SVHN
-
对于两个 SVHN 数据集,我们在 RandAugment 之后应用了 cutout,就像在 AutoAugment 和其他相关方法中所做的那样。在核心 SVHN 数据集上,对于 Wide-ResNet-28-2 和 Wide-ResNet-28-10 两个模型,我们使用的学习率为 5e-3,权重衰减为 5e-3,并在 200 个周期内采用余弦学习率衰减策略。我们设置 N=3,并尝试了幅度值 5、7、9 和 11。对于 Wide-ResNet-28-2 和 Wide-ResNet-28-10,我们发现最优的幅度值均为 9。
-
在完整的 SVHN 数据集上,对于 Wide-ResNet-28-2 和 Wide-ResNet-28-10 两个模型,我们使用的学习率是 5e-3,权重衰减为 1e-3,并在 160 个周期内使用余弦学习率衰减策略。我们设置 N=3,并尝试了幅度值 5、7、9 和 11。对于 Wide-ResNet-28-2,我们发现最优的幅度是 5;而对于 Wide-ResNet-28-10,最优的幅度是 7。
A.2.3 ImageNet
- ResNet 模型使用标准的 ResNet-50 训练超参数进行了 180 个周期的训练。图像大小为 224×224,权重衰减为 0.0001,使用动量优化器(动量参数为 0.9)。学习率为 0.1,根据批次大小除以 256 的比例进行缩放。使用了全局批次大小为 4096,分布在 32 个工作节点上。对于 ResNet-50,最优的失真幅度是 9,且使用的操作数 N 为 2。我们尝试的失真幅度值有 5、7、9、11、13、15,尝试的 N 值有 1、2 和 3。
- 在 EfficientNet 的实验中,我们使用了默认的超参数和训练计划,这些可以在 [47] 中找到。我们训练了 350 个周期,使用了在 256 个副本上分配的 4096 的批次大小。学习率为 0.016,根据批次大小除以 256 的比例进行缩放。我们使用了 RMSProp 优化器,动量率为 0.9,epsilon 为 0.001,衰减率为 0.9。使用的权重衰减为 1e-5。对于 EfficientNet B5,图像大小为 456×456,而对于 EfficientNet B7,图像大小为 600×600。对于 EfficientNet B5,我们尝试了 N=2 和 N=3,并发现它们的表现大致相同。我们发现 B5 的最优失真幅度为 17。我们尝试的不同幅度有 8、11、14、17、21。对于 EfficientNet B7,我们使用了 N=2,并发现最优的失真幅度为 28。尝试的幅度有 17、25、28、31。
- 在 ImageNet 上,在应用 RandAugment 之前,我们采用了默认的水平翻转和随机裁剪作为增强手段。训练和评估时,我们使用了标准的训练集和验证集划分。
A.3. COCO
- 在使用 RandAugment 的同时,我们还应用了水平翻转和尺度抖动。我们使用的数据增强变换列表与其他所有分类任务中的一致。几何操作按照参考文献 [57] 中定义的方式转换边界框。我们使用了学习率为 0.08 和权重衰减为 1e-4 的设置。焦点损失参数设置为 \(\alpha=0.25\) 和 \(\gamma=1.5\)。我们将 N 设为 1,并尝试了 4 到 9 之间的失真幅度。我们发现对于 ResNet-101 和 ResNet-200,其最优的失真幅度分别是 5 和 6。