深度学习之如何处理样本不平衡?

什么是样本不平衡?

在计算机视觉(CV)任务里常常会碰到类别不平衡的问题, 例如:

  1. 图片分类任务:有的类别图片多,有的类别图片少
  2. 检测任务:现在的检测方法如SSD和RCNN系列,都使用anchor机制。 训练时正负anchor的比例很悬殊.
  3. 分割任务:背景像素数量通常远大于前景像素。
    从实质上来讲, 它们可以归类成分类问题中的类别不平衡问题:对图片/anchor/像素的分类。

再者,除了类不平衡问题, 还有easy sample overwhelming的问题。easy sample如果太多,可能会将有效梯度稀释掉。
这两个问题通常都会一起出现。 如果不处理, 可能会对模型性能造成很大伤害.用Focal Loss里的话说,就是训练不给力, 且会造成模型退化.

样例数目较多的类别在反向传播时对权重占主导地位。这一现象会使网络训练初期,快速的降低数目较多类别的错误率,但随着训练的迭代次数增加,数目较少类的错误率会随之上升

解决样本不平衡问题的方法?

常见的方法有online的, 也有非online的;有只处理类间不平衡的,有只处理easy example的, 也有同时处理两者的。
Hard Negative Mining, 非online的mining/boosting方法
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。若正样本数量不足就用负样本填充。
Online Hard Example Mining, OHEM(2016)。将所有sample根据当前loss排序,选出loss最大的N个,其余的抛弃。这个方法就只处理了easy sample的问题。
Oline Hard Negative Mining, OHNM, SSD(2016)里使用的一个OHEM变种, 在Focal Loss里代号为OHEM 1:3。在计算loss时, 使用所有的positive anchor, 使用OHEM选择3倍于positive anchor的negative anchor。同时考虑了类间平衡与easy sample。
Class Balanced Loss。计算loss时,正负样本上的loss分别计算, 然后通过权重来平衡两者。
Focal Loss(2017), 最近提出来的。不会像OHEM那样抛弃一部分样本, 而是和Class Balance一样考虑了每个样本, 不同的是难易样本上的loss权重是根据样本难度计算出来的。

这些方法都是在计算loss时通过给样本加权重来解决不平衡与easy example的问题。不同的是,OHEM使用了hard weight(只有0或1),而Focal Loss使用了soft weight(0到1之间).

现在依然常用的方法特性比较如下:

Method是否处理Class Inbalance是否处理Easy Example权值方式
OHEMNoYesHard
OHNM(OHEM 1:3)YesYesHard
Class Balanced LossYesNoSoft
Focal LossNoYesSoft

简要说明

从损失函数,数据处理,网络训练,梯度下降简要说明.
损失函数:计算loss时,正负样本上的loss分别计算, 然后通过权重来平衡两者
数据处理:数据扩充,针对样本数量较少的类别进行数据扩增
网络训练:采样策略,增加样本数量较少的类别的选中概率

mean squared false error (MSFE) loss
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值