Rethinking Class-Balanced Methods for Long-Tailed Visual Recognition论文翻译

从域适应角度重新思考长尾视觉识别的类平衡问题

摘要

       现实世界中的对象频率往往遵循幂律,导致机器学习模型所看到的具有长尾类分布的数据集与我们对模型在所有类别上都表现得很好的期望不匹配。我们从域适应的角度分析这种不匹配。首先,我们将用于长尾分类的现有类平衡方法与目标转移联系在一起,这是领域适应中经过充分研究的方案。 连接表明,这些方法隐式地假设训练数据和测试数据共享相同的类条件分布,这通常不成立,尤其是对于尾类。 虽然head class可能包含丰富多样的训练示例,这些示例可以很好地表示推理时的预期数据,但尾部类通常缺少代表性的训练数据。 为此,我们建议通过使用元学习方法显式估计类条件分布之间的差异来增强经典类平衡学习。 我们使用六个基准数据集和三个损失函数来验证我们的方法。

1. 简介

       大型精选数据集,深度学习和前所未有的计算能力通常被称为视觉识别最新进展的三大支柱[32、44、37]。 但是,随着我们继续构建大数据集支柱,幂律成为不可避免的挑战。 现实世界中的物体频率通常呈现出长尾分布,其中少数类别占主导地位,例如动植物[51,1],全球地标[41]以及背景中常见和不常见的物体[35, 23]。
       在本文中,我们建议从域适应的角度研究长尾视觉识别。 长尾挑战本质上是机器学习模型看到的具有长尾类分布的数据集与我们对模型的期望在所有类上都表现良好(而不偏向头类)之间的不匹配问题。 常规的视觉识别方法,例如通过交叉熵损失训练神经网络,过度拟合了优势类,而未能通过代表性不足的尾类而失败。因为它们隐式的假定了测试集是来自与长尾训练集相同的基础分布。 域自适应明显地打破了假设[46、45、21]。 当机器学习模型从训练数据(源域)学习时,它向机器学习模型公开了推理时间数据或分布(目标域)。
       用Ps(x,y)和Pt(x,y)分别表示源域和目标域的分布,其中x和y分别是实例及其类标记。 在长尾视觉识别中,源域的边际类分布Ps(y)是长尾的,但是目标域的类别分布Pt(y)更加平衡,例如均匀分布。
       在通用域适应中,两个域之间可能存在不匹配的多种原因。 协变量移位[46]导致输入边际分布上的域差异,即Ps(x)≠ Pt(x),但通常在各个域上保持相同的预测函数,即Ps(y | x)= Pt(y | x)。 在目标偏移原因[58]下,域仅因类分布而不同,即Ps(y)≠ Pt(y)和Ps(x | y)= Pt(x | y),部分解释了 设计类平衡权重以应对长尾挑战[7,38,13,62,40,8,3,12,39,14]。
       这些类平衡方法使尾类在确定模型的决策边界时,可以发挥比其大小建议更大的作用。 类别权重与类别规模成反比[26、40、38]。 另一种方法是,可以从将一个类别的示例错误分类为另一类别的成本中得出这些权重[13,62]。 崔等。 通过计算每类示例的“有效数量”,[7]提出了一种有趣的加权方案。 最后,过采样/欠采样头/尾类[8、39、3、12、14]实际上与类平衡权重属于同一家族,尽管它们导致实际上不同的训练算法。 第2节回顾了应对长尾挑战的其他方法。
       一方面,上面回顾的大量工作表明目标转移通常是一个合理的假设,比如 P s ( y ) ≠ P t ( y )  and  P s ( x ∣ y ) = P t ( x ∣ y ) \mathrm{P}_{s}(y) \neq P_{t}(y) \text { and } P_{s}(x | y)=P_{t}(x | y) Ps(y)=Pt(y) and Ps(xy)=Pt(xy),基于此,人们可以设计有效的算法来从具有长尾类分布的训练集中学习无偏模型。但是,另一方面,我们的直觉挑战了目标转变假设的第二部分。换句话说, P s ( x ∣ y ) = P t ( x ∣ y ) P_{s}(x | y)=P_{t}(x | y) Ps(xy)=Pt(xy)可能不成立。虽然训练集的头类(例如Dog)可以包含丰富和多样的示例,很好地表示推理时的预期数据,但尾类(例如KingEider)通常是缺乏代表性的训练实例。 因此,从源域的条件分布Ps(x|Dog)中提取的训练示例可能很好地近似于目标域的条件分布Pt(x|Dog),但这两个域的条件分布Ps(x|KingEider)和Pt(x|KingEider)之间的差异很大,因为很难收集KingEider的训练示例(Cf)。 图1) .
       为此,我们建议通过放宽源域和目标域共享相同条件分布PS(x|y)和Pt(x|y)的假设来增强类平衡学习。通过明确考虑它们之间的差异,我们为每个训练示例得出了两个分量的权重。 第一部分继承了经典的逐类加权,并在各种应用中保持了有效性。 第二部分对应于条件分布,我们通过元学习框架对其进行估计以重加权实例[43]。 我们对该框架进行了两项重要的改进。 一种是,由于对长尾问题进行了分析,因此我们对二分量权重有充分的先验知识,因此可以将权重初始化为接近最佳值的权重。 另一个是我们从框架中删除了两个约束,以使搜索空间足够大,以更大的机会覆盖最优条件。
       在人工构造的长尾数据集上做实验,包括long-tailed CIFAR [31], ImageNet [10], and Places-2 [61],和自然的长尾数据集上iNaturalist 2017 and 2018。用三种不同的损失函数(cross-entropy,focal loss,a label-distribution-aware margin loss)测试了我们的方法. 结果表明,我们的双分量加权比类平衡方法更有利。

