https://paperswithcode.com/paper/randaugment-practical-data-augmentation-with
https://github.com/rwightman/pytorch-image-models
https://arxiv.org/abs/1909.13719v2
https://blog.csdn.net/Zerg_Wang/article/details/105030503
Pillow的操作:https://pillow.readthedocs.io/en/stable/reference/Image.html#functions
非官方实现:https://github.com/ildoonet/pytorch-randaugment/blob/master/RandAugment/augmentations.py
摘要:最近的研究表明,数据增扩有可能显著提高深度学习模型的泛化能力。最近,自动增扩策略在图像分类和目标检测方面取得了最先进成果。尽管这些策略的优化目的是提高在验证集上的准确度,它们也导致了半监督学习领域的最先进成果,并且也提高了对图像的常见损坏的鲁棒性。这些方法大规模应用的一个障碍是,单独的搜索阶段(phase)导致训练的复杂,且大大地增加了计算成本。而且,单独的搜索阶段导致无法根据模型或数据集规模来调整正则化强度。通常是在小数据集上训练小模型来找自动增扩策略,然后再将这些策略用来训练大模型。本文消除了这两个障碍。RandAugment的搜索空间大大减小,可以直接在目标任务上训练,不需要单独的代理任务。此外,由于参数化,正则化强度可以根据不同模型和不同数据集规模调整。RandAugment可以在不同的数据集不同的任务上同样地使用,而且是开箱即用,与先前的最先进自动增扩方法在CIFAR-10/100、SVHN和ImageNet上匹敌甚至超越。在ImageNet上,我们实现了85.0%的准确率,比之前的最先进技术提高了0.6%,比基线增强提高了1.0%。在COCO物体检测上,比基线(标准数据增扩)提高了1.0-1.3%,比AutoAugment差距小于0.3%。最后,由于RandAugment就有可解释的超参数,可以用来研究在不同模型和数据集规模下数据增扩是如何起作用的。
1. 引言
数据增扩是一种广泛使用的生成附加数据以改进机器学习系统的方法,用于图像分类[43,23,7,54]、对象检测[13]、实例分割[10]和语音识别[21,16,36]。然而,数据增扩需要专业地人工地设计增扩策略,使得增扩策略能基于每个领域的先验只是。这使得现有数据增扩方法难以扩展到其他应用或领域上。
可学习的数据增扩是最近出现的一种自动设计数据增扩策略方法,可能潜在地解决传统数据增扩的一些弱点[5,57,20,25]。可学习的数据增扩能显著提高图像分类的准确性[5]、模型鲁棒性[32,52,41]和半监督学习的性能[50];也能提高COCO和PASCAL-VOC上的物体检测任务[57]。值得注意得是,不同于设计更强的网络拟合性能,自动增扩带来性能上的提升但是没有带来推理时计算量的增加。
尽管可学习的数据增扩能带来性能上的好处,但是两个单独的优化过程导致算力要求和加法复杂度令人望而却步。最早提出的神经架构搜索也出现这样的问题,双优化过程导致优越的性能,但是因其复杂、计算量大,要实现它是成本难以承受的。后续的一些工作加快了训练和流程的效率[30,38,28,29],最终使该方法适用于基于可微过程的统一优化[30]。对于可学习的数据增扩,后续工作PBA[20]、FastAA[25]提出了更高效的搜索方法,但是这些方法仍然需要单独的优化过程,因而还是大大增加了训练复杂度和训练计算量。
最初的自动增扩的流程是,对一个小的代理任务进行单独的搜索,将搜索结果迁移到更大的目标任务上[59,58]。这个流程有一个强假设,就是代理任务能提供更大任务的预测指示[28,2]。我们会用实验来挑战这个核心假设。具体来说,我们实验证明这个假设是次优的,因为增扩的强度是很依赖于模型和数据集规模的。这些结果表明,如果免除代理任务的单独搜索阶段,可以改进数据增扩的性能。
在这项工作中,我们提出了一种实用的自动增扩方法,称为RandAugment,无需单独的搜索。为了免除单独搜索,我们发现有必要大大减小搜索空间。参数空间的缩减实际上是如此的引人注目,以至于简单的网格搜索就足以找到一个数据增扩策略,该策略输出所有习得的增扩方法,这些方法都采用独立的搜索阶段。我们的贡献可概括如下:
1). 证明了最优的增扩强度取决于模型大小和数据集规模。这意味着,在小的代理任务上增扩策略的单独优化对于转移到大的目标任务可能是次优的。
2). 我们提出了一个显著缩小的搜索空间,包含2个可解释的超参数。可以使用简单的网格搜索来根据模型和数据集定制增扩策略,从而免除了单独搜索过程。
3).我们的方法在CIFAR[22]、SVHN[34]和ImageNet[6]取得了最先进结果。在物体检测[27]上,比最先进方法差距小于0.3%mAP。在ImageNet上,我们实现了85.0%的最新结果,比以前的方法提高了0.6%,比基线数据增扩提高了1.0%。
2. 相关工作
数据增扩在深度视觉模型的训练中起着重要作用。在自然图像上,水平翻转、随机裁剪或平移常被用于分类和检测模型[53,23,13]。在MNIST上,使用不同尺度、不同位置和不同方向的弹性畸变来取得好的结果[43,4,49,42]。虽然这些例子增扩了数据,但是没有改变训练集的数据分布,但是另外一些操作也可以有效地提高泛化能力。一些方法随机删除或添加噪声到图像块以提高验证集准确度[8,55]、鲁棒性[46,52,11],或两者都有[32]。Mixup[54]是一种在ImageNet和CIFAR-10上特别有效的方法,其神经网络是在图像的凸组合上训练。在物体检测任务中,以物体为中心的裁剪是常用的,而[9]提出在训练集上通过剪切和粘贴在训练集上添加新物体。
不同于将一个个单独的操作添加到增扩数据上,其它工作关注的是寻找不同操作的最佳组合策略。例如,SmartAugmentation是学习一个网络将同类别的两个或多个样本合并以生成新数据[24]。[48]根据从训练集中学习到的分布,通过贝叶斯方法生成增强数据。[7]是在习得的特征上使用变换,例如加噪声、插值、外插。另外,生成对抗式网络也被用来选择增扩操作的最佳序列[39]。也有用生成式对抗网络直接生成训练数据的[37,33,56,1,44],不过这类方法似乎不如从预先定义的增扩操作中学习一个操作序列有用[40]。
另一种从数据中学习数据增扩策略的方法是AutoAugment[5](AA),它最初使用强化学习来选择操作序列以及它们的应用概率和大小。AA的应用涉及到多个层次的随机性:1)对于每个minibatch的每张图像,子策略的选择是基于均匀分布的。2)每个子策略中的操作的应用概率是相互关联的。3)有些操作在方向上具有随机性,例如图像可以顺时针也可以逆时针旋转。随机性的层次的增加导致要训练的网络的多样性的增加,这样反过来又能够提高许多数据集的泛化能力。
最近,有几篇论文使用了改进的优化算法和优化搜索空间来更高效地寻找自动增扩策略[20,25]。虽然搜索时间大大减小,但是仍需要单独的搜素阶段,导致自动增扩的适用性仍然是低的。因此,本文的目的是完全免除在一个单独的代理任务上的搜索阶段。
RandA的一些改进是基于一些最近的数据增扩策略搜索的改进工作。例如,基于群体的增扩PBA[20]发现,最优的增扩幅度是随着训练过程而增加的,这启发了我们不要搜索每个变换的最佳幅度,而是有一个固定的幅度安排,我们将在第3节详细讨论。此外,FastAA[25]发现,为密度匹配而训练的数据增扩策略可以提高泛化精度,这启发了我们的一阶可微项(见第4.7节)。
3. 方法
RandA的首要目标是免除在代理任务上的单独搜索阶段。原因是单独搜索阶段会使训练很复杂,而且训练成本很高,更重要的是,会导致次优结果(见4.1节)。为了免除单独的搜索阶段,我们希望将数据增扩策略的参数折叠成训练模型的超参数。鉴于先前的可学习增扩方法[5,25,20]包含30个以上的参数,我们将重点放在大幅缩减增扩的参数空间上。
先前研究工作表面,可学习的增扩策略的主要好处是增加样本的多样性[5,25,20]。实际上,先前工作是枚举一个个策略来从14个可用变换中选择使用哪些变换,以及每个变换的应用概率:
为了减少参数空间,同时保持图像的多样性,我们将学习策略和使用每个变换的概率替换为一个无参数过程,即总是以统一的概率来选择一个变换。对一张训练图像,给定个变换,RandA可以表达个潜在的策略。
要考虑的最后一组参数是每个增扩畸变的幅度。和[5]一样,我们同样使用线性标度来表示每个变换的强度。简单地说,每个变换都位于0到10的整数范围内,其中值10表示给定变换的最大尺度。数据增扩策略就是要确认每个增扩变换的整数[5,25,20]。为进一步缩减参数空间,我们观察到每个变换的可学习的幅度在训练过程中遵循类似的schedule(文献[20]的图4),并假设仅仅用一个全局畸变M就足以参数化所有变换。我们用4种方法实验了M在训练阶段的schedule:恒定幅度、随机幅度、线性增加幅度、上界逐步增加的随机幅度。实验详细信息见附录A.1.1。
得到的算法包含2个参数,N和M,可以用2行Python代码表示,见图2。这两个参数是可解释的,N和M取较大值也就意味着增加正则化强度。标准方法可用于高效地执行超参数优化[45,14],然而,在给定极小的搜索空间的情况下,我们发现朴素的网格搜索是非常有效的(第4.1节)。接下来的章节中,我们比较我们方法和先前的自动增扩方法的有效性,来证明我们方法的的所有选择是正确的。
4 结果
为了研究数据增扩的空间,我们进行了图像分类和物体检测实验,具体的是,在CIFAR-10、CIFAR-100、SVHN和ImageNet数据集以及COCO物体检测数据集实验,以方便和先前工作比较。对所有这些数据集,我们采用相同的网络结构和数据变换集合。我们的目的是要证明我们的方法比先前的可学习的增扩方法要好。
4.1 单独代理任务的系统性失败
先前的可学习数据增扩的一个核心假设是,构建一个小的代理任务,它可以反映一个更大的任务[58,59,5]。尽管这个假设也可以提升性能[5,57,36,25,20],但尚不清楚该假设是否过于严格,并可能导致次优的数据增扩策略。
在第一节中,我们质疑了这样一个假设,即用一个小代理任务来模拟问题是适用于可学习的数据增扩。具体地,我们从两个因素来探讨这个问题,即模型大小和数据集规模,这两个因素在构建小代理任务时常常是很小的。为了探索这个假设,我们系统地测量了数据增扩策略对CIFAR-10的影响。首先,我们训练了一系列WideResNet网络架构[53],其模型大小可以通过改变“宽度”参数来系统性地修改,宽度参数控制着每层的卷积核的个数。我们在CIFAR-10上训练这些网络,将最终准确度和基线模型(左右翻转和随机偏移)对比。Wide-ResNet模型使用额外的K=14种数据增扩(见方法那一节)训练,也即一系列的全局畸变幅度M,其参数化为范围[0,30]的线性标度。(原文注释:请注意,本节的幅度范围超过了方法那一节的幅度范围,因为我们希望这一节的初步试验能探索更大的幅度范围。我们保留了与[5]相同的标度,取值为10,以保持可比性。)
图3a展示了三个Wide-ResNet模型在不断增加的畸变幅度下的准确度相对增量。方块表示取得最高准确度的畸变幅度。请注意,尽管存在测量噪声,图3a显示了畸变幅度-准确度增量的系统趋势。特别是,图3b中,网络越大,最优畸变幅度也越大。也就是说,更大的网络需要更大的数据畸变来正则化。图1突出显示了不同大小模型的最佳畸变幅度的差异。相反,基于[5]的学习策略为所有的网络结构设置一个固定的畸变幅度,见图3b的虚线,这明显是次优的。
对于第二个因素,构造一个小的代理任务在训练集的小的子集上训练。图3c所示是Wide-ResNet-28-10在不同数量的CIFAR-10训练数据下,在不同的畸变幅度下的准确度相对各自的基线的增量。方块表示取得最高准确度增量的畸变幅度。请注意,尽管存在测量噪声,图3c显示了畸变幅度的系统趋势。我们首先观察到,在较小的训练集上数据增扩能带来更多的提升(图3c中3.0% vs. 1.5%)。此外,我们发现,在更大的数据集上,最优畸变幅度也更大。乍一看,这可能与小数据集需要更强正则化的观点不符。
图3d可以看到,训练集越大,最优畸变幅度就越大。这种反直觉现象的原因的一种猜想是,在小的数据集上过于激进的数据增扩会导致低的信噪比。无论如何,这一趋势显示了,在更大规模数据集上需要更高强度的数据增扩,也凸显了在训练集子集上的代理任务的缺点,也就是说,习得的数据增扩策略会更适合代理任务,而不是更大的感兴趣任务(目标任务,最后任务)。
最优的数据增扩强度依赖于模型大小和数据集规模表明。对于较大的任务,小的代理任务会提供次优的策略。这一结果表明,需要一个与之不同的方法来寻找最优的数据增扩策略。具体的,我们的这项工作关注的是将模型权重参数和数据增扩策略统一优化。图3表明,仅仅搜索一个在各种变换设置里共享的畸变幅度参数M,就足以获得超过[5]的准确度增量。此外,我们发现,单独对每个幅度进行优化可以获得进一步的提升,见附录A.1.2节。
此外,图3a和3c表明,仅采样几个畸变幅度就足以获得良好的结果。结合第2个自由参数N,我们考虑这些结果来规定一个学习数据增扩策略的算法。在随后的章节中,我们通过最小网格搜索确定两个自由参数N与M,并将这些结果与基于代理任务的需要大量计算的可学习的数据增扩进行比较。
4.2 CIFAR
CIFAR-10已经被之前的数据增扩方法广泛地研究,因此我们首先在CIFAR-10上测试。所有方法默认的数据增扩包括翻转、填充裁剪、Cutout[8]。N和M的取值根据在验证集上的性能来确定,从训练集中抽取出的5K个样本,N和M分别从1和5种取值中选择。结果表明,RandA在4种网络中要么是匹敌的(差距在0.1%以内),要么是最强的,见表2。我们还在更具挑战性的CIFAR-100上做了实验,网络是Wide-ResNet-28-2和Wide-ResNet-28-10,N和M分别从2和4种取值中选择,也就是N={1,2},M={2,6,10,14},从训练集中抽取5K张作为训练集。在Wide-ResNet-28-2,最优取值是N=1、M=2,在Wide-ResNet-28-10上,最优取值是N=2、M=14。同样的,RandA在所有网络上取得最优或者匹敌的结果,见表2。
4.3 SVHN
SVHN(街景房牌号)数据集的图像都是数字而不是自然图像,其增扩策略与CIFAR-10会有很大不同。AA[5]确认了CIFAR-10与SVHN在增扩策略上会有质的不同。类似的,[50]提出,对于CIFAR-10的半监督学习设置,从CIFAR-10中学得的策略要比从SVHN中学得的策略要好。
SVHN的核心训练集包含73K张图像[34]。另外,SVHN还包含531K张难度更低的额外图像用于补充训练集。我们比较了使用和不使用补充训练集的性能,网络是Wide-ResNet-28-2和Wide-ResNet-28-10,结果见表2。尽管SVHN和CIFAR-10有很大不同,但是RandA始终匹敌或者超越之前的最优方法,而且是在没有改变候选变换操作列表的情况下。值得注意的是,在网络为Wide-ResNet-28-2时,使用RandA在核心训练集上带来的提升比使用531K张训练补充集要更高(98.3% vs 98.2%)。在网络为Wide-ResNet-28-10时,在核心训练集使用RandA带来的提升与使用补充训练集匹敌,差距在0.2%以内。尽管如此,在Wide-ResNet-28-10上使用RandA和之前的最优方法[5]匹敌,而之前的最优方法使用了更先进的网络。
4.4 ImageNet
在CIFAR-10和SVHN上带来提升的数据增扩方法不一定能在ImageNet这样大规模的数据上带来提升。例如,Cutout极大地提高了CIFAR和SVHN的性能[8],但未能提高ImageNet[32]上的性能。同样的,AA[5]在ImageNet上带来的提升也不如在其他任务上的提升,尤其是在大网络上,Amobanet-C[5]为+0.4%,EfficientNet-B5[47]为+0.1%。没有带来大的提升的一个可能原因是,小的代理任务将分类类别缩减为ImageNet的1000类别的10%,而变得很差,没有代表性。
表3是在ImageNet上RandA与其它方法的对比。在较小网络(ResNet50)上,RandA与其它方法匹敌;在较大网络上,RandA明显优于其它方法,比基线提高了1.3%。例如,在EfficientNet-B7上,达到85.0%,这是最先进水平,比基线提高了1.0%。这个提升与用NAS[59,28]改进网络结构取得的提升相似,但是我们的方法不会在推理时产生额外的计算量。
4.5 COCO
为了进一步测试我们方法的通用性,我们接下来在COCO大规模物体检测上实验。可学习的增扩策略已经在物体检测上带来提升并取得最先进水平[57](Learning data aug-mentation strategies for object detection,2019)。我们遵循先前工作的设置,使用相同的网络,使用相同的训练规程,见附录A.3。简单地说,我们使用RetinaNet[26],ResNet-101和ResNet-200作为主干[17],随机初始化,训练300个epoch。
表4比较了基线、AA、RandA。AA为了改进边界框的定位而增加了额外的变换操作[57],RandA没有增加额外的变换操作。此外,请注意AA搜索了15K个GPU小时,而RandA仅仅调6个超参数(见附录A.3)。尽管使用的候选操作更少,没有使用单独搜索阶段(即没有使用代理任务),RandA超越了基线,并取得与AA匹敌的结果。我们为将来工作预留空间:增加候选操作,包含用以改进边界框定位的变换操作,以进一步改进RandA的结果。
4.6 研究对所包含的变换操作的依赖性
RandA在不同数据集不用任务上使用相同的候选变换操作列表取得最先进水平。这说明RandA在不同数据集上对候选变换操作的选取是非常不敏感的(鲁棒的)。为了进一步研究这一点,我们随机抽取完整的候选变换列表——包含14个变换操作——的子集,做实验,在CIFAR-10上,以Wide-ResNet-28-2为网络。我们没有使用翻转、填充裁剪和Coutout,而只关注在候选操作列表的子集上,RandA带来多少提升。图4a表明,随着子集中候选操作数量的增加,验证集准确度中值会提高。即使只有2个变换操作,RandA在验证集准确度上还是带来平均1%的提升。
为了了解单个变换操作的影响,我们实验了将单个变换操作添加到候选子集上,验证集平均准确度的提升。表5中我们列出了最有用到最没用的变换操作。从中可以看到,单独的几何变换带来最大的提升,而一些颜色变换会带来验证集平均准确度的下降。请注意,尽管表5显示了增加单个变换到随机子集里从平均上会带来提升或下降,图4a显示了包含所有变换操作会取得最好的结果。平均上,旋转操作是最有用的,[5,57]也同样发现这一点。为了更详细地研究变换操作的影响,我们重复了图4a中的子集使用和不使用操作[]的分析过程,这回我们关注的是rotate,translate-x,posterize变换操作。令人惊讶的是,rotate能显著提高性能,并且方差更小(笔者:图4b中红色曲线更平缓),即使是在小的候选子集上;而posterize似乎在所有大小的子集上都带来性能的下降。
4.7 对选取的图像变换,学习其使用概率
RandA以相同的概率选取所有变换操作,这就带来一个问题,学习K个概率是否能带来进一步提升。大多数图像变换操作都是可微的,除了postererize、equalize和autoContrast,可微就导致可反向传播,可反向传播就可学习K个概率[30]。我们用表示操作选取的图变换。对于K=14种图像变换和N=2种操作,构成了28个参数。我们初始化所有权重使所有变换是等概率的,也就是相当于RandA,并根据模型对畸变的验证集图像的分类的表现来更新这些参数。这个方法是受密度匹配[25]的启发,不过使用可微方法替代贝叶斯优化。我们将次方法称为一阶密度匹配近似。
为了检验密度匹配的有效性,我们在CIFAR-10及其缩小版本(训练集4K张图像)上训练Wide-ResNet-28-2和Wide-ResNet-28-10。从表6可以看出,在CIFAR-10及其缩小版本上,习得的会带来轻微的改进,见B表中RA vs. 1st 。在缩小版CIFAR-10上,在两个网络上,一阶方法相比基线(翻转、填充裁剪)提升了超过3%。在CIFAR-10上,一阶方法在小网络上相比基线提升0.9%,在大网络上相比基线提升1.2%。我们还发现,一阶方法一直都比RandA要好,特别的,在缩小版CIFAR-10、在大网络Wide-ResNet-28-10上的改进最大(87.4% vs. 86.8%)。在完整的CIFAR-10上,在小网络Wide-ResNet-28-2上,一阶方法优于AA(96.1%对95.9%),在大网络Wide-ResNet-28-10上,一阶方法和AA相当。(作者注释:和基线比较,在初步实验中,我们还通过虚拟训练步骤[30]学习了一种基于微分的方法。在这种方法中,二阶近似法得到的结果始终为负,见附录A.1。)尽管一阶方法效果挺好,但是计算成本高,因为必须将K个变换在每张图片上分别运行N次。因此,在大规模图像数据集上运行KN个变换的计算成本是令人望而却步的,我们将这个方法留给未来进一步地改进。综上所述,这些结果表明,通过密度匹配学习概率可以在小规模任务上提升性能,在大规模任务上留给未来探索空间。
5 讨论
数据增扩是实现最先进性能的必要方法[43,23,7,54,13,36]。可学习的数据增扩能够有助于自动设计该策略,并同样实现了最先进结果[5,25,20,57]。本项工作证明了先前的可学习数据增扩方法存在系统性的缺陷,也就是不根据数据集规模和网络大学来调整畸变幅度和畸变变换数量,这导致了次优的性能。为了解决这个问题,我们提出参数化方法,用于特定的模型和特定大小规模的定制的增扩方法。实验证明,在CIFAR-10/100、SVHN、ImageNet和COCO上,RandA匹敌或优于执勤啊的方法[5,25,20,57],并且不需要单独去搜索数据增扩策略。
在以前的工作中,将学习到的数据增扩策略扩展到更大规模数据集或者更大的网络上会存在显著的障碍。例如,AA和FastAA只能在缩小版的数据集上对小网络进行优化[5,25];PBA没有报告在大的任务上的结果[20]。本文所提的方法能很好的扩展到大数据集像ImageNet和COCO上,同时计算成本最小(例如,调2个超参数),但是显著提高了预测准确度。该方法是如何提高模型鲁棒性[32,52,41]和半监督学习[50],仍然是一个悬而未决的开放问题。未来的工作是将这种方法应用到其它的、已知数据增扩能提升性能的领域,例如图像分割[3]、3D感知[35]、语音识别[19]或音频识别[18]。特别是,我们希望更好地理解是否或在何种情况下,数据集或任务需要一个单独的搜索阶段来达到最佳性能。最后,一个开放的、悬而未决的问题是,如何根据给定的任务来调整候选变换集合,以进一步提高性能。
附录
A.1 二阶项的双层优化
对于增扩参数优化的二阶项,我们遵循[30]中的公式,总结如下。我们把神经网络的增扩参数和权值的优化问题看作一个双层优化问题,其中是增扩参数,是神经网络的权重参数。目标就是寻找最优的增扩参数,使得在给定下,权重参数在训练集上优化,验证集的损失最小。换句话说:
然后,使用[30]中的方法,我们通过一个虚拟训练步骤来近似这种双层优化,
其中是虚拟学习率。公式(2)可扩展为:
其中.......略去几百字。
A.1.1 幅度方法
随机幅度是在两个数值之间均匀地采样畸变幅度值。恒定幅度是在训练过程中将畸变幅度定义为一个常数。线性增加幅度是在训练过程中在两个数值之间插值作为畸变幅度值。上界逐步增加的随机幅度,类似于随机幅度,但是上界在训练过程中是线性增加的。初步试验中,我们发现这些方法都是同样好的,因此我们选择恒定幅度,因为这样策略就只有1个超参数了,我们在剩下的工作中使用这个参数。我们尝试不同幅度方法的实验结果见表7。
A.1.2 单个变换幅度的优化
图5所示,是在其它变换的幅度不变的情况下,更改单个变换的幅度会产生非常小的准确度变化。这表明,将所有变换的幅度取一个相同的值,不会对模型性能有太大影响。在图5实验的所有设置中,将所有幅度取相同值,与对单个幅度优化的差别,在旋转操作实验中是0.19%和0.18%,早TranslateX操作实验中是0.07%和0.05%。改变一个变换的幅度不会对性能产生大影响,因而我们觉得将所有的变换的幅度取相同值是明智的,可以大大减小搜索空间。
A.2 实验细节
A.2.1 CIFAR
Wide-ResNet模型训练200个epoch,初始学习率为0.1,批量大小为128,权重衰减为5e-4,余弦学习率衰减。Shake-Shake[12]模型训练1800个epoch,初始学习率为0.01,批量大小为128,权重衰减为1e-3,余弦学习率衰减。ShakeDrop[51]训练1800个epoch,初始学习率为0.05,批量大小为64(因为在单个GPU上设为128不适合),权重衰减为5e-5,余弦学习率衰减。
在CIFAR-10上,我们使用3种操作(N),尝试将幅值取值为(4,5,7,9,11)。对于Wide-ResNet-2和Wide-ResNet-10,我们发现最优的幅度分别为4和5。Shake-Shake(26 2x96d)最优幅度为9,PyramidNet + ShakeDrop最优幅度为7。
A.2.2 SVHN
在两个SVHN数据集上,我们在RandA之后还使用了Cutout,正如AA和相关方法所做的一样。在SVHN核心数据集上,对于Wide-ResNet-28-2和Wide-ResNet-28-10,我们使用了5e-3的学习率、5e-3的权重衰减和余弦学习率衰减,训练200个epoch。设置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个epoch。设置N=3,幅度候选值为5、7、9和11。我们发现,Wide-ResNet-28-2的最优幅度为5,Wide-ResNet-28-10的最优幅度为7。
A.2.3 ImageNet
对ResNet训练180个epoch,使用标准的ResNet50超参数训练。图像大小为224×244,权重衰减为0.0001,使用动量参数为0.9的动量优化器momentum。学习率为0.1,学习率根据批量大小除以256进行缩放。全部批量大小为4096,划分为32个worker。对于ResNet-50,最优的畸变幅度为9,N=2。我们尝试过的畸变幅度为5、7、9、11、13、15,尝试的N值为1、2和3。
EfficientNet使用默认的超参数和训练规程,见[47]。训练350个epoch,批量大小为4096,划分为256个replicas。学习率为0.016,学习率根据批量大小除以256进行缩放。使用RMSProp优化器,动量率为0.9,epsilon为0.001,衰减为0.9。对于EfficientNet B5,图像大小为456×456,而对于EfficientNet B7,图像大小为600×600。对于EfficientNet B5,我们尝试了N=2和N=3,发现两者性能差不多。我们尝试的幅度候选值为8、11、14、17、21,发现最优取值为17。对于EfficientNet B7,使用N=2,我们尝试的幅度候选值为17、25、28、31,发现最优幅度取值为28。
还使用了默认的ImageNet数据增扩方法,水平翻转和随机裁剪,是在RandA之前使用的。使用了标准的训练集/验证集划分方法。
A.3. COCO
除了COCO,还使用了水平翻转和尺度抖动。RanA的变换列表和图像分类中是一样的。边界框的几何变换操作按照[57]中的方法。学习率0.08,权重衰减1e-4。focal loss的参数是,。设置N=1,畸变幅度为4到9之间。我们发现ResNet-101和ResNet-200的最佳畸变幅度分别为5和6。
网友评论