点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

导读

本文是谷歌对CVPR ' 19上发表的一篇文章的综述,文章的标题是Class-Balanced Loss Based on Effective Number of Samples。它为最常用的损耗(softmax-cross-entropy、focal loss等)提出了一个针对每个类别的重新加权方案,能够快速提高精度,特别是在处理高度类不平衡的数据时。

本文是谷歌对CVPR ' 19上发表的一篇文章的综述,文章的标题是Class-Balanced Loss Based on Effective Number of Samples。

它为最常用的损耗(softmax-cross-entropy、focal loss等)提出了一个针对每个类别的重新加权方案,能够快速提高精度,特别是在处理高度类不平衡的数据时

论文的PyTorch实现源码:https://github.com/vandit15/Class-balanced-loss-pytorch

样本的有效数量

在处理长尾数据集(其中大部分样本属于很少的类,而许多其他类的样本非常少)的时候,如何对不同类的损失进行加权可能比较棘手。通常,权重设置为类样本的倒数或类样本的平方根的倒数。

传统的权重调整与这里提出的权重调整

然而,正如上面的图所示,这一过度是因为随着样本数量的增加,新数据点的带来的好处会减少。新添加的样本极有可能是现有样本的近似副本,特别是在训练神经网络时使用大量数据增强(如重新缩放、随机裁剪、翻转等)的时候,很多都是这样的样本。用有效样本数重新加权可以得到较好的结果。

有效样本数可以想象为n个样本所覆盖的实际体积,其中总体积N由总样本表示。

有效样本数量

我们写成:

有效样本数量

我们还可以写成下面这样:

每个样本的贡献

这意味着第j个样本对有效样本数的贡献为βj-1。

上式的另一个含义是,如果β=0,则En=1。同样,当β→1的时候En→n。后者可以很容易地用洛必达法则证明。这意味着当N很大时,有效样本数与样本数N相同。在这种情况下,唯一原型数N很大,每个样本都是唯一的。然而,如果N=1,这意味着所有数据都可以用一个原型表示。

类别均衡损失

如果没有额外的信息,我们不能为每个类设置单独的Beta值,因此,使用整个数据的时候,我们将把它设置为一个特定的值(通常设置为0.9、0.99、0.999、0.9999中的一个)。

因此,类别均衡损失可表示为:

这里, L(p,y) 可以是任意的损失。

类别均衡Focal Loss

原始版本的focal loss有一个α平衡变量。这里,我们将使用每个类的有效样本数对其重新加权。

类似地,这样一个重新加权的项也可以应用于其他著名的损失(sigmod -cross-entropy, softmax-cross-entropy等)。

实现

在开始实现之前,需要注意的一点是,在使用基于sigmoid的损失进行训练时,使用b=-log(C-1)初始化最后一层的偏差,其中C是类的数量,而不是0。这是因为设置b=0会在训练开始时造成巨大的损失,因为每个类的输出概率接近0.5。因此,我们可以假设先验类是1/C,并相应地设置b的值。

每个类的权值的计算

计算归一化的权值

上面的代码行是获取权重并将其标准化的简单实现。

得到标签的onehot张量

在这里,我们得到权重的独热值,这样它们就可以分别与每个类的损失值相乘。

实验

类平衡提供了显著的收益,特别是当数据集高度不平衡时(不平衡= 200,100)。

结论

利用有效样本数的概念,可以解决数据重叠问题。由于我们没有对数据集本身做任何假设,因此重新加权通常适用于多个数据集和多个损失函数。因此,可以使用更合适的结构来处理类不平衡问题,这一点很重要,因为大多数实际数据集都存在大量的数据不平衡。

—END—

英文原文:https://towardsdatascience.com/handling-class-imbalanced-data-using-a-loss-specifically-made-for-it-6e58fd65ffab

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

