Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

来源:Tong He Zhi Zhang Hang Zhang Zhongyue Zhang Junyuan Xie Mu L
Amazon Web Services
fhtong,zhiz,hzaws,zhongyue,junyuanx,[email protected]

论文链接:https://arxiv.org/pdf/1812.01187.pdf

摘要

最近在图像分类研究方面取得的许多进展都可以归功于训练程序的改进,例如数据增强和优化方法的改变。然而,在文献中,大多数改进要么是作为实现细节简要提及,要么仅在源代码中可见。在本文中,我们将通过消融研究考察这些精化的集合,并实证评估它们对最终模型精度的影响。我们将展示,通过将这些细化组合在一起,我们能够显著地改进各种 CNN 模型。例如,我们在 ImageNet 上将 ResNet-50 stop-1 验证集准确度从 75.3 %提高到 79.29%。我们还将证明,图像分类精度的提高导致在其他应用领域(如对象检测和语义分割)更好的迁移学习性能。

1. 引言

自 2012 年引入 AlexNet 【15】 以来,深卷积神经网络已经成为图像分类的主导方法。此后又提出了各种新的架构,包括 VGG 【24】、NiN 【16】、Inception 【1】、ResNet 【9】、DenseNet 【13 】和 NASNet 【34】。同时,我们也看到了模型精度提高的稳定趋势。例如,ImageNet 【23 】上的 top-1 确认准确度已从 62.5 (AlexNet) 提高到 82.7 (NASNet-A)。

然而,这些进步不仅仅来自于改进的模型架构。训练过程的细化,包括损失函数的变化、数据预处理和优化方法也起了主要作用。过去几年提出了大量这样的改进,但受到的关注相对较少。在文献中,大部分仅作为实现细节简要提及,其他仅在源代码中发现。

在本文中,我们将检查一组训练程序和模型体系结构改进,这提高了模型的准确性,但几乎没有改变计算复杂性。它们中的许多都是次要的技巧,如修改特定卷积层的步幅大小或调整学习率计划。然而,总的来说,它们起到了很大的作用。我们将在多个网络结构和数据集上对其进行评估,并报告其对最终模型精度的影响

                                   Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

表 1:各种模型的计算成本和验证准确度。使用我们的技巧进行训练的 ResNet 能够超越使用标准基准进行训练的更新和改进架构

我们的经验评估表明,一些技巧可以显著提高精度,将它们结合在一起可以进一步提高模型的精度。在应用所有技巧后,我们将 ResNet-50 与表 1 中的其他相关网络进行了比较。请注意,这些技巧将 ImageNet 上的 ResNet50 stop-1 确认准确度从 75.3 提高到 79.29。它也优于其他更新和改进的网络体系结构,如 SE-ResNeXt-50。此外,我们的方法可以推广到其他网络(Inception V3 1 和 MobileNet 11)和数据集 (Place365 32)。我们进一步证明了用我们的技巧训练的模型在其他应用领域如对象检测和语义分割中带来更好的转移学习性能。

论文大纲

我们首先在第 2 节中设置了一个基线训练程序,然后讨论了几个技巧,在第 3 节中,我们回顾了针对 ResNet 的三个小模型架构调整,并提出了一个新模型。然后在第 5 节中讨论了 4 个额外的训练程序细化。最后,我们研究了这些更准确的模型是否有助于第 6 节中的学习转移。

我们的模型实现和培训脚本在 GluonCV 1 中是公开可用的。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

2. 训练程序

算法 1 给出了用随机梯度下降法训练神经网络的模板,在每次迭代中,我们随机抽取 b 幅图像计算梯度,然后更新网络参数。它在 K 数据集后停止。算法 1 中的所有函数和超参数可以用许多不同的方式实现。在本节中,我们首先指定算法 1 的基线实现。

2.1. 基线训练程序

1. 随机采样图像并将其解码为【 0,255】 中的 32 位浮点原始像素值。

2. 随机裁剪一个长宽比在 [3/ 4;4/ 3 ]中随机采样,面积在 [8%,100% ]中随机采样的矩形区域,然后将裁剪后的区域调整为 224 × 224 像素的图像。

