当前位置:首页 > 新闻动态 > 大模型训练 >

ECCV 2022 Oral | 自反馈学习的mixup训练框架—AutoMix

  • 发布时间:2024-05-18
  • 来源:科技游乐园

论文标题:

AutoMix: Unveiling the Power of Mixup for Stronger Classifiers

作者单位:

浙江大学,西湖大学

论文链接:

https://arxiv.org/abs/2103.13027

代码链接:

https://github.com/Westlake-AI/openmixup

我们将众多 mixup 相关的方法实现在我们的开源框架 OpenMixup 中,支持多种主流网络架构(CNNs, ViTs, etc.)、各类实验设定和常用数据集(CIFAR, ImageNet, CUB-200, etc.),我们提供了常用数据集上 mixup benchmark。同时,OpenMixup 支持了主流自监督学习算法(对比学习和 Masked Image Modeling),欢迎大家试用和关注。

Summary

我们发表于 ECCV 2022(Oral)的工作尝试并实现了一种具有“闭环自反馈”的学习框架(AutoMix)以解决“数据-模型”动态系统中的复杂度和准确性的权衡问题。具体来讲这是一个数据随模型变化,模型随数据更新的双层优化问题。不同于固定的数据增广策略的模式(独立于模型的优化),AutoMix 将参数化后的 mixup 数据增广策略融入到判别模型中,形成一个完整的数据与模型相互学习的闭环系统,即同时学习 mixup 样本的(1)生成任务和 (2)判别任务。

(1)是根据判别模型的状态自适应的学习精确的数据生成策略;(2)则是基于所学习的增广策略来增强模型对数据中重要特征的判别能力。这两种子任务服务于一个相同的优化目标,具有自一致性。大量实验也表明,判别式模型在 AutoMix 的闭环自学习系统(自一致性+闭环反馈)中具有更高效学习效率和明显的性能提升。

Background

神经网络模型(DNNs)的泛化性能在机器学习领域一直受到广泛的关注和研究,DNNs 能兼具高性能和泛化性通常需要满足两个条件:1)过参数化的模型。2)充足的训练样本。但是,在数据量不足或 DNNs 模型复杂度过高的情况下,模型容易出现过拟合现象,导致性能和泛化能力明显下降。

数据增强(Data Augmentation, DA)算法作为一种 DNNs 正则化手段能够显著提升模型的泛化性能,而基于数据混合(Data Mixing)的一系列数据增强算法,兼顾了样本和标签。基于混合的增广算法通过凸性组合(Convex Combination)来生成虚拟样本和标签,达到扩充样本量和提高数据分布多样性的目的。

样本混合增强算法的核心问题是如何生成合理的混合样本以及对应的混合标签,在图像分类任务中,一般固定混合标签的生成方式,改进混合图像的生成算法。如下图所示,CutMix 将一张图像的局部区域随机替换为另一张图像的对应区域,并根据混合图像上不同像素的面积比例生成混合标签。但是由于 CutMix 在原图上选取局部区域的位置和尺寸均是随机选择,可能出现被切割的区域不包含分类任务相关目标的现象,这将导致混合标签与混合图像中目标的语义不匹配而误导模型的优化。

为了解决该问题,PuzzleMix 和 Co-Mixup 等基于图像显著性区域(Saliency Region)和组合优化算法设计了较为精确的样本混合策略,使得类别相关的区域在混合后的样本中保留下来。但是这种间接优化方式引入了大量的额外运算开销,这对于追求高效的数据增广方法而言是极为不利的。因此,该工作主要讨论了以下两个问题:

  1. 如何设计一个准确的混合策略来提升目标任务性能?

  2. 如何高效的解决 mixup 生成和分类的双层优化问题?

为了解决这两个问题,我们先对 mixup 问题进行了重定义并提出了“闭环自反馈”框架:automatic mixup(AutoMix)。如下图所示,AutoMix 不仅可以精确定位目标区域并准确生成混合样本,而且在一定程度上减少了额外计算成本,提高了训练效率。

