题目:Open Long-Tailed Recognition in a Dynamic World
动态世界中的开放长尾识别
作者:Ziwei Liu; Zhongqi Miao; Xiaohang Zhan; Jiayun Wang; Boqing Gong; Stella X. Yu
源码链接: https://liuziwei7.github.io/projects/LongTail.html
摘要
真实世界的数据往往呈现出长尾和开放式(即包含未见类别)的分布。一个实用的识别系统必须在多数类(头部类)和少数类(尾部类)之间取得平衡,跨分布泛化,并在未见类别(开放类)的实例中承认新颖性。我们定义了Open Long-Tailed Recognition++(OLTR++)作为从这类自然分布的数据中学习,并针对包括已知和开放类别的平衡测试集优化分类准确率。OLTR++在一个集成算法中处理了类别不平衡、少样本学习、开放集识别和主动学习,而现有的分类方法通常只关注一个或两个方面,并且在整体范围内表现不佳。关键挑战是:1)如何在头部和尾部类之间共享视觉知识,2)如何减少尾部和开放类之间的混淆,3)如何利用学到的知识积极探索开放类。我们的算法OLTR++将图像映射到一个特征空间,使得视觉概念可以通过记忆关联机制和一个学习到的度量(动态元嵌入)相互关联,这既尊重已知类别的封闭世界分类,也承认开放类别的新颖性。此外,我们提出了一个基于视觉记忆的主动学习方案,以数据高效的方式学习识别开放类,以适应未来的扩展。在三个我们从ImageNet(以对象为中心)、Places(以场景为中心)和MS1M(以面部为中心)数据中策划的大规模开放长尾数据集,以及三个标准基准(CIFAR-10-LT、CIFAR-100-LT和iNaturalist-18)上,我们的方法作为一个统一框架,始终展现出竞争性的性能。值得注意的是,我们的方法还在开放类的主动探索和少数群体的公平性分析方面显示出强大的潜力。
关键词
- 长尾识别 (Long-tailed recognition)
- 少样本学习 (Few-shot learning)
- 主动学习 (Active learning)
1 引言
我们的视觉世界本质上是长尾和开放式的[1],少数常见的视觉类别(即头部类)和更多的相对罕见的类别(即尾部类)共存。同时,随着我们在开放世界中的探索,新的视觉概念不断出现(即开放类)。
尽管自然数据分布包含头部、尾部和开放类,现有的分类方法主要集中在头部[2][3]或尾部[4][5],通常在封闭设置中[6][7](见图2)。因此,我们正式研究了自然数据环境中出现的开放长尾识别++(OLTR++)。一个实用的系统应该能够处理少数头部和许多尾部类别,从仅有的几个已知实例中泛化单一类别的概念,并且在遇到未见或开放类别的新实例时承认并探索新颖性。我们定义OLTR++为从长尾和开放式分布的数据中学习,并在包括头部、尾部和开放类在内连续谱的平衡测试集上评估分类准确率(见图1)。
OLTR++的关键挑战是尾部识别的鲁棒性和开放集的敏感性。随着训练实例的数量从头部类的数千个减少到尾部类的少数几个,我们应该防止性能急剧下降。与此同时,对于开放类,识别性能依赖于区分未知样本与已知类别的敏感性,以及选择信息量大的样本进行数据高效的主动探索和未来模型更新。
在我们的算法(OLTR++)中,有一个学习到的度量,既尊重封闭世界的分类,也承认开放世界的新颖性。这个度量将图像映射到嵌入空间(动态元嵌入),在这个空间中,视觉概念可以相互关联,以提高尾部识别的鲁棒性和开放集的敏感性。
具体来说,我们的动态元嵌入由两部分组成:直接特征和诱导特征。1)直接特征是通过分类损失对训练数据进行随机梯度下降更新的标准嵌入。由于缺乏足够的监督,它通常在尾部类的泛化性上不如头部类。2)记忆特征,相反,是通过视觉记忆关联机制产生的诱导特征,受元学习方法[4][8][9]的启发,它增强了每个图像的直接特征,以获得更好的区分性。关联是学习从每个输入的直接特征中检索记忆激活的摘要,然后与原始的直接特征结合,形成元嵌入。这种记忆特征增强在尾部类上特别有效,因为缺乏监督,提供了泛化的特征。
我们通过动态校准元嵌入来解决开放类敏感性问题,相对于视觉记忆进行校准。换句话说,嵌入的缩放与它到最近类质心(即类记忆)的距离成反比:它离记忆越远,就越有可能是开放集实例。嵌入与最近质心之间的距离然后使用基于能量的模型[10]转换为“样本信息量”,进一步用于选择主动学习中的信息量大的样本。
我们还采用了调制注意力[11]来鼓励头部和尾部类使用不同的空间特征集。由于我们的元嵌入关联了头部和尾部类,我们的调制注意力保持了它们之间的区分性。
我们做出了以下主要贡献。1)我们正式定义了OLTR++任务,它从长尾和开放式分布的数据中学习,并针对平衡测试集上的总体准确率进行优化。它为实际环境中视觉识别算法提供了全面且无偏的评估。2)我们提出了一个集成的OLTR++算法,具有动态元嵌入。它通过关联头部和尾部嵌入中的视觉概念来处理尾部识别的鲁棒性,并通过动态校准嵌入来处理相对于视觉记忆的开放类敏感性。3)我们进一步将基于能量的模型整合到我们的动态元嵌入中,用于数据高效的主动学习(仅有稀疏的人类注释),非常适合不断变化的视觉世界。4)我们根据长尾分布从现有的代表性数据集中策划了三个大型OLTR++数据集:以对象为中心的ImageNet[2]、以场景为中心的Places[12]和以面部为中心的MS1M数据集[13]。我们还建立了适当的OLTR性能评估基准。5)我们在这些OLTR++数据集(以及标准化基准,如CIFAR-LT 100/10和iNaturalist-18[14])上的广泛实验表明,我们的方法始终优于现有方法。
这项工作的目标是提倡一种新的学习范式,能够在动态世界中感知和更新,即同时识别现实世界的长尾数据,同时通过人工参与积极探索新数据。这是朝着体现智能以及视觉系统的稳健部署迈出的关键一步。除了在长尾识别上表现出竞争性能外,我们的方法还以统一的框架为中心,在开放类检测和主动探索方面展示了引人注目的结果,围绕视觉记忆展开。
其在开放类检测和主动探索方面的强大潜力,这些均围绕着视觉记忆构建的统一框架。
我们的代码、数据集和模型均可在 https://liuziwei7.github.io/projects/LongTail.html上公开获取。我们的工作填补了在实际应用中不平衡分类、少样本学习、开放集识别和主动学习等领域的基准测试空白,促进了未来研究的直接转换。
3 我们的 OLTR++ 模型
我们提议将图像映射到一个特征空间,使得视觉概念能够基于一个学习到的度量相互关联,这个度量在尊重封闭世界分类的同时,也承认开放和动态世界的新颖性。我们的模型有三个主要模块(见图3):动态元嵌入、调制注意力和主动探索。第一个模块在头部和尾部类之间关联和传递知识,而后两个模块则在人机交互环节中保持它们之间的区分。
3.1 我们方法的直观解释
在这一部分,我们提供了一个针对开放长尾识别问题的方法的直观解释。从观察(即训练集)获得的知识角度来看,头部类、尾部类和开放类形成了一个连续的谱系,如图4所示。
首先,在我们的方法中,我们通过聚合头部和尾部类的知识来获得视觉记忆。然后,存储在记忆中的视觉概念作为相关的“快速特征”被注入回来,以增强原始的“慢速特征”。换句话说,我们使用诱导的知识(即“快速特征”)来辅助直接观察(即“慢速特征”)。我们进一步学习一个概念选择器来控制注入的“快速特征”的数量和类型。由于头部类已经有丰富的直接观察,只需要少量的“快速特征”。相反,尾部类由于观察不足,与“快速特征”中关联的视觉概念对尾部类比对头部类更有益处。最后,我们通过计算开放类到达性(即特征空间距离)到获得的视觉记忆(即类质心)来校准开放类的置信度。总而言之,我们为头部、尾部和开放类提供了全面的处理,提高了所有类别的性能。
3.2 动态元嵌入
动态元嵌入是直接图像特征和相关记忆特征的组合,其中特征范数表示对已知类别的熟悉度。
考虑一个具有softmax输出层的卷积神经网络(CNN)用于分类。倒数第二层是特征层,最后一层是线性分类器(参见图3中的 f ( ⋅ ) f(\cdot) f(⋅) )。特征和分类器以端到端的方式共同训练。设 v direct \mathbf{v}_{\text{direct}} vdirect 表示从输入图像提取的直接特征。最终的分类准确度在很大程度上取决于这个直接特征的质量。
虽然前馈CNN分类器在大数据训练下表现良好[2][83],但它缺乏来自尾部类小数据的足够监督更新。我们提议通过记忆模块中的视觉概念来丰富直接特征 v direct \mathbf{v}_{\text{direct}} vdirect ,通过记忆特征 v memory \mathbf{v}_{\text{memory}} vmemory ,这是从捕获每个训练类别视觉概念的记忆库中派生出来的。这种机制类似于元学习中的记忆组件[42][54]。我们记得到的结果是特征元嵌入 v meta \mathbf{v}_{\text{meta}} vmeta 。
学习视觉记忆 M \mathbf{M} M 。为了构建记忆库,我们遵循[84]中的类结构分析,并采用区分质心作为基本构建块。设 M \mathbf{M} M 表示所有训练数据的视觉记忆, M = { c i } i = 1 K \mathbf{M} = \{ \mathbf{c}_i \}_{i=1}^{K} M={ci}i=1K ,其中 K K K 是训练类别的数量。与替代方案[45][85]相比,这种记忆对我们的OLTR++任务具有吸引力:它几乎可以不费力地与直接特征 f direct \mathbf{f}_{\text{direct}} fdirect 一起联合学习,并且它考虑了类内紧凑性和类间区分性。
更具体地说,如图5所示,我们通过两个步骤计算类质心。
-
邻域采样:我们在训练期间采样类内和类间的例子来组成一个小批量。这些例子按它们的类标签分组,每个组的质心 c i \mathbf{c}_i ci 通过这个小批量的直接特征更新,可以表示为:
D c i = ∑ b = 1 B 1 ( y b = i ) ( x b − c i ) 1 + ∑ b = 1 B 1 ( y b = i ) \mathbf{D}\mathbf{c}_i = \frac{\sum_{b=1}^{B} 1(y_b = i) (\mathbf{x}_b - \mathbf{c}_i)}{1 + \sum_{b=1}^{B} 1(y_b = i)} Dci=1+∑b=1B1(yb=i)∑b=1B1(yb=i)(xb−ci) -
亲和传播:我们交替更新直接特征 v direct \mathbf{v}_{\text{direct}} vdirect 和质心,以最小化每个直接特征与相应类质心之间的距离,并最大化与其他质心的距离。注意图5中的“排斥边”是通过大边界损失 L LM L_{\text{LM}} LLM 计算的,如等式(13)所述。
训练结束时,我们获得了包含数据集中重要视觉概念的视觉记忆模块 M \mathbf{M} M 。
组成记忆特征
v
memory
\mathbf{v}_{\text{memory}}
vmemory 。对于输入图像,在训练数据有限(如尾部类)时,
v
memory
\mathbf{v}_{\text{memory}}
vmemory 增强其直接特征。记忆特征将类质心在记忆中关联起来,将知识传递给尾部类:
v
memory
=
o
T
M
=
∑
i
=
1
K
o
i
c
i
\mathbf{v}_{\text{memory}} = \mathbf{o}^T \mathbf{M} = \sum_{i=1}^{K} \mathbf{o}_i \mathbf{c}_i
vmemory=oTM=i=1∑Koici
其中 o ∈ R K \mathbf{o} \in \mathbb{R}^K o∈RK 是从直接特征中获得的系数。我们使用一个轻量级神经网络从直接特征中获得系数, o = T hal ( v direct ) \mathbf{o} = \mathbf{T}_{\text{hal}}(\mathbf{v}_{\text{direct}}) o=Thal(vdirect) 。
获得动态元嵌入。
v
meta
\mathbf{v}_{\text{meta}}
vmeta 结合了直接特征和记忆特征,并被送往分类器进行最终的类别预测(见图6):
v
meta
=
1
g
⊙
(
v
direct
+
e
⊙
v
memory
)
\mathbf{v}_{\text{meta}} = \frac{1}{g} \odot (\mathbf{v}_{\text{direct}} + \mathbf{e} \odot \mathbf{v}_{\text{memory}})
vmeta=g1⊙(vdirect+e⊙vmemory)
其中“
⊙
\odot
⊙”表示逐元素乘法,
e
\mathbf{e}
e 是概念选择器。
g
>
0
g > 0
g>0 是在封闭世界分类任务中看似多余的标量。然而,在OLTR++环境中,它在区分训练类的例子与开放集的例子方面发挥重要作用。
g
g
g 度量了一个输入的直接特征
v
direct
\mathbf{v}_{\text{direct}}
vdirect 到记忆
M
\mathbf{M}
M 的可达性[86] —— 直接特征和区分质心之间的最小距离:
g
=
reachability
(
v
direct
,
M
)
=
min
i
∥
v
direct
−
c
i
∥
2
g = \text{reachability}(\mathbf{v}_{\text{direct}}, \mathbf{M}) = \min_i \|\mathbf{v}_{\text{direct}} - \mathbf{c}_i\|^2
g=reachability(vdirect,M)=imin∥vdirect−ci∥2
当 g g g 很小时,输入可能属于从中派生质心的训练类,并且分配给结果元嵌入 v meta \mathbf{v}_{\text{meta}} vmeta 的是一个大的可达性权重 1 g \frac{1}{g} g1 。否则,在极端情况下,嵌入被缩放到几乎全零向量,这在编码开放类时非常有用。
由于直接特征对于数据丰富的头部类通常足够好,而记忆特征对于数据贫乏的尾部类更为重要。我们设计了一个概念选择器
e
\mathbf{e}
e ,以软方式自适应地选择它们。我们在
v
direct
\mathbf{v}_{\text{direct}}
vdirect 上学习了一个轻量级网络
T
sel
(
⋅
)
\mathbf{T}_{\text{sel}}(\cdot)
Tsel(⋅) ,带有
tanh
(
⋅
)
\tanh(\cdot)
tanh(⋅) 激活函数:
e
=
tanh
(
T
sel
(
v
direct
)
)
\mathbf{e} = \tanh(\mathbf{T}_{\text{sel}}(\mathbf{v}_{\text{direct}}))
e=tanh(Tsel(vdirect))
3.3 调制注意力
由于头部类和尾部类的区别性线索往往在图像中分布不同,我们发现增强直接特征 v direct \mathbf{v}_{\text{direct}} vdirect 与空间注意力有助于区分它们。具体来说,我们提出调制注意力来鼓励不同类别的样本使用不同的上下文。首先,我们从输入特征图通过自相关计算自注意力图 S A ( f ) \mathbf{SA}(f) SA(f) 。它被用作上下文信息并通过跳跃连接添加回原始特征图。然后,调制注意力 M A ( f ) \mathbf{MA}(f) MA(f) 被设计为应用于自注意力图的条件空间注意力: M A ( f ) = S A ( f ) \mathbf{MA}(f) = \mathbf{SA}(f) MA(f)=SA(f) ,这允许示例选择不同的空间上下文(见图7)。
最终的注意力特征图变为:
f att = f + M A ( f ) ⊙ S A ( f ) \mathbf{f}_{\text{att}} = \mathbf{f} + \mathbf{MA}(\mathbf{f}) \odot \mathbf{SA}(\mathbf{f}) fatt=f+MA(f)⊙SA(f)
其中 f \mathbf{f} f 是 CNN 中的特征图, S A ( ⋅ ) \mathbf{SA}(\cdot) SA(⋅) 是自注意力操作, M A ( ⋅ ) \mathbf{MA}(\cdot) MA(⋅) 是条件注意力函数[87],具有softmax归一化。
第4.1节的实验结果表明,我们的注意力设计比直接将空间注意力应用于输入特征图的常规做法性能更优。这种调制注意力(见图7b)可以插入到CNN的任何特征层中。这里,我们仅修改了最后一个特征图。
3.4 开放类的主动探索
在动态世界中,模型在训练后不应停止。我们假设存在一个持续的训练、推理、注释和模型更新循环,作为我们的模型随时间主动探索视觉世界的动态过程。每当我们的模型遇到某些开放类的样本时,我们的模型将决定这个样本是否足够有信息量以供进一步的人工注释。在以高效的方式获得这些人工注释后,我们的模型将根据新添加的数据不断更新。
主动探索步骤有三个主要组成部分:
- 基于两种不同类型的不确定性的主动样本选择,
- 人工参与的注释,
- 使用主动数据注释的模型更新,这三个部分构成了一个动态识别循环。我们的主动探索的详细算法流程在算法1中列出。
3.4.1 主动探索中的两种不确定性
与在封闭世界设置中工作的标凑主动学习设置不同,这里在主动探索中实际上存在两种类型的不确定性:开放性不确定性和信息量不确定性。现有的主动学习方法在这里不直接适用,因为它们的不确定性估计机制只考虑已知类别之间的信息量,这不适合对已知类别和未知类别之间的开放性进行建模。
接下来,我们详细阐述在主动探索的背景下对这两种不确定性进行建模:
-
开放性不确定性:我们使用新样本嵌入与最近质心之间的距离来度量新样本的开放性 U open U_{\text{open}} Uopen ,可以表示为:
U open = min i ∥ v direct − c i ∥ 2 U_{\text{open}} = \min_i \|\mathbf{v}_{\text{direct}} - \mathbf{c}_i\|^2 Uopen=imin∥vdirect−ci∥2 -
信息量不确定性:直观地说,最具信息量的样本将是那些位于不同类别之间决策边界上的样本。我们先将新样本到所有现有类质心的距离按升序排序: d sorted d_{\text{sorted}} dsorted 。然后,新样本的信息量定义为最近两个距离之间的比率:
U info = d sorted , 1 d sorted , 2 U_{\text{info}} = \frac{d_{\text{sorted},1}}{d_{\text{sorted},2}} Uinfo=dsorted,2dsorted,1
这两种关于新样本和类质心的不确定性在图8中有进一步的说明。
3.4.2 主动样本选择
在每个时间步骤遇到新数据时,基于开放性和信息量不确定性估计的结合,使用基于能量的模型[10]选择样本进行主动注释。类似于[59],我们可以表示新样本 v direct \mathbf{v}_{\text{direct}} vdirect 的自由能函数 E ( ⋅ ) E(\cdot) E(⋅) 如下:
E ( v direct ) = − T act ⋅ log ∑ i = 1 K e U open ⋅ U info T act E(\mathbf{v}_{\text{direct}}) = -T_{\text{act}} \cdot \log \sum_{i=1}^{K} e^{\frac{U_{\text{open}} \cdot U_{\text{info}}}{T_{\text{act}}}} E(vdirect)=−Tact⋅logi=1∑KeTactUopen⋅Uinfo
其中 T act T_{\text{act}} Tact 是控制主动选择中精度和召回率权衡的温度参数。
3.4.3 人工参与的注释
在选择这些“开放”且“有信息量”的样本后,我们通过询问人工注释者来获取这些样本的语义标签。在现实世界的应用[88]中,可以通过在线众包平台执行,并具有质量控制。由于不同的人工注释者对未知类别的命名有不同的偏好,因此保持同一未知类别的不同样本之间的一致性至关重要。
3.4.4 模型更新
假设我们在时间步骤 t t t 有一个现有分类器 f t ( ⋅ ) f_t(\cdot) ft(⋅) ,其权重向量为 w i \mathbf{w}_i wi , i = 1 , 2 , . . . , K i = 1, 2, ..., K i=1,2,...,K ,表示 K K K 个已知类别。在时间步骤 t t t 到 t + 1 t + 1 t+1 期间,我们将遇到 Z Z Z 个未知类别。然后在时间步骤 t + 1 t + 1 t+1 ,我们的新分类器 f t + 1 ( ⋅ ) f_{t+1}(\cdot) ft+1(⋅) 将是一个已知类别权重和未知类别权重的组合: w i \mathbf{w}_i wi , i = 1 , 2 , . . . , K i = 1, 2, ..., K i=1,2,...,K 和 w j \mathbf{w}_j wj , j = K + 1 , K + 2 , . . . , K + Z j = K+1, K+2, ..., K+Z j=K+1,K+2,...,K+Z 。两个权重都将根据获得的主动人工注释进行更新。
注意,模型更新不是我们的主要贡献;有几种可行的实现方式。由于我们采用了余弦分类器,如第3.5节所述,分类器的权重和样本的嵌入可以互换[48][51]。尽管可以应用更复杂的方法(例如,学习另一个网络为未知类别生成分类器权重),但在这里,未知类别的分类器权重是通过对主动选择的样本的元嵌入进行加权平均来简单地生成的,其中权重由 E ( v direct ) E(\mathbf{v}_{\text{direct}}) E(vdirect) 确定。这种分类器幻觉方法非常适合现成部署。
3.4.5 动态识别循环
为了适应视觉世界的动态特性,这种主动样本选择、人工参与注释和模型更新的过程在每次遇到新的开放数据批次时重复进行。我们的框架通过在人机协作中发挥最佳优势,最大化学习和识别效率,同时照顾自然世界中存在的长尾和开放式分布。
在我们的实现中,特征提取器是固定的,以实现快速适应,而视觉记忆会更新以适应动态学习循环中持续涌入的未知类别。我们在修订的论文中进一步阐明了这一点。
3.5 学习
余弦分类器:我们采用余弦分类器[48][51]来产生最终的分类结果。具体来说,我们对元嵌入 v meta \mathbf{v}_{\text{meta}} vmeta 进行归一化,其中 n n n 表示第 n n n 个输入,以及分类器 f ( ⋅ ) f(\cdot) f(⋅) 的权重向量 w i \mathbf{w}_i wi (没有偏置项)进行归一化:
v meta , n = v meta , n ∥ v meta , n ∥ 2 + ϵ , w k = w k ∥ w k ∥ 2 \mathbf{v}_{\text{meta}, n} = \frac{\mathbf{v}_{\text{meta}, n}}{\|\mathbf{v}_{\text{meta}, n}\|_2 + \epsilon}, \quad \mathbf{w}_k = \frac{\mathbf{w}_k}{\|\mathbf{w}_k\|_2} vmeta,n=∥vmeta,n∥2+ϵvmeta,n,wk=∥wk∥2wk
其中 ϵ \epsilon ϵ 是一个小常数,以避免除以零。
损失函数:由于我们所有的模块都是可微分的,我们的模型可以通过交替更新质心 c i \mathbf{c}_i ci 和动态元嵌入 v meta , n \mathbf{v}_{\text{meta}, n} vmeta,n 来端到端地训练。最终的损失函数 L L L 是交叉熵分类损失 L CE L_{\text{CE}} LCE 和嵌入与质心之间的大边界损失 L LM L_{\text{LM}} LLM 的组合:
L = ∑ n = 1 N L CE ( v meta , n , y n ) + λ L LM ( v meta , n , c i ) L = \sum_{n=1}^{N} L_{\text{CE}}(\mathbf{v}_{\text{meta}, n}, y_n) + \lambda L_{\text{LM}}(\mathbf{v}_{\text{meta}, n}, \mathbf{c}_i) L=n=1∑NLCE(vmeta,n,yn)+λLLM(vmeta,n,ci)
其中 KaTeX parse error: Undefined control sequence: \λ at position 1: \̲λ̲ 设置为我们通过观察验证集上的准确率曲线而确定的0.1。具体来说, L CE L_{\text{CE}} LCE 是动态元嵌入 v meta , n \mathbf{v}_{\text{meta}, n} vmeta,n 和真实类别标签 y n y_n yn 之间的交叉熵损失:
L CE ( v meta , n , y n ) = − ∑ k = 1 K y n k log ( f k ( v meta , n ) ) L_{\text{CE}}(\mathbf{v}_{\text{meta}, n}, y_n) = -\sum_{k=1}^{K} y_{nk} \log (f_k(\mathbf{v}_{\text{meta}, n})) LCE(vmeta,n,yn)=−k=1∑Kynklog(fk(vmeta,n))
这里 f k ( ⋅ ) f_k(\cdot) fk(⋅) 是主论文中第6节描述的余弦分类器。接下来,我们介绍嵌入 v meta , n \mathbf{v}_{\text{meta}, n} vmeta,n 和质心 c i \mathbf{c}_i ci 之间的大边界损失 L LM L_{\text{LM}} LLM :
L LM ( v meta , n , c i ) = max ( 0 , ∑ i = 1 K m i n ∥ v meta , n − c i ∥ 2 − ∑ i = 1 K m o u t ∥ v meta , n − c i ∥ 2 + m ) L_{\text{LM}}(\mathbf{v}_{\text{meta}, n}, \mathbf{c}_i) = \max\left(0, \sum_{i=1}^{K} \mathbf{m}_{in} \|\mathbf{v}_{\text{meta}, n} - \mathbf{c}_i\|^2 - \sum_{i=1}^{K} \mathbf{m}_{out} \|\mathbf{v}_{\text{meta}, n} - \mathbf{c}_i\|^2 + \mathbf{m}\right) LLM(vmeta,n,ci)=max(0,i=1∑Kmin∥vmeta,n−ci∥2−i=1∑Kmout∥vmeta,n−ci∥2+m)
其中 m \mathbf{m} m 是边界,我们将其设置为5.0。有了这种公式,我们最小化每个嵌入与其组的质心之间的距离,同时最大化嵌入与其不所属的质心之间的距离。
4 实验
数据集
我们策划了三个开放长尾基准测试,分别是ImageNet-LT(以对象为中心)、Places-LT(以场景为中心)和MS1M-LT(以面部为中心)。
-
ImageNet-LT:我们通过按照幂律分布(幂值 α = 6 \alpha = 6 α=6 )采样的方式,构建了原始ImageNet-2012的长尾版本。总体而言,它包含来自1000个类别的115.8K图像,每个类别最多1280张图像,最少5张图像。ImageNet-2010中额外的类别被标记为开放集。
-
Places-LT:它包含来自365个类别的184.5K图像,每个类别最多4980张图像,最少5张图像。头部和尾部类别之间的差距甚至比ImageNet-LT还要大。PlacesExtra69中的测试图像被标记为额外的开放集。
-
MS1M-LT:为了创建MS1M-ArcFace数据集的长尾版本,我们根据每个身份的图像数量成比例地采样图像。它包含887.5K图像和74.5K身份,呈现出长尾分布。为了检验我们方法的泛化能力,性能是在MegaFace基准测试上评估的,该基准测试与MS1M-ArcFace没有身份重叠。
网络架构
按照[46][47][48],我们采用了从头开始训练的ResNet-10作为ImageNet-LT的主干网络。为了与[6]公平比较,Places-LT使用了预训练的ResNet-152作为主干网络。对于MS1M-LT,我们使用了流行的预训练ResNet-50作为主干网络。为了与最近的工作进行比较,我们还采用了两个头的ResNet-50主干。
评估指标
评估是在封闭集(测试集不包含未知类别)和开放集(测试集包含未知类别)设置下进行的。在每种设置下,除了所有类别的总体top1分类准确率[48],我们还计算了三个不相交子集的准确率:多样本类(每个类别超过100个训练样本)、中样本类(每个类别有20到100个训练样本)和少样本类(少于20个训练样本)。对于开放集设置,我们还报告了F-measure,以便在开放集中平衡精确度和召回率[56]。对于确定开放类,softmax概率阈值最初设置为0.1,而第4.6节提供了更详细的分析。
比较方法
我们选择了来自不同领域的最先进方法进行比较,这些方法处理开放长尾数据,包括:(1) 度量学习:Lifted Loss [33],(2) 硬负样本挖掘:Focal Loss [16],(3) 特征正则化:Range Loss [36],(4) 少样本学习:FSLwF [48],(5) 长尾建模:MetaModelNet [6],以及 (6) 开放集检测:Open Max [56]。我们采用这些方法在与我们的相同的主干网络上进行公平比较。我们还使它们具备了类意识小批量采样[94],以有效学习。由于Model Regression [95] 和 MetaModelNet [6] 与我们的工作最相关,我们记录了我们的结果以及原始论文中报告的数字。我们还包括了长尾识别中的最近进展(例如,CB Focal [17]、LDAM [19]、Decoupling [20]、BBN [21] 和 RIDE [22])进行全面评估。
4.1 消融研究
动态元嵌入的有效性。从图9b中,我们观察到记忆特征和概念选择器的结合在所有三类样本上都带来了巨大的改进,因为获得的记忆特征在类别之间转移了有用的视觉概念。另一个观察结果是,置信度校准器在少样本类上最有效。校准器内的可达性估计有助于区分尾部类和开放类。
调制注意力的有效性。我们从图9a中观察到,与中样本类相比,调制注意力在实验中对区分多样本和少样本类贡献更多。图9c进一步验证了调制注意力比直接在特征图上应用空间注意力更有效。这意味着自适应上下文选择比传统特征选择更容易学习。
可达性校准的有效性。为了进一步展示可达性校准在开放世界设置中的优越性,我们根据[58]、[90]中的标准设置进行了额外的实验(CIFAR100 + TinyImageNet(调整大小))。我们的方法在标准开放集方法[58]、[90]上表现出有利的性能,如表5所示。
4.2 OLTR++ 基准测试结果
在这一部分,我们广泛评估了各种代表性方法在OLTR++基准测试上的性能。
ImageNet-LT。表4a显示了不同方法的性能比较。我们有以下观察结果。首先,Lifted Loss[33]和Focal Loss[16]通过强制特征正则化大大提升了少样本类的性能。然而,它们也牺牲了多样本类的性能,因为没有内置的机制来适应不同样本数量的样本。其次,OpenMax[56]在开放集设置下提高了结果。然而,当用F-measure评估时,准确性下降了,这考虑了开放集中的精确度和召回率。这证明了当开放类与尾部类混合在一起时,执行[56]所需的分布拟合变得具有挑战性。最后,尽管少样本学习没有遗忘方法[48]保留了多样本类的准确性,但它在处理当前少样本范式中缺乏的不平衡基类方面存在困难。总的来说,如图10所示,我们的方法为多样本/中样本/少样本类以及开放类提供了全面的处理,在各个方面都有显著改进。
Places-LT。在Places-LT基准测试上,可以观察到与ImageNet-LT相似的观察结果,如表4b所示。有一个更强的基线(即,ImageNet预训练的ResNet-152),我们的方法在封闭集和开放集设置下仍然一致地优于其他替代方案。在F-measure下的优势更加显著。
MS1M-LT。我们在MS1M-LT数据集上训练,并在MegaFace识别轨道上报告结果,这是面部识别领域的标准基准测试。由于训练集中的面部身份与测试集中的身份不重叠,我们采用了间接的方式来划分测试集,使其成为不同样本数量的子集。我们通过计算至少一个阈值(特征相似度大于0.7)的相似训练样本的数量来近似每个测试样本的伪样本数量。除了多样本、少样本、单样本子集之外,我们还获得了一个零样本子集,因为在训练集中找不到足够相似的样本。可以观察到,我们的方法在单样本身份(3:0%增益)和零样本身份(1:8%增益)上具有最大的优势,如表6所示。
SUN-LT。为了直接与[95]和[6]进行比较,我们还测试了我们的方法在他们提供的SUN-LT基准上。最终结果列在表8中。我们的方法是传输特征之间的视觉知识,而不是学习一系列分类器转换,与之前的最佳方法相比,我们实现了1:4%的改进。请注意,由于MetaModelNet[6]需要递归训练过程,我们的方法计算成本也低得多。
CIFAR-10-LT & CIFAR-100-LT & iNaturalist-18。在表7中,我们还比较了OLTR++与最近提出的长尾识别方法(例如,CB Focal[17]、LDAM[19]、Decoupling[20]、BBN[21]和RIDE[22])在CIFAR-10-LT[17]、CIFAR-100-LT[17]和iNaturalist-18[14]上的性能。当我们的框架与双头ResNet-50[22]结合时,在所有基准测试中都实现了最先进的性能,并且在各种不平衡比率下,多样本、中样本和少样本类别的一致增益。
4.3 公平性分析的性能
结果。在MS1MLT上对敏感属性的性能,表6中的最后六列显示,我们的方法在两个性别子群和种族子群上都实现了全面的改进,这对于有效的公平学习具有鼓舞人心的暗示。
指示。在这里评估不同性别子群和种族子群的性能的目的是将长尾识别与人工智能中更大的偏见和公平社区联系起来,这可能会激发这两个交叉点上更多的未来研究。为了在这一跨学科子领域提供全面的比较,我们进一步实现并包括了两种代表性的公平学习方法(即,公平特征[79]和潜在去偏[93])进行评估。
4.4 主动探索的性能
4.4.1 主动样本选择的有效性
设置。实验在ImageNet-LT(作为初始标记池)上进行,将ImageNet-2010中的额外类别图像作为开放/探索集。这个开放/探索集进一步与已知类别的图像混合,这些图像来自原始的ImageNet数据集,不包括ImageNet-LT。为了公平比较,所有方法都采用了相同的主干网络,并在不同百分比的选定开放样本上进行了基准测试,用于神谕注释(从10%到30%)。评估指标是所有开放类别的平均识别准确率。
结果。我们评估了OLTR++在主动探索设置下识别开放类别的性能。我们将结果与几种代表性的主动学习方法进行了比较,包括随机采样、基于贝叶斯不确定性的方法DBAL[68]、基于核心集的方法CoreSet[96]和基于对抗学习的方法VAAL[69]。如图12a所示,我们的OLTR++在不同百分比的选定开放样本上验证了其优势,并展示了动态世界学习效率。
分析。为了进一步理解OLTR++的主动探索能力,我们在图12b中可视化了我们的主动探索方法选择和未选择的图像样本。我们可以观察到,OLTR++倾向于选择具有代表性部分和外观的未知类别的典型图像。
4.4.2 动态识别循环的有效性
设置。实验设置与主动探索类似,但开放/探索集被分为两个子集,以模拟增量/持续学习场景中的两个阶段。具体来说,阶段1和阶段2都有来自ImageNet-2010的额外类别图像作为开放/探索集。为了公平比较,基数据在增量步骤中没有用于模型更新。为了模拟现实世界的应用,通过将测试样本分类为已知和未知标签的组合来计算“已知/未知”的准确率。
结果。我们的结果与几种代表性的增量/持续学习方法进行了比较,包括Learning without Forgetting (LwF) [76]和Adversarial Continual Learning (ACL) [77]。LwF [76]是增量学习领域的开创性工作,通过采用软多任务学习范式,成为强大且必备的基线。ACL [77]是最新的基于对抗学习的方法,无需使用外部数据或模型即可实现最先进的性能。它还配备了开源代码和评估脚本,以进行公平比较。如表9所示,我们的OLTR++在动态循环中保持了学习和识别的有效性。
4.5 尾部和开放性的影响
数据集长尾性的影响。数据集的长尾性(例如,类别分布不平衡的程度)可能对模型性能产生负面影响。为了更快地调查,训练期间冻结了主干网络的权重。从图11a中,我们观察到,随着数据集变得更加不平衡(即,幂值 α \alpha α 减小),我们的方法只经历了适度的性能下降。换句话说,动态元嵌入能够在数据丰富和数据稀缺的类别之间实现有效的知识转移。
开放集概率阈值的影响。随着开放集概率阈值的升高,我们的方法的性能变化在图11b中展示。与普通模型[15]和范围损失[36]相比,我们的方法的性能随着开放集阈值的升高而稳定变化。我们框架中的可达性估计器有助于校准样本置信度,从而增强对开放类的鲁棒性。
开放类数量的影响。最后,我们研究了性能相对于开放类数量的变化。图11c表明,我们的方法对开放类的污染表现出极大的鲁棒性。
4.6 进一步分析
在这一部分中,我们可视化并解释了框架中的记忆特征,并展示了OLTR++与公平性分析和典型故障案例的关系。
注入的记忆特征。在图13中,我们通过可视化其顶部激活的神经元来检查记忆特征注入的视觉概念。具体来说,对于每个输入图像,我们提取了记忆特征中的前3个转移神经元。每个神经元通过整个训练集中最高激活的补丁[97]集合来可视化。例如,要分类属于尾部类别“公鸡”的左上角图像,我们的方法学习到分别转移代表“鸟头”、“圆形”和“点状纹理”的视觉概念。在特征注入后,动态元嵌入变得更加丰富和有区分度。
我们在Places-LT中类似于ImageNet-LT可视化了“记忆特征”。来自Places-LT的“记忆特征”注入的视觉概念示例在图14中展示。我们观察到“记忆特征”确实编码了底层场景的区分性视觉特征。
按照[26],我们通过对比最不活跃的平均图像和最活跃的平均图像来可视化MS1M-LT中的“记忆特征”。从图15中,我们观察到MS1M-LT中的“记忆特征”注入了几个与身份相关的属性(例如,“高颧骨”、“深色皮肤”和“窄眼睛”)以实现精确识别。
无监督属性发现。我们还通过在线性探测中在CelebA数据集[26]上执行无监督属性发现实验来定量评估MS1M-LT中的“记忆特征”。性能列在表10中。我们的方法在top-1和top-5平均准确率上都优于随机初始化和ImageNet预训练的特征。
故障案例。由于我们的方法鼓励类之间的特征注入,它稍微牺牲了细粒度的区分,以促进代表性不足的类。我们的方法的一个典型的失败案例是混淆了多镜头类和中镜头类。例如,图13中右下角的图片被错误地分类为“飞机”,因为一些跨类别的特征,如“鼻子形状”和“眼睛形状”被注入。特征去纠缠[98]和强对比学习[99]是对该权衡问题的潜在缓解。
5 结论
我们介绍了OLTR++任务,它从自然长尾开放式分布的数据中学习,并在平衡的测试集上优化整体准确率。我们提出了一个集成的OLTR++算法,动态元嵌入,以便在头部和尾部类之间共享视觉知识,并减少尾部和开放类之间的混淆。我们在三个策划的大规模OLTR++基准测试(ImageNet-LT、Places-LT和MS1M-LT)以及主动探索上验证了我们的方法。我们的作品可以促进未来研究,使其直接适用于现实世界的应用。
声明
本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。