3. 水平翻转,概率为 0.5。

4. 刻度色调、饱和度和亮度,系数从[ 0.6,1.4 ]均匀绘制

5.使用从正态分布 N (0,0.1) 中采样的系数添加 PCA 噪声

6. 将 RGB 通道分别减去 123.68、116.779、103.939,再除以 58.393、57.12、57.375,即可标准化。

在验证过程中,我们将每个图像的短边缘调整到 256 像素,同时保持其纵横比。接下来,我们裁剪出中心的 224 x 224 区域,并标准化类似于训练的 RGB 通道。确认期间,我们不执行任何随机扩增。

           卷积层和全连通层的权重用 Xavier 算法 [6] 初始化。我们将参数设置为均匀地从[-a,a],Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

这里的 din 和 dout 分别是输入和输出通道的大小。所有偏置项初始化为 0。对于批次标准化层,Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)向量初始化为 1,Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)向量初始化为 0。

Nesterov 加速梯度 (NAG) 下降 【20】 用于训练。在总批量为 256 的 8 个 Nvidia V100 GPU 上,针对 120 个历元对每个模型进行训练。在第 30、60 和 90 个历元时,学习速率初始化为 0.1 并除以 10。

2.2 实验结果

我们评价了 3 个 CNN:ResNet-50 [9],InceptionV3 1,and mobilenet [11]。对于 Inception-V3,我们将输入图像的大小调整为 299 x 299。我们使用 ISLVRC2012 23 数据集,该数据集有 130 万张用于训练的图像和 1000 个类别。验证准确度如表 2 所示。可见,我们的 ResNet-50 结果略优于参考结果,而我们的 baseline Inception-V3 和 MobileNet 由于培训程序不同,准确度略低。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

表 2:参考实现和我们基线的验证集准确性。请注意,Incep-tion V3 是通过 299 x 299 输入图像获得的。

3. 高效训练

硬件,特别是 GPU,近年来发展迅速。因此,许多与性能相关的权衡的最佳选择已经改变。例如,现在在培训期间使用较低的数值精度和较大的批量更为有效。在本节中,我们回顾了能够实现低精密度和大批量在不牺牲模型准确性的情况下进行训练。一些技术甚至可以提高准确性和训练速度。

3.1. 大批量训练

小批处理 SGD 将多个样本组合为一个小批处理,以增加并行性并降低通信成本。但是,使用大批量可能会减慢训练进度。对于凸问题,收敛速度随着批量的增加而降低。类似的实验结果也被报道在神经网络中【25】。换言之,对于相同数量的历元,与接受较小批量训练的模型相比,接受较大批量培训的模型的确认准确度降低。

多个工作中【 7】,【14 】都提出了启发式来解决这个问题。在下面的段落中,我们将研究 4 种启发式方法,它们有助于为单机训练扩展批处理大小。

          线性比例学习率.在小批处理 SGD 中,梯度下降是一个随机过程,因为每个小批处理都是随机选择的。增加批量不会改变随机梯度的期望值,但会减小其方差。换句话说,大的批处理量降低了梯度中的噪声,因此我们可能会提高学习率,使其沿着与梯度方向相反的方向取得更大的进步。Goyal 等人【7 】报告指出,对于 ResNet-50 培训,随着批量的增加,学习率呈线性增加。特别是如果我们按照 He 等【9 】为批量 256 选择 0.1 作为初始学习率,则当变更为较大批量 b 时,我们将初始学习率增加至 0.1 Xb/256.

          预热学习率.在训练开始时,所有参数通常是随机值,因此远离最终解决方案。学习率过高可能导致数值不稳定。在预热启发式中,当训练过程是稳定的 【9 】时,我们在开始时使用小的学习率,然后切换回初始的学习率。Goyal 等人【7 】提出了一种逐步预热策略,将学习速率从 0 线性增加到初始学习速率。换句话说,假设我们将使用前 m 个批次(例如 5 个数据历元)进行预热,并且初始学习率是Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧),那么在批次 i,Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧) 时,我们将学习率设置为 Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

