Bag of Tricks for Image Classification with Convolutional Neural Networks论文笔记

  本篇论文介绍了许多训练模型的技巧,并且通过使用 多种训练技巧 可以比较明显的提升模型准确率。

训练过程中有效操作:

Large-batch training

  Large-batch training会导致收敛到最优解的速度变慢。论文说相同的epochs,小批次得到的模型要比大批次得到的模型验证精度要高,提出了四种方法解决此问题。
方法1:Linear scaling learning rate
  作者以ResNet-50为例,比如initial learning rate=0.1,batchsize为256,那么如果选择更大的batchsize比如为1024,那initial learning rate也应该线性放大为0.1 * 1024/256
方法2:Learning rate warmup
  使用warmup方法,让学习率开始从0增加大initial learning rate(论文设置的为5个data epochs)
方法3:Zero γ.
  BN操作γˆx + β,γ 和 β是可学习的参数,一般我们初始化的时候,会将γ 和 β分别初始化为1或者0,Zero γ操作就是将残差块末尾的BN层γ 初始化为0,这样所有残差块都只返回它的输入(细细体会一下,好像有些道理),这样可以达到减少网络层数的目的,在初始阶段更容易训练。
方法4:No bias decay.(没用过,也没看懂)

Low-precision training

  使用pytorch的应该都知道Automatic Mixed Precision(AMP),就是这个东西。具体就是使用FP16存储所有参数和激活值,并使用FP16计算梯度。 同时,所有参数在FP32中都有一个副本用于参数更新。 此外,将标量乘以损失以更好地将梯度的范围映射到FP16。损失缩放(Loss Scaling)
具体可以参考:https://blog.csdn.net/m0_61899108/article/details/122801824

论文中以ResNet50为例,介绍了模型调整,这里就不做介绍。

训练过程中的Tricks

Cosine Learning Rate Decay

η is the initial learning rate
在这里插入图片描述
在这里插入图片描述
论文中提到了三种学习率衰减策略,
第一种是step decay,就是每30个epoch,学习率以0.1的倍率衰减,比如上面的图所示,开始学习率为0.4,经过30个epoch后,学习率变为0.04,后面就按照这个倍率衰减。
第二种上面的图没有画出来,但是意思和第一种一样,就是每2个epoch,学习率按照0.94的倍率衰减,这样看起开更平滑一些。
第三种就是这里的余弦退火策略,就是通过跟随余弦函数将学习速率从初始值降低到0。上面是结合了warmup操作。

Label Smoothing

  标签平滑,大家平时应该也有耳闻或者使用,我们平时在给某一个类别打标签是就是固定这个类别为1,onehot时,对应类别标签为1,其他类别为0,这样太绝对了,label smoothing操作就是给其他类别也分配一点点概率,可能这张图像也有些想其他的类别呢,挖掘图像的隐含语义,这里只是举个例子,如下公式。我们用的最多的就是给除了此类别以外的其他类别等分ε概率。
ε是一个很小的常数,默认0.1
在这里插入图片描述

Knowledge Distillation

  教师模型和学生模型之间增加一个蒸馏损失。
这两张图应该可以说明问题了,具体可以看B站知识蒸馏讲解视频
https://www.bilibili.com/video/BV1gS4y1k7vj/?spm_id_from=333.337
在这里插入图片描述
在这里插入图片描述

Mixup Training

  图像增强策略,就是将两张图像叠加,当然标签也要相应的叠加。
λ∈[0,1]是从beta(α,α)分布中得出的随机数
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值