近年来,长尾学习在计算机视觉领域得到了广泛关注,甚至在学术领域的常用设定中有了很好的解决方案,但是该类算法却一直无法很好地落地

在这篇 论文中,来自新加坡国立、字节跳动和华为的学者表明:这个问题的本质在于实际应用中的测试集并不是单一的均匀分布的。因此,他们设计了 SADE 算法,即使是在一个固定的长尾分布数据集上训练的模型,也能够自适应地处理多个不同类别分布的测试场景。

深度长尾学习是计算机视觉领域中最具挑战性的问题之一,旨在从遵循长尾类别分布的数据中训练出性能良好且类别无偏的深度神经网络。在传统视觉识别任务中,数据的类别分布往往受人为调整而变得均衡,即不同类别的样本量无明显差别。

但在实际应用中,数据的不同类别往往遵循长尾分布(如下图所示):一小部分类别拥有大量的样本(被称为多数类),而其余大部分类别只有较少的样本量(被称为少数类)。

该长尾类别不平衡问题使得神经网络的训练变得非常困难。所得到的模型往往有偏于多数类,即倾向于分对更多多数类样本,导致了模型在样本量有限的少数类上表现不佳。

近年来,越来越多的研究开始探索长尾分类任务,并设计了各类方法来解决长尾类别不平衡问题,期望所得到的模型能在类别平衡的测试集上表现好。例如,Google 的 Logit Adjustment 从理论上提供了优雅的解法,能够较好地处理长尾分类任务中的类别不平衡。然而,学者们近期发现长尾学习问题到达了一个瓶颈,即传统的长尾分类问题似乎已经有了很好地解决方案,但却依然无法较好地落地。 那么,问题到底出在哪里呢?

这一问题的本质源于现存方法对传统长尾分类任务的设定:假设测试数据集的类别是均匀分布的,即不同的类别有相同的测试样本量。在这样的设定下,我们只需考虑如何优化模型在平衡数据集上的性能即可,因此最前沿的长尾学习方法往往都能在均匀分布测试集上表现良好。但问题在于,在实际应用场景中,测试集的类别分布是不可控的:它也许是均匀分布,但也可能是与训练集一样的长尾分布,甚至是反向长尾分布(即训练集中的少数类变成了测试集中的多数类)。

如下示意图所示,由现存长尾方法训练得到的模型虽能够较在服从均匀分布的测试集上表现良好,但却无法处理好遵循其他类别分布的测试集。这就导致那些在论文中看似表现良好的长尾学习模型无法较好地应用到实际场景中。

那么,这个问题可以被解决吗?

论文链接:https://arxiv.org/pdf/2107.09249.pdf

该工作呼吁大家研究测试分布未知的长尾识别问题(Test-agnostic Long-tailed Recognition)。该任务旨在从一个固定的长尾分布训练集上训练一个神经网络模型,并期望它能在服从不同类别分布(包括均匀、长尾、反向长尾分布)的测试集上表现良好。为了解决该任务,该论文提出了 SADE(Self-supervised Aggregation of Diverse Experts)算法,在多个数据集的不同类别分布测试集上均取得了显著的性能提升。

总体而言,这项研究阐明了:即使是在一个固定的长尾分布数据集上训练的模型,也能够自适应地处理不同类别分布的测试场景。目前该方法的代码已经开源,感兴趣的小伙伴可以在 Github 上查看。

GitHub:https://github.com/Vanint/SADE-AgnosticLT

方法

动机和方法框架 该工作发现:不同方法所得模型的性能分布是相对固定的,并不会随着测试分布的变化而变化。如下表所示,传统的 Softmax Cross-entropy 拟合原始长尾分布,因此它在多数类(Many-shot classes)上表现得比少数类(Few-shot classes)更好。这一特性在不同类别分布的测试集上表现一致。而由长尾学习方法(如 Balanced Softmax)所得到的模型则表现得更为均衡,且其性能分布在各测试分布上表现一致。 

