来源丨https://zhuanlan.zhihu.com/p/539749541
本文由被ECCV2022接受论文的作者亲自解读,讲述如何推广传统不平衡分类问题的范式,将数据不平衡问题从单领域推广到多领域。 >>加入极市CV技术交流
前言
项目主页:
http://mdlt.csail.mit.edu/
论文链接:
https://arxiv.org/abs/2203.09513
代码,数据和模型开源链接:
https://github.com/YyzHarry/multi-domain-imbalance
来给大家介绍一下我们的新工作,目前已被ECCV 2022接收:
On Multi-Domain Long-Tailed Recognition, Imbalanced Domain Generalization and Beyond。顾名思义,这项工作研究的问题是当有多个领域(domain)数据,且这些 domain 都存在(可能互不相同的)数据不平衡情况下,该如何学习到鲁棒的模型。现有的处理不平衡数据/长尾分布的方法仅针对单域,即数据来源于同一个 domain;但是,自然数据可以源自
不同 domain,而其中一个 domain 中的 minority class 可能在其他 domain 会是 majority class;而有效的利用不同域的数据很可能会提升长尾学习的表现。本文推广了传统不平衡分类问题的范式,将数据不平衡问题从
单领域推广到
多领域。
其中,多域长尾学习(Multi-Domain Long-Tailed Recognition,MDLT)的首个目标,是模型能够在
每一个 domain 的
每一个 class 上,都有较好的 performance。而更一进步,因为从多个不同的 domain 学习,我们希望模型也能够泛化到 unseen domain,即 (Imbalanced) Domain Generalization,
不平衡域泛化。
我们首先提出了
domain-class transferability graph,用来刻画不同 <domain, class>对 之间的可转移性(相似程度)。我们发现,基于这种定义的 transferability,直接决定了模型在 MDLT 任务上的表现。在此基础上,基于理论分析,我们提出了
BoDA,一个理论上能够 upper-bound 住 transferability 统计量的损失函数,来提升模型在 MDLT 问题上的性能。我们基于流行的多域数据集,构建了五个新的 benchmark MDLT 数据集,并实现和对比了约
20种 涵盖 DA,DG,imbalance 等不同的算法,发现 BoDA 能够稳定提升 MDLT 的性能。
此外,更有意思的是,我们发现目前流行的 域泛化(domain generalization,DG)问题的数据集本质上也是不平衡的,这种不平衡贯穿于
(1) 同一个 domain 内部的标签不平衡;
(2) 不同 domain 之间的不平衡标签分布的不一致。这证实了数据不平衡是 DG 中的一个内在问题, 但被过去的工作所忽视。神奇的是,我们发现当和 DG 算法结合到一起,BoDA 能稳定提升 DG 的表现,这也揭示了
标签不平衡会影响 out-of-distribution generalization,而实用鲁棒的
DG 算法设计也需要整合标签不平衡的重要性。
1. 研究背景与动机
现实世界的数据经常表现出标签不平衡 — 现实数据通常不会是每个类别都具有理想的均匀分布,而是本质上会呈现长尾分布,其中某些类别的观测数据量明显较少。为了应对这种现象,许多解决数据不平衡的方法被陆续提出;完整的现有不平衡学习方法调研欢迎查看:
分类机器学习中,某一标签占比太大(标签稀疏),如何学习?(
https://www.zhihu.com/question/372186043/answer/1501948720)
但是,现有的从不平衡数据中学习的解决方案,主要考虑的是 single domain 的情况,也就是说所有样本来自于
同样的 data distribution。然而,真实情况下,针对同一项任务的数据可以来自
不同的域(domain)。
例如下图所示,Terra Incognita[1] 是一个实际采集的野生动物识别+分类的数据集。左边子图显示的是在不同位置建立的 camera trap,以及拍到的野生动物样例;而右图则是(一部分)不同 camera location 拿到的具体数据分布以及其拍摄效果。
我们可以明显的看出,即使是同一个 wildlife 分类任务,不同 camera 的参数、拍摄背景、光照强度等也完全不同,即不同 camera trap 之间存在
domain gap。而由于某些动物只会出现在特定位置,这导致了一个 camera(domain)的数据是
不平衡的,甚至没有某一些类别的数据(例如 location 100 几乎没有类别0和1的数据)。但由于不同 camera 拍到的 label distribution 往往截然不同,这也暗示了其他 domain 很可能在这些类别有许多样本 — 如 location 46 就有较多的类别1 的数据。这说明了我们可以
利用多域数据来解决在每个域内固有的数据不平衡问题。
Terra Incognita数据集样例。同一个wildlife分类任务中,不同相机的参数、拍摄背景、光照强度等也完全不同;并且,同一个相机拿到的数据也是类别极度不平衡的;不仅如此,不同相机拍到的标签分布也截然不同,往往是非常mismatch的。但这也说明我们可以利用多域数据来解决每个域内固有的数据不平衡。
同样,在其他实际应用中也会发生类似的情况。例如,在视觉识别问题中,来自“
照片”图像的少数类可以用来自“
草图”图像的潜在丰富样本来补充。同样,在自动驾驶中,“
现实”生活中的少数事故类别可以通过“
模拟”中产生的事故来丰富。此外,在医学诊断中,来自不同人群的数据可以相互增强,例如其中一个机构的少数样本可以与其他机构的可能存在的多数实例相结合。在以上这些例子中,不同的数据类型可以充当
不同的域,而这样的
多域数据也可以被有效的利用
来解决数据不平衡问题。
因此,在这项工作中,我们定义并研究
多域长尾分布学习,Multi-Domain Long-Tailed Recognition(
MDLT),即从来自多个不同域的不平衡数据中学习。具体来说,给定具有多个域的目标数据集,MDLT 旨在从来自多域的不平衡数据中学习,解决每个域内的标签不平衡、不同域之前的不同标签分布,并且最终模型能够泛化到
所有域的
所有类别上。对于 MDLT 我们考虑用一个在每个域的每个类别上分布是平衡的测试集来测试模型的泛化能力,这样能够为 MDLT 提供非常全面并且没有偏差的评估。这种 setting 也是对单域长尾识别问题的自然的推广,与其 setting 保持一致。
2. 多域长尾学习的难点与挑战
需要注意到的是,相比于单域的长尾识别问题,MDLT 带来了以下全新的挑战。
(一)首先,
每个域的标签分布都可能与其他域不同(label distribution shift across domains)。例如,在上一个gif图中,“照片” 和 “卡通” 域都表现出不平衡的标签分布;然而,“卡通” 中的 “马” 类比 “照片” 中的样本多得多。因此,除了域内数据不平衡之外,这还带来了
跨域标签分布不同的挑战。
(二)此外,多域数据必然会涉及到
域之间存在偏差(domain shift)。简单地将来自不同域的数据视为一个整体并应用传统的数据不平衡方法不太可能产生最佳结果,因为域之间的 gap 可以任意大。例如在第一张图中显示的 wildlife camera traps,不同camera的参数、拍摄背景等往往差距很大,而模型设计上也需要考虑到这一点。
(三)最后,与单域不同,在多域长尾学习中,
某些域的某些类别可能就根本没有数据。因此,MDLT 自然地包含了
域内 和
跨域 的
零样本泛化(zero-shot generalization within and across domains) — 即(1)泛化到域内缺失类(gif图中 “草图” 域的右侧部分);以及(2)完全没有训练数据的新域,也通常称为域泛化(Domain Generalization,DG)。
总结上述的问题,我们可以看到MDLT相比与传统的单域不平衡分类具有全新的难点与挑战。那么,我们应该如何进行多域长尾学习呢?在接下来的两节,我们将从整体建模、motivating examples、观察到的现象、理论推导,到最终损失函数的设计,来一步一步分析这个问题,并最终提升模型在MDLT任务上的表现。
3. Domain-Class Transferability Graph(域-类对可转移性图)
这里我们首先提出了一系列定义,来对 MDLT 这个问题建模。在单域长尾识别问题中,我们通常考虑的 “最小单位” 是 一个类别(class),也即按照样本数量不同分成 majority classes 和 minority classes。然而当拓展到多域情况,我们该如何定义这个 “最小单位”,从而能同时考虑到 domain shift 和 class imbalance 呢?我们提出,在 MDLT 下,这个基本单元自然而然地变成了一个
“域-类对”(domain-class pair)。
那么当我们从 “域类对” 下手,我们则可以在 embedding space 上,通过定义不同域类对之间的距离,来定义其之间的
可转移性(相似程度):
直观地说,两个域类对之间的可迁移性是它们特征之间的平均距离,表征它们在特征空间中的接近程度。距离函数 d 默认设置为 Euclidean distance(一阶统计量),但也可以选用其他距离来度量高阶统计量(例如用 Mahalanobis distance 也用到了 covariance)。那么自然而然地,基于 transferability 我们可以定义 transferability graph(可转移性图):
在 Transferability graph 里,每一个 node 是一个 域类对,而每一条边则是两个域类对之间的 transferability。通过这种定义,我们可以直观地将 transferability graph 可视化到一个二维平面。
具体而言,由上图 (a)(b) 所示,对于每一个域类对,我们可以计算出属于这个域类对的所有数据的
特征统计量(mean,covariance等)。那么对于不同域类对,我们进一步计算两两之间的 transferability,由此我们生成一个完整的可转移性图,由矩阵形式表示(图a)。之后我们可以使用
多维缩放(MDS)[2] 在2D平面上可视化这种相似性以及其可转移性图(图b)。
在图b中,我们可以看到不同domain用不同颜色来标记,每一个点代表一个域类对,其大小代表所含数据量多少,数字则代表具体类别;而他们之间的
距离,则可以看作
transferability。
显而易见,我们希望相同的数字(即相同类别)的域类对更接近,而不同类别的域类对互相远离;而这种关系,能够更加被抽象化成三种可转移性统计量:不同domain相同class(
),相同domain不同class(
),以及不同domain不同class(
):
那么到此为止,我们为 MDLT 进行了建模和数学形式上的定义。接下来我们将进一步探索 transferability 和 最终MDLT performance的关系。
4. 什么是多域长尾学习上好的特征?
4.1. 发现1:跨域不匹配的标签分布会阻碍模型学到可转移的特征
我们首先发现:由于不平衡的存在,不同域上
不同的标签分布阻碍了模型学到可转移的特征。
Motivating Example:我们首先构建了一个小型 MDLT 数据集,
Digits-MLT,是将两个数字分类数据集合并到一起:(1) MNIST-M[3],一个彩色背景的MNIST手写数字数据集,以及 (2) SVHN[4],一个街头拍摄的数字数据集。这两个数据集的任务是一致的,也即0~9的十个数字分类问题。我们手动改变每个域类对的样本数量以模拟不同的标签分布,并针对每种情况使用经验风险最小化 (ERM) 训练一个普通的 ResNet-18。我们保持所有测试集是平衡且相同的。
上图的结果揭示了有趣的观察结果。当每个域的标签分布平衡且跨域相同时,尽管存在域差距,但并不妨碍模型学习高精度(90.5%)的判别特征,如图a 所示。如果标签分布不平衡但保持相同(图b),ERM 仍然能够对齐两个域中的相似类,其中多数类(例如类9)在可转移性方面要好于少数类(例如类0)。相反,当标签在域之间既不平衡又不匹配时,如图c 所示,学习到的特征不再是可迁移的,这也导致了
学到的特征在域之间存在明显的gap,以及最差的准确率。这是因为跨域的不同标签分布会产生shortcut;模型可以简单地通过分离两个域来最小化分类损失。
这种现象表明,
可转移的特征是我们所需要的。上面的结果表明,模型需要学到跨域类对的可转移的特征,尤其是在数据不平衡时。特别是,同一类跨域之间的transferability 应大于域内或跨域的不同类之间的transferability — 而这则可以通过 (
) 可转移性统计量来量化。
4.2. 发现2:转移统计量刻画了模型的泛化能力
承接上文,我们说到模型需要可转移的特征,而可转移性统计量则可以帮助量化判断模型的好坏。那么可转移性统计量和 模型performance 的具体关系是什么呢?
Motivating Example:同样,我们使用具有不同标签分布的 Digits-MLT。我们考虑三种不平衡类型来组成不同的标签配置:(1)统一(即平衡标签),(2)前向长尾,其中标签在类别ID上表现出长尾分布,以及(3)后向长尾,其中标签相对于类别ID 是反向长尾的。对于每种配置,我们训练了 20 个具有不同超参数的 ERM 模型。然后我们计算每个模型的 (
) 统计量,并绘制其分类准确度与
的关系。
-
(
) 统计量表征了模型在 MDLT 中的性能。特别是,
统计量在整个范围上和每个标签配置的测试性能均显示出
非常强的相关性。
-
数据不平衡会增加学到不可迁移特征的风险。当跨域的标签分布一致且平衡时(图a),模型对变化的参数具有鲁棒性,在右上区域聚集。然而,随着标签变得不平衡(图b、c)和进一步发散(图d、e),模型学习不可迁移特征(即较低的
)的机会增加,导致性能大幅下降。
4.3.BoDA: 一种能 Bound 转移统计量的损失函数
我们利用上述发现设计了一个特别适合 MDLT 的新损失函数。我们将首先介绍损失函数,然后理论证明它最小化了 (
) 统计量的上限。我们从一个受度量学习目标启发的简单损失开始,并称这种损失为
,因为它旨在实现域类分布的对齐,即跨域对齐同一类的特征:
直观来看,
解决了标签分布跨域不匹配的问题,因为共享同一类的域类对将被拉得更近,反之亦然。它还与 (
) 统计有关,因为分子表示正跨域对 (
),分母表示负跨域对 (
)。
但是,它并
没有解决标签不平衡问题。我们注意到(
)是以平衡的方式定义的,与每个域类对中的样本数无关。然而,给定一个不平衡的数据集,大多数样本将来自多数域类对,这将主导
并导致少数域类对被忽略。
BoDA loss:为了应对上述问题,我们进一步修改公式1,得到 Balanced Domain-Class Distribution Alignment (BoDA) loss —
可以发现,BoDA 将原始的距离函数 d 缩放了
的因子,其中
是域类对
的样本数量。即,BoDA 通过引入
平衡的距离度量
来抵消
不平衡域类对的影响。而对于
,我们证明了以下定理:
具体的证明细节请详见我们文章。定理1有如下的有趣的含义:
-
是 (
) 统计量的一种理想的形式的upper-bound。通过最小化
,我们确保了低
(吸引相同的类)和高
(分离不同的类),这是 MDLT 中泛化的必要条件,自然转化为更好的性能。
-
统计量中的常数因子对应于每个部分对可迁移性图的贡献程度。我们注意到在
里,目标与
成正比。根据定义3,我们注意到
总结了
同一类的数据相似性,而 $ \frac
1}{β + \frac
\gamma
β
γ$ 的加权平均值总结了
不同类的数据相似性,其中它们的权重与相关域的数量成正比(即,
为 1,
为
)。
4.4. 校准数据不平衡可以得到更好的转移性
BoDA 的工作原理是鼓励跨域的相似类的特征迁移,即如果 (d, c) 和 (d' , c) 是不同域中的同一类,那么我们希望将它们的特征是相互迁移的。但是,
由于数据不平衡,少数域类对的统计量估计值自然会更差,而这种情况下迫使其他对转移到它们会损害模型的学习过程。因此,当在特征空间中使两个域类对更接近时,我们希望
少数域类对转移到多数,而反过来则不是。
这里细节较多,就直接跳过了,我们的 paper 中给出了详细的 motivating example 和 interpretation。结论是,可以通过在 BoDA的基础上加上一个
Calibration 项,由
两个域类对的相对样本数量来实现转移程度的控制:
5. 基准MDLT数据集及实验分析
基准MDLT数据集:终于来到了激动人心的实验部分 ;) 为了方便对不平衡算法进行标准的测试,以及方便未来的research工作,我们在现有的multi-domain数据集基础上,建立了五个MDLT的基准数据集。具体来说,我们使用的是域泛化的基准数据集[5],并将它们用于 MDLT 评估。为此,我们为每个数据集创建两个平衡的数据集,一个用于验证,另一个用于测试,其余的用于训练。验证和测试数据集的大小分别约为原始数据的 5% 和 10%。这些数据集的训练数据分布如下图所示:
此外,我们选取了
近20种算法,涵盖了 multi-domain learning,distributionally robust optimization,invariant feature learning,meta-learning,imbalanced learning 等各种类别作为基线方法比较,并
对每种算法优化了超参数。这样的过程确保了比较是最佳与最佳的(
best-vs-best),并且超参数针对所有算法进行了优化。
在评估过程中,除了跨域的
平均准确率外,我们还报告了所有域的
最差准确率,并将所有域类对进一步划分为几个
不相交的子集:称为many-shot(训练样本超过 100 个的),medium-shot(20∼100 个训练样本的),few-shot(训练样本少于 20 个的),还有zero-shot(没有训练数据的),并报告这些子集的结果。具体详见我们的文章。
实验:由于实验较多,这里仅展示在所有数据集上的合并结果,所有的结果请详见论文。如下图所示,BoDA(及其变种)在所有数据集上始终保持最佳平均准确度。在大多数情况下,它还可以达到最佳的最坏情况精度。此外,在某些数据集(如OfficeHome-MLT)上,MDL 方法表现更好(如CORAL),而在其他数据集(如TerraInc-MLT)上,不平衡方法获得更高的收益(如CRT);尽管如此,无论数据集如何,BoDA 都优于所有方法,突出了其对 MDLT 任务的有效性。最后,与 ERM 相比,BoDA 略微提高了平均和many-shot的性能,同时大幅提升了medium-shot、few-shot和zero-shot的性能。
实验分析之 BoDA 学到了怎样的可转移性图:我们进一步来对提出的方法做一些进一步的分析。我们绘制了通过BoDA学到的可转移性图,并在不同跨域标签分布下与 ERM 进性对比。从下图可以发现,BoDA 学习到了更加
平衡的特征空间,将不同的类别分开。当标签分布是平衡且一致时,ERM 和 BoDA 都能学到好的特征;而当标签开始不平衡(b,c),甚至跨域不匹配(d,e)时,ERM 的可转移性图出现了明显的 domain gap;与之对应,BoDA 则能一直学到平衡且对齐的特征空间。更好的学习特征便转化为更好的准确度(
9.5% 的绝对准确度增益)。
6. MDLT 更进一步:不平衡域泛化问题
域泛化(DG)是指从多个域中学习并泛化到未见过的域。由于学习域的标签分布很可能不同,甚至可能在每个域内都存在类不平衡,因此我们研究解决跨域数据不平衡是否可以进一步增强 DG 的性能。回想我们为 MDLT 建立的所有数据集都是 DG 的基准数据集
,这证实了数据不平衡是 DG 的一个内在问题,但过去的工作却忽略了这一点。
我们研究 BoDA 是否可以提高 DG 的性能。为了测试 BoDA,我们遵循标准的 DG 评估协议 [5]。通过上表,我们发现仅 BoDA 就可以在五个数据集中的四个上提升当前的结果,并实现显着的平均性能提升。
此外,结合当前的SOTA,BoDA 进一步将所有数据集的结果显着提升,这表明
标签不平衡与现有的 DG 特定算法是正交的。最后,与 MDLT 类似,增益取决于数据集内不平衡的严重程度——例如,TerraInc 表现出跨域最严重的标签不平衡,而 BoDA 在其上获得最高增益。这些有趣的结果揭示了
标签不平衡如何影响域泛化,并强调了整合标签不平衡对于实际 DG 算法设计的重要性。
7. 结语
最后总结一下本文,我们提出了一个新的任务,称为多域长尾分布学习(MDLT),同时我们系统性地研究了MDLT,并提出了有理论保障的新损失函数 BoDA,以解决多域的学习不平衡数据的问题,最后我们建立了五个新的benchmark来方便未来在多域不平衡数据上的研究。本文有很直观的问题分析与解释,理论证明,以及用非常
简洁并且
通用的框架去提升
多域下的不平衡学习任务。此外,我们发现标签不平衡会影响 out-of-distribution generalization,而实用鲁棒的DG算法设计也需要整合标签不平衡的重要性。
参考
-
Recognition in Terra Incognita. ECCV, 2018.
-
Multidimensional scaling. Measurement, judgment and decision making, pages 179–250, 1998.
-
Domain-adversarial training of neural networks. Journal of machine learning research, 17(1):2096–2030, 2016.
-
Reading digits in natural images with unsupervised feature learning. NIPS Workshop on Deep Learning and Unsupervised Feature Learning, 2011.
-
In search of lost domain generalization. In ICLR, 2021.
-
Delving into Deep Imbalanced Regression. ICML, 2021.
公众号后台回复“目标检测综述”获取目标检测(2001-2021)综述PDF~