2. 相关工作

       我们的工作与第1节中简要回顾的类平衡方法密切相关。在本节中,我们讨论领域适应和其他类型的解决长尾视觉识别的工作。
       度量学习,hinge loss,以及头尾知识迁移。hing loss和度量学习是一个人处理长尾问题的灵活工具[4,26,57,59,24,54]。 他们大多是两个主要步骤。 一种是对感知长尾性质的数据进行抽样或分组,另一种是构造large margin损失。我们的方法是损失无关的,我们证明它可以在实验中受益不同的损失函数。 另一项研究是将知识从头类转移到尾部。 尹等人 将类内方差从头转移到尾[56].Liu等人。 在神经网络中添加一个内存模块来传输语义特征[36],Wang等人使用元网络来回归不同类之间的网络权重[53]。
       难例挖掘和加权。硬示例挖掘在对象检测中很普遍并且有效[14、39、44、34]。 尽管它不是专门为长尾识别而设计的,但是它可以间接地将模型的焦点转移到尾部类,尾部类通常是困难示例的来源(参见[7,11,16]和我们的实验)。 尽管如此,这样的方法可能对异常值敏感,或者不必要地使少数例子主导了训练。 最近通过元学习方法提出的实例加权[43,47]缓解了这些问题。 遵循一般的元学习原则[15、28、33],他们搁置了一个验证集,以指导如何通过梯度下降权衡训练示例。 从嘈杂数据中学习时也使用了类似的方案[29、9、52]。
       域适应。在实际应用中,出于各种原因,训练数据和测试数据的分布之间经常存在不匹配的情况[49、17、60]。域自适应方法旨在减轻失配,从而使学习的模型可以很好地推广到推理时间数据[46、45、21、20]。有一些方法可以处理域自适应中的不平衡问题。邹等文献[63]通过使用按类别归一化的置信度得分控制伪标签的学习和生成来处理类别不平衡问题。严等[55]使用加权最大均值差异来处理无监督域自适应中的类不平衡。我们从领域适应的角度理解视觉识别中的长尾挑战。虽然领域适应方法需要访问大量未标记的(有时也只是标记的一小部分)目标域数据,但我们不访问我们的任何推理时间数据在我们的方法中。与领域自适应中现有的加权方法[5、27、58]不同,我们通过元学习权重。

