Bag of Tricks for Image Classification with Convolutional Neural Networks

本文总结了多个用于CNN图像分类的训练技巧,包括ResNet架构调整、大批次训练、低精度训练、模型微调及训练优化策略。通过这些技巧,不仅提高了ResNet-50在ImageNet上的top-1准确率,而且展示了它们在目标检测和语义分割任务中的潜在应用。具体方法涉及学习率策略、标签平滑、知识蒸馏、mixup训练等,这些方法能够有效防止过拟合,提升模型泛化能力。
部署运行你感兴趣的模型镜像

论文原文

Bag of Tricks for Image Classification with Convolutional Neural Networks

Abstract

  许多关于图像分类的论文提出了一些训练过程中的trick,这些trick对于模型的提升产生了一定作用,但论文原文中往往很少提及,只在源代码中体现。本文整理了一些常见的trick,并证明这些trick的组合可以改善各种CNN图像分类模型。例如本文在ImageNet数据集上,将ResNet-50的top-1准确率从75.3%提升到了79.29%。同时,本文还证明了这些trick还能在目标检测、语义分割领域起到作用。

1. Introduction

  分类网络自从提出,已经出现了许多改进版本如 VGG,NiN,Inception,ResNet,DenseNet,NASNet等,ImageNet的top-1准确率也从62.5% (AlexNet) 提升到了82.7% (NASNet-A)。准确率的提升不仅来自模型架构的改进,也来自训练过程的损失函数、数据增强方法、优化方法等。
  本文首先回顾了ResNet的三种模型架构调整,并提出了一个新的调整。然后讨论了四个额外的训练过程的改进trick,最后讨论了在这些在图像分类上作用的trick能否对目标检测、语义分割产生作用。

2. Training Procedures

  一个基础的神经网络训练模板如下,随机选取b张图像(即batch_size=b)输入网络,进行计算梯度,然后更新网络的参数,这个过程在整个数据集上进行K次(即K个epoch):
在这里插入图片描述
  本文使用ResNet中对上述过程最广泛的实现作为baseline,以下步骤依次进行:

  1. 随机采样一张图像,转化为32位浮点数保存,并且像素值保存在0到255之间
  2. 随机以[3/4,4/3]的长宽比、[8%,100%]的面积比裁剪图像,并将这些图像调整为224*224的尺寸
  3. 以0.5的概率对图像做水平翻转
  4. 以从[0.6,1.4]中随机采样获取的比例作为系数,调整图像的色调(hue)、饱和度(saturation)、亮度(brightness)
  5. 在图像中加入PCA噪声,其系数从正态分布N(0,0.1)中采样得到
  6. RGB通道分别减去[123.68, 116.779, 103.939],除以[58.393, 57.12, 57.375]进行归一化

  验证阶段,将每张图像的较短边调整为256,同时保证长宽比,然后裁剪其中心的224*224区域,利用相似的归一化方法处理RGB通道,验证期间不执行任何随机增强。
  卷积层和全连接层的权重使用Xavier算法初始化。特别的,将参数设置为从[-a,a]中均匀采样的随机值, a = 6 / ( d i n + d o u t ) a= \sqrt{6/(d_{in}+d_{out})} a=6/(din+dout) . d i n , d o u t d_{in},d_{out} din,dout分别为输入输出的通道数.所有的偏置bias初始化为0,对于BN单元, λ \lambda λ向量初始化为1, β \beta β向量初始化为0。
  NAG方法用于训练,每个模型在8个Nvidia V100 GPUs 上以256的batch_size训练120个epochs,学习率初始化为0.1,在第30、60、90个epoch时学习率降低1/10。

2.1 Experiment Results

在这里插入图片描述

3. Efficient Training

  硬件的发展,使得能够以低精度、大batch size来同时提高模型准确率和训练速度

3.1 Large-batch training

  batchsize 较大的模型通常会降低模型的准确度,这里有四种方法来保证模型准确度的同时,扩大batchsize

Linear scaling learning rate 小批量SGD中,梯度下降是一个随机过程,增加batchsize不会改变随机梯度的期望,但会减小方差,即减少梯度中的噪声,因此可以提高学习率,让模型从沿着梯度的反方向取得更大的进步。这里可以随着批次大小来线性增加学习率。如果batchsize为256的学习率为0.1,若batchsize更改为b,那么将学习率提高到 0.1 × b / 256 0.1 \times b/256 0.1×b/256

Learning rate warmup 训练刚开始的时候,所有的参数是随机值,因此离最终的值较远。使用较大的学习率会导致数值不稳定。在此预热方法中,开始的时候使用较小的学习率,等训练过程稳定后切换为初始学习率。可以将学习率从0线性增加到初始学习率。如果使用前m个batch来预热,那么初始学习率为 η \eta η,对于第i个batch,学习率调整为 i η / m i\eta/m iη/m

Zero η \eta η BN层受限标准化输入,然后执行c尺度变换 γ x + β \gamma x + \beta γx+β。其中 γ \gamma γ常初始化为1, β \beta β常初始化为0。在此策略中,将位于ResNet网络中的残差块末尾的所有BN层的 γ \gamma γ常初始化为0.从而使得残差块仅返回其输入,网络具有较小的层数时更容易训练。