这一现象说明了通过不同方法得到的模型具有不同的技能特长,即擅长不同的类别分布。例如,Softmax 更擅长长尾分布,而 Balanced Softmax 更擅长均匀分布。基于这一发现,自然能联想到:如果能训练多个擅长不同类别分布的模型,并在测试场景下能够有效地组合它们,我们就能自适应地处理任何类别分布了!

然而,这听起来很简单,但做起来却不太容易。这里有两个难题尚未解决:(1)如何在一个静态的、固定的长尾分布数据集上训练多个擅长不同类别分布的专家模型?(2)如何在完全无标注的测试数据上有效地组合多各专家模型?为了解决这些挑战,SADE 提出了两个解决策略:(a) 特长差异化的多专家模型学习策略,(b) 多专家模型测试场景自适应组合策略,如下图所示。

(a) 特长差异化的多专家模型学习策略 为了学习这样一个特长差异化的多专家模型,SADE 利用不同的损失函数训来练不同的专家模型。如下图所示,SADE 利用 Softmax loss 来学习擅长长尾分布的专家模型,用 Balanced Softmax loss 来学习擅长均匀分布的专家模型,并提出了一个新的 Inverse Softmax loss 来学习擅长反向长尾分布的专家模型。

相较于之前致力于学习多个具有相同类别分布的多专家学习方法 RIDE,该策略能有效学习擅长不同类别分布的多专家模型,如下表所示。

 (b) 多专家模型测试场景自适应策略 既然我们已经学到多个擅长不同类别分布的专家模型,那么接下就是如何自适应地组合它们。一个自然的想法就是适者生存,即更擅长目标测试集分布的专家应该被分配更高的组合权重。

那么问题来了:在无标签的测试数据上,如何去检测哪个专家更擅长测试集分布呢?为了解决这一问题,该研究观察到:给定一个测试分布,更强的专家模型往往能在预测其熟练类别样本时表现得更加稳定,即更强的专家对于其熟练类别样本的不同变体预测具有更高的预测相似性,如下表所示。

基于该发现,SADE 提出通过最大化样本不同变体之间的预测稳定性来检测更强大的专家模型,并自适应地学习专家模型间的组合权重,如下图所示。

 该策略能有效学到适用于未知测试类别分布的专家组合权重(如下表左),从而在不同类别分布(除均匀分布外)的测试集上都能获得显著的性能提升(如下表右)。 

基于上述策略,SADE 能够在多个数据集的各种类别分布测试集(包括均匀分布、长尾分布、反向长尾分布)上取得最优的性能。           whaosoft aiot http://143ai.com

在实际应用场景中,测试数据也许遵循部分类别分布(partial class distribution),即只有部分类别存在。对于这种更加复杂的应用场景,SADE 也能表现良好,如下表所示。

 总而言之,这篇的研究表明:通过合理的方法设计,即使是一个在固定的长尾分布数据集上训练的模型,也能够自适应地处理不同类别分布的测试场景,而不只是单纯地对一个固定的测试分布不断地过拟合。

因此,该研究有效地推动了视觉长尾学习模型在实际场景中的落地。我们希望通过对这项研究的介绍,大家能重新思考深度长尾学习的落地问题,并设计出更有效和更实际的长尾学习新范式!

