摘要
本文提出了对定位网络具有普遍性的技巧,可以让定位算法的performance提升到一个新的高度。
简介
物体定位的任务吸引了各个领域研究者的注意,最近比较流行的算法有SSD,YOLO还有RCNN之类,这些网络的backbone都是分类网路比如VGG,ResNet,Inception和MobileNet等。
但是,因为网络的容量在变大,而且网络非常复杂,越来越少人关注定位网络的训练技巧。有些人训练定位网络直接使用他们训练分类网络的准则,不考虑特定的初始化,数据预处理,不对优化做分析,这样训练定位网络会比较混乱。
本文的目的就是研究可以对流行的定位网络提升准确率的方法,而不会给inference带来额外的消耗。首先研究的是物体定位上的mixup技术,作者意识到多目标检测任务有空间保留变换的特殊属性,而想到了对物体定位任务使用视觉上一致的图像混合方法。第二,作者提出了一系列训练方法,包括学习率的设定,weight decay和同步BN。第三,作者研究了有效的训练技巧去训练one-stage和multi-stage的定位网络。
主要的贡献可以总结如下:
1. 作者是第一个将各种训练技巧有条理的在不同的定位网络上进行验证,为未来的研究提供了有价值的指导方针。
2. 为物体定位网络提供了一个视觉上一致的图像混合方法,对模型泛化能力的提升非常有效。
3. 对现有模型不改变网络模型和损失函数的情况下,可以将准确率提升5个点,并且在预测的时候不会带来任何额外的时间花 费。
4. 研究了数据增强的方法,明显提升了模型的泛化能力,降低了过拟合。这种处理也会带来定位网络准确率的提升。
实验代码可以查看https://github.com/dmlc/gluon-cv
相关工作
1.分类网络的训练技巧
图像分类是所有视觉任务的基础,分类模型相对定位和分割网络更为简单,因此吸引了大量的研究人员研究优化方法。Learning rate warm up方法(备注1)是为了克服极大的batchsize带来的负面影响。虽然在物体定位上使用的mini batch尺寸和分类网络中的mini batch尺寸(10k或者30k)完全不是一个数量级,但是物体定位的anchor的个数却可以达到差不多的数量级。作者的实验证明了使用逐渐增大学习率的方法对YOLOv3网络是非常有用的。还有一系列的方法试图解决深度神经网络的脆弱性。Label smoothing(备注2)在交叉熵损失中修改了真实标签的label。 Mixup方法(备注3)可以缓解对抗性扰动。SGDR(备注4)提出了一种基于余弦的学习率衰减策略,不同于以前跳跃式的学习率衰减方式。在一篇论文(备注5)中提到通过一系列的技巧, 使分类网络的训练精度得到了重大的提升。本文就是通过分类网络训练技巧的启发来研究定位网络。
2.物体定位网络的准则
one-stage或者multi-stage的物体定位网络,比如YOLO系列或者RCNN系列都有各自的pipeline。one-stage的网络是直接通过卷积网络进行预测,所以空间上是对齐的。但是multi-stage的网络,最后的预测是基于RoI进行的,RoI是通过神经网络或者特定的算法生成的,这个主要的差别导致了在数据处理和优化网络上的重大差异。由于one-stage算法缺少空间上的变化,因此空间上的数据增强是非常有用的,已经在SSD上证明了。由于缺少研究,很多训练的细节都没有成体系