前言
本文是对 2019 年 2 月 Amazon 的研究团队发表的一篇关于目标检测模型训练的 trick 的简单总结,作者很机智的用两个模型来做实验,Faster RCNN 和 YOLO v3,用来显示他们的方法对于 two-stage 和 one-stage 的算法都适用?
标题:Bag of Freebies for Training Object Detection Neural Networks
作者:{zhiz, htong, hzaws, zhongyue, junyuanx, mli}@amazon.com
论文:https://arxiv.org/pdf/1902.04103.pdf
代码:https://github.com/dmlc/gluon-cv
Introduction
文章标题是 “Bag of Freebies”,一麻袋免费的赠品,一语双关,1. 文中用到这些 tricks 可以提高主流目标检测网络的性能,同时维持原本的计算成本;2. 独乐了不如众乐乐,免费分享给大家。
首先提出了一种 用于多目标检测任务的视觉相干图像混合方法(visually coherent image mixup methods for object detection tasks).
然后, 讨论了训练过程的许多 details,包括
- 分类头标签平滑(Classification Head Label Smoothing)
- 数据预处理(Data Preprocessing)
- 训练策略改进(Training Schedule Revamping)
- 同步 Batch Normalization (Synchronized Batch Normalization)
- 用于 single-stage 网络的随机 shape 训练等
文中总结的主要贡献如下:
- 评估了应用于不同目标检测网络的启发式训练规则, 为未来的研究提供了有价值的实践指导(guidelines)
- 目标检测网络的视觉相干图像混合方法用于训练, 并证明该方法对于提高模型泛化能力具有有效性
- 扩展目标检测数据增强的深入研究,提高泛化,减少过拟合
- 不改变模型网络结构和损失函数(即不会改变计算成本),实现了 5% 精度提高
Related Work
Scattering tricks from Image Classification
一系列试图解决深度神经网络的脆弱性的方法:
- Inception v3 介绍了标签平滑性(Label smoothing),对交叉熵损失中的难真实标签(hard ground truth labeling)进行了改进
- Zhang 等人提出了 mixup 方法来缓解网络中的对抗性扰动
- Sgdr 提出了学习率衰减的余弦退火策略(Cosine annealing strategy),对比传统步长策略
- He Tao 等通过大量的 tricks, 在图像分类精度上取得了显著的提高 (Bag of tricks for image classification).
Deep Object Detection Pipelines
两种,one-stage,如 SSD, YOLO及其升级版,two-stage,如 R-CNN及其升级版.
Bag of Freebies
Visually Coherent Image Mixup for Object Detection
mixup 已被证明在减轻分类网络中的对抗性扰动方面是成功的mixup: BEYOND EMPIRICAL RISK MINIMIZATION。 Figure 2 中示出了图像分类中的 mixup 的示例。
Image credits: https://arxiv.org/pdf/1902.04103.pdf
在目标检测的实验中, 当作者持续增加 mixup 中的混合比(blending ratio)时, 得到的图像中的目标物体更加有活力和连贯的自然表现, 像是在低帧率电影中的过渡帧。
特别的, 作者使用几何保留对齐的图像融合, 以避免扭曲的图像,同时选择了一个更具视觉一致性的 β 分布(α≥1, β≥1),Figure 3 中显示了目标检测中的 mixup 示例。
Image credits: https://arxiv.org/pdf/1902.04103.pdf
Classification Head Label Smoothing
标签平滑化(Label smoothing) 是由 [Inception v3] 中提出的一种正则化形式.
Incption v3. Rethinking the Inception Architecture for Computer Vision.
Data Preprocessing
图像分类网络对图片几何变换具有极强的容忍度,鼓励这样做来提高模型的泛化精度。但是, 对于目标检测任务的图像预处理来说, 由于检测网络对于这种转换更加敏感, 因此我们需要格外的谨慎,文中用到了以下数据增强的方法:
-
随机几何变换,包括随机剪裁,随机扩展(random expansion),随机水平翻转,随机缩放
-
随机颜色抖动(Random color jittering),包括亮度,色调,饱和度,对比度
对于 one-stage 检测网络,其最后的输出结果是从特征图谱上的每一个像素点生成的. 而 multi-stage 检测网络, 如 Fast-RCNN 等, 它的检测结果是通过在特征图谱上进行滑动窗口式的遍历生成的 proposals 进行回归和分类得到的,基于该采样的方法在特征图上进行了大量的的裁剪操作,因此这些网络不需要在训练阶段应用广泛的几何增强。
Training Scheduler Revamping
在传统的学习率 step schedule 中, 在达到预定的时间或者迭代次数后,学习率乘以一个小于 1 的常数。在很多网络训练均采用 step schedule 的方法来调整学习率。**Step schedule 的方法学习率转换过于突然(sharp)。**因此有改进的方法如下:
- Loshchilov 提出了一种更平滑的余弦学习率调整策略(cosine learning rate adjustment)。 cosine schedule 根据 0 到 pi 的余弦值来缩放学习率。 开始慢慢降低大的学习率,中途快速降低学习速度,最后以微小的斜率降低小学习率直至 0。
- Warm up learning rate 是另一种常见的策略,它防止初始训练迭代过程中梯度爆炸的发生。
Synchronized Batch Normalization
Peng 等通过 MegDet: A large mini-batch object detector. 证明了 Synchronized Batch Norm 在目标检测中的重要性。
Random shapes training for single-stage object detection networks
很多 one-stage 目标检测网络采用固定的 shape 进行训练。为了降低过拟合的风险, 同时提高模型的泛化能力,文中采用随机尺度训练的方法(如 YOLOv3 中的多尺度训练)。
Experiments
On Pascal VOC
Image credits: https://arxiv.org/pdf/1902.04103.pdf
On MS COCO
Image credits: https://arxiv.org/pdf/1902.04103.pdf