Preliminary

3.1 Mixup training

对于输入样本 和其对应的标签 。我们通过 cross-entropy(CE)loss 来学习一个分类器 :

基于以上,我们进一步考虑 mixup classification 问题:给定样本混合函数 ,标签混合函数 ,和从 中采样的混合比例 。我们可以得到混合后的样本 with 和标签 with 。与上式相似,我们可以通过 mixup cross-entropy(MCE)loss 来学习一个新的分类器 :

3.2 Mixup reformulation

通过 我们可以发现 mixup training 有以下两种特征(1)需要设计额外样本和标签的混合函数 和 。(2)的分类性能取决于混合函数的设计。因此,我们很自然的把 mixup 训练拆分成两个互相接收互益反馈的子任务 (i) 混合样本生成 (ii) 混合样本分类。

我们最终的目的是训练一个好的分类器,故 mixup 样本生成是服务于分类任务的辅助任务。一般情况下,我们会使用 one-hot 形式对标签进行编码,基于这种信息固定且无序的标签编码方式,标签混合函数 会直接采用线性插值的方式对标签进行混合:

3.3 Offline mixup limits the power of mixup

为了优化上述函数,现有的方法主要采用非参数化的方式将 单独做离线优化设计。基于不同的先验假设,先前的 mixup 方法主要侧重在以非参数化的方式手动设计 ,比如最大化混合样本中与标签相关的 saliency 信息,而这样设计的 是脱离了最终优化目标的。

如下图所示,左图中手工设计的 mixup 所对应对的混合样本生成是独立于混合样本分类任务的,所以他们所生成出的混合样本可能与最终优化目标无关因此存在冗余甚至降低训练效率。为了解决该问题,我们提出了具有闭环自学习性质的 AutoMix,如右图所示,成功把这两个子任务动态得联系了起来。

AutoMix: closed self-feedback framework

4.1 Parametric Mixup Generation

参数化的 mixup policy 不仅可以与主干网络同时更新,而且摆脱计算显著性信息的额外开销。为了形成闭环反馈,我们使用中间层的特征作为 的输入。在给定样本特征 和 和混合比例 的条件下,AutoMix 的混合函数可以写成以下形式:

其中 是逐元素点乘,为嵌入了 信息的 层特征。我们选择的 嵌入方式也非常简单有效,,样本混合效果如下图所示(=0, 0.3, 0.7, 1)。

Mix Block

的目标是生成一个像素级的掩码 ,用于混合输入空间的样本对 和 。由于 是计算样本对之间的关系并且在输入空间使用,所以参数化的混合函数中需要包含相似度矩阵 的计算和上采样函数 。此外,由于 mixup 的对称性,。以 为例子,的计算过程可以写成这样:

为线性变换矩阵;是矩阵乘;是将输出的掩码归一到 0 到 1 之间的 Sigmoid 激活函数。得到 之后,对于 的掩码则利用对称性便可得到,。由于 需要根据 计算 和 样本对之间像素级的相对关系,所以我们提出 cross-attention mechanism 来达到这个目的:

其中,是共享参数的线性变换矩阵,是归一化因子。综上所述,Mix Block 的设计如下图所示:

在 Mix Block 的端到端的训练方面,我们提出了一个辅助损失函数,用于帮助 Mix Block 在训练早期生成与 成比例的混合掩码:

是一个随着训练渐变为 0 的损失权重,初始值为 0.1。此外,我们在使用 MCE loss 的同时也加入了标准的 CE loss,主要是为了加速主干网络的学习以提供稳定的特征给 Mix Block 生成新的混合样本。AutoMix 的最终优化目标可以总结为:

但是我们发现,在一次梯度反传中同时更新 和 两套参数的方式会带来不稳定性,如下图所示,Mix Block 很容易陷入 Trivial solution(vanilla mixup)。为了更好在一套框架下同时优化两套参数(bi-level optimization),我们进一步引入了 Momentum Pipeline(MP)用于解耦合两套参数的训练,在稳定了训练过程的同时也加快了收敛速度。