Zero Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧) .ResNet 网络由多个残差块组成,每个残差块由多个卷积层组成。给定输入 x,假设block(x) 是残差块中最后一层的输出,这个残差块然后输出 x +block (x)。注意,残差块的最后一层可以是批处理规范化 (BN) 层。首先是 BN 层标准化其输入(用Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)  表示),然后执行缩放转换 Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)。它们都是可学习的参数,其元素分别被初始化为 1s 和 0s。在零初始化启发式中,我们对位于残差块末尾的所有 BN 层初始化 0。因此,所有残差块只需返回它们的输入,模拟具有较少层的网络,并且在初始阶段更容易训练。

无偏置衰减 

权重衰减通常适用于所有的学习参数,包括权重和偏差。正如 Jia 等指出的那样,它等价于对所有参数应用 L2 正则化以使它们的值趋向于 0。【14】,但是,建议仅将正则化应用于权重,以避免过拟合。无偏差衰减启发式遵循这一建议,它只适用于权重衰减的卷积和全连通层的权重。其他参数,包括偏差和其他参数在 BN 层,是没有规定的。

请注意,LARS 【4】 提供了逐层自适应学习率,据报告对极大批量(超过 16K)有效。而在本文中,我们将自己限制在足以进行单机培训的方法上,在这种情况下,批量不超过 2K 往往会带来良好的系统效率。

3.2. 低精度训练

神经网络通常训练精度为 32 位浮点 (FP32)。也就是说,所有数字都以 FP32 格式存储,算术运算的输入和输出也都是 FP32 数字。新的硬件,但是,可能会加强算术逻辑单元的较低精度的数据类型。例如,前面提到的 Nvidia V100 在 FP32 中提供了 14 个 TFLOP,但在 FP16 中提供了超过 100 个 TFLOP。如表 3 所示,在 V100 上从 FP32 切换到 FP16 后,整体训练速度加快了 2 ~ 3 倍。

尽管存在性能优势,但精密度降低的范围更窄,使得结果更可能超出范围,进而干扰培训进度。Micikevicius 等人19 提议将所有参数和**存储在 FP16 中,并使用 FP16 计算梯度。同时,所有参数在 FP32 中都有一个副本,用于参数更新。此外,将标量乘以损耗,以更好地将梯度的范围对准到 FP16 中,也是一种实用的解决方案。

3.3. 实验结果

ResNet-50 的评价结果如表 3 所示。与批量为 256 和 FP32 的基线相比,使用更大的 1024 批量和 FP16 可将 ResNet-50 的培训时间从每个时段的 13.3 min 减少到每个时段的 4.4 min。此外,通过叠加所有启发式大批量训练,与基线模型相比,用 1024 批量和 FP16 训练的模型甚至略微增加了 0.5 top-1 精度。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

图 1:ResNet-50 的体系结构。卷积核大小,输出通道大小和步幅大小(默认为 1)说明,类似于池化层。

 

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

图 2:3 次 ResNet 调整。ResNet-B 修改 ResNet 的下采样块。ResNet-C 进一步修改输入柄。此外,ResNet-D 再次修改了下采样块。

所有启发式算法的消融研究如表 4 所示。仅通过线性缩放学习率将批量从 256 增加至 1024,导致 top-1 精度降低 0.9,同时叠加了其余三种启发式算法,弥补了差距。在培训结束时从 FP32 切换到 FP16 不会影响准确性。

4. 模型调整

阶段 4 输出残差 Conv 1 x 1,2048 路径 A 模型调整是对网络体系结构的微小调整,例如改变特定卷积层的步幅。这样的调整通常几乎不改变计算复杂性,但可能对模型精度有不可忽略的影响。在本节中,我们将使用 ResNet 作为示例来研究模型调整的影响。

4.1. ResNet 体系结构

第 1 阶段第 2 阶段第 3 阶段向下采样 Conv 1V Conv 3 x 3,512 输出输入我们将简要介绍 ResNet 体系结构,特别是与模型调整相关的模块。详细信息请参见 He et al.【9】.ResNet 网络由一个输入干、四个后续阶段和一个最终输出层组成,如图 1 所示。输入干具有一个 7 7 卷积,输出通道为 64,步幅为 2,随后是一个 3 3 最大汇集层,步幅为 2。输入干将输入宽度和高度减小 4 倍,通道大小增加到 64。

