NeurIPS 2022 | 视觉长尾学习模型为何无法较好地落地?

简介: NeurIPS 2022 | 视觉长尾学习模型为何无法较好地落地?

机器之心编辑部

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

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


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


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



该长尾类别不平衡问题使得神经网络的训练变得非常困难。所得到的模型往往有偏于多数类,即倾向于分对更多多数类样本,导致了模型在样本量有限的少数类上表现不佳。在去年这个时候,机器之心也报道了首篇《深度长尾学习》综述,呼吁大家正视长尾挑战!



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


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


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



那么,这个问题可以被解决吗?让我们看看这篇 NeurIPS 2022 的新方法究竟能够为长尾学习的落地带来哪些改变吧。

 


论文链接: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 能够在多个数据集的各种类别分布测试集(包括均匀分布、长尾分布、反向长尾分布)上取得最优的性能。



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



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


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

相关文章
|
20天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
32475 121
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
16天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
6902 20
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
15天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
4871 12
|
17天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
5715 21
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
17天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
6316 6
|
19天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
7782 17

热门文章

最新文章