Bag of Tricks for Image Classification with Convolutional Neural Networks

Paper: He_Bag_of_Tricks_for_Image_Classification_with_Convolutional_Neural_Networks_CVPR_2019

  • 训练基本过程(baseline training procedure ):包括训练集和测试集的数据增广、参数初始化、优化方法、学习率调整策略。

  • 高效训练(efficient training):包括大批量训练、低精度训练等。

  • 模型调整(model tweak):比较三种ResNet变体的优劣。

  • 训练改进(training refinement):包括Cosine Learning rate decaying、Label smoothing、knowledge distillation、mixup training。

  • 图像分类模型与迁移学习:讲了图像分类模型准确率的提高有助于迁移至其他领域,如目标检测、语义分割。

1.Baseline Training Procedure

  1. 随机裁剪,随机水平翻转

  2. 调整色调 饱和度 明亮度系数在[0.6,1.4]范围均匀采样

  3. 从正态分布 N(0,0.1) 采样参数用于添加PCA噪声

  4. 归一化RGB通道

  5. Xavier Initialization:用Xavier 算法进行卷积层和全连接层的参数初始化

  6. 优化器:NAG替代SGD (但当前多用Adam) 

2.Efficient Training

2.1针对large-batch

问题描述:设定较大的batch size虽然能够减少训练时间,有助于收敛的稳定性。但过大的batch size会使得内存容量增加,模型泛化能力下降,有陷入局部最优解的风险

  1. linear scaling learning rate

具体操作:batch size从256变为一个较大的数b,lr=0.1,那么学习率应变为 0.1 × b/256

  1. warm up

先用较小的学习进行训练,等到训练过程稳定之后再切换到设置的初始学习率

具体操作:设置m个bacth用于预热,设置初始学习率为η。则在预热阶段,第i个batch时,学习率为i∗η/m。

  1. Zero γ

原本ResNet的每个block的最后一层都有BN层,BN层首先标准化输入,记为x,然后进行尺度变换γx+β。

具体操作:在所有BN层中将γ初始化为0,相当于在训练的初始阶段减少了网络的层数,易于训练

  1. No bias decay

为避免过拟合,一般将weight decay应用在所有可学习的参数上,包括weights和bias。但是它们的参数量总和仅占总参数的0.02%,不会带来过拟合,如果对其进行正则化,会增加计算量,损失模型灵活性

具体操作:只对卷积层和全连接层的权重进行衰减,而不去正则化所有的biases、BN层的γ和β

2.2针对low-precision

除了常使用的32位float类型(FP32)计算能力,还有提供低精度的16位float类型(FP16)计算能力的设备,

用更低的精度进行神经网络的训练,有好处有坏处:

  • 好处: 精度低了,训练速度快

  • 坏处: 精度低了,数值的范围窄,计算结果容易溢出

改进缺点的策略:

  1. 在训练过程中,用FP16来存储参数、计算梯度,同时留一个32位精度的参数的备份,用于更新参数

  2. 计算损失函数时,乘以一个数(尺度),将梯度的范围更好地对齐到FP16上

2.3Experiment Result

仅通过线性缩放学习率将批量大小从 256 增加到 1024 会导致 top-1 准确率降低 0.7%,将启发式方法叠加可以弥补差距。

3.Model Tweaks

ResNet架构和变体

  1. ResNet-B

调整原因:原有的residual block的下采样部分,使用了kernel=1x1和stride=2,忽略掉了3/4的信息,所以改进为kernel=3x3和stride=2。

  1. ResNet-C

调整原因:鉴于卷积操作时,kernel size与计算消耗呈平方关系,因此将输入时的卷积操作的7x7的kernel,改为3个3x3的卷积操作。

  1. ResNet-D

调整原因:与ResNet-B相似,下采样的右边通道同样存在着忽略3/4信息的问题,因此进行改进。

实验发现,将卷积改为sride=1,同时在前面加上一个kernel=2x2,stride=2的平均池化层,效果理想。

4.Training Refinement

4.1余弦学习率衰减(Cosine Learning rate decay)

  • 问题描述:常用的Learning Rate Decay是Step Decay,但跳跃变化较大,带来较大的Momentum,会引起训练不稳定

  • 具体方法:余弦学习率衰减

 

  • Attention:根据实验结果,Step Decay再衰减之后,准确率就上来了,而不是像论文中说Cos Decay能加速训练过程。

Step Decay方法60-80个Epoch就达到的水准,要Cos Decay120个Epoch去达到

Cosine Decay是个思路,可在任务中尝试一下

4.2 标签平滑(Label Smoothing)

  • 问题描述:全连接层,然后对应标签的one-hot编码的方式会让模型对标签的过分相信,导致过拟合。

  • 具体方法:标签平滑的思想是降低对于标签的信任,是一种抑制过拟合的手段。例如可以将损失的目标值从1稍微降到0.9,或者将从0稍微升到0.1。它将真实的概率改造为

其中,ε是一个小的常数,K是类别数,y是真正的标签,i代表第i个类别,q_i是图片为第i类的概率。

LSR是一种通过在标签y中加入噪声,实现对模型约束,降低模型过拟合程度的一种正则化方法。

4.3 知识蒸馏(Knowledge Distillation)

  • 好处:既能获取复杂模型的预测能力,又能简化网络结构提高推理速度。

  • 整个训练的损失函数

假设p为真实概率分布,z和r分别为student model和teacher model的最后一层全连接层的输出。使用交叉熵Cross Entropy来计算损失

4.4 混合训练(Mixup Training)

  • Mixup数据增强方法:每次取出2张图片,然后将它们线性组合,得到新的图片

  • 公式:x代表图像数据,y代表标签,得到新的xhat, yhat,λ是从Beta(α, α)随机采样的数,在[0,1]之间。训练过程中,仅使用(xhat, yhat)。

  • Mixup增强网络的泛化能力

5. Transfer learning

5.1 目标检测

5.2 语义分割

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值