作者 | kid丶@知乎

整理 | NewBeeNLP

太妙了,真是妙蛙种子到了妙妙屋!

分享一篇中稿CVPR 2021的工作,CReST: A Class-Rebalancing Self-Training Framework for Imbalanced Semi-Supervised Learning[1]

这篇文章是在组会上听到的,觉得真的是太太妙了。本文考虑的是半监督场景下的长尾分布问题,「即此时我们不仅没有足够的有标记样本,而且这些有标记样本的分布还是长尾分布的(类别不平衡的)。」

我当时心想,"好家伙,长尾分布问题和半监督问题两个这么难啃的骨头,你放在一块啃?" 接下来就来看看本文作者是如何四两拨千斤的。

长尾分布(Long-Tailed Distribution)

自然界中收集的样本通常呈长尾分布,即收集得到的绝大多数样本都属于常见的头部类别(例如猫狗之类的),而绝大部分尾部类别却只能收集到很少量的样本(例如熊猫、老虎),这造成收集得到的数据集存在着严重的类别不平衡问题(Class-Imbalanced),从而使得训练得到的模型严重的过拟合于头部类别。

对于解决长尾分布的方法有很多,例如重采样 (Re-Sampling) 以及重加权 (Re-Weighting)。重采样简单来说可以划分为两类,

  • 一是通过对头部类别进行「欠采样」减少头部类别的样本数,

  • 二是通过「过采样」对尾部类别进行重复采样增加其样本数,从而使得类别“平衡”。

但这样naive的方法存在的缺点也显而易见,即模型对尾部类别过拟合以及对头部类别欠拟合。

重加权方法的核心思想是类别少的样本应该赋予更大的权重,类别多的样本赋予更少的权重。此外有一篇文章[1]提出样本之间存在大量的信息冗余,因此提出了一个类别「有效样本数」的概念,还挺有意思,这里就不展开了。

动机(Motivation)

本文的问题设置更为复杂,考虑的是半监督场景下的长尾分布问题,「即此时我们不仅没有足够的有标记样本,而且这些有标记样本的分布还是长尾分布的(类别不平衡的)」。面对这么困难的问题,作者倒是不慌不忙,首先做了一个很有意思的实验。

作者使用 「FixMatch」 模型 (一个解决半监督问题的SOTA方法) 分别在具有长尾分布的「CIFAR10-LT」 (左边两张图) 以及 「CIFAR100-LT」 (右边两张图) 上进行了实验。其中横坐标代表长尾分布的不同类别,越小的数字代表是头部类别,越大的数字代表是尾部类别;纵坐标对应红点和蓝点分别是 Recall 和 Precision。

实验现象表明,「模型对头部类别的样本 Recall 很高,对尾部类别的 Recall 很低;模型对头部类别样本的 Precision 很低,但对尾部类别的 Precision 却很高」。这是一个很常见的类别不平衡问题里的过拟合现象,换句话来说,「模型对不确定性很高的尾部类别样本都预测成头部类别了。」

举个例子,我在训练阶段喂入模型100张猫的图片以及10张狗的图片,在测试阶段时会发现对于模型把握不准的狗的图片都会预测成猫,只有模型特别有把握的狗的图片才会预测成狗,此时会造成猫这个类别的 Recall 会非常高 Precision 却会非常低,反之狗这个类别的 Recall 会非常低但 Precision 却会非常高。

这个实验现象是符合直观的,但是怎么来运用上述这一信息呢?作者开始了他的 「白嫖计划」

方法(Method)

作者 follow 半监督学习中 self-training 的过程:

  • 使用标准的 SSL 算法利用已标记集和未标记集的信息训练一个有效的模型

  • 给未标记集 中的每个样本打上伪标记得到新的数据集

  • 「挑选出模型的预测类别属于尾部类别的样本作为候选集 加入到已标记集合中」

最妙的一步在第三步,「模型预测的类别属于尾部类别意味着这些样本的伪标记具有很高的置信度的(High precision),因为此时的模型是对头部类别过拟合的,此时模型还将某一样本预测为尾部类别说明该伪标记真的是该样本的 ground-truth。从另一方面,这一采样又巧妙的引入了尾部类别样本,从而缓解了类别不平衡问题。」

讨论

首先用两字总结该方法,「白嫖」。感觉啥外部信息都没有,仅仅利用了模型学习长尾分布样本表现出来的规律,「既“嫖”了未标记样本的真实标记,又“嫖”了尾部类别的样本。」

后面深度思考了一下这件事:

  • 这些被挑选出来的样本虽然有很大的可能具有正确的伪标记,但它可能不太具备代表性,即不能很好的代表这个类。换句话来说,模型对这些样本具有很大的置信度,即这些极可能是简单样本,对模型的学习帮助性可能不大,因此此时模型已经很确信能将其预测对了,此时再引入这些样本的loss其实很小,对模型的影响也不大。

  • 针对前面所提到的,所以我认为可能性能的提升绝大部分来自于类别平衡了,当然正确的简单样本的引入也会对模型性能提升有帮助。

  • 这个方法由此也会在半监督场景下作用明显,因此本来就没啥有标记样本,还如此的类别不平衡,此时给一些正确标记的虽然简单的样本对模型训练也是很有帮助的。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

