深度学习 | 分类任务中类别不均衡解决策略

0.前言

在解决一个分类问题时,遇到样本不平衡问题。查找CSDN后,以及知乎后,发现网上有很多类似于欠采样 ,重复采样,换模型等等宏观的概念,并没有太多可实际应用(代码)的策略。经过一番查找和调试和修改,最终找到3个相对靠谱的策略,故总结此文给有需要同志,策略均来自网络,本人只是进行了部分代码修改和可用性测试。以下将简单介绍各个策略的机制以及对应代码(亲测能跑通)。

NOTE:下述代码均是基于caffe的,而且实现策略都是通过新增自定义层。主要流程大致为:修改caffe.proto–>导入hpp/cpp/cu–>重新编译–>执行。

1.带权重的softmaxLoss

softmaxLoss代码——github传送门
在样本不均衡分类问题中,样本量大的类别往往会主导训练过程,因为其累积loss会比较大。带权重的softmaxloss函数通过加权来决定主导训练的类别。在具体的实现过程中增加pos_mult字段(指定某类的权重乘子)和pos_cid字段(指定的某类的类别编号)两个参数来确定类别和当前类别的系数,通过系数来控制当前类别在反向传播中的重要性。(若pos_mult=0.5,就表示当然类别重要度减半)。

(1)修改caffe.proto文件
编辑src/caffe/proto/caffe.proto文件,主要是在原有的SoftmaxParameter字段上添加了pos_mul和pos_cid字段。

  optional float pos_mult = 3 [default = 1];
  optional int32 pos_cid = 4 [default = 1];

(2)导入hpp/cpp/cu文件
weighted_softmax_loss_layer.hpp

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值