Bag of Tricks for Image Classification with Convolutional Neural Networks(图像分类神经网络训练技巧)

本文总结了多种提升深度学习模型精度的训练技巧,包括大batch_size训练、低精度训练、余弦学习率衰减等,实验结果显示这些技巧能有效提高模型精度。

1.简介

该篇文章其实就是各个网络中训练技巧的一个集合。由于之前在图像分类中取得的大部分的进展其实都是由训练过程的改进得到的,比如数据增强和优化方法的改进得到的。但是在提出方法的文章中,我们只能在实验细节或者开源代码中见到,所以该篇文章就将这些训练技巧进行了汇总,并进行实验进行验证评估。实验证明,将这些改进结合起来能够将ResNet-50的准确率由75.3%提升到79.29%,实验还验证了,图像分类精度的提高也能应用在其他领域,带来更好的迁移学习的性能。

2.训练过程

2.1Baseline

2.1.1图像预处理

1.随机采样图像并将其解码为[0,255]中的32位浮点原始像素值。

2.随机裁剪其纵横比以[3/4,4/3]随机采样的矩形区域和以[8%,100%]随机采样的区域,然后将裁剪的区域调整为224乘224的正方形图像。

3.以0.5概率水平翻转。

4.使用从[0.6,1.4]均匀绘制的系数缩放色调、饱和度和亮度。

5.将PCA噪声与从正态分布N(0,0.1)采样的系数相加。6.通过分别减去123.68、116.779、103.939和除以58.393、57.12、57.375来归一化RGB通道。

验证期间,我们将每个图像的较短边缘调整为256像素,同时保持其纵横比。接下来,我们裁剪出中心的224×224区域,并将RGB通道标准化,类似于训练。我们在验证期间不执行任何随机扩增。

2.1.2权重、超参数初始化

卷积层和完全连接层的权重都用Xavier算法初始化[6]。特别是,我们将参数设置为从[−a、 a],其中a=[6/(din+dout)]**0.5。这里din和dout分别是输入和输出通道大小。所有偏差均初始化为0。对于批处理规范化层,γ向量初始化为1,β向量初始化为0。

用Nesterov加速梯度(NAG)下降用于训练。每个模型在8个Nvidia V100 GPU上训练120个epoch,总batch_size为256。学习率初始化为0.1,在第30、60和90个epoch除以10。

3.有效的实验

3.1大batch_size实验

小批量随机梯度下降法通过将多个样本分到一个batch中来提高并行性降低通信成本。但是当batch_size增大时可能会降低网络的收敛速度。也就是说,当epoch相同时,与使用较小batc

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值