本文参考资料

[1]

CReST: A Class-Rebalancing Self-Training Framework for Imbalanced Semi-Supervised Learning: https://arxiv.org/pdf/2102.09559.pdf

END -

ACL2021 | 把关键词生成看成集合预测问题

2021-07-22

机器学习领域综述大列表:真的很大, 你忍一忍

2021-07-20

万字梳理!BERT之后,NLP预训练模型发展史

2021-07-19

2021最全 深圳互联网公司

2021-07-18

妙啊!类别不平衡上的半监督学习相关推荐

  1. CVPR 2021|一个绝妙的想法:在类别不平衡的数据上施展半监督学习

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨kid丶@知乎(已授权) 来源丨https://zhuanla ...

  2. Github|类别不平衡学习资源(上)

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 138 篇文章,本文大约 5400 字,阅读大约需要 15 分钟 今天 ...

  3. Hinton 新作!越大的自监督模型,半监督学习需要的标签越少

    编译 | 青暮 转自 | AI科技评论 本文介绍了Hinton团队发表在NeurIPS 2020上的一项研究工作,一作是Ting Chen,研究人员首次在ImageNet上尝试了半监督学习的典型范式, ...

  4. Hinton新作!越大的自监督模型,半监督学习需要的标签越少

    来源:AI科技评论 编译:青暮 本文介绍了Hinton团队发表在NeurIPS 2020上的一项研究工作,一作是Ting Chen,研究人员首次在ImageNet上尝试了半监督学习的典型范式,并取得了 ...

  5. pandas keyerror: 标签_Hinton新作!越大的自监督模型,半监督学习需要的标签越少...

    编译 | 青暮 本文介绍了Hinton团队发表在NeurIPS 2020上的一项研究工作,一作是Ting Chen,研究人员首次在ImageNet上尝试了半监督学习的典型范式,并取得了优越的结果.此外 ...

  6. [半监督学习] Virtual Adversarial Training: A Regularization Method for Supervised and SSL

    提出一种基于虚拟对抗损失的新正则化方法, 虚拟对抗性损失被定义为每个输入数据点周围的条件标签分布对局部扰动的鲁棒性. 与对抗训练不同, VAT 方法在没有标签信息的情况下定义了对抗方向, 因此适用于半 ...

  7. (待完善)半监督学习(Semi-supervised learning)综述

    半监督学习(Semi-supervised learning)综述 1. 关于半监督学习 半监督学习是机器学习的分支,主要利用有标签样本以及无标签样本用于用于特定学习的任务.如下图,半监督学习有利于获 ...

  8. 数据类别不平衡/长尾分布?不妨利用半监督或自监督学习

    本文转载自知乎,已获作者授权转载,请勿二次转载. 链接:https://zhuanlan.zhihu.com/p/259710601 来给大家介绍一下我们的最新工作,目前已被NeurIPS 2020接 ...

  9. NeurIPS 2020 | 数据类别不平衡/长尾分布?不妨利用半监督或自监督学习

    作者:Yuzhe Yang 链接:https://zhuanlan.zhihu.com/p/259710601 本文转载自知乎,作者已授权,未经许可请勿二次转载 来给大家介绍一下我们的最新工作,目前已 ...

最新文章

  1. python 通过title判断_利用Python模拟GitHub登录
  2. 吴恩达新书《Machine Learning Yearning》手稿完工,现在全集免费下载!(附pdf下载)
  3. 深入理解BN、合并conv+BN公式推导
  4. PCIE总线-PCI、PCIE关系及信号定义
  5. 《数据库系统概念》20-恢复系统
  6. win10+anaconda3+python3.7+pytorch-cpu安装
  7. 一对一直播app大热,使用源码或自主开发一对一APP需要了解哪些技术?
  8. 关于Linux下载工具
  9. CSDN小秘书 测试版
  10. Jira和禅道哪个好
  11. Linux网络编程:libnet 移植及使用
  12. JavaScript防流量劫持-前端安全
  13. NET Reflector 8 使用
  14. linux文件误删恢复解决方案
  15. 启动root用户 银河麒麟_麒麟系统使用root权限运行程序
  16. 解Invalid character found in the request target.
  17. Android 面试题合集 - 收藏集 - 掘金
  18. 3.3 CNN经典网络实现
  19. 算力网络价值场景和市场机遇探讨
  20. CSUSTOJ 我爱吃烧烤 (状压dp)

热门文章

  1. SAP License:SAP项目文档的考核标准
  2. SAP License:更改MM物料基本计量单位
  3. SAP License:BWBCS学习记录
  4. SAP License:SAP用户权限
  5. How to use BMW 35080 adapter with Yanhua Mini ACDP
  6. 如何在同一地方组建多个 ZigBee 网络
  7. 第一章 —— 简单工厂模式(节选自:《大话设计模式》)
  8. preg_replace的一些细节
  9. Selenium 生成HTML的测试报告
  10. Memcahce和Redis比较