网站首页 > 技术文章 正文
随着深度学习技术的成熟,设计新的算法在主流的目标检测数据集比如COCO上提升精度已经很难了,但总有一些涨点技巧,比如谷歌前几天公布的 简单粗暴“复制-粘贴”数据增广,简单又有效,让人措不及防。
今天要跟大家介绍一篇新文章 SWA Object Detection ,可能是最简单、计算成本最低、动手成本最低的。
同样的,这篇文章全文无公式、无算法流程图,不改模型结构,不增加模型复杂度、推断时间,也不对数据进行增广。但将其简单应用于主流的目标检测算法,可普遍在COCO数据集上获得 ~1 个AP的精度提升!而且神奇的是原始模型精度越高提升幅度越大。
该文昨天刚公布,作者信息:
作者来自澳大利亚昆士兰科技大学、昆士兰大学。
简单一句话介绍方法:将模型在数据集上多训练几个epochs,将多个epochs得到的checkpoints 进行简单平均,获得最终模型。该方法启发于 Stochastic Weights Averaging(随机权重平均,SWA,来自论文 Averaging weights leads to wider optima and better generalization. UAI, 2018),其本来是为了改进深度学习模型的泛化能力。
SWA理论认为平均多个SGD优化轨迹上的多个模型,最终模型泛化性能更好。如下图:
W1、W2、W3为模型优化过程中不同的checkpoint,SWA认为在其张成的空间中,中心点具有更好的泛化能力。故取checkpoint平均。
问题来了,训练多少个epoch再平均?如何调整学习率?
在SWA原理论中模型再训练时使用固定学习率或者循环余弦退火学习率。
循环余弦退火学习率调整示意图:
其实很难用理论回答,所以作者的做法很直接,多次实验,看结果总结规律。
作者使用Mask RCNN 在COCO上做了实验,固定学习率和循环余弦退火学习率调整都试了。
请看下表:
获得了很神奇的结果!checkpoints平均后获得了比之前训练路径上所有模型都更好的结果,循环余弦退火学习率调整获得的结果更好,bbox AP 和 mask AP都可以获得超过 1 个AP的提升!而且相比于6个、24个、48个checkpoints的平均,12是一个足够好的数字。
为验证此方法具有通用性,作者在不同的算法上进行验证。
将SWA用于Mask RCNN 与 Faster RCNN上的结果:
精度都有提升,而对于本身精度更高的Mask RCNN 提升更明显。
将SWA用于RetinaNet 与 FCOS 上的结果:
都获得了精度提升,原始模型精度越高,获得的提升越大!
将SWA用于YOLOv3 与 VFNet 上的结果:
提升依然很明显!
下图为Mask RCNN 使用SWA前后推断结果示例:
总结一下简单又神奇的SWA方法:
在传统的使用lrini和lrend作为起始和结束学习率训练结束后,额外多训练12个epochs,每个epochs学习率由lrini变化到lrend,最后将这12个checkpoints平均,得到最终的模型。
论文地址:
https://arxiv.org/pdf/2012.12645.pdf
代码地址:
https://github.com/hyz-xmaster/swa_object_detection
期待这种简单的抗过拟合方法,能够在其他视觉任务上有效!
猜你喜欢
- 2024-09-24 机器学习:借助实例深入理解PR、AP评估指标及PR与ROC曲线选择
- 2024-09-24 对mAP进行分解,让你了解的更清楚
- 2024-09-24 提升小目标检测的一包围框相似度度量
- 2024-09-24 测试服猴子改动:冲刺会指向目标,百分百ap加成可以玩ap猴子?
- 2024-09-24 YOLOv4:快速高精度目标检测
- 2024-09-24 目标检测中的“神奇指南”——平均精度(mAP)
- 2024-09-24 目标检测CornerNet讲解
- 2024-09-24 深兰科技ACM MM 2020冠军,视频级别目标身份和动态
- 2024-09-24 再也不用预定义目标类别!YOLO-Word:检测任何目标!
- 2024-09-24 YoloV:目标实时检测效果依然很棒(附源代码下载)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)