Rethinking Class-Balanced Methods for Long-Tailed Visual Recognition论文翻译
从域适应角度重新思考长尾视觉识别的类平衡问题
摘要
在现实世界中常见对象的频率通常遵循幂律分布规律的现象会导致机器学习模型在面对具有长尾类别分布的数据集时出现性能预期不符的问题 这种现象可以从领域适应的角度进行深入探讨 首先 我们将现有的长尾分类平衡方法与目标域转移策略相结合 这种结合是领域适应研究中已有的解决方案 但是 这种做法隐含地假设训练数据和测试数据之间共享相同的条件概率分布 这种假设在实际应用中往往难以成立 尤其是对那些处于尾部区域的对象而言 显然存在较大的偏差 虽然头部类别拥有丰富的训练实例这些实例能够很好地映射推理阶段的典型数据 但尾部类别往往缺乏足够的训练样本支持 为此 我们提出了一种基于元学习的方法来显式建模不同类别间的条件分布差异 并通过实验验证该方法的有效性 我们使用六个基准数据集和三种不同的损失函数来进行实验验证
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节回顾了应对长尾挑战的其他方法。
一方面,上面回顾的大量工作表明目标转移通常是一个合理的假设,比如\mathrm{P}_{s}(y) \neq P_{t}(y) \text { and } P_{s}(x | y)=P_{t}(x | y),基于此,人们可以设计有效的算法来从具有长尾类分布的训练集中学习无偏模型。但是,另一方面,我们的直觉挑战了目标转变假设的第二部分。换句话说,P_{s}(x | y)=P_{t}(x | y)可能不成立。虽然训练集的头类(例如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,以及头尾知识迁移. hinge 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].针对域自适应中的不平衡问题已有多种解决方案.
邹等文献通过按类别归一化的置信度得分控制伪标签的学习和生成来处理类别不平衡问题严等采用加权最大均值差异的方法来解决无监督域自适应中的类不平衡问题我们从领域适应的角度理解视觉识别中的长尾挑战尽管域适应方法通常需要访问大量未标记的目标域数据但我们不访问任何推理时间数据
与现有领域的加权方法不同我们的方法通过元学习权重实现了自适应
3. 类平衡作为域自适应
在本节中,我们从域适应的角度介绍了用于长尾视觉识别的类平衡方法[26、38、7、8、39]的详细分析。
假定有一个训练集(源域) ,来自长尾分布 ,更精确的说,类的边际分布 是重尾的,因为在视觉识别中,通常很难为罕见的类收集示例。 尽管如此,我们还是希望学习一种视觉识别模型,尽可能在所有类别上少犯错误:
\text { error }=E_{P_{(x, y)}} L(f(x ; \theta), y) 我们期望一个目标域Pt(x,y),其边缘类分布Pt(y)在推理时更平衡(例如,均匀分布), 是由 参数化的识别模型, 是0-1损失。 我们稍微滥用了符号L(•,•),让它成为训练过程中可微的代理损失(即交叉熵)。
接下来, 我们应用重要性抽样技巧将期望误差与长尾源域连接起来
\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}\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 存在的类平衡方法集中注意在如何决定逐类权重 在训练过程中使用如下的目标函数:
\min _{\theta} \frac{1}{n} \sum_{i=1}^{n} w_{y_{i}} L\left(f\left(x_{i} ; \theta\right), y_{i}\right) 通过假设\tilde{\epsilon}_{x, y}=0,它近似于预期的推理误差(eq.5),换句话说通过假定对任意类P_{s}(x | y)=P_{t}(x | y)。该假设在域自适应中称为目标偏移[58]。
我们认为,共享条件分布的假设 通常不成立,尤其是对于尾类。 一个人可以很容易地为狗编一个有代表性的训练集,但不能为King Eider编写。 我们建议显式地对源条件分布和目标条件分布之间的差异 建模,并得出基于类平衡方法的改进算法。
4. 对条件差异建模
为了解决问题并提高效率,在现有基础上我们提出了一种新的方法来引入条件权重\epsilon_{x, y}:=w_{y} \tilde{\epsilon}_{x, y}并重新表述了期望推理误差:
\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}
其中最后一项被用作误差的无偏估计值。值得注意的是,在这种情况下我们并未假设源域和目标域的条件概率分布是相同的。例如我们遵循P_s(x | y) \neq P_t(x | y)以及\epsilon_i \neq 0等条件设定来实现算法设计目标。每个训练样本被划分为两个部分:一个是类别相关的权重W_y;另一个是基于实例的条件权重\epsilon_i。我们需要通过这些分量来推导出实用的有效算法框架因为数据的基本分布规律是未知的尽管我们认为训练集中的类别分布应呈现长尾特性
4.1 估计逐类权重\left\{w_{y}\right\}
遵循文献中经验成功的分类权重设计。特别地,在估计这些权重时,我们采用最近提出的有效数字方法。通过以下方式设定:当第y类存在n_{y}个训练实例时,
w_{y} \approx \frac{1 - \beta}{1 - \beta^{n_{y}}},
其中\beta \in [0, 1)是一个超参数,并且\beta = (n - 1)/n(这里n表示训练样本的数量)。
4.2 元学习条件权重\left\{\epsilon_{i}\right\}
我们通过自定义元学习框架来估计条件权重[43]。 我们在下面描述我们的方法,然后在4.3节中讨论与原始框架的两个关键差异。
主要思想是从训练集中得出一个平衡的发展集D,并用它来指导条件权重的搜索,这些条件权重会在发展集上产生最佳性能的识别模型f(•;θ)。 由T表示剩余的训练数据。通过解决下列问题来寻找条件权重\epsilon:=\left\{\epsilon_{i}\right\},
\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}其中我们并未在已经平衡的发展集上给损失加权重。 从本质上讲,上面的问题寻找最优的条件权重,在我们学习了一个识别模型f(•;θ)之后,通过最小化误差估计(Eqs(10)和(8),模型在发展集上将是表现最好的(eq.9)。
通过蛮力搜索来解决上述问题将是艰巨的,例如,迭代所有可能的条件权重集{}。 即使可以,对于每组权重训练一个识别模型,然后从所有模型中找出最佳模型,在计算上是禁止的。
相反,我们修改了元学习框架[43],并以贪婪的方式搜索条件权重。 给定当前时间步长t,它会通过对模型参数θ的更新来对权重进行求值,\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}
4.3 整个算法和讨论
我们打算提出一种名为长尾视觉识别算法1的新方法。前几节讨论的内容主要集中在批处理设置中的所有训练样本上。 算法1通过设计一个随机设置来实现这一点:这使得我们可以轻松地将其集成到现有的深度学习框架中。 在算法运行过程中包含两个学习阶段:第一阶段(line1-5)基于长尾训练集使用传统交叉熵损失对神经识别网络f(\cdot, \theta)进行训练;第二阶段(第6-16行)则专注于元学习条件权重的优化,并在此过程中持续更新识别模型。 第二阶段中特别强调了第11-13行中条件权重的更新内容。 讨论部分指出:我们的算法与学习重加权(L2RW)方法[43]之间看似微小但实际上具有本质差异的地方值得深入探讨
5. 实验
长尾分布作为训练集Meanwhile, the balanced distribution serves as the test set. The incurred loss is assessed using a class-balanced approach, which is based on the estimation of effective numbers. This strategy is applied to three distinct loss functions: cross-entropy, focal loss [34], and label-distribution-aware margin loss [4]. Focal loss [34]. Its essence lies in a smoother treatment of challenging sample mining. While it cannot directly address long-tail recognition issues, it imposes a more significant penalty on tail classes when the network tends to prioritize head-level features during training. Label-distribution-aware margin loss [4]. This method dynamically adjusts the boundaries between classes to optimize classification performance.

6. 小结
在本文中, 我们提出两种主要方法来解决长尾视觉识别问题。 其中一种创新的方法是从域适应的角度出发, 分析长尾分类中的数据分布不匹配问题。 尽管实际场景下的训练数据呈现长尾分布特征, 但只有少数几个类别占据主导地位, 我们的目标则是设计一个分类器, 在各类别上的性能都能得到均衡优化处理。 通过将这种不匹配问题分解为两类因素: 类别间差异和类别条件分布间的差异, 我们揭示了现有平衡方法的一个潜在局限性: 即假设训练集和测试集共享相同的类别条件概率。 作为第二个贡献, 在此前提下我们将这一限制放宽, 并明确地模拟了两个类别条件概率之间的比率关系。 在经过严格验证的六个典型数据集中, 我们的实验结果证明了该方法的有效性和优越性