Momentum Pipeline

受自监督学习中解决特征塌缩(feature collapse)问题的启发,我们也尝试通过使用 stop gradient 操作和孪生网络(Siamese)来解决 Mix Block 塌缩点问题,从而稳定 AutoMix 训练。如上图所示,绿色的计算流通过使用冻结的 encoder 来专注训练Mix Block,而蓝色则固定 Mix Block 参数只训练 encoder ,这种解耦合的计算流是通过 stop gradient 操作来实现的。值得注意多是被冻结的encoder 的参数是通过 和 EMA(exponential moving average)的策略进行更新的:

在 MP 的加持下,我们可以能看到最直接的效果就是 Mix Block 的训练变得稳定且收敛快速。如下图所示,Mix Block 在前几个 epoch 就可以为主干网络提供高质量的混合样本。

Results

我们对 AutoMix 做了全面的评估,主要分为以下三个方面:(1)多场景下的图像分类问题,(2)基于对抗样本的鲁棒性测试和(3)迁移到其他下游任务的性能表现。AutoMix 均表现突出,达到最佳性能。

(1) Image Classification

在图像分类的经典 benchmark 上进行大量测试,主要测试数据为 CIFAR、Tiny ImageNet 和 ImageNet。在小分辨率数据集上,我们基于 ResNet、ResNeXt 和 Wide-ResNet 对比了主流 mixup 算法。

在 ImageNet 上,我们基于不同参数量的 ResNet 和主流 Transformer 架构对比了更多实用的 mixup 算法。有一个比较有趣的现象是其他 mixup 方法在基于 ResNet-18 网络在 ImageNet 上训练时都起到了负面效果,一个可能的解释是 mixup 方法所生成的混合样本过大的增加了学习难度。而 AutoMix 生成的样本尽可能与语意保持一致,更贴切真实数据分布,适当增加了数据的丰富程度。

Fine-grained and Scene Classification

此外,我们也做了全面的细粒度分类能力测试,包括经典的 CUB-200 和 FGVC-Aircraft 和更具有挑战性的大规模数据集 iNaturalist17/18。同时,我们在 Place205 上测试了场景分类性能。在各类场景上,AutoMix 均取得最佳性能。

Calibration

mixup 方法可以对分类模型过度自信的(over-confident)预测起到矫正的作用,即分类准确度和置信度应该保持线性的对应关系,我们既不希望模型对预测错误的样本有过高的置信度,也不希望对预测正确的样本是低置信的。如下图所示,AutoMix 更加贴近红色虚线,起到了最佳的矫正效果。

(2) Robustness

我们使用人造数据集 CIFAR-C 和对抗攻击手段 FGSM 来测试模型的鲁棒性。

(3) Transfer Learning

与其他 mixup 方法一致,我们分别在 CUB-200 和 COCO2017 数据集上对弱监督目标定位和目标检测这两个常见的下游任务做了测试。效果如下:

Weakly supervised object localization

Object detection

Ablation Study

消融实验主要分析了三个问题:(1)Mix Block 中所提出的模块是否有效?(2)如果去掉 EMA 和 CE loss,模型性能会受多少影响?(3)AutoMix 中的超参数应该如何选择?

上面的两个表格回答问题(1)和(2)。左边的表验证了 cross attention 模块、embedding 和辅助损失的重要性。右边的表格将设计的 Mix Block 与 MixUp 和 CutMix 做横向对比,我们可以看出 MP 的设计对 Mix Block 是非常关键的,而 EMA 和 CE loss 只是起到 incremental 的增益效果。下图回答了问题(3),AutoMix 的超参数包括 分布中的 值和特征图的层数,我们通过实验测试将他们分别定为 和 。这种设置是通用且高效的,无需额外调整。