OHEM

论文信息

Abhinav Shrivastava, Abhinav Gupta, Ross Girshick, Training Region-based Object Detectors with Online Hard Example Mining, CVPR 2016.

http://arxiv.org/abs/1604.03540

Introduction

为了解决class imbalance问题, 有人在至少20年前提出bootstraping(现在称作hard negative mining). 这种算法逐渐流行, 产生了一类交替算法, 这种算法在以下两个状态中交替进行:

  1. 用样本优化检测模型.
  2. 用优化后的检测模型选取新的false positive样本.

从先前的利用SVM检测目标开始, R-CNN, SPPnet都有使用hard negative mining.

而在本文发表时, 已有的检测模型Fast R-CNN却没有使用bootstraping, 作者认为其主要原因是在深ConvNet(用SGD优化)的算法中, 很难把这种方法加入进去.

具体的bootstraping实现案例:

  1. 使用固定的模型寻找新的样本, 并将样本加入训练集中.
  2. 之后, 模型在固定的训练集中进行训练.

作者认为, 正是这种依次固定的算法使整体训练速度较低. 对此, 作者提出了一种用SGD优化的, 从non-uniform & non-stationary的样本利用新设计的loss的算法以期望解决此问题. 新模型的贡献主要有以下几点

  • 不需要当时流行的试探性取样.
  • 能取得稳定的mAP.
  • backbone越复杂, 速度优势越明显.

Related work

Hard example mining.

作者认为当前有两种hard example方法:

  1. 在优化SVM时使用.

    去除易分类的easy examples - 因此真正使用的训练集是实际训练集的一小部分.

  2. 在优化non-SVM时使用.

    主要是应用在浅神经网络或是决策树中, 一般因为不易收敛, 会把false positives重新加入训练集中重复训练两次.

Overview of Fast R-CNN

作者选择改进Faster R-CNN的主要原因有:

  1. 他是一个fast end-to-end system.
  2. 当时Faster R-CNN很流行, 衍生出很多算法.
  3. Faster R-CNN可以训练整个网络而不是必须使部分网路固定.
  4. 不使用SVM, 且Faster R-CNN的作者证明了是否使用SVM基本对结果不造成大的影响.

Training

作者认为background RoIs是suboptimal的, 因为它丢掉了一些infrequent, but important, difficult background regions, 因此本文作者移除了对background的最大阈值限制.

他们也发现, 1:3的fg, bg比例在使用他们的算法之后也没有存在的价值, 因此他们同样去掉了该比例限制.

Their approach

Online hard example mining

先前的算法的取样阶段都是当examples数量达到某个阈值后进入训练阶段也是导致速度慢的一个原因.

本文中的算法主要进行了如下几个阶段:

  1. 使用卷积网络生成feature map.
  2. RoINet利用该feature map产生RoIs, 并且所有的RoI都进行前向传播.
  3. 通过排序输入RoI的loss, 选取$B/N$个"hard example"

因为shared和选取部分example的原因, 前向传播的计算量比较小.

特别的, 作者提到一个caveat: 如果有overlap就会有重复统计相对接近的box的loss的情况, 作者采用NMS并设置阈值0.7来解决此问题.

额外的, 作者还提到不需要fg, bg比例的原因: 如果缺失class, 那么loss就会上升, 最终该现象将得到解决.

Implementation details

作者提出了两个将OHEM应用到Fast R-CNN的方法:

  1. 直接将loss排序, 将non-hard example置零. 因为这样仍然需要分配内存且置零后他们对导数没有贡献, 因此会造成资源浪费.

  2. 产生两个RoINet, 其中一个是只读的. 整个过程中只读部分会只分配内存给前向传播, 标准部分正常分配内存.每次迭代只读网路会前向传播并计算每个输入RoI的loss, 之后用OHEM来筛选sample, 将筛选结果送入原网络的RoI网络中.

    arch

第二种方法和第一种方内存用量基本相同, 但速度达到二倍.

Analyzing online hard example mining

本文每个batch只用2张图片, 作者本以为会有类似会有类似于相近图像loss重复计算的问题. 为了验证猜想, 作者选择只用一张图片的极端情况, 实验发现二者结果相差不大, 也侧面说明了OHEM具有一定鲁棒性的特点.

r1

r2

作者又实验测试只使用hard examples是否比使用全部examples更优越, 发现二者mAP相近, 但毫无疑问只使用hard examples训练速度更快.

之后作者又尝试使用一些当时流行的trick来提升效果如: multi scale(M), bbox regression(B). 都实现了一定提升.

r3

Conclusion

at 2:26 am, 太困了, 不想写.

比较有意思的有只读网络的设计和不用分阶段训练.

猜你喜欢

转载自www.cnblogs.com/edbean/p/11280154.html