论文标题
《Decoupled Optimisation for Long-Tailed Visual Recognition》
长尾视觉识别的解耦优化
作者
Cong Cong、Shiyu Xuan、Sidong Liu、Shiliang Zhang、Maurice Pagnucco 和 Yang Song、
来自新南威尔士大学计算机科学与工程学院、北京大学计算机学院多媒体信息处理国家重点实验室和麦考瑞大学澳大利亚健康创新研究所
初读
摘要
- 当在长尾数据集上进行训练时,传统的学习算法往往会对样本数量较大的类别表现出偏见。我们的研究发现,这种带有偏见的学习倾向源于模型参数,这些参数被训练为不成比例地贡献给以其样本数量为特征的类别(例如,多、中、少类别)。
- 为了平衡所有类别的整体参数贡献,我们研究了每个模型参数对不同类别组学习的重要性,并提出了一种多阶段参数解耦和优化(DO)框架,
- 该框架将参数解耦到不同的组中,每个组学习特定的一部分类别。
- 为了优化参数学习,我们应用了不同的训练目标,并采取协作优化步骤来学习关于每个类别组的互补信息。
- 在包括 CIFAR100、Places-LT、ImageNet-LT 和 iNaturaList 2018 在内的长尾数据集上进行的广泛实验表明,我们的框架与最先进的方法相比取得了具有竞争力的性能。
结论
- 在这项工作中,我们提出了一种用于长尾视觉识别的新型参数解耦和优化框架。
- 所提出的框架通过将模型参数解耦到不同的组中,每组针对一个单独的类别划分进行优化,从而在所有类别之间最佳地平衡参数的重要性。
- 广泛的实验已经证明了所提出框架的有效性。
再读
Section 1 Introduction
-
长尾分布
- 现实世界的数据集通常表现出长尾类别分布,其中某些类别拥有大量的样本,而罕见类别的样本数量则有限。
- 这种类别不平衡在训练深度卷积神经网络时带来了重大挑战,因为拥有大量实例的头部类别倾向于通过影响大多数梯度的学习来压倒尾部类别的模型学习,从而导致在少数类别上的性能不佳。
- 这是一个关键问题,特别是在自动驾驶和计算机辅助诊断等领域,因为在这些领域中,需要在长尾数据集上训练的模型能够在所有类别上展示出高性能。
-
相关方法:
- 早期尝试缓解这一问题包括对稀有类别进行上采样、知识迁移和损失重新加权。
- 最近的研究发现,改善特征质量,特别是通过自监督学习可以有效提高模型在不平衡数据集上的性能。
- 一些研究发现特征学习和分类器学习偏好不同的学习策略,因此应用两阶段解耦学习方案可以进一步改进性能。
- 此外,基于多专家学习的模型集成代表了最先进的技术,每个专家模型专注于数据分布的不同划分。
-
我们的分析表明,每个模型参数在学习不同类别组时具有不同程度的重要性。
-
这里参数重要性的衡量类似于模型剪枝时所使用的概念,即通过从模型中移除它引起的最终损失的变化来估计。
-
在长尾分类中,模型参数通常对于样本数量较多的类别更为重要,即多类别组。
-
图 1(b)展示了通过不同的长尾学习方法,在各个类别组之间平均的参数重要性。