从阶段 2 开始,每个阶段从向下采样块开始,然后是几个剩余块。在下采样块中,有路径 A 和 路径B。路径 A 有三个卷积,其核大小分别为 1 1、3 3 和 1 1。第一个卷积的步幅为 2,使输入的宽度和高度减半,最后一个卷积的输出通道比前两个大 4 倍,称为瓶颈结构。路径 B 使用步长为 2 的 1 1 卷积将输入形状转换为路径 a 的输出形状,这样我们就可以对两条路径的输出求和得到下采样块的输出。残差块与下采样块类似,只是只使用步幅为 1 的卷积。

可以改变每个阶段中剩余块的数量,以获得不同的 ResNet 模型,例如 ResNet-50 和 ResNet-152,其中 number 表示网络中卷积层的数量。

4.2. ResNet 调整

接下来,我们回顾两种流行的 ResNet 调整,分别称为 ResNet-B 和 ResNet-C。之后,我们提出了一个新的模型调整 resweak ResNet-D。

ResNet-B .这个改进首先出现在 ResNet 【8】 的一个 Torch 实现中,然后被多个文献 【7,12,27 】采用。它改变了 ResNet 的下采样块。观察发现,路径 A 中的卷积忽略了输入特征映射的四分之三,因为它使用的核大小为 1,步幅为 2。ResNet-B 切换了路径 A 中前两个卷积的步幅大小,如图 2a 所示,所以没有忽略任何信息。由于第二个卷积的核大小为 3X3,路径 a 的输出形状保持不变。

ResNet-C .此调整是期初在 Inception-v2 【26】 中提出的,可在实现中找到其他模型。如 SENet 【12】、PSPNet 【31】、DeepLabV3 【1】 和 ShuffieNetV2 【21】。观察到卷积的计算代价是核的宽度或高度的二次方。一个 7X7 卷积比一个 3X3 卷积贵 5.4 倍。所以这个 tweak 用三个保守的 3 X3 的卷积来代替输入中的 7 X7的卷积,如图 2b 所示,第一个和第二个卷积的输出通道为 32,步幅为 2,而最后一个卷积使用的是 64 输出通道。

ResNet-D.受 ResNet-B 的启发,我们注意到向下采样块的路径 B 中的 1 X1 卷积也忽略了输入特征映射的 3 /4,我们希望修改它,这样就不会忽略任何信息。实验发现,在卷积前加一个步幅为 2 的 2 x2 平均池化层,其步幅变为 1,在实际应用中效果良好,对计算量影响不大。该调整如图 2c 所示。

4.3. 实验结果

我们使用第 3 节中描述的三种调整和设置评价 ResNet-50,即批量为 1024,精密度为 FP16结果见表 5。

结果表明,与 ResNet50 相比,ResNet-B 在向下采样块的路径 A 中接收到更多信息,并将验证准确度提高约 0:5。将 7X 7 卷积替换为 3个 3X3 卷积,得到另一个 0.2 %改进。在下采样块的路径 B 中获取更多信息,提高了另一个 0.3 %的计算准确度。总共,ResNet-50-D 使 ResNet-50 提高 1%.Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

表:3:基线 (BS 256,FP32) 和硬件效率更高的设置 (BS 1024,FP16) 之间 ResNet-50 的训练时间和测试集准确度比较。

                                   Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                                    表 4:ResNet-50 上各有效启发式训练的效果。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                           表 5:比较 ResNet-50 与三种模型在尺寸、FLOPS和 ImageNet 测试集上准确性方面比较

另一方面,这四个模型具有相同的模型大小。ResNet-D 的计算开销最大,但其与 ResNet-50 相比,在浮点操作方面的差异在 15 %以内。在实践中,我们观察到 ResNet-50-D 的训练速度比 ResNet-50 慢 3 倍。

5. 训练精细化

在本节中,我们将描述旨在进一步提高模型精度的四个训练细化。

5.1. 余弦学习率衰减

