他提出了一种online hard example mining 算法训练Region-based Object Detectors.
优点:
- 对于数据类型不平衡问题不需要采用设置正负样本比例的问题来解决。
- 当数据集增大,算法可以在原来的基础上提升的更大。
现有的是2种hard example mining
1 在优化SVM中使用Hard example mining时
训练算法主要是维持训练svm和在工作集上的收敛和平衡迭代过程。同时要在更新过程中去除一些工作集中样本,并添加一些其他特殊标准。这里的标准就是去掉一些容易区分的样本,添加一些用现有的模型不能判断的样本类。进行新的训练。工作集为整个训练集中的一小部分数据。
2 在非svm中的使用:
该Hard example mining算法开始于正样本数据集和随机的负样本数据集,机器学习的模型在这样的数据集中进行训练并达到数据集上的收敛,并将其运用到其他未训练的负样本上。并将判断错误的负样本加入训练集,并重新对模型进行训练,这个过程通常是迭代一次,并不再做到收敛的过程。
OHEM算法的解释
OHEM算法的核心是选择一些hard example作为训练的样本从而改善网络参数效果,hard example指的是有多样性和高损失的样本。
hard example是根据roi损失来进行选择的,但是一些重合较大的ROI的损失也是比较大的,作者通过NMS来去除重合较大的ROI,一般是认为IOU阈值大于0.7的都是重合较大的部分,需要进行去除。
注意,这里作者没有采用设定背景和目标样本数的比例方式处理数据的类别不平衡问题。因为如果哪个类别不平衡,那么这个类别的损失就会比较大,这样被采样的可能性也比较大。
论文中是以fast r-cnn为主干网络的
在fast r-cnn的框架是将的图片作为输入,经过conv,pool后输出feature map,通过selective search 创建2000个region proposal,将其一起输入ROI pooling层,接上全连接层与两个损失层。
fast r-cnnOHEM应用与fast r-cnn
作者将OHEM应用在Fast RCNN的网络结构,如上图。这里包含两个ROI network,上面一个ROI network是只读的,为所有的ROI在前向传递的时候分配空间。下面一个ROI network则同时为前向和后向分配空间。
OHEM应用于fast r-cnn中在这个过程中,首先ROI通过ROI pooling生成feature map,然后就进入上层的ROI network中得到所有的ROI loss,然后是hard ROI sample结构筛选出hard example ,返回到前边的ROI pooling ,并作为下边的ROI network的输入。
在实际训练过程中,每个mini -batch包含n个图像,共R个ROI ,所以就是每张图生成
个ROI
经过hard ROI sample 的筛选生成B个hard example
总结来说,对于给定图像,经过selective search RoIs,同样计算出卷积特征图。但是在绿色部分的(a)中,一个只读的RoI网络对特征图和所有RoI进行前向传播,然后Hard RoI module利用这些RoI的loss选择B个样本。在红色部分(b)中,这些选择出的样本(hard examples)进入RoI网络,进一步进行前向和后向传播。
网友评论