3. 类平衡作为域自适应

       在本节中,我们从域适应的角度介绍了用于长尾视觉识别的类平衡方法[26、38、7、8、39]的详细分析。
       假定有一个训练集(源域) ,来自长尾分布 ,更精确的说,类的边际分布 是重尾的,因为在视觉识别中,通常很难为罕见的类收集示例。 尽管如此,我们还是希望学习一种视觉识别模型,尽可能在所有类别上少犯错误:
 error  = E P ( x , y ) L ( f ( x ; θ ) , y ) \text { error }=E_{P_{(x, y)}} L(f(x ; \theta), y)  error =EP(x,y)L(f(x;θ),y)       我们期望一个目标域Pt(x,y),其边缘类分布Pt(y)在推理时更平衡(例如,均匀分布), 是由 参数化的识别模型, 是0-1损失。 我们稍微滥用了符号L(•,•),让它成为训练过程中可微的代理损失(即交叉熵)。
       接下来, 我们应用重要性抽样技巧将期望误差与长尾源域连接起来
 error  = E P t ( x , y ) L ( f ( x ; θ ) , y ) = E P s ( x , y ) L ( f ( x ; θ ) , y ) P t ( x , y ) / P s ( x , y ) = E P s ( x , y ) L ( f ( x ; θ ) , y ) P t ( y ) P t ( x ∣ y ) P s ( y ) P s ( x ∣ y ) : = E P s ( x , y ) L ( f ( x ; θ ) , y ) w y ( 1 + ϵ ~ x , y ) \begin{aligned} & \text { error }=\mathbb{E}_{P_{t}(x, y)} L(f(x ; \theta), y) \\ =& \mathbb{E}_{P_{s}(x, y)} L(f(x ; \theta), y) P_{t}(x, y) / P_{s}(x, y) \\ =& \mathbb{E}_{P_{s}(x, y)} L(f(x ; \theta), y) \frac{P_{t}(y) P_{t}(x | y)}{P_{s}(y) P_{s}(x | y)} \\ :=& \mathbb{E}_{P_{s}(x, y)} L(f(x ; \theta), y) w_{y}\left(1+\tilde{\epsilon}_{x, y}\right) \end{aligned} ==:= error =EPt(x,y)L(f(x;θ),y)EPs(x,y)L(f(x;θ),y)Pt(x,y)/Ps(x,y)EPs(x,y)L(f(x;θ),y)Ps(y)Ps(xy)Pt(y)Pt(xy)EPs(x,y)L(f(x;θ),y)wy(1+ϵ~x,y)  here  w y = P t ( y ) / P s ( y )  and  ϵ ~ x , y = P t ( x ∣ y ) / P s ( x ∣ y ) − 1 \text { here } w_{y}=P_{t}(y) / P_{s}(y) \text { and } \tilde{\epsilon}_{x, y}=P_{t}(x | y) / P_{s}(x | y)-1  here wy=Pt(y)/Ps(y) and ϵ~x,y=Pt(xy)/Ps(xy)1       存在的类平衡方法集中注意在如何决定逐类权重 在训练过程中使用如下的目标函数:
min ⁡ θ 1 n ∑ i = 1 n w y i L ( f ( x i ; θ ) , y i ) \min _{\theta} \frac{1}{n} \sum_{i=1}^{n} w_{y_{i}} L\left(f\left(x_{i} ; \theta\right), y_{i}\right) θminn1i=1nwyiL(f(xi;θ),yi)       通过假设 ϵ ~ x , y = 0 \tilde{\epsilon}_{x, y}=0 ϵ~x,y=0,它近似于预期的推理误差(eq.5),换句话说通过假定对任意类 P s ( x ∣ y ) = P t ( x ∣ y ) P_{s}(x | y)=P_{t}(x | y) Ps(xy)=Pt(xy)。该假设在域自适应中称为目标偏移[58]。
       我们认为,共享条件分布的假设 通常不成立,尤其是对于尾类。 一个人可以很容易地为狗编一个有代表性的训练集,但不能为King Eider编写。 我们建议显式地对源条件分布和目标条件分布之间的差异 建模,并得出基于类平衡方法的改进算法。