学习速率的调整对训练至关重要。在第 3.1 节所述的学习速率预热之后,我们通常会从初始学习速率开始稳步降低。广泛使用的策略是指数衰减学习率。He 等人【9 】每 30 个历元递减 0.1,我们称之为阶跃衰减。Szegedy 等人【26】 每两个时期的下降率为 0.94。

与此相反,Loshchilov 等人18 提出余弦退火策略。简化版本是通过跟随余弦函数将学习率从初始值降低到 0。假设批次总数为T (忽略预热阶段),则在批次 t 时,学习率 Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)计算为:

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

其中是 Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)初始学习率。我们称这种安排为余弦衰减。

                                                          Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                                                                  (a) 学习率表

 

                                                               Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                                                                  (b) 验证集准确性

图 3:预热时学习率时间表的可视化。上图:批量 1024 的余弦和步进时间表。底部:关于两种计划表的 Top-1 确认准确度曲线。

图 3a 显示了阶跃衰减和余弦衰减之间的比较。可以看出,余弦衰减降低学习率缓慢的开始,然后成为几乎线性降低的中间,并在年底再次减慢。与阶跃衰减相比,余弦衰减从一开始就衰减了学习,但直到阶跃衰减使学习率降低了 10 倍,这可能改善了训练进程。

5.2.标签平滑

图像分类网络最后一层通常是一个完全连接的层,其隐藏大小等于用 K 表示的标签数量,以输出预测的置信度分数。给定一张图像,用 zi 表示 i 类的预测分数。这些分数可由 softmax 操作符标准化,以获得预测概率。用 q 表示 softmax 运算符 q =softmax (z) 的输出,i 类概率 qi 可通过以下公式计算

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

很容易知道qi>0并且Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧) 所以 q 是一个有效的概率分布。

另一方面,假设这个图像的真实标签是 y,我们可以构造一个真概率分布为 pi =1,如果是 y,否则是 0。训练期间,我们最小化负交叉熵损失

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

 

去更新模型参数,使得这两个分布彼此相似。特别地,通过这种方式,如果构造p?,我们知道,Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)最佳解决方案是Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)inf,在保持其他足够小.换句话说,它鼓励的输出分数显著不同,这可能导致过拟合。

标签平滑的想法首先被提出来是训练 Inception-v2 【26】。它将真概率的构造改为

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)是个小常数。现在最优解变成

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

这里Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)可以是任意的实数。这鼓励了全连接层的有限输出,并且可以更好地进行推广。当Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)=0,这个差距Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)将是无穷大,随着Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)的增大,差距减小。特别地,当Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)时,所有最佳的Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)都是相同的,

图 4a 显示了当我们移动Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)时,差距是如何变化的-给定 ImageNet 数据集 K= 1000。

实证比较了分别使用和不使用标签平滑的两种 ResNet-50-D 模型的输出值,并计算了最大预测值与剩余平均值之间的差距。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)=0.1 和 K =1000 条件下,理论差距约为 9.1。图 4b 所示为 ImageNet 验证集中预测的两个模型的差距分布。很明显,标签平滑使得分布中心在理论值处,并且极值较少。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

图 4:ImageNet 上标签平滑有效性的可视化。上图:理论上 Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)与其他值的差距随着的Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)增加而减小。下图:最大预测值与剩余平均值之间差距的经验分布。

5.3. 知识蒸馏

在知识蒸馏 【10 】中,我们使用教师模型来帮助训练当前的模型,即学生模型。教师模型往往是预先训练好的模型,准确性更高,因此通过模仿,学生模型能够在保持模型复杂性不变的情况下提高自身的准确性。一个例子是使用 ResNet-152 作为教师模型来帮助培训 ResNet-50。

在训练期间,我们增加了蒸馏损失,以惩罚来自教师模型和学习者模型的 softmax 输出之间的差异。给定一个输入,假设 p 是真实的概率分布,z 和 r 分别是学生模型和教师模型最后完全连接层的输出。请记住以前我们使用负交叉熵损失l (p,softmax (z)), 为了测量 p 和 z 之间的差异,我们再次使用相同的损失进行蒸馏。因此,损失改为

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

其中 T 是温度超参数,使 softmax 输出更加平滑,从而从教师的预测中提取标签分布的知识。

5.4混合训练

