深度学习刷SOTA有哪些trick?

小白学视觉

共 2246字,需浏览 5分钟

 ·

2022-07-05 10:34

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者丨战斗系牧师@知乎(已授权)
来源丨https://www.zhihu.com/question/540433389/answer/2551517886

导读

 

本次Tricks主要面向于深度学习中计算机视觉方向的研究,分为数据增广方法、训练技巧,参数调节这三个方面进行深入的分析。内容有一部分是基于openmmlab的mmdet和mmseg两个框架上的成熟应用案例进行详细阐述。 


首先是数据增广的tricks:

 

0、Flip、RandomFlip(随机翻转)

翻转,是最实在的,最基础的数据增广方法,简单,但是最有效。

1、cutout(裁剪)

随机删除图像中的一个矩形区域,可以得到较好的训练结果,其实类似于dropout的操作

2、mixup (混合提升)

mixup的作用是使得对数据的理解更具有线性化,破除由于数据分布不均匀,带来的误差。

3、mosaic(随机马赛克增强)

极大丰富了检测物体的背景,一张顶几张!

还有类似于cutmix,还有很多tricks,还有代码这些就不细致的展开了,大家可以参考一下,以上方法有的是可以组合使用

这里是mmdet武器库中的一些数据增强方法

这里是mmseg武器库的一些数据增强方法

传送门,如果大家觉得好用,别忘了给个star 


然后是使用在模型训练的技巧!

 

4、Backbone 和 Heads 的不同学习率 (LR)

因为Backbone和Heads在结构上的差异,使用不同的学习率是可以有效的使得网络整理达到更好,更稳定的收敛效果。

5、多loss加权混合

一般会用在分割比较多,常见的有focal loss+Dice loss这类的,主要解决的问题也是类内不平衡叠加上样本数量不平衡等一系列问题。但是要注意的是,loss函数的组合的权重是需要自己去摸索的,目前我还不能找到一种普遍适用的自动化寻参方法,所以我建议大家仔细分析,保证组合后的损失函数下降不平衡导致的损失函数的倾斜化。

6、带权重CEloss,类平衡损失(多类别问题)

对于不同数量的类别,我们会选择对损失函数加权的方法进行处理,让样本数量少的类别也能得到足够的重视。

传送门,如果大家觉得好用,别忘了给个starhttps://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/tutorials/training_tricks.md

 

训练过程中的优化器调节方法


7、余弦退火算法

经典,有实验结果表明,效果挺好的。

8、SWA

SWA是一种通过随机梯度下降改善深度学习模型泛化能力的方法,而且这种方法不会为训练增加额外的消耗,这种方法可以嵌入到Pytorch中的任何优化器类中。主要还是用于稳定模型的训练。

9、seed(42)

随机种子数42,为啥是42,如同为啥一个星期有7天,而我要上7天班一样,没啥道理,但是就是要这样干。 


测试常用技能


10、推理过程中的TTA增强

TTA主要在测试时,对于测试数据集进行不同方向的预测后将预测的模型进行组合,在不改变模型内部参数的情况下,对效果进行提升,有点费推理时间,但是好用。


总结

 

我记得在kaggle上有种方法是叫call back,也就是自己给自己的测试集打个label放进训练,非常不讲武德。我还记得有一次有人用这种方法在一个分类比赛中,别人ACC:94,他们直接干上了98,非常离谱。其实还有个比较常用的一个技巧是多模融合,通常会跑几个模型,然后加在一起融合,在不计算和要求推理时间的条件下。他要模型多大,就做大概多少个模型,你就会发现,你们在单模,我多模,完全就是三个臭皮匠顶一个诸葛亮。大家对于tricks其实可以用,但是论文里面,如果是用tricks,work的话,是不能发的,所以大家多回到模型研究,tricks只是点缀的一些技巧罢了。

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇




下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报