No bias decay 权重衰减常用与包括权重和偏差在内的所有可学习参数,等同于对所有参数使用L2正则化。此策略中,仅将权重衰减应用于卷积层和全连接层,其他参数均不调整。

3.2 Low-precision training

  新硬件可使得能够以16位的精度训练模型,从而使训练速度提高

3.3 Experiment Results

在这里插入图片描述
在这里插入图片描述

4. Model Tweaks

  模型调整对网络架构进行微调,如更改特定卷积层的步幅,这种调整不会改变计算复杂度,但很可能提高模型精度。

4.1 ResNet Architecture

在这里插入图片描述

4.2 ResNet Tweaks

  模型ResNet-B,ResNet-C是两种流行的模型架构调整,ResNet-D是本文提出的调整架构

ResNet-B 调整了ResNet的下采样模块,原架构路径A中使用了步长为2的1*1卷积,忽略了输入特征图的3/4。ResNet-B换掉了前两个卷积的步长大小。

ResNet-C 利用3个33卷积代替输入模块中的77卷积 从而降低了参数量

ResNet-D 受ResNet-B启发,发现路径B中也忽略了特征图的3/4。实验发现,在卷积之前添加一2*2平均池化层,效果不错。
在这里插入图片描述

4.3 Experiment Results

在这里插入图片描述

5. Training Refinements

5.1 Cosine Learning Rate Decay

  经过学习率预热之后,需要对学习率进行逐渐成倍降低。
  余弦退火策略是一种方法,一简化版本遵循余弦函数将学习率从初始值降低为0,假设总批次为T,忽略预热阶段,对于第t个batch,学习率为:

η t = 1 2 ( 1 + cos ⁡ ( t π T ) ) η \eta_t = \frac{1}{2}(1+\cos(\frac{t\pi}{T}))\eta ηt=21(1+cos(Ttπ))η

η \eta η为初始学习率,
在这里插入图片描述

5.2 Label Smoothing

  图像分类网络最后一层通常是全连接层,隐藏元大小为类别数量,每个隐藏元输出预测为该类别的概率分数,这些分数可利用softmax函数归一化:
在这里插入图片描述

  我们可通过最小化交叉熵损失,学习一个与标签相同分布的模型:
在这里插入图片描述

  但是最小化交叉熵损失会使得模型输出差异性较大的分数,即过分相信标签,这可能导致过度拟合。标签平滑可以一定程度上解决这种过拟合现象,它将标签的值进行了调整,不是原来的0-1独热编码,其中 ϵ \epsilon ϵ是一个小的常数:
在这里插入图片描述
在这里插入图片描述

5.3 Knowledge Distillation

  在知识蒸馏中,使用一个教师模型来辅助训练当前模型(学生模型),教师模型通常选择具有较高准确的预训练模型,如使用ResNet-152作为教师模型来辅助训练ResNet-50模型。
  在训练过程中,增加蒸馏损失来逼近教师模型和学生模型之间的输出差异:

在这里插入图片描述

T可以使得softmax的输出更平滑,从而使学生模型可以从教师模型中提取关于标签的分布信息。

5.4 Mixup Training

  mixup随机采用采样两张图像 ( x i , y i ) , ( x j , y j ) (x_i,y_i) ,(x_j, y_j) (xi,yi)(xj,yj) 然后合成一个新的图像:
在这里插入图片描述

其中 λ ∈ [ 0 , 1 ] \lambda \in [0,1] λ[0,1]从分布 B e t a ( α , α ) Beta(\alpha,\alpha) Beta(α,α)中随机获得。在mixup中,本文仅使用合成的新的训练样本 ( x ^ , y ^ ) (\hat{x},\hat{y}) (x^,y^)

5.5 Experiment Results

在这里插入图片描述
在这里插入图片描述

6. Transfer Learning

在这里插入图片描述
在这里插入图片描述
  虽然使用标签平滑,蒸馏和混合训练有利于软化标签,但模糊的像素集信息可能会降低总体的像素级精度。

7. Conclusion

  本文提出的12种训练技巧,不仅可以持续性地提高分类模型的精度,还可以提高目标检测、语义分割模型的精度。

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

Deep person re-identification is the task of recognizing a person across different camera views in a surveillance system. It is a challenging problem due to variations in lighting, pose, and occlusion. To address this problem, researchers have proposed various deep learning models that can learn discriminative features for person re-identification. However, achieving state-of-the-art performance often requires carefully designed training strategies and model architectures. One approach to improving the performance of deep person re-identification is to use a "bag of tricks" consisting of various techniques that have been shown to be effective in other computer vision tasks. These techniques include data augmentation, label smoothing, mixup, warm-up learning rates, and more. By combining these techniques, researchers have been able to achieve significant improvements in re-identification accuracy. In addition to using a bag of tricks, it is also important to establish a strong baseline for deep person re-identification. A strong baseline provides a foundation for future research and enables fair comparisons between different methods. A typical baseline for re-identification consists of a deep convolutional neural network (CNN) trained on a large-scale dataset such as Market-1501 or DukeMTMC-reID. The baseline should also include appropriate data preprocessing, such as resizing and normalization, and evaluation metrics, such as mean average precision (mAP) and cumulative matching characteristic (CMC) curves. Overall, combining a bag of tricks with a strong baseline can lead to significant improvements in deep person re-identification performance. This can have important practical applications in surveillance systems, where accurate person recognition is essential for ensuring public safety.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值