4. 对条件差异建模

       为了简化,我们引入了一个条件权重 ϵ x , y : = w y ϵ ~ x , y \epsilon_{x, y}:=w_{y} \tilde{\epsilon}_{x, y} ϵx,y:=wyϵ~x,y并且重新写了一个期望推理误差:
 error  = E P s ( x , y ) L ( f ( x ; θ ) , y ) ( w y + ϵ x , y ) ≈ 1 n ∑ i = 1 n ( w y i + ϵ i ) L ( f ( x i ; θ ) , y i ) \begin{aligned} & \text { error }=\mathbb{E}_{P_{s}(x, y)} L(f(x ; \theta), y)\left(w_{y}+\epsilon_{x, y}\right) \\ \approx & \frac{1}{n} \sum_{i=1}^{n}\left(w_{y_{i}}+\epsilon_{i}\right) L\left(f\left(x_{i} ; \theta\right), y_{i}\right) \end{aligned}  error =EPs(x,y)L(f(x;θ),y)(wy+ϵx,y)n1i=1n(wyi+ϵi)L(f(xi;θ),yi)       其中最后一项是误差的无偏估计。 值得注意的是,我们没有假设源和目标域的条件分布是相同的。比如我们遵循 P s ( x ∣ y ) ≠ P t ( x ∣ y ) P_{s}(x | y) \neq P_{t}(x | y) Ps(xy)=Pt(xy) ϵ i ≠ 0 \epsilon_{i} \neq 0 ϵi=0。因此对于每个训练实例包含两部分,一个是逐类权重 W y W_{y} Wy,另一个是条件权重 ϵ i \epsilon_{i} ϵi。我们需要估计这两个分量,才能从eq(8)推导出实用的算法。 因为数据的基本分布是未知的-尽管我们认为训练集的类分布必须是长尾的。

4.1 估计逐类权重 { w y } \left\{w_{y}\right\} {wy}

       我们让分类权重类似于文献中经验成功的设计。 特别是,我们用最近提出的“有效数字”来估计它们。假如第y类有 n y n_{y} ny个训练实例,我们使得 w y ≈ ( 1 − β ) / ( 1 − β n y ) w_{y} \approx(1-\beta) /\left(1-\beta^{n_{y}}\right) wy(1β)/(1βny),其中 β ∈ [ 0 , 1 ) \beta \in[0,1) β[0,1)是一个超参数, β = ( n − 1 ) / n \beta=(n-1) / n β=(n1)/n,其中n是训练样本的个数。

4.2 元学习条件权重 { ϵ i } \left\{\epsilon_{i}\right\} {ϵi}

       我们通过自定义元学习框架来估计条件权重[43]。 我们在下面描述我们的方法,然后在4.3节中讨论与原始框架的两个关键差异。
       主要思想是从训练集中得出一个平衡的发展集D,并用它来指导条件权重的搜索,这些条件权重会在发展集上产生最佳性能的识别模型f(•;θ)。 由T表示剩余的训练数据。通过解决下列问题来寻找条件权重 ϵ : = { ϵ i } \epsilon:=\left\{\epsilon_{i}\right\} ϵ:={ϵi}
