深度学习中如何处理数据不平衡问题?

数据不平衡带来什么问题?

假设在一个分类问题中,如果预测类别中存在一个或多个样本量极少的情况,比如在图像分类中识别恶性肿瘤(训练样本中含有肿瘤的图像远比没有肿瘤的图像少)。如果不考虑数据平衡的问题,模型的性能会出现问题。
原因:
1.对于不平衡类别,模型无法充分考察样本,从而不能及时有效地优化模型参数。
2.它对验证和测试样本的获取造成了一个问题,因为在一些类观测极少的情况下,很难在类中有代表性。换句话说,训练集中的数据过少,影响了模型对该类识别的泛化能力。

解决方法:

1.从数据出发

  • 对数据不平衡的类别进行严格的数据增强;
  • 利用大数据训练的模型(imagenet)进行transfer learning。

2.从loss出发

  • 设置class weight,在交叉熵 L c e = − a y l o g ( y ^ ) − ( 1 − a ) ( 1 − y ) l o g ( 1 − y ^ ) L_{ce}=-aylog(\hat{y})-(1-a)(1-y)log(1-\hat{y}) Lce=aylog(y^)(1a)(1y)log(1y^)添加系数a,使得缺少数据样本的类别在loss惩罚力度更大。
  • Focal Loss: L f l = − a ( 1 − y ^ ) γ y l o g ( y ^ ) − ( 1 − a ) y ^ γ ( 1 − y ) l o g ( 1 − y ^ ) L_{fl}=-a(1-\hat{y})^{\gamma}ylog(\hat{y})-(1-a)\hat{y}^{\gamma}(1-y)log(1-\hat{y}) Lfl=a(1y^)γylog(y^)(1a)y^γ(1y)log(1y^).其中a为权重因子, γ \gamma γ为调节参数。当正样本的预测概率 y ^ \hat{y} y^接近1时,则 1 − y ^ 1-\hat{y} 1y^接近0,那么 ( 1 − y ^ ) γ (1-\hat{y})^{\gamma} (1y^)γ就会变得更小。换句话说,当样本分类合理时,函数会降低损失惩罚,防止对参数过度优化,避免过拟合。而当正样本的预测概率 y ^ \hat{y} y^接近0时,则 1 − y ^ 1-\hat{y} 1y^接近1,因此 ( 1 − y ^ ) γ (1-\hat{y})^{\gamma} (1y^)γ会变小一点,但是跟上面情况比起来,其实相当于放大了。Focal Loss函数对容易分类的样本进行down weighting,focus on the hard samples,有效的解决了数据不平衡问题。

3.OHEM j解决简单样本与难分辨样本之间的类别不平衡

  • 由于目标检测套用图像分类的分类思想,但图像分类的数据集和目标检测的 数据集存在天然的差距,目标检测的目标框和背景框之间存在严重的不平衡
  • 在第t次迭代时,输入图片到卷积网络中得到特征图,然后 把特征图和所有的RoIs输入到RoI网络中并计算所有RoIs的损失,把损 失从高到低排序,然后选择B/N个RoIs。这里有个小问题,位置上相邻 的RoIs通过RoI网络后会输出相近的损失,这样损失就翻倍。作者为了 解决这个问题,使用了NMS(非最大值抑制)算法,先把损失按高到低排 序,然后选择最高的损失,并计算其他RoI这个RoI的IoU(交叉比),移 除IoU大于一定阈值的RoI,然后反复上述流程直到选择了B/N个RoIs。
  • 对于一次SGD迭代,计算过程如下:先计算出特征图,可读RoI网络对所 有RoI执行前向计算并计算每个RoI的损失,然后选择hard RoIs。把这 些hard RoIs输入到可读可写的RoI网络中执行前向前向计算和反向传播更新网络,并把可读可写的RoI网络的参数赋值给只可读的网络,一次 迭代就完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值