当前位置:网站首页>Bag of Tricks训练卷积网络的技巧
Bag of Tricks训练卷积网络的技巧
2022-07-28 05:23:00 【山上的小酒馆】
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不是来自同一个族,给模型带来了负面影响。
边栏推荐
- 2、 Openvino brief introduction and construction process
- 机群作业管理系统,求解答进程方面的疑问
- Boosting unconstrained face recognition with auxiliary unlabeled data to enhance unconstrained face recognition
- What are the general wechat applet development languages?
- USB Network Native Driver for ESXi更新到支持ESXi7.0 Update 2
- GF(2^8)的加法与乘法计算
- 二、OpenVINO简述与构建流程
- ESXi社区版网卡驱动2022年3月更新
- Tf.keras build neural network function expansion
- Uniapp problem: "navigationbartextstyle" error: invalid prop: custom validator check failed for prop "Navigator
猜你喜欢

Tf.keras build neural network function expansion

51单片机独立按键联动数码管LED蜂鸣器

杭州某公司福禄克FLUKE DTX-SFM2单模模块-修复案例

一个票据打印实例

EIGamal cryptosystem description

Classification of iris based on Neural Network

Byte Android post 4 rounds of interviews, received 50k*18 offers, and successfully broke the situation under the layoff

(PHP graduation project) obtained based on thinkphp5 campus news release management system

What is the process of building a small program?

Paper reading notes of field low resolution face recognition based on selective knowledge extraction
随机推荐
使用MS图表控件创建基本报表
Latex入门
VB-ocx应用于Web
51单片机独立按键联动数码管LED蜂鸣器
arduino 读取模拟电压_MQ2气体/烟雾传感器如何工作及其与Arduino接口
ESXi社区版网卡驱动再次更新
Neural network learning
Convolutional neural network
5、 Video processing and GStreamer
在Asp.net 中Cookie的用法
如何测试工业以太网线缆(利用FLUKE DSX-8000)?
Common CTF encryption methods JS
Distributed cluster architecture scenario optimization solution: distributed scheduling problem
Basic usage of word2vec and Bert
TCL and eltcl? Cdnext and CMRL?
ESXi Arm Edition version 1.10更新
《Distilling the Knowledge in a Neural Network》知识蒸馏论文解读
EIGamal 密码体制描述
CString转char[]函数
Research on threat analysis and defense methods of deep learning data theft attack in data sandbox mode