使用一个特别设计的损失来处理类别不均衡的数据集相关推荐

  1. 数据集按类划分_用特别设计的损失处理非均衡数据

    本文是对 CVPR 2019 论文「Class-Balanced Loss Based on Effective Number of Samples」的一篇点评,全文如下: 这篇论文针对最常用的损耗( ...

  2. 回顾艾维在苹果的15款最经典设计:最后一个特别大

    回顾艾维在苹果的15款最经典设计:最后一个特别大 网易科技讯 6月28日消息,据外媒报道,苹果首席设计官乔尼·艾维(Jony Ive)宣布,他将于今年晚些时候离开公司,并将成立自己的设计公司,苹果将是 ...

  3. 【2017年第3期】Talent Network:一个基于设计思维的企业社交网络服务

    夏帆, 丁铖, 钱卫宁, 周傲英, Gopakumar Gopalakrishnan, Anjaneyulu Passala 华东师范大学 中图分类号:TP391     文献标识码:A doi:10 ...

  4. 怎么把竖线去掉_3小时完成一个logo设计,我是怎么做到的?

    在今天讲述我个人3小时设计一个logo的经历之前,我先为大家查阅了一下关于logo理论性的知识,对于理论性的解释还是查阅到位的信息给你们比较好,因为我个人的理解方式可能你们不会被完全理解,我们就先从l ...

  5. 如何实现一个遵从设计原则的积分兑换系统2

    业务开发包括哪些工作? 实际上,我们平时做业务系统的设计与开发,无外乎有这样三方面的工作要做:接口设计.数据库设计和业务模型设计(也就是业务逻辑). 数据库和接口的设计非常重要,一旦设计好并投入使用之 ...

  6. 英语入门 (从一个特别的视角来介绍)

    原文:英语入门 (从一个特别的视角来介绍) 我分享一下个人关于英语的简单认知,给想入门学习英语的人一个特别的视角,从而激发学习兴趣和好奇心. 想了解更多,欢迎关注我的微信公众号:Renda_Zhang ...

  7. 踩坑了、踩到一个特别无语的常识坑

    大家好 踩坑了啊,又踩坑了啊! 这次踩到一个特别无语的常识坑.知道真相的那一刻,人就是整个麻掉. 先上个代码: private static double calculate(double a, in ...

  8. jQuery 是为事件处理特别设计的。

    jQuery 是为事件处理特别设计的. 转载于:https://www.cnblogs.com/feng12345/p/5608110.html

  9. 20200314,今天是一个特别的日子

    20200314,今天是一个特别的日子,想了好多东西想要放在这篇文章里面来写,但是一直没有决定下来,先占一个位置,之后来补充.

最新文章

  1. Java 中的语法糖,真甜。
  2. Kafka设计解析(五):Kafka Benchmark--转
  3. QQ在屏幕边缘自动隐藏不能正常显示
  4. html调用静态json例子
  5. 转:高等数学、线性代数、概率论数理统计书籍推荐
  6. Android 里的数据储存
  7. 计算机美国学游戏开发,【工程与计算机】一石二鸟:开发游戏为申美国名校加码...
  8. Head First设计模式读书笔记十 第十一章 代理模式
  9. 快讯:阿里巴巴加入JCP执行委员会
  10. 【数据库】范围 通配符 排序(2020.3.18
  11. Visio使用技巧总结
  12. 人工势场python_ROS及SLAM进阶教程(十一)多机器人编队人工势场法协同避障算法原理及实现...
  13. C语言指针的入门pointer
  14. QT学习笔记(一)之本地播放器
  15. 像玩游戏一样做游戏 | Google Play 开发者故事
  16. php 每天的凌晨三点,为什么有些人总是会在凌晨3、4点醒来,到底是在暗示什么?...
  17. iOS设备分辨率 UI规范 以及适配
  18. 逃脱者2服务器不稳定,逃脱者2EPIC版新手常见问题解决方法汇总
  19. Centos挂载fat32格式的u盘和ntfs格式的移动硬盘
  20. LeetCode 810 Chalkboard XOR Game【思维】

热门文章

  1. 「2019嵌入式智能国际大会」 399元超值学生票来啦,帮你豪省2600元!
  2. 漫画:5分钟了解什么是动态规划?
  3. 资源 | 斯坦福最新NLP课程上线,选择PyTorch放弃TensorFlow
  4. 马云:很多P2P公司披着互联网金融的外衣做非法金融服务
  5. ICCV2017 | 一文详解GAN之父Ian Goodfellow 演讲《生成对抗网络的原理与应用》(附完整PPT)
  6. 增加了一行代码,让我们提高了 3000% 的性能
  7. 自从上了 SkyWalking,睡觉真香!!
  8. 教你如何通过分析GC日志来进行JVM调优
  9. JDK 13 新特性一览
  10. 抓包工具 tcpdump 用法说明