SADE-AgnosticLT相关推荐

  1. DE、SaDE、JADE、SHADE、L-SHADE算法整理

    DE(Differential Evolution)算法 A. 基本算法原理 DE算法仍然是EA算法的一种,所以在学习DE算法之前,先让我们复习一下EA(Evolution Algorithm)算法的 ...

  2. Java学习_day009面向对象(oop):对象和类(下)

    方法的签名:方法名+参数列表 在一个类中不允许出现多个方法签名重复的情况 一.方法的重载(overload) 发生在同一个类中,方法名称相同,参数列表不同,方法体就不同. 编译器在编译时会根据方法的签 ...

  3. react+dva+antd接口调用方式

    一丶 安装 通过 npm 安装 dva-cli 并确保版本是0.8.1或以上. $ npm install dva-cli -g $ dva -v 0.8.1 二丶创建新应用 安装完dva-cli之后 ...

  4. 3d目标检测_CVPR 2020 |基用于3D目标检测的层级图网络

    论文:A Hierarchical Graph Network for 3D Object Detection on Point Clouds论文地址:https://www.aminer.cn/pu ...

  5. 2015-01-11 在SQL2008创建一个数据库

    将下列内容存储到以sql为后缀名的文件中即可,然后在拖到SQL 2008 Manager中进行 执行 就可以完成数据库的创建了 ------------------------------------ ...

  6. LL(1)文法与其对应的FOLLOW,SELECT和FIRST集

    所谓LL1(1)文法是一种预测分析文法. 从文法的开始符号出发,从每一步推导过程中根据当前句型的最左非终结符A和当前输入符号a能够就能够确定出一个产生式.这样就是预测分析文法的工作过程.仔细想这个过程 ...

  7. 语言识别之根据字典矫正文本及其c++代码实现

    1.原理 当我们获取文本的时候,我们把里面的每一个词拿出来与字典进行比较,得到最短距离的那个就是我们觉得最接近的词.一般需要对词进行大小写规范,还有长度,以及 标点符号去除.然后再把矫正过的词保存到另 ...

  8. 欧拉计划22--Names score

    姓名得分 在这个46K的文本文件names.txt(右击并选择"目标另存为--")中包含了五千多个姓名.首先将它们按照字母序排列,然后计算出每个姓名的字母值,乘以它在按字母顺序排列 ...

  9. PE 022 Names score

    题目链接: 直接模拟就好了 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; string na ...

  10. util是什么意思计算机英语,util是什么意思_util怎么读_util翻译_用法_发音_词组_同反义词_跑龙套-新东方在线英语词典...

    权威例句 Genero : uma categoria util de analise historicaUma revisão sobre os conceitos de acesso e util ...

最新文章

  1. HDFS联邦机制实现HA原理
  2. 异步任务---SpringBoot
  3. 信息学奥赛一本通(2035:【例5.2】平移数据)
  4. 使用d3.v3插件绘制出svg图
  5. 在Windows下使用Git+TortoiseGit+码云管理项目代码
  6. Android之使用Http协议实现文件上传功能
  7. Debian从光盘apt-get
  8. 【keras】数据增强之---ImageDataGenerator
  9. C语言pid算法模糊控制,温度PID模糊控制的算法完整
  10. PS教程淘宝美工平面设计入门自学课 photoshop软件零基础视频大全
  11. origin导出矢量图再编辑
  12. h5制作导出html,H5制作工具Hype的导出功能详解
  13. 齐岳|马钱苷酸小麦麦清白蛋白纳米粒|雷公藤红素乳清白蛋白纳米粒Celastrol-whey protein
  14. 「电创云」:「空间优造」与「绿多多」「绿点」绿色社区
  15. 什么样的程序员适合去创业公司
  16. 事件分发(EventDispatcher)模式
  17. 三款软件,让你的文字转语音更简单
  18. AtCoder Beginner Contest 214(补题)
  19. vb.net 教程 序
  20. ArcGIS API for JavaScript之基础篇(二)

热门文章

  1. ThinkPad 预装win8换win7(软激活)
  2. 安装 Realtek HD Audio Driver 失败 Error Code : 0xE0000100
  3. banq、J道——相见恨晚!
  4. 在…视域下是什么意思_视域论文,关于翻译文化特性视域下汉语文化负载词语英译探析相关参考文献资料-免费论文范文...
  5. 不存在可用的有效责任
  6. php文件下载记录,php 文件被下载怎么办
  7. php 下载文件提示框,解决nginx打开php文件总是显示下载框的问题 | 学步园
  8. 公众号关注html引导页,微信公众号分享的引导页(附素材)
  9. 特斯拉的小秘密:其净利润并非来自汽车销售?
  10. [2010-02-21] 一场关于Google成功因素的大辩论