美文网首页
类别不均衡问题

类别不均衡问题

作者: gpfworld | 来源:发表于2019-08-23 17:17 被阅读0次

    在计算机视觉(CV)任务里常常会碰到类别不平衡的问题, 例如:
    1. 图片分类任务,有的类别图片多,有的类别图片少
    2. 检测任务。现在的检测方法如SSD和RCNN系列,都使用anchor机制。 训练时正负anchor的比例很悬殊.
    3. 分割任务, 背景像素数量通常远大于前景像素。

    从实质上来讲, 它们可以归类成分类问题中的类别不平衡问题:对图片/anchor/像素的分类。
    再者,除了类不平衡问题, 还有easy sample overwhelming的问题。easy sample如果太多,可能会将有效梯度稀释掉。
    这两个问题通常都会一起出现。 如果不处理, 可能会对模型性能造成很大伤害。用Focal Loss里的话说,就是训练不给力, 且会造成模型退化。

    常见的解决办法介绍

    常见的方法有online的, 也有非online的;有只处理类间不平衡的,有只处理easy example的, 也有同时处理两者的。

    非online:
    1. Hard Negative Mining, 非online的mining/boosting方法, 以‘古老’的RCNN(2014)为代表, 但在CV里现在应该没有人使用了(吧?)。若感兴趣,推荐去看看OHEM论文里的related work部分。
    online:
    1. Mini-batch Sampling,以Fast R-CNN(2015)和Faster R-CNN(2016)为代表。Fast RCNN在训练分类器, Faster R-CNN在训练RPN时,都会从N = 1或2张图片上随机选取mini_batch_size/2个RoI或anchor, 使用正负样本的比例为1:1。若正样本数量不足就用负样本填充。 使用这种方法的人应该也很少了。(解决类别不平衡)
    2. Online Hard Example Mining, OHEM(2016)。将所有sample根据当前loss排序,选出loss最大的N个,其余的抛弃。(解决easy example )
    3. Online Hard Negative Mining, OHNM, SSD(2016)里使用的一个OHEM变种, 在Focal Loss里代号为OHEM 1:3。在计算loss时, 使用所有的positive anchor, 使用OHEM选择3倍于positive anchor的negative anchor。(同时考虑了类间平衡与easy sample)。
    4. Class Balanced Loss。计算loss时,正负样本上的loss分别计算, 然后通过权重来平衡两者。暂时没找到是在哪提出来。(它只考虑了类间平衡)
    5. Focal Loss(2017), 最近提出来的。不会像OHEM那样抛弃一部分样本, 而是和Class Balance一样考虑了每个样本, 不同的是难易样本上的loss权重是根据样本难度计算出来的。(同时考虑了类间平衡和easy example问题)

    Hard Negative Mining:

    RCNN中将重叠阈值设置为0.3,小于这个阈值认为是负类,大于这个阈值认为是正类。而不是0.5 或者其他的。阈值的选取对于最终的性能有很大影响。文中从(0.1–0.5)中进行选取的。

    https://www.cnblogs.com/nowgood/p/Hardexamplemining.html

    一般来说, 负样本远多于正样本, 如 99% 的负样本, 那么算法不需要训练直接输出为负例, 准确率也会有 99%, 那么正负样本不均衡时, 预测偏向于样本多的一方, 对于目标检测而言, 负例多, 所以被预测为 false negative(即预测为负例的正样本) 可能性比较大.

    Mini-batch Sampling:

    Fast RCNN 采用的是随机抽样, 使得正负样本的比例为 1:3, 为何是1:3, 而不是1:1呢? 可能是正样本太少了, 如果 1:1 的话, 一张图片处理的 ROI 就太少了, 不能充分的利用 Roi Pooling 前一层的共享计算, 训练的效率就太低了, 但是负例比例也不能太高了, 否则算法会出现上面所说的 false negative 太多的现象, 选择 1:3 这个比例是算法在性能和效率上的一个折中考虑, 同时 OHEM(online hard example mining)一文中也提到负例比例设的太大, Fast RCNN 的 mAP将有很大的下降.

    Online Hard Example Mining(OHEM):

    1、之前是随机选择ROI进行之后roi net的操作,论文中则可以通过OHEM选择那些检测困难的样本,并进行之后的roi net。

    2、在OHEM中,所有的proposal都先通过roi net进行forward操作,在backward的过程中,因为只对那些loss很大的roi进行了bp,因此计算量没有增加太多。

    3、在使proposal经过roi net之前,使用NMS去除重叠的bbox。

    4、在这里因为只使用那些loss很大的roi做bp,因此不需要设置fg-bg ratio,因为那些被忽视的正例的loss会越来越高,在之后样本选择的过程中会有更大的概率被选中进行bp。

    implementation details:

    1、在实现的过程中,我们可以将所有non-hard roi的loss修改为0,但是这种方法仍然会对所有的roi进行bp的运算,这回造成大量的内存损耗。

    2、针对以上问题,使用下列解决方案:使用2个RoI network,它们之间共享参数,一个roi network只用于forward,它是只读的,计算loss之后,选取hard example之后,将其作为另外一个roi network的输入,这个network是用于forward与backward的,整体的流程图如下

    20181017-ohem-流程图.png

    4、Class Balanced Loss

    CELoss:
    \mathrm{CE}(p, y)=\left\{\begin{array}{ll}{-\log (p)} & {\text { if } y=1} \\ {-\log (1-p)} & {\text { otherwise }}\end{array}\right. (1)
    In the above y ∈ {±1} specifies the ground-truth class and p ∈ [0, 1] is the model’s estimated probability for the class with label y = 1.

    For notational convenience, we define pt:
    p_{\mathrm{t}}=\left\{\begin{array}{ll}{p} & {\text { if } y=1} \\ {1-p} & {\text { otherwise }}\end{array}\right.(2)
    and rewrite CE(p, y) = CE(pt) = − log(pt).(3)

    where\alpha_{\mathrm{t}}=\left\{\begin{array}{ll}{\alpha} & {\text { if } y=1} \\ {1-\alpha} & {\text { otherwise }}\end{array}\right.(4)

    Class Balanced Loss:
    为交叉熵,加入权重。正负类加入各自的权重
    A common method for addressing class imbalance is to introduce a weighting factor α ∈ [0, 1] for class 1 and 1 − α for class −1.
    \mathrm{CE}\left(p_{\mathrm{t}}\right)=-\alpha_{\mathrm{t}} \log \left(p_{\mathrm{t}}\right)(5)

    5、Focal Loss:

    接着4,定义FocalLoss。
    \mathrm{FL}\left(p_{\mathrm{t}}\right)=-\alpha_{\mathrm{t}}\left(1-p_{\mathrm{t}}\right)^{\gamma} \log \left(p_{\mathrm{t}}\right) (6)

    where \alpha_t见公式(4),p_t见公式(2)。
    主要是针对较难分的 样本产生的损失值,容易划分的样本损失值小。作用于所有的正负样本上。为每一个样本都定义了一个权重,根据每个样本的p_t值。

    gamma = 2 , alpha = 0.25

    Refference:

    https://blog.csdn.net/weixin_35653315/article/details/78327408

    相关文章

      网友评论

          本文标题:类别不均衡问题

          本文链接:https://www.haomeiwen.com/subject/zarlsctx.html