- 图片注解:图 1:a) 比较基准 ResNet 模型、PaCo、CMO、RIDE以及我们提出方法的不同类别组分类准确率。b) 比较各种方法的平均参数重要性。我们注意到准确性与参数重要性之间存在正相关关系。更多的可视化结果在补充材料中提供。
-
发现每个类别组的准确性与该类别组的参数平均重要性之间存在正相关关系。
- 当朴素的 ResNet 模型(Base)在长尾 ImageNet 数据集上进行训练时,它表现出对多类别组的高度偏见参数重要性,导致这个组的准确性显著高于其他组。
- 相反,长尾方法在中等和少量类别组上展示了增强的性能,以及在这些特定类别组上增加了参数重要性。
-
-
多阶段优化框架:
- 上述观察结果说明了在类别组之间重新平衡参数重要性以改善不平衡分类的优势。这激励我们提出一种新的多阶段优化框架,旨在实现所有类别之间参数重要性的均衡。
- 具体来说,
- 该框架将模型参数解耦为不同的子集,每个子集都针对训练集中的特定类别组进行优化。
- 在每一个阶段,
- 我们首先应用一个协作参数优化(CPO)过程,该过程旨在提高对特定类别组的参数重要性。
- 在此之后,我们采用一种泰勒引导的参数解耦(TPO)方法来选择对当前偏好类别组学习具有重要性的参数。
- 然后将重要性较小的参数重新初始化,并在后续阶段用于优化。
- 在每一阶段的最后,构建一个子模型,包含对当前学习阶段具有重要性的参数。
- 在推理阶段,使用实例级测试时学习机制聚合这些子模型的输出以获得最终预测。
- 如图 1 所示,我们的方法在所有类别组之间展示了良好的平衡参数重要性,从而显著提高了性能。
-
具体来说,我们的贡献总结如下:
- 我们提出了一种多阶段参数解耦和优化(DO)框架,能够在所有类别之间很好地平衡参数的重要性。
- 我们的框架采用了一种协作参数优化(CPO)程序,该程序采用群体增强的采样策略和补偿损失,以强制模型参数学习关于不同类别的互补信息。
- 我们采用了一种泰勒引导的参数解耦(TPD)方法,该方法采用泰勒展开来近似参数的重要性,并使用它来选择对不同类别组重要的参数。
- 提出了一种新颖的实例级测试时学习算法,用于在组装具有不同专业知识的模型时获得更精确的预测。
- 在CIFAR100、ImageNet-LT、Places-LT 和 iNaturalist18 上的广泛实验表明,我们的方法在许多、中等和少量类别组上取得了优于最近方法的性能提升。
Section 2 Related Work
-
长尾学习(Long-tailed learning)
长尾学习旨在训练模型以处理遵循长尾类别分布的数据集。现有的算法可以大致分为单一模型不平衡学习(single model imbalance learning)和多专家不平衡学习(multi-expert imbalance learning)两大类。
-
单一模型不平衡学习
这些工作可以进一步分为三个子类别:重新平衡(re-balancing)、知识迁移(knowledge transfer)和多阶段学习(multi-stage learning)
- 重新平衡通常通过类别重采样和损失重新加权来增强模型训练过程中少数类的影响。这些方法在类别或实例级别为少数类样本分配更高的权重。
- 其他研究尝试通过分布校准或增强将多数类的知识迁移到缺乏知识的少数类。
- 多阶段学习是长尾分类的有效训练方案,因为特征学习和分类器学习偏好不同的训练策略。
- 自监督学习(SSL)已被用于在以前的研究中改善特征质量,表明 SSL 产生了对类别不平衡更鲁棒的特征,并在长尾分类中显著提高了模型性能。
- 其他方法已被提出以改善两个学习阶段之间的校准。例如,
- (Li, Wang和Wu,2021)实现了一个额外的自蒸馏阶段,以更好地在多阶段学习中结合标签相关性。
- 此外,Zhang 等人使用轻量级的分布对齐模块来校准分类分数,从而改进了当前的两阶段方法。
-
多专家不平衡学习
现有的单一模型方法减少了少数类的模型偏差,但增加了所有类的模型方差,导致多数类的准确性下降。因此,提出了多专家不平衡学习框架,例如
- RIDE 允许多个专家模型捕捉互补知识。
- 沿着这条研究路线,NCL 被提出,通过在线蒸馏模块增强专家之间的知识转移,
- SADE 明确专注于每个专家不同的数据分布,并使用自监督的测试时聚合机制来融合专家的输出。
- 此外,SHIKE 结合了不同层的特征,以利用网络不同深度的编码信息,
- 而 BalPoE 通过对数调整和 Mixup 鼓励无偏置和良好校准的集成。
-
-
持续学习(Continual Learning)
- 我们的工作从持续学习中获得灵感,在持续学习中,模型参数不断调整以适应非静止数据分布。
- 当前的方法可以分为三类。
- 基于正则化的方法,使用额外的正则化项,旨在在先前任务和当前任务之间找到平衡。虽然它们显示出了有效性,但当处理具有挑战性的设置或复杂的数据集时,它们可能会遇到困难。
- 另一方面,基于排练的技术使用紧凑的内存缓冲区或额外的生成模型来存储或生成先前任务的代表性数据。许多近期研究通过整合知识蒸馏或自监督学习(SSL)来增强这一概念。然而,这些方法的适用性通常受到内存需求的限制。
- 基于架构的方法专注于构建特定于任务的参数。在为每个任务分配参数时,模型架构可以是固定的或动态的大小。
-
与之前工作的差异:
- 单一模型方法在少数类上显示了性能的改进,但可能会降低多数类的准确性。虽然多专家模型可以缓解这个问题,但它们在子模型之间缺乏有效的交互,并且通常在模型初始化时固定专家的能力。
- 相比之下,我们的工作在动态地将模型参数分配到子组方面改进了传统的多专家训练,并探索了如何有效地提高少数类的性能,而不会损害多数类的准确性,并进一步增强参数交互。
- 我们在方法中融入了基于架构的持续学习的概念。然而,我们的重点是设计更可靠的准则来量化参数重要性并在所有类别之间平衡它们的重要性,以增强长尾分类。
Section 3 Methodology
-
由于每个类别组的准确性与相应的参数重要性之间存在正相关关系,我们提出了一种名为解耦优化(Decoupled Optimisation,DO)的新型优化框架,用于长尾视觉识别,以显式地平衡类别组之间的参数重要性。
-
图 2 展示了我们框架的工作流程。

