赞
踩
《Solving Long-tailed Recognition with Deep Realistic Taxonomic Classifier》
使用深度现实分类器解决长尾识别问题
Tz-Ying Wu、Pedro Morgado、Pei Wang、Chih-Hui Ho 和 Nuno Vasconcelos
来自加州大学圣地亚哥分校
长尾识别问题:
长尾识别处理的是现实世界中自然分布不均的数据。虽然现代分类器在数量多的类别上表现良好,但在尾部类别上的性能显著下降。然而,人类受到的影响较小,因为当面对不确定的样本时,他们简单地选择提供更粗略的预测。
深度现实分类器:
性能表现:
CNN 与长尾问题:
长尾问题分析:
然而,几乎没有证据表明这种架构最适合处理长尾识别问题。
例如,人类并不使用这种模型。他们不是努力区分世界上的所有物体,而是采用类分类法(class taxonomies),其中类别在不同粒度级别上以分层的方式组织,例如从粗略的领域到细粒度的“物种”或“品种”,如图1所示。
使用分类法进行分类通常被称为分层分类(hierarchical)。标准 softmax,也称为平面分类器(flat classifier),是一个单一层级分类法的分类器。使用更深层的分类法已被证明对分类有益,因为它允许特征共享和类别间信息传递。尽管大多数关于平面或分层分类的先前工作都试图在分类树的叶子节点上对所有图像进行分类,而不考虑这有多困难,引入分类法使得可以采用替代策略。
引入现实分类法(realistic taxonomic classification,RTC):
现实分类法的要点:
现实分类器的训练:
我们通过两项新的对 RTC 深度 CNN 训练的贡献来解决这个问题。
本文贡献:
总的来说,这篇论文做出了三项贡献。
相关工作
长尾识别(Long-Tailed Recognition):
已经提出了几种策略来解决识别中的类别不平衡问题:
分层分类(Hierarchical Classification):
分层分类在计算机视觉领域受到了广泛关注。例如,
带有拒绝机制的学习(Learning with Rejection):
长尾识别和 RTC
本节介绍了将 RTC 作为长尾识别解决方案的必要性。
长尾识别:
长尾定义:
现有的方法将长尾识别表述为平面分类(flat classification),通过 softmax 分类器的一些变体来解决。这结合了特征提取器
h
(
x
;
Φ
)
∈
R
k
h(\boldsymbol{\mathrm{x}};\Phi)\in\R^k
h(x;Φ)∈Rk,由参数
Φ
\Phi
Φ 的 CNN 实现,以及由线性变换
W
\boldsymbol{\mathrm{W}}
W 和 softmax 函数
σ
(
⋅
)
\sigma(\cdot)
σ(⋅) 组成的 softmax 回归层:
f
(
x
;
W
,
Φ
)
=
σ
(
z
(
x
;
W
,
Φ
)
)
z
(
x
;
W
,
Φ
)
=
W
T
h
(
x
;
Φ
)
f(\boldsymbol{\mathrm{x}};\boldsymbol{\mathrm{W}},\Phi)=\sigma(z(\boldsymbol{\mathrm{x}};\boldsymbol{\mathrm{W}},\Phi))\qquad z(\boldsymbol{\mathrm{x}};\boldsymbol{\mathrm{W}},\Phi)=\boldsymbol{\mathrm{W}}^Th(\boldsymbol{\mathrm{x}};\Phi)
f(x;W,Φ)=σ(z(x;W,Φ))z(x;W,Φ)=WTh(x;Φ)
这些网络被训练成最小化分类错误。由于中等和少样本类别的样本有限,性能可能会较弱。长尾识别方法通过示例重采样、成本敏感损失、跨类参数共享或后处理来解决这个问题。这些策略并非没有缺点。例如,成本敏感或重采样方法面临“打地鼠”困境,其中少样本类别的性能改进(例如,通过给予它们更多的权重)意味着更多样本的类别(权重较小)的性能下降。它们也与人类的认知识别策略大不相同,后者广泛依赖于类分类法。
现实分类器的灵感萌芽:
许多认知科学的研究试图确定人类对物体进行分类的分类水平。这表明大多数物体类都有一个默认级别,大多数人类用它来标记物体(例如“狗”或“猫”)。然而,这个所谓的基本级别因人而异,取决于个人对该物体类的训练,也被称为专业知识。
从机器学习的角度来看,这在两个方面是有意义的。
总之,当面对少样本类别时,人类会权衡分类粒度和类流行度,选择一个他们的训练有足够的样例来保证准确识别的分类级别。这并不意味着他们不能进行细粒度的识别,只是这种识别仅限于他们擅长的类别。例如,因为所有人类都在人脸识别方面接受过大量的训练,所以他们在这一非常精细的任务中表现出色。这些观察结果激发了 RTC 方法在长尾识别中的应用。
现实分类学分类:
公式化描述:
分类学分类器将图像 x ∈ X x\in\mathcal{X} x∈X 映射到一组 C C C 个类别 y ∈ Y { 1 , … , C } y\in\mathcal{Y}\{1,\dots,C\} y∈Y{1,…,C},这些类别按照树型层次结构 T \mathcal{T} T 组织成一个分类学结构,其中类别递归地分组到父节点。它由一组分类节点 N = { n 1 , … , n N } \mathcal{N}=\{n_1,\dots,n_N\} N={n1,…,nN} 和一组分类关系 A = A ( n 1 ) , … , A ( n N ) \mathcal{A}={\mathcal{A}(n_1),\dots,\mathcal{A}(n_N)} A=A(n1),…,A(nN) 定义,其中 A ( n ) \mathcal{A}(n) A(n) 是节点 n n n 的祖先节点的集合。
分类学所允许的最细粒度的分类决策发生在叶子上。我们将这组细粒度类别表示为 Y f g = L e a v e s ( T ) \mathcal{Y}_{fg}=\mathrm{Leaves}(\mathcal{T}) Yfg=Leaves(T)。图2给出了一个分类问题的例子:
图片注解:
其中 ∣ Y f g ∣ = 4 |\mathcal{Y}_{fg}|=4 ∣Yfg∣=4, ∣ N ∣ = 5 |\mathcal{N}|=5 ∣N∣=5, A ( n 4 ) = A ( n 5 ) = { n 1 } \mathcal{A}(n_4)=\mathcal{A}(n_5)=\{n_1\} A(n4)=A(n5)={n1} 且 A ( n i ) = ∅ , i ∈ { 1 , 2 , 3 } \mathcal{A}(n_i)=\varnothing,i\in\{1,2,3\} A(ni)=∅,i∈{1,2,3}。
类别 y 1 y_1 y1、 y 2 y_2 y2 属于父类别 n 1 n_1 n1,根 n 0 n_0 n0 是一个包含所有类别的虚拟节点。请注意,我们用 n n n 表示节点,用 y y y 表示叶子标签。
在 RTC 中,不同的样本可以在不同的层次级别上进行分类。
因此,RTC 可以预测分类学 T \mathcal{T} T 中的任何子类。
给定一组训练集 D = { ( x i , y i ) } i = 1 M i \mathcal{D}=\{(x_i,y_i)\}^{M_i}_{i=1} D={(xi,yi)}i=1Mi,包括图像和类别标签,以及一个类别分类学 T \mathcal{T} T,目标是学习一对分类器 f ( x ) f(\boldsymbol{\mathrm{x}}) f(x) 和拒绝函数 g ( x ) g(\boldsymbol{\mathrm{x}}) g(x),它们协同工作,将每个输入图像 x \boldsymbol{\mathrm{x}} x 分配到可能的细粒度类别 y ^ \hat{y} y^,同时确保对这个分配有一定的信心。
置信度设置:
类别预测 y ^ \hat{y} y^ 的深度取决于样本难度和分类的能力水平 γ \gamma γ。这是对 x \boldsymbol{\mathrm{x}} x 可以被分类的置信度的下限。
为 f ( x ) f(\boldsymbol{\mathrm{x}}) f(x) 定义了一个置信度分数 s ( f ( x ) ) s(f(\boldsymbol{\mathrm{x}})) s(f(x)),如果 s ( s ( f ( x ) ) ) ≥ γ s(s(f(\boldsymbol{\mathrm{x}})))≥\gamma s(s(f(x)))≥γ,则声明 f ( x ) f(\boldsymbol{\mathrm{x}}) f(x) 有能力(在 γ \gamma γ 水平上)对 x \boldsymbol{\mathrm{x}} x 进行分类。
如果 RTC 的所有中间节点决策都具有这种能力水平,那么 RTC 就具有能力水平 γ \gamma γ。
虽然对于使用叶子标签集
Y
f
g
\mathcal{Y}_{fg}
Yfg 的分类来说,这可能无法保证,但总是可以通过拒绝层次结构的中间节点上的样本来保证,即定义
g
v
(
x
;
γ
)
=
1
[
s
(
f
v
(
x
)
)
≥
γ
]
g_v(\boldsymbol{\mathrm{x}};\gamma)=1_{[s(f_v(\boldsymbol{\mathrm{x}}))\ge\gamma]}
gv(x;γ)=1[s(fv(x))≥γ]
这动态地对每个样本 x \boldsymbol{\mathrm{x}} x 修剪了层次结构 T \mathcal{T} T,生成了一个定制的切割 T p \mathcal{T}_p Tp,对于这个切割,层次分类器在能力水平 γ \gamma γ上是胜任的。
这种修剪在图3的右侧进行了说明。
分类学概率校准
分类学校准(Taxonomic calibration):
小规模:
由于 RTC 要求在分类树的所有层级上做出决策,样本可以被分类到包含 T \mathcal{T} T 的任何切分的叶节点的任何潜在标签集 Y \mathcal{Y} Y 中。例如,图2的分类学允许两个标签集,即包含所有类别的 Y f g = { y 1 , y 2 , y 3 , y 4 } \mathcal{Y}_{fg}=\{y_1,y_2,y_3,y_4\} Yfg={y1,y2,y3,y4},以及通过修剪节点 n 1 n_1 n1 的子节点得到的 Y = { n 1 , y 3 , y 4 } \mathcal{Y}=\{n_1,y_3,y_4\} Y={n1,y3,y4}。
对于长尾识别,不同的图像可以在非常不同的分类学层级上被分类,因此校准所有这些标签集的后验概率分布是很重要的。我们通过优化层次结构中所有可实现的分类器的集合来解决这个问题,即最小化损失 :
L
e
n
s
=
1
∣
Ω
∣
∑
Y
∈
ω
L
Y
\mathcal{L}_{ens}=\frac{1}{|\Omega|}\sum_{Y\in\omega}L_\mathcal{Y}
Lens=∣Ω∣1Y∈ω∑LY
大规模:
虽然这种方法对于小的分类学是可行的,但它不随分类学的大小扩展,因为集合 Ω \Omega Ω 随着 ∣ T ∣ |\mathcal{T}| ∣T∣ 呈指数增长。
相反,我们引入了一个受 dropout 启发的机制,在训练期间进行随机树采样(STS)。在每次训练迭代中,对分类树 T \mathcal{T} T 进行随机切分 T c \mathcal{T}_c Tc 的采样,并优化与相应标签集 Y c \mathcal{Y}_c Yc 相关的预测器 f Y c ( x ; W Y c , Φ ) f_{\mathcal{Y}_c}(\boldsymbol{\mathrm{x}};\boldsymbol{\mathrm{W}}_{\mathcal{Y}_c}, \boldsymbol{\mathrm{\Phi}}) fYc(x;WYc,Φ)。
为此,对于每个内部节点 v v v,通过采样伯努利随机变量 P v ∼ B e r n o u l l i ( p ) P_v\sim Bernoulli(p) Pv∼Bernoulli(p) 来生成随机切分,给定 dropout 率 p p p。如果 P v = 0 P_v=0 Pv=0,则修剪以 v v v 为根的子树。这些分类学切分的例子如图3所示。
然后合成与切分
T
c
\mathcal{T}_c
Tc 相关的目标标签集Yc一致的预测器
f
Y
c
f_{\mathcal{Y}_c}
fYc,并计算损失
L
s
t
s
=
1
M
∑
i
=
1
M
L
Y
c
(
x
i
,
y
i
)
\mathcal{L}_{sts}=\frac{1}{M}\sum^M_{i=1}L_{\mathcal{Y}_c}(\boldsymbol{\mathrm{x}}_i,y_i)
Lsts=M1i=1∑MLYc(xi,yi)
通过在不同迭代中考虑不同的切分,学习算法迫使分层分类器为所有标签集产生校准良好的决策。
参数共享(Parameter sharing):
上述过程需要为从分类学 T \mathcal{T} T 派生出的所有可能的标签集 Y c \mathcal{Y}_c Yc 实时合成预测器 f Y c f_{\mathcal{Y}_c} fYc 。这意味着需要一个动态 CNN 架构,其中 Section 3 公式1 随样本 x \boldsymbol{\mathrm{x}} x 变化。
受此启发的 Deep-RTC 就是这样一种架构。对于长尾识别,预测器 f Y c f_{\mathcal{Y}_c} fYc 应该共享参数,以便从头部类别向尾部类别传递信息。这是通过两种参数共享机制的结合来实现的:
一种流行的实现这种约束的方法,称为参数继承(parameter inheritance,PI),在节点
n
n
n 的预测器中重用祖先节点
A
(
n
)
\mathcal{A}(n)
A(n) 的参数。然后,
W
Y
\boldsymbol{\mathrm{W}}_\mathcal{Y}
WY 的列向量
w
n
\boldsymbol{\mathrm{w}}_n
wn 定义为:
w
n
=
θ
n
+
∑
p
∈
A
(
n
)
θ
p
,
∀
n
∈
Y
\boldsymbol{\mathrm{w}}_n=\theta_n+\sum_{p\in \mathcal{A}(n)}\theta_p,\quad\forall n\in\mathcal{Y}
wn=θn+p∈A(n)∑θp,∀n∈Y
这种组合结构有两个优点:
动态预测器合成(Dynamic predictor synthesis):
Deep-RTC 是一种新颖的架构,用于实现符合参数共享部分公式的预测器
f
Y
c
f_{\mathcal{Y}_c}
fYc 的动态合成。这是通过为每个节点
n
n
n 引入一个代码字向量
q
n
∈
{
0
,
1
}
∣
N
∣
\boldsymbol{\mathrm{q}}_n\in\{0,1\}^{|\mathcal{N}|}
qn∈{0,1}∣N∣,包含二进制标志,用于标识
n
n
n 的祖先
A
(
n
)
\mathcal{A}(n)
A(n):
q
n
(
v
)
=
1
[
v
∈
A
(
n
)
∪
{
n
}
]
\boldsymbol{\mathrm{q}}_n(v) = 1_{[v\in\mathcal{A}(n)\cup\{n\}]}
qn(v)=1[v∈A(n)∪{n}]
然后引入一个节点特定参数矩阵
θ
=
[
θ
1
,
…
,
θ
∣
N
∣
]
\theta=[\theta_1,\dots,\theta_{|\mathcal{N}|}]
θ=[θ1,…,θ∣N∣],其中对于所有
n
∈
N
n\in\mathcal{N}
n∈N,
θ
n
∈
R
k
\theta_n\in\R^k
θn∈Rk,并且
w
n
\boldsymbol{\mathrm{w}}_n
wn 可以重构为
w
n
=
θ
q
n
\boldsymbol{\mathrm{w}}_n=\theta\boldsymbol{\mathrm{q}}_n
wn=θqn
所有节点
n
∈
Y
n\in\mathcal{Y}
n∈Y 的代码字向量随后被写入代码字矩阵
Q
y
∈
{
0
,
1
}
∣
N
∣
×
∣
Y
∣
\boldsymbol{\mathrm{Q}}_\mathcal{y}\in\{0,1\}^{|\mathcal{N}|\times|\mathcal{Y}|}
Qy∈{0,1}∣N∣×∣Y∣ 的列中,以定义(1)中的预测器,
f
Y
(
x
;
Θ
,
Φ
)
=
σ
(
z
Y
(
x
;
Θ
,
Φ
)
)
z
Y
(
x
;
Θ
,
Φ
)
=
W
Y
T
h
(
x
;
Φ
)
f_\mathcal{Y}(\boldsymbol{\mathrm{x;\Theta,\Phi}})=\sigma(z_\mathcal{Y}(\boldsymbol{\mathrm{x;\Theta,\Phi}}))\qquad z_\mathcal{Y} (\boldsymbol{\mathrm{x;\Theta,\Phi}})=\boldsymbol{\mathrm{W}}^T_\mathcal{Y}h(\boldsymbol{\mathrm{x;\Phi}})
fY(x;Θ,Φ)=σ(zY(x;Θ,Φ))zY(x;Θ,Φ)=WYTh(x;Φ)
其中
W
Y
=
Θ
Q
Y
\boldsymbol{\mathrm{W}}_\mathcal{Y}=\Theta\boldsymbol{\mathrm{Q}}_\mathcal{Y}
WY=ΘQY。这使得通过简单地使
Q
Y
\boldsymbol{\mathrm{Q}}_\mathcal{Y}
QY 成为动态矩阵
Q
Y
(
x
)
=
Q
Y
c
\boldsymbol{\mathrm{Q}}_\mathcal{Y}(\boldsymbol{\mathrm{x}})=\boldsymbol{\mathrm{Q}}_\mathcal{Y_c}
QY(x)=QYc,就可以对样本
x
\boldsymbol{\mathrm{x}}
x 进行任何标签集
Y
c
\mathcal{Y}_c
Yc 的分类,如图3所示。
损失函数(Loss function):
Deep-RTC 使用交叉熵损失
L
Y
(
x
i
,
y
i
)
=
−
y
i
T
log
f
Y
(
x
;
Θ
,
Φ
)
L_\mathcal{Y}(\boldsymbol{\mathrm{x}}_i,y_i)=−\boldsymbol{\mathrm{y}}^T_i\log f_\mathcal{Y}(\boldsymbol{\mathrm{x;\Theta,\Phi}})
LY(xi,yi)=−yiTlogfY(x;Θ,Φ)
进行训练,其中
y
i
\boldsymbol{\mathrm{y}}_i
yi 是
y
i
∈
Y
y_i\in\mathcal{Y}
yi∈Y 的一位有效编码。当这在(4)中使用时,CNN 针对与分类学切分
T
c
\mathcal{T}_c
Tc 相关的标签集
Y
c
\mathcal{Y}_c
Yc 进行全局优化。与
T
\mathcal{T}
T 的不同切分相关的许多分类器的正则化是一种全局正则化,保证所有分类器都校准良好。
除此之外,还可以校准内部节点条件决策。假设样本
x
\boldsymbol{\mathrm{x}}
x 已被分配给节点
n
n
n,节点条件决策是局部的,并确定样本应该分配给
n
n
n 的哪些子节点
C
(
n
)
\mathcal{C}(n)
C(n)。它们只考虑由
n
n
n 的子节点定义的目标标签集
Y
n
=
C
(
n
)
\mathcal{Y}_n=\mathcal{C}(n)
Yn=C(n)。对于这些标签集,所有节点
v
∈
C
(
n
)
v\in\mathcal{C}(n)
v∈C(n) 共享相同的祖先集
A
v
\mathcal{A}_v
Av,因此(5)的第二项。因此,在 softmax 归一化之后,(5)等价于
w
v
=
θ
v
\boldsymbol{\mathrm{w}}_v=\theta_v
wv=θv,节点条件分类器
f
n
(
⋅
)
f_n(\cdot)
fn(⋅) 简化为
f
n
(
x
;
Θ
,
Φ
)
=
σ
(
Q
n
T
Θ
T
h
(
x
;
Φ
)
)
f_n(\boldsymbol{\mathrm{x;\Theta,\Phi}})=\sigma(\boldsymbol{\mathrm{Q^T_n\Theta^T}}h(\boldsymbol{\mathrm{x;\Phi}}))
fn(x;Θ,Φ)=σ(QnTΘTh(x;Φ))
其中,如图2所示,代码字矩阵
Q
n
\boldsymbol{\mathrm{Q}}_n
Qn 对于所有祖先节点都包含零。因此,可以通过注意到样本xi为其真实祖先路径
A
(
y
i
)
\mathcal{A}(y_i)
A(yi) 中的所有节点条件分类器提供监督来校准内部节点决策。这允许定义每个节点
n
n
n 的节点条件一致性损失
L
n
=
1
M
∑
i
=
1
M
1
∣
A
(
y
i
)
∣
∑
n
∈
A
(
y
i
)
L
Y
n
(
x
i
,
y
n
,
i
)
\mathcal{L}_n=\frac{1}{M}\sum^M_{i=1}\frac{1}{|\mathcal{A}(y_i)|}\sum_{n\in\mathcal{A}(y_i)}L_{\mathcal{Y}_n}(\boldsymbol{\mathrm{x}}_i,y_{n,i})
Ln=M1i=1∑M∣A(yi)∣1n∈A(yi)∑LYn(xi,yn,i)
其中
L
Y
n
L_{\mathcal{Y}_n}
LYn 是标签集
Y
n
\mathcal{Y}_n
Yn 的(9)的损失,
y
n
,
i
y_{n,i}
yn,i 是节点
n
n
n 的决策
x
i
\boldsymbol{\mathrm{x}}_i
xi 的标签。Deep-RTC 通过最小化这些局部节点条件一致性损失和(4)的全局集成损失的组合
L
c
l
s
=
L
n
+
λ
L
s
t
s
\mathcal{L}_{cls}=\mathcal{L}_n+\lambda\mathcal{L}_{sts}
Lcls=Ln+λLsts
进行训练,其中
λ
\lambda
λ 权衡了两个项的贡献。
性能评估(Performance Evaluation):
由于平面分类器的普遍采用,以前的长尾识别工作将性能等同于识别准确率。在分类学设置下,这等同于测量叶节点准确率 E { 1 [ y ^ i = y i ] } \mathbb{E}\{1_{[\hat{y}_i=y_i]}\} E{1[y^i=yi]},并且未能奖励分类粒度和准确率之间的权衡。在图1的例子中,它只奖励“墨西哥无毛犬”标签,对“狗”或“蜘蛛”标签没有区分,这两者都被认为是错误的。
分类学的替代方案是依赖于分层准确率 E { 1 [ y ^ i ∈ A ( y i ) ] } \mathbb{E}\{1_{[\hat{y}_i\in\mathcal{A}(y_i)]}\} E{1[y^i∈A(yi)]}。这有一个局限性,即平等奖励“狗”和“墨西哥无毛犬”,即不鼓励更细粒度的决策。
在这项工作中,我们提出更好的性能度量应该捕捉分类捕获的类标签信息量。虽然在叶节点的正确分类捕获了所有信息,但在中间节点的拒绝只能捕获部分信息。为了衡量这一点,我们建议使用分类器正确预测的比特数(correctly predicted bits,CPB),假设分类学叶节点的每个类贡献了一位信息。这定义为
C
P
B
=
1
M
∑
i
=
1
M
1
[
y
^
i
∈
A
(
y
i
)
]
(
1
−
∣
L
e
a
v
e
s
(
T
y
^
i
)
∣
∣
L
e
a
v
e
s
(
T
)
∣
)
\mathrm{CPB}=\frac{1}{M}\sum^M_{i=1}1_{[\hat{y}_i\in\mathcal{A}(y_i)]}\left(1−\frac{|\mathrm{Leaves}(\mathcal{T}_{\hat{y}_i})|}{|\mathrm{Leaves}(\mathcal{T})|}\right)
CPB=M1i=1∑M1[y^i∈A(yi)](1−∣Leaves(T)∣∣Leaves(Ty^i)∣)
其中
T
y
^
i
\mathcal{T}_{\hat{y}_i}
Ty^i 是以
y
^
i
\hat{y}_i
y^i 为根的子树。这为叶节点的正确分类分配了 1 分,为更高树层级的正确分类分配了较小的分数。请注意,任何中间层级的正确预测都优于叶节点的错误预测,但分数低于更细粒度的正确预测。最后,对于平面分类器,CPB 等于分类准确率。
本节介绍了Deep-RTC在长尾识别方面的性能。
实验设置
数据集
我们考虑了4个数据集
长尾评估的数据分割
骨干架构
能力水平
除非另有说明,否则 γ \gamma γ 的值通过交叉验证确定,即在验证集上表现最佳的值应用于测试集。
消融
设置:
CPB性能:
表1显示,平面分类器的CPB性能非常差,因为在叶节点进行预测需要分类器在训练不足的尾部类别上做出决策。结果是大量的错误,即没有保留任何标签信息的图像。
RHC,其自下而上的分层扩展,是解决长尾识别问题的更好方案。虽然大多数图像不在叶节点分类,但分层准确率和 CPB 都显著提高。
然而,RHC 的 CPB 性能比图2的 PI 架构与 STS 或 NCL 的组合要弱。
在这些方法中,STS 的全局正则化比 L n L_n Ln 的局部正则化更有效。然而,通过结合两种正则化,它们引导出一个(Deep-RTC)保留关于类标签最多信息的分类器。
性能度量:
长尾识别文献一直专注于最大化平面分类器的准确率。表1显示了这种方法的一些局限性。
首先,所有分类器在这个度量下的性能都非常差,叶节点准确率在16%到18%之间。
此外,如图4所示,标签可能完全无法反映对象类别。
其次,所有分类器在分层准确率方面表现得要好得多。对于实践者来说,这意味着它们是准确的分类器。虽然不足以总是将决策带到树的底部,但它们的决策是可靠的。
此外,Deep-RTC在这个层级正确分类了90%的图像!这可能使其对许多应用有用。例如,它可以用于自动将图像路由到这些特定类别的专家,以便进一步标注。
第三,在自上而下的分类器中,Deep-RTC 将决策推得最远(例如,比 PI+STS 深4%)。这使得它在 iNaturalist-sub 上比其两个变体更像专家,这一事实被提出的 CPB 度量所捕捉。
鉴于所有这些,我们认为CPB最优性比叶节点准确率作为长尾识别的性能度量更有意义。
与分层分类器的比较
接下来,我们在表2中使用CPB对先前的工作进行了分层分类的比较。
与长尾识别器的比较
在iNaturalist和ImageNet-LT的数据集上,与长尾识别的最新方法的比较分别在表3-4中呈现。在补充材料中还提供了其他数据集的更多比较。
与带有拒绝机制的学习的比较
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。