第 2.1 节中,我们描述了如何在训练前增强图像。这里我们考虑另一种增强方法,称为混合 【29】。在 mixup 中,每次我们都随机抽取两个示例 (xi;yi) 和 (xj;yj)。然后我们通过这两个例子的加权线性插值形成一个新例子:

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

其中入在【0,1】之间是从Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)分布中随机抽取的数字,在混合训练中,我们只使用新的样本Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

5.5 实验结果

现在我们评估我们的四个训练细化,我们设置Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)=0.1,对于标签平滑来自文献【26】,对于模型蒸馏,我们使用T=20,对于与训练模型Resnet-152-D,使用两个余弦衰减和应用标签平滑用作教师。在混合训练中,我们在贝塔分布中选择 a=0.2,并将历元的数量从 120 增加到 200,因为混合的例子要求更长的训练进度才能更好地收敛。在混合训练与精馏相结合的情况下,对混合训练的教师模型也进行了训练。

我们证明,细化不仅限于 ResNet 体系结构或 ImageNet 数据集。首先,我们在 ImageNet 数据集上对 ResNet-50-D、Inception-V3 和 MobileNet 进行优化训练。在表 6 中逐一显示了应用这些训练细化的确认准确度。通过叠加余弦衰减、标签平滑和混淆,我们稳步改进了 ResNet、InceptionV3 和 MobileNet 模型。Distillation 在 ResNet 上运行良好,但在 Inception-V3 和 MobileNet 上运行不佳。我们的解释是教师模型不是来自同一家庭的学生,因此在预测中具有不同的分布,给模型带来负面影响。

为了支持我们的技巧可以转移到其他数据集,我们在 MIT Places365 数据集上训练了一个 ResNet-50-D 模型,有和没有改进。在表 7 中报告了结果。我们发现精炼提高了验证集和测试集的前 5 名准确度。

 6迁移学习 

迁移学习是训练有素的图像分类模型的一个主要下游使用案例。在本节中,我们将研究到目前为止所讨论的这些改进是否有益于迁移学习。特别地,我们选择了两个重要的计算机视觉任务,目标检测和语义分割,并通过不同的基础模型来评估它们的性能。             

6.1. 目标检测

对象检测的目标是定位图像中对象的边界框。我们使用 PASCAL VOC 【3】 评价了性能。与 Ren 等相似。【22】,我们分别使用 VOC 2007 trainval 和 VOC 2012 trainval 的 union 集进行培训,并分别使用 VOC 2007 test 进行评估。我们在此数据集上训练 Faster-RCNN 【22】,并对 Detectron【 5】 进行改进,如线性预热和长训练计划。在前面的讨论中,Faster-RCNN 中的 VGG-19 基础模型被各种预先训练的模型所替代。我们保持其他设置相同,使增益完全来自基础模型。

平均精密度 (mAP) 结果报告于表 8 中。我们可以观察到,具有较高验证准确度的基础模型以一致的方式获得了较高的快速 RNN mAP。特别是 ImageNet 上精确度为 79.29 的最佳基础模型可以得到map VOC 以 81.33 的比分领先标准4%。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                                表 6:ImageNet 逐个堆叠训练精化的验证集准确度。基线模型来自第 3 节。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

表 7:MIT Places 365 数据集的验证集和测试集的结果。如第 2.1 节所述生成预测。ResNet-50-D Efficient 指使用第 3 节中的设置进行培训的 ResNet-50-D,ResNet-50-D 最好进一步结合余弦调度、标签平滑和混淆。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                             表 8:在 Pascal VOC 上评价各种预先训练的基础网络的 Faster-RCNN 性能。

6.2. 语义分割

语义分割根据输入图像预测每个像素的类别。我们使用完全卷积网络 (FCN) 【17】 完成这个任务,并在 ADE20K【 33】 数据集上训练模型。继 PSPNet 【31】 和 Zhang 等。我们用前面讨论过的各种预训练模型代替基网络,并在第三阶段和第四阶段分别应用扩张网络策略【 2】 和 【28】,在基网络的顶部构造一个全卷积译码器进行最后的预测。

