【每日一网】Day18:OHEM简单理解

OHEM

算法背景

作者提出了一种困难负样本挖掘的方法,困难负样本是指模型难以区分的负样本,也就是容易将负样本当成正样本的那些样本。例如,当roi中没有目标,全是背景的时候,这时候分类器就很容易正确分类成背景,这就是“容易负样本”。如果roi中有一半是目标,但是标签仍然是背景,这个时候分类器就容易把它当作成正样本,这就是困难负样本,因此需要多找一些困难负样本加入负样本集,进行训练。

OHEM

网络结构

OHEM的基准算法是fast rcnn,目的就是对其进行一点改动就可以大幅度提高性能,网络结构如下所示【每日一网】Day18:OHEM简单理解_第1张图片
图中除掉(b)模块其余部分是fast rcnn的网络结构,(b)模块是比fast rcnn多出来的一部分,对于fast rcnn这种two stage 的检测模型,可以抽象成“推荐”和“分类回归”两个部分。OHEM的作用恰好是两个部分的中间。
在推荐网络(fast rcnn用的是ss算法,faster rcnn用的是rpn)之后,会有很多ROI传到后边的网络。这部分输出是推荐网络锁推荐的Region proposal。通常推荐网络会有数以千计的Region proposal传输到分类回归网络,分类回归网络会对这些proposal进行分类、坐标和尺寸回归以及置信度打分,在训练阶段,可以通过这些参数与标注结果进行计算得出损失值。

算法流程

OHEM则是利用的训练阶段产生的损失值。
OHEM的流程如下:
1、正常进行一次Faster RCNN的前向传播,获得每个Region proposal单独的损失值。
2、对每个Region proposal进行NMS
3、对NMS剩下的Region proposal按照损失值进行排序,然后选取损失最大的前一部分Region当做输入再次输入分类回归网络,这一步可以屏蔽loss非常低的Region proposal,也就是所谓的正样本,对于训练多次loss还较高的我们可以认为其是困难样本。所谓的线上挖掘,就是先计算loss→筛选→得到困难负样本
4、将困难样本输入图中的(b)模块,(b)模块是(a)模块的复制版,(b)模块是用来反向传播的部分,然后吧更新的参数共享到(a)部分。

你可能感兴趣的:(每日一网,算法,网络,深度学习,机器学习,人工智能)