Bag of Tricks训练卷积网络的技巧

0.引言

近期图像分类的研究的许多进步可归因于训练过程的精炼(training procedure refinements)作者就将这些精炼技巧做了总结,并证明使用这些技巧训练的模型迁移至下游任务时也表现的很好。

1.引言

由AlexNet到VGG、ResNet再到NASNet—A,精度不断提升,这不仅仅是模型架构带来的改变,损失函数、数据增强以及优化方法也在提升模型精度方面起着重要的作用。

However, these advancements did not solely come from improved model architecture. Training procedure refinements, including changes in loss functions, data preprocessing, and optimization methods also played a major role.

作者将这些训练技巧进行归纳总结并基于此对ResNet50网络进行改善,在imagenet数据集上top1精度由75.3%提升至79.29%。

第二节介绍了训练模型的基本步骤,建立了一个baseline

第三节介绍了在新硬件上高效训练网络的技巧。FP16+大batchsize、正则化以及BN的使用

第四节介绍了三个主要的模型结构使用技巧调整后的结果。kernel-size大于stride防止信息丢失。

第五章介绍了四种训练技巧。

余弦学习率,标签平滑化,知识蒸馏、mixup数据增强

第六章介绍了在迁移时的应用。

2.基线训练过程

(1)解码原始像素点为[0,255]的值。

(2)随机裁剪224*224

(3)水平翻转

(4)色调、饱和度等系数缩放

(5)添加一个正态分布的PCA噪声

(6)标准化RGB通道。

3.高效训练

3.1使用大的batch size

batch size越大,收敛速度越慢,也就是说训练相同的epoch,batch size越大,验证集上的准确率会下降。

(1)Learning rate warmup与Linear scaling learning rate

由于每个batch是随机选的,增大batch size会减小噪声的影响,因此可以增大学习率。在初始训练时,随机值距离最终最优解很远,使用大的学习率会造成数值不稳定,所以初始时选用较小的学习率。

(2)只有卷积层和全连接层使用正则化,偏差bias不用正则化。

3.2使用 Low-precision training

FP16+大的batchsize

4.模型微调

 

原始ResNet模型残差结构是由1*1卷积核stride=2进行下采样,但这样会丢失信息,因此ResNet-B在pathA上使用3*3卷积核stride=2进行下采样,这样不会丢失信息。ResNet-C在最初的下采样层使用3个3*3卷积核代替一个大的7*7卷积核。因此ResNet-D在pathB上使用平均池化代替1*1卷积核进行下采样,这样不会丢失信息。最终结果如下表所示。

5.训练技巧精炼

5.1余弦学习率

对应3.1节,学习率开始很小,然后增大到初始学习率,这一过程成为Learning rate warmup,然后随着训练的进行,逐渐减小学习率达到最优解。

5.2Label Smoothing标签平滑处理

标签在one-hot编码的基础上进一步改进,使得标签信息不那么绝对化(个人感觉有点像SVM中的惩罚刚度,所以是不是可以看做一种正则),有一定的余地。标签信息改为:

此时目标函数为:

5.3知识蒸馏Knowledge Distillatiuon

使用teacher model帮助训练student model,真实概率分布为p,teacher model的分布为r,student model的分布为z。损失函数为:

第一项为根据标签学习的真实分布,第二项为学习teacher model的先验知识。

真实标签的概率分布提供了hard label,准确率高但信息熵很低。而teacher model提供了soft label,准确率低但信息熵很高。比如说轿车与SUV都是汽车,但标签不属于一类,one-hot编码中为(1,0)但在teacher model中标签可能为(0.8,0.2)。这种soft label提供了类别间的联系(信息熵更大),标签(0.8,0.2)比(0.7,03)的两个类别关联性更强。soft label与hard label结合,学习真实标签的同时,补充类间关联信息。

5.4mixup数据增强

使用线性插值生成新样本,弥补类间样本确实的地带。

表中,知识蒸馏的方式在Inception-V3与MobelNet上表现不是很好是因为,teacher model与student model不是来自同一个族,给模型带来了负面影响。

 python的学习还是要多以练习为主,想要练习python的同学,推荐可以去看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费。

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网求职之前,先上牛客,就业找工作一站解决。互联网IT技术/产品/运营/硬件/汽车机械制造/金融/财务管理/审计/银行/市场营销/地产/快消/管培生等等专业技能学习/备考/求职神器,在线进行企业校招实习笔试面试真题模拟考试练习,全面提升求职竞争力,找到好工作,拿到好offer。https://www.nowcoder.com/link/pc_csdncpt_ssdxjg_python

他们这个python的练习题,知识点编排详细,题目安排合理,题目表述以指导的形式进行。整个题单覆盖了Python入门的全部知识点以及全部语法,通过知识点分类逐层递进,从Hello World开始到最后的实践任务,都会非常详细地指导你应该使用什么函数,应该怎么输入输出。

牛客网(牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网)还提供题解专区和讨论区会有大神提供题解思路,对新手玩家及其友好,有不清楚的语法,不理解的地方,看看别人的思路,别人的代码,也许就能豁然开朗。

快点击下方链接学起来吧!

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山上的小酒馆

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值