像素精度 (pixAcc) 和平均相交于并集 (mIoU) 都在表 9 中报告。与我们关于对象检测的结果相矛盾的是,余弦学习率计划有效地提高了 FCN 性能的精度,而其他改进提供了次优的结果。对这种现象的一个潜在解释是,语义分割预测在像素级。而模型与标签平滑,蒸馏和混淆有利于软化标签,模糊的像素级信息可能会模糊和降低整体像素级的准确性。

Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络在图像分类中的技巧)

                                                              表 9:在 ADE20K 上评价的各种基础网络的 FCN 性能。

7. 结论

在本文中,我们调查了十多个技巧来训练深卷积神经网络,以提高模型精度。这些技巧对模型体系结构、数据预处理、丢失函数和学习速率计划进行了细微修改。我们在 ResNet-50,Inception-V3 和 MobileNet 上的实证结果表明,这些技巧一致地提高了模型的准确性。更令人兴奋的是,将所有这些数据叠加在一起可以获得更高的精确度。此外,这些改进的预训练模型显示在迁移学习方面具有很强的优势,在目标检测和语义分割方面都有很大的提高。我们相信,这些优势可以扩展到更广泛的领域,在这些领域中,分类基础模型受到青睐。

 

参考文献

[1] L. Chen, G. Papandreou, F. Schroff, and H. Adam. Re-
thinking atrous convolution for semantic image segmenta-
tion. CoRR, abs/1706.05587, 2017. 1, 2, 5
[2] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and
A. L. Yuille. Deeplab: Semantic image segmentation with
deep convolutional nets, atrous convolution, and fully con-
nected crfs. IEEE transactions on pattern analysis and ma-
chine intelligence, 40(4):834–848, 2018. 8
[3] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn,
and A. Zisserman. The PASCAL Visual Object Classes
Challenge 2007 (VOC2007) Results. http://www.pascal-
network.org/challenges/VOC/voc2007/workshop/index.html.
7
[4] B. Ginsburg, I. Gitman, and Y. You. Large batch training of
convolutional networks with layer-wise adaptive rate scaling.
2018. 3
[5] R. Girshick, I. Radosavovic, G. Gkioxari, P. Doll´ ar,
and K. He. Detectron. https://github.com/
facebookresearch/detectron, 2018. 7
[6] X. Glorot and Y. Bengio. Understanding the difficulty of
training deep feedforward neural networks. In Proceedings
of the thirteenth international conference on artificial intel-
ligence and statistics, pages 249–256, 2010. 2
[7] P. Goyal, P. Doll´ ar, R. B. Girshick, P. Noordhuis,
L. Wesolowski, A. Kyrola, A. Tulloch, Y. Jia, and K. He.
Accurate, large minibatch SGD: training imagenet in 1 hour.
CoRR, abs/1706.02677, 2017. 3, 4

[8] S. Gross and M. Wilber. Training and investigating residual
nets. http://torch.ch/blog/2016/02/04/resnets.html. 2, 4
[9] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learn-
ing for image recognition. In Proceedings of the IEEE con-
ference on computer vision and pattern recognition, pages
770–778, 2016. 1, 2, 3, 4, 5
[10] G. Hinton, O. Vinyals, and J. Dean. Distilling the knowledge
in a neural network. arXiv preprint arXiv:1503.02531, 2015.
6
[11] A. G. Howard,M. Zhu, B. Chen, D. Kalenichenko,W.Wang,
T. Weyand, M. Andreetto, and H. Adam. Mobilenets: Effi-
cient convolutional neural networks for mobile vision appli-
cations. arXiv preprint arXiv:1704.04861, 2017. 1, 2
[12] J. Hu, L. Shen, and G. Sun. Squeeze-and-excitation net-
works. arXiv preprint arXiv:1709.01507, 7, 2017. 1, 4, 5
[13] G. Huang, Z. Liu, L. van der Maaten, and K. Q. Wein-
berger. Densely connected convolutional networks. In 2017
IEEE Conference on Computer Vision and Pattern Recogni-
tion (CVPR), pages 2261–2269. IEEE, 2017. 1
[14] X. Jia, S. Song, W. He, Y. Wang, H. Rong, F. Zhou, L. Xie,
Z. Guo, Y. Yang, L. Yu, et al. Highly scalable deep learning
training system with mixed-precision: Training imagenet in
four minutes. arXiv preprint arXiv:1807.11205, 2018. 3

