图像分类训练tricks
图像分类训练tricks
- 1. 优化器
- 2. 学习率及学习率下降策略
- 2. 1 选择合适的学习率
- 3. weight_decay
- 4. label_smoothing
- 5. 通过验证集和测试集的准确度确定调优策略
- 6. 数据增强
- 6.1 图像变换类
- 6.2 图像裁剪类
- 6.3 图像混叠类
- 7. 参考资料
本文简单整理了一些图像分类训练tricks,后续可能会陆续加以补充。
1. 优化器
带momentum(=0.9)的SGD优化器的使用最多,收敛精度常常更好,但收敛速度慢,初始学习率设置要靠经验设置(参考值0.1)。
自适应优化器Adam、RMSProp、Adamw等收敛精度稍差,但收敛速度更快更稳定,Adam学习率参考值1e-4.
AdaBound在某些任务上数据集上,收敛速度可媲美Adam,收敛精度可媲美SGD,调节参数更少。
2. 学习率及学习率下降策略
SGD一般配合分段衰减策略piecewise_decay,例如初始学习率设为0.1,每30个epoch下降为原来的1/10
Adam等优化器可搭配余弦衰减策略cosine_decay,因学习率小的epoch较少,故最终模型精度欠佳,所以建议增加训练epoch
Batchsize增大时,线性增大学习率,可使收敛精度几乎不受影响
warmup 训练初期不宜使用较大的学习率,可采用warmup策略,在batch_size较大时,效果明显。结合cosine_decay,可采用带有warmup的cosine_decay策略。
2. 1 选择合适的学习率
利用一个epoch来获取学习率。首先设置一个非常小的学习率,对每个batch数据训练后,对初始学习率乘上一个常数,记录每个batch后的loss。根据一个epoch内的loss画图,选择即将使得loss最低的batch对应的学习率作为整个训练的初始学习率。
3. weight_decay
weight_decay等价于在最终的损失函数后添加L2正则化,可使网络参数倾向于选择更小的值,趋于0,模型的泛化性能更好。
weight_decay越大,正则化越强,模型越容易趋于过拟合,所以小模型使用较小的weight_decay系数,大模型使用较大的weight_decay系数。如MobileNet系列网络较小,weight_decay可取1e-5~4e-5,训练ImageNet的网络常常较大,weight_decay常取1e-4。
4. label_smoothing
将one-hot标签软化,使得网络训练的标签不再是hard label,而是有概率值的soft label。
5. 通过验证集和测试集的准确度确定调优策略
训练时,打印每一个epoch的训练集、验证集的准确率。训练集的准确率比验证集的准确率微高,或相当,则是合适的表现;
若训练集的准确率比验证集高很多,则说明已经过拟合,需要加入更多的正则化,如增大weight_decay的值,或加入更多的数据增强策略,或加入label_smoothing;
若训练集的准确率低于验证集,则模型欠拟合,需减弱正则效果,如减少weight_decay的值,或减少数据增强方式,或去掉label_smoothing
6. 数据增强
6.1 图像变换类
AutoAugment 在一系列数据增强的搜索空间内,通过搜索算法找到合适的特定数据集的图像数据增强方案。针对ImageNet数据集,最终搜索出来的数据增强方案含25个子策略组合,每个子策略组合包含2种变换,针对每张图随机挑选一个子策略组合,以一定的概率来决定是否执行子策略中的变换。
RandAugment 所搜方法更暴力,所有的策略都以相同的概率被选到。相比AutoAugment,RandAugment搜索策略迁移性更好
6.2 图像裁剪类
cutout 直接对图像进行遮挡
randomerasing 随机擦除图像中一部分,擦除的mask长宽随机生成
hideandseek 图像分成若干区域,每个区域以一定概率生成掩码
gridmask 通过生成一个与原图分辨率相同的mask,并将mask进行随机翻转,与原图相乘,通过超参数控制生成的mask网格的大小
6.3 图像混叠类
mixup 通常在一个batch中,随机选择两张图进行相加作为参与训练的图像,两张一样的图相加也可能
cutmix 将一张图像的一块区域ROI,利用其它图像对应的ROI覆盖
7. 参考资料
1.图像分类任务中的训练奇技淫巧
2.图像分类中常用的tricks
3.Practical Advice for Building Deep Neural Networks
4.paddle图像增广
5.选择合适的初始化学习率
图像分类训练tricks相关推荐
- 训练过程acc_AI 深度学习训练tricks总结(均有实验支撑)
↑↑↑↑↑点击上方蓝色字关注我们! 『运筹OR帷幄』转载 作者:Jones@知乎 作者丨Jones@知乎来源丨https://zhuanlan.zhihu.com/p/261999668编辑丨极市平台 ...
- 训练深度学习_深度学习训练tricks整理1
深度学习训练tricks整理1 环境:pytorch1.4.0 + Ubuntu16.04 参考: 数据增强策略(一)mp.weixin.qq.com https://zhuanlan.zhihu. ...
- PaddleX快速实现图像分类训练
飞桨 -PaddleX 是一套更加简明易懂的API,并配套一键下载安装的图形化开发客户端.用PaddleX实现图像分类训练非常快速,代码量也小. 第一步:安装paddlex, 参考<在windo ...
- 机器学习笔记 - 使用自己收集的图片以及卷积神经网络,进行图像分类训练
一.数据收集 下载地址见上一篇机器学习笔记 - 使用自己收集的图片以及前馈神经网络,进行图像分类训练_bashendixie5的博客-CSDN博客https://blog.csdn.net/bashe ...
- 亚马逊:用CNN进行图像分类的Tricks
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源: arXiv 编辑:刘晓坤.思源 自 2012 年 Alex ...
- 这份Kaggle Grandmaster的图像分类训练技巧,你知道多少?
AI编辑:我是小将 看paper固然重要,但是实战技巧更是难得,今天小编送大家一份图像分类秘籍,这份图像分类经验是Arthur Kuzin所分享,他是Kaggle Grandmaster (top 1 ...
- VGG16、VGG19网络架构及模型训练 tricks :训练技巧、测试技巧
在上一篇文章的基础之上,总结一下论文中提出的训练技巧和测试技巧.上一篇文章参考:VGG论文笔记--VGGNet网络架构演变[VGG16,VGG19] 一.训练技巧 技巧1:Scale jitterin ...
- 挑战杯大赛优秀作品示例_图像分类比赛tricks:华为云人工智能大赛·垃圾分类挑战杯...
所有代码以上传至github: garbage_classifygithub.com 已修改成本地可以运行. 修改方法: 1.save_model.py|train.py|eval.py|run.p ...
- 【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
活动地址:CSDN21天学习挑战赛 目录 前言 了解Fashion-MNIST数据集 下载数据集 使用tensorflow下载(推荐) 数据集分类 数据集格式 采用CPU训练还是GPU训练 区别 ...
最新文章
- 图像空间变换--imtransform
- 同时满足两个条件怎么写_2020年宅基地确权需满足哪些条件?可以写几个人的名字?...
- .Net 如何模拟会话级别的信号量,对http接口调用频率进行限制(有demo)
- 误删了计算机桌面回收站,我电脑回收站里的东西已经被删除几天了?怎么可以找回!谢谢...
- Centos8安装X11-forwarding图形服务
- 百度知识图谱技术及应用
- 递归二叉树的序列打印
- 计算机学打字教案小学,6 用金山打字通练指法
- 延时消息推送的正确姿势你get到了吗?
- 问题 A: Beer Barrels
- 人生是一场旅程,重要的不是终点,是自己路上的风景
- SV 接口(interface)
- 中药配方颗粒调剂设备解决方案!基于一体化步进电机,全闭环,集成原点回归算法,丰富的报警功能
- 【esp8266】③esp8266对接天猫精灵实现语音控制
- 图像滤镜艺术---水彩画滤镜
- html 保存 mysql file_前端HTML5几种存储方式的总结
- A Univariate Bound of Area Under ROC 论文小结
- 智力题------扔硬币吃苹果
- htc hd2刷android,真正的刷机之王! HTC HD2成功刷入安卓7.0
- 几本OpenCV的参考书籍
热门文章
- virtual box 报错:VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLE
- Wireshark教程:解密HTTPS流量
- React Hook的用法: Contex + Reducer(二)
- Java - Lambda的使用
- python里permission denied错误是什么_Python 3.6 解决 PermissionError: [Errno 13] Permission denied...
- 重庆将打造物联网产业集群
- maven 如何移除无用的依赖
- 2020极客大挑战web部分复现
- IntelliJ IDEA插件php golang python shell docker ignore UML plantuml等插件安装
- 数智融合,油化创新-英诺森出席中国石油石化企业信息技术交流大会