min ⁡ ϵ 1 ∣ D ∣ ∑ i ∈ D L ( f ( x i ; θ ∗ ( ϵ ) ) , y i )  with  θ ∗ ( ϵ ) ← arg ⁡ min ⁡ θ 1 ∣ T ∣ ∑ i ∈ T ( w y i + ϵ i ) L ( f ( x i ; θ ) , y i ) \begin{array}{c} \min _{\epsilon} \frac{1}{|D|} \sum_{i \in D} L\left(f\left(x_{i} ; \theta^{*}(\epsilon)\right), y_{i}\right) \text { with } \\ \theta^{*}(\epsilon) \leftarrow \arg \min _{\theta} \frac{1}{|T|} \sum_{i \in T}\left(w_{y_{i}}+\epsilon_{i}\right) L\left(f\left(x_{i} ; \theta\right), y_{i}\right) \end{array} minϵD1iDL(f(xi;θ(ϵ)),yi) with θ(ϵ)argminθT1iT(wyi+ϵi)L(f(xi;θ),yi)其中我们并未在已经平衡的发展集上给损失加权重。 从本质上讲,上面的问题寻找最优的条件权重,在我们学习了一个识别模型f(•;θ)之后,通过最小化误差估计(Eqs(10)和(8),模型在发展集上将是表现最好的(eq.9)。
       通过蛮力搜索来解决上述问题将是艰巨的,例如,迭代所有可能的条件权重集{}。 即使可以,对于每组权重训练一个识别模型,然后从所有模型中找出最佳模型,在计算上是禁止的。
       相反,我们修改了元学习框架[43],并以贪婪的方式搜索条件权重。 给定当前时间步长t,它会通过对模型参数θ的更新来对权重进行求值, θ ~ t + 1 ( ϵ t ) ← θ t − η ∂ ∑ i ∈ T ( w y i + ϵ i t ) L ( f ( x i ; θ t ) , y i ) ∂ θ ϵ t + 1 ← ϵ t − τ ∂ ∑ i ∈ D L ( f ( x i ; θ ~ t + 1 ( ϵ t ) ) , y i ) ∂ ϵ θ t + 1 ← θ t − η ∂ ∑ i ∈ T ( w y i + ϵ i t + 1 ) L ( f ( x i ; θ t ) , y i ) ∂ θ \begin{aligned} \tilde{\theta}^{t+1}\left(\epsilon^{t}\right) & \leftarrow \theta^{t}-\eta \frac{\partial \sum_{i \in T}\left(w_{y_{i}}+\epsilon_{i}^{t}\right) L\left(f\left(x_{i} ; \theta^{t}\right), y_{i}\right)}{\partial \theta} \\ \epsilon^{t+1} & \leftarrow \epsilon^{t}-\tau \frac{\partial \sum_{i \in D} L\left(f\left(x_{i} ; \tilde{\theta}^{t+1}\left(\epsilon^{t}\right)\right), y_{i}\right)}{\partial \epsilon} \\ \theta^{t+1} & \leftarrow \theta^{t}-\eta \frac{\partial \sum_{i \in T}\left(w_{y_{i}}+\epsilon_{i}^{t+1}\right) L\left(f\left(x_{i} ; \theta^{t}\right), y_{i}\right)}{\partial \theta} \end{aligned} θ~t+1(ϵt)ϵt+1θt+1θtηθiT(wyi+ϵit)L(f(xi;θt),yi)ϵtτϵiDL(f(xi;θ~t+1(ϵt)),yi)θtηθiT(wyi+ϵit+1)L(f(xi;θt),yi)

4.3 整个算法和讨论

       我们准备提出长尾视觉识别算法1。前几节的讨论考虑了批处理设置中的所有训练示例。 算法1将其定制为 一个随机的设置,以便我们可以很容易地将它与深度学习框架集成在一起。
       在算法中有两个学习阶段。在第一个阶段(line1-5),在长尾训练集上使用传统的交叉熵训练神经识别网络 f ( ⋅ , θ ) f(\cdot, \theta) f(,θ)。 第二阶段(第6-16行)元学习条件权重,采用平衡发展集,同时继续更新识别模型。 我们强调了更新的部分 第11-13行中的条件权重。
       讨论 值得注意的是,我们的算法和学习重加权(L2RW)方法[43]之间有一些看似小但却是根本的区别。

5. 实验

训练集是长尾分布,但是测试集是均衡的。
损失
类平衡损失[7]… 它按类别加权来衡量常规损失,这是根据有效数字估计的。 我们将这类平衡加权应用于三种不同的损失:交叉 熵、焦点损失[34]和最近提出的标签分布感知裕度损失[4]。
Focal loss[34]。 焦点损失可以理解为困难示例挖掘的平滑版本。 它不能直接解决长尾识别问题。 但是,如果网络在训练过程中偏向头级,则与头级相比,对尾类的惩罚更大。
Label-distribution-aware margin loss . 它根据在训练集中的优势程度动态调整类之间的边缘。

6. 小结

       在本文中,我们为长尾视觉识别做出了两个主要贡献。 一种是新颖的域适应视角,用于分析长尾分类中的不匹配问题。 虽然实际对象的训练集通常是长尾的,只有少数几个类占主导地位,但我们希望学习的分类器在所有类中的表现均一样。 通过将这种不匹配分解为类差异和类条件分布之间的差异,我们发现了现有类平衡方法背后的隐含假设,即训练集和测试集共享相同的类条件分布。 我们的第二个贡献是放宽了这个假设,以明确地模拟两个类别条件分布之间的比率。 在六个数据集上进行的实验验证了我们方法的有效性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值