[15] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet
classification with deep convolutional neural networks. In
Advances in neural information processing systems, pages
1097–1105, 2012. 1
[16] M. Lin, Q. Chen, and S. Yan. Network in network. arXiv
preprint arXiv:1312.4400, 2013. 1
[17] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional
networks for semantic segmentation. In Proceedings of the
IEEE conference on computer vision and pattern recogni-
tion, pages 3431–3440, 2015. 8
[18] I. Loshchilov and F. Hutter. SGDR: stochastic gradient de-
scent with restarts. CoRR, abs/1608.03983, 2016. 5
[19] P. Micikevicius, S. Narang, J. Alben, G. Diamos, E. Elsen,
D. Garcia, B. Ginsburg, M. Houston, O. Kuchaev,
G. Venkatesh, et al. Mixed precision training. arXiv preprint
arXiv:1710.03740, 2017. 3
[20] Y. E. Nesterov. A method for solving the convex program-
ming problem with convergence rate o (1/kˆ 2). In Dokl.
Akad. Nauk SSSR, volume 269, pages 543–547, 1983. 2
[21] H.-T. Z. NingningMa, Xiangyu Zhang and J. Sun. Shufflenet
v2: Practical guidelines for efficient cnn architecture design.
arXiv preprint arXiv:1807.11164, 2018. 5
[22] S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards
real-time object detection with region proposal networks. In
Advances in neural information processing systems, pages
91–99, 2015. 7
[23] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh,
S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein,
et al. Imagenet large scale visual recognition challenge.
International Journal of Computer Vision, 115(3):211–252,
2015. 1, 2
[24] K. Simonyan and A. Zisserman. Very deep convolu-
tional networks for large-scale image recognition. CoRR,
abs/1409.1556, 2014. 1
[25] S. L. Smith, P.-J. Kindermans, C. Ying, and Q. V. Le. Don’t
decay the learning rate, increase the batch size. arXiv
preprint arXiv:1711.00489, 2017. 3
[26] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna.
Rethinking the inception architecture for computer vision.
CoRR, abs/1512.00567, 2015. 2, 4, 5, 6, 7

[27] S. Xie, R. Girshick, P. Doll´ ar, Z. Tu, and K. He. Aggregated
residual transformations for deep neural networks. In Com-
puter Vision and Pattern Recognition (CVPR), 2017 IEEE
Conference on, pages 5987–5995. IEEE, 2017. 1, 4
[28] F. Yu and V. Koltun. Multi-scale context aggregation by di-
lated convolutions. arXiv preprint arXiv:1511.07122, 2015.
8
[29] H. Zhang, M. Ciss´ e, Y. N. Dauphin, and D. Lopez-
Paz. mixup: Beyond empirical risk minimization. CoRR,
abs/1710.09412, 2017. 7
[30] H. Zhang, K. Dana, J. Shi, Z. Zhang, X.Wang, A. Tyagi, and
A. Agrawal. Context encoding for semantic segmentation.
In The IEEE Conference on Computer Vision and Pattern
Recognition (CVPR), June 2018. 8
[31] H. Zhao, J. Shi, X. Qi, X. Wang, and J. Jia. Pyramid scene
parsing network. In Computer Vision and Pattern Recogni-
tion (CVPR), 2017 IEEE Conference on, pages 6230–6239.
IEEE, 2017. 5, 8

[32] B. Zhou, A. Lapedriza, A. Khosla, A. Oliva, and A. Torralba.
Places: A 10 million image database for scene recognition.
IEEE transactions on pattern analysis and machine intelli-
gence, 2017. 1
[33] B. Zhou, H. Zhao, X. Puig, S. Fidler, A. Barriuso, and A. Tor-
ralba. Scene parsing through ade20k dataset. In Proceed-
ings of the IEEE Conference on Computer Vision and Pattern
Recognition, 2017. 8
[34] B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le. Learn-
ing transferable architectures for scalable image recognition.
CoRR, abs/1707.07012, 2017. 1