『写在前面』
可以从头开始训练的Single-Shot目标检测模型,重点分析了BatchNorm对模型训练的影响。
作者机构:朱睿等,JD-AI研究院。
文章标题:《ScratchDet: Training Single-Shot Object Detectors from Scratch》
论文出处:CVPR 2019
摘要
通过总结现有工作,认为BN层是决定检测模型是否可以从头训练的一个关键因素。
另一方面,基于对SSD的研究,认为主干网络一开始的下采样因子导致性能下降,重新设计了Root block,提出Root-ResNet backbone。
1 介绍
DSOD开创了不需预训练模型训练目标检测模型的先河,其中deep supervision起到了重要作用,但DSOD依赖于DenseNet backbone,作者尝试如果替换成VGG或ResNet会引起严重的性能下降。此外,与使用预训练模型的检测模型相比,from scratch类模型准确率还是有一点差距。基于这些原因,作者认为需要对from scratch模型在以下两方面进行改进:
- 在保证模型收敛的前提下,放开对网络结构的限制;
- 提供与预训练模型相当或更佳的性能
通过实验证明,在BN层的帮助下,可以显著提高从头训练检测模型的效果。
《How does batch normalization help optimization?》
BatchNorm reparameterizes the optimization problem to make its landscape significantly smoother instead of reducing the internal covariate shift.
另一方面,重新设计了主干网络的root block,使前面几层特征图保留了更丰富的信息,大大提高了检测精度,尤其是小目标的检测精度。
基于BN层的添加和Root-ResNet主干网络的提出,设计了一个可以从头训练的目标检测新模型ScratchDet,实现了from-scratch类模型的SOAT,并可媲美部分使用预训练模型的检测模型。
2 相关工作
使用预训练模型的检测模型
two-stage类模型的最新进展:DetNet(ECCV2018)重新设计了ResNet结构块;Deformable convolution(CVPR2017);Inside-Outside Net(CVPR2016)引入上下文信息;HyperNet(CVPR2016)结合多层特征进行区域推荐和检测。
one-stage类模型的最新进展:丰富特征-DSSD(CoRR2017);RefineDet(CVPR2018)提出不同结构;Focal loss-RetinaNet(ICCV2017)处理类别失衡问题。
从头训练的检测模型
以DSOD为首,把重点放在deep supervision上,忽视了BatchNorm的作用,也没有考虑模型结构的灵活性,过度依赖DenseNet。
BatchNorm
在《Batch normalization: Accelerating deep network training by reducing internal covariate shift》(ICML2015)中首次提出,通过解决内部协方差偏移的问题使得利用大学习率加速网络训练成为可能。最近,《How does batch normalization help optimization?》(NIPS2018)通过实验和理论证明,BN起作用的原因是将优化平面平滑化。
3 ScratchDet
3.1 BatchNorm for Train-from-Scratch
在原版SSD中,没有使用BatchNorm。
通过上述实验,证明不论在哪里添加BN,都能帮助训练。
3.2 Backbone Network
SSD主要基于截断的VGG-16和ResNet-101两种backbone实现。
Root-ResNet
一是把ResNet第一个下采样卷积层去掉,并替换成堆叠的几个3×3卷积。
二是将SSD最后用于生成不同比例特征的四个卷积块换成Root-ResNet末尾的四个残差块。