在线难例挖掘 论文

在线难例挖掘 论文_第1张图片

这篇论文主要就是在faster rcnn上加上了online hard example mining,论文还是比较容易理解的。

首先回顾一下,faster rcnn的mini batch 的生成过程。

在faster rcnn中mini batch设定为2张图片,每张图片生成128个roi,然后输入进入roi网络。

如下图(这是fast rcnn的图,faster rcnn中rpn和deep conv有段共享计算的过程)

在线难例挖掘 论文_第2张图片

很明显faster rcnn中rpn网络生成的roi远远多于128,所以这128是从rpn生成的所有roi中随机抽样(好草率。。)出来的。正负样本比例为1:3,其中正样本定义为iou > =0.5,负样本定义为 0.1<= iou < 0.5。

上述的定义的数值都是人为启发式的,所以严格上来说并不是那么'理智'。所以作者提出了难例挖掘这一改进。当然在机器学习学习中尤其是在svm中早就已经使用,又称为bootstrapping。

传统的难例挖掘流程:首先是通过训练集训练网络,训练完成,然后固定网络,寻找新的样本,加入到训练集中。很显然这将耗费很长的时间。

在这篇文章中,作者提出了在线难例挖掘的技术具体流程如下:

1、计算共享的conv

2、通过rpn网络生成所有可能的rois

3、通过roi网络计算所有roi的loss

4、对所有roi的loss排序,取B/N数量的roi组成mini batch

注意:对于指向同一个目标的rois,通过NMS,取loss最大的roi,其他都删除。

网络图如下:

在线难例挖掘 论文_第3张图片

其中绿色的区域对应计算所有rois区域的loss,然后选择一定数量的roi,形成mini batch,也就是说mini batch包含了所有的难例。

作者通过这样的方法取消了启发式的参数,提高了准确率。

在线难例挖掘 论文_第4张图片

在线难例挖掘 论文_第5张图片

总结:

1、换个角度想,对于每一个网络,相当于一个桶,总有样本效果比较好,有的样本比较差,多用效果差的样本进行训练,那提高了整个网络的短板,总体的效果也会有提升。

2、对于这种'智能网络',所提取的特征已经超过人为设计的特征,如果真正需要实现更加智能的话,应该尽可能减少超参数,更多的让网络自己去学习,效果或许会有加大的提升。

你可能感兴趣的:(deep,learning)