- 图片注解:图 2:DO 的整体工作流程。在训练期间,使用多阶段训练方案。在每一阶段,我们首先应用一个 CPO 步骤,该步骤策略性地针对一组可学习参数,并训练它们以携带与特定类别组相关的互补信息。然后应用一个 TPD 步骤,以保留当前学习阶段的重要参数,并将剩余的参数设置为后续阶段的学习参数。在推理阶段,使用实例级测试时学习来获得聚合权重,以融合来自每个子模型的输出来获得最终预测。
-
给定一个由 θ\thetaθ 参数化的分类模型 F\mathcal{F}F,我们在 TTT 个阶段上对长尾数据集 D\mathcal{D}D 进行训练,并将 θ\thetaθ 解耦为 TTT 个不同的组 { θ1,θ2,⋯ ,θT}\{\theta_1,\theta_2,\cdots,\theta_T\}{ θ1,θ2,⋯,θT},其中每个组专注于特定的一组类别 { Y1,Y2,⋯ ,YT}\{Y_1,Y_2,\cdots,Y_T\}{ Y1,Y2,⋯,YT}。
-
根据之前的长期研究,我们在 D\mathcal{D}D 上定义了三个类别组(多、中组和少组),我们设置 T=3T=3T=3,并在第一阶段从多组开始学习,然后逐渐过渡到样本较少的组。
-
在每一阶段 ttt,首先进行协作参数优化(CPOCPOCPO)过程,鼓励 θt\theta_tθt 在表示特定类别组 ttt 时携带重要信息。
-
参数 wi∈θtw_i\in\theta_twi∈θt 对类别 yyy 的重要性通过 wiw_iwi 周围的一阶泰勒展开来近似,即,Ewiy=(wigwiy)2\mathcal{E}^y_{w_i}=(w_ig^y_{w_i})^2Ewiy=(wigwiy)2,其中 gwiyg^y_{w_i}gwiy 表示关于类别 yyy 的一阶导数。
-
一旦 θt\theta_tθt 在该阶段被优化,我们就根据参数重要性应用泰勒引导的参数解耦(TPDTPDTPD)方法将 θt\theta_tθt 解耦为重要部分 θtˉ\bar{\theta_t}θtˉ 和不重要部分 θt^\hat{\theta_t}θt^。然后,θtˉ\bar{\theta_t}θtˉ 被固定,θt^\hat{\theta_t}θt^ 被重新初始化,以便对其他类别组进行进一步优化,
除了最后一个阶段,即 θtˉ=θT\bar{\theta_t}=\theta_Tθtˉ=θT 。
-
为了在下一阶段 ttt 进行 CPOCPOCPO 过程,之前阶段的 θˉt−1\bar{\theta}_{t-1}θˉt−1也被激活。这提供了双重好处。
- 首先,跨不同阶段优化的参数协同交互,放大了整体性能。
- 其次,来自先前阶段的知识库有助于当前阶段的学习。
这种设置对于学习样本较少的类别尤其重要,因为它们在学习参数中的代表性较低。
-
-
为了在推理过程中最优地平衡参数重要性,采用了两个操作:
- 在每个训练阶段的结束时,将 { θˉ1⋯t−1∪θˉt}\{\bar{\theta}_{1\cdots t-1}\cup\bar{\theta}_t\}
-

1409

被折叠的 条评论
为什么被折叠?



