"); //-->
来源丨https://zhuanlan.zhihu.com/p/550300558编辑丨极市平台 导读
本工作尝试并实现了一种具有“闭环自反馈”的学习框架(AutoMix)以解决“数据-模型”动态系统中的复杂度和准确性的权衡问题。作者将众多mixup相关的方法实现在他们的开源框架OpenMixup中,支持多种主流网络架构、各类实验设定和常用数据集,并提供了常用数据集上mixup benchmark。
论文: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),欢迎大家试用和关注。
1. Summary我们发表于ECCV2022 (Oral)的工作尝试并实现了一种具有“闭环自反馈”的学习框架(AutoMix)以解决“数据-模型”动态系统中的复杂度和准确性的权衡问题。具体来讲这是一个数据随模型变化,模型随数据更新的双层优化问题。不同于固定的数据增广策略的模式(独立于模型的优化),AutoMix将参数化后的mixup数据增广策略融入到判别模型中,形成一个完整的数据与模型相互学习的闭环系统,即同时学习mixup样本的(1)生成任务和 (2)判别任务。(1)是根据判别模型的状态自适应的学习精确的数据生成策略;(2)则是基于所学习的增广策略来增强模型对数据中重要特征的判别能力。这两种子任务服务于一个相同的优化目标,具有自一致性。大量实验也表明,判别式模型在AutoMix的闭环自学习系统(自一致性+闭环反馈)中具有更高效学习效率和明显的性能提升。
2. Background神经网络模型(DNNs)的泛化性能在机器学习领域一直受到广泛的关注和研究,DNNs能兼具高性能和泛化性通常需要满足两个条件:1)过参数化的模型。2)充足的训练样本。但是,在数据量不足或DNNs模型复杂度过高的情况下,模型容易出现过拟合现象,导致性能和泛化能力明显下降。
数据增强(Data Augmentation, DA)算法作为一种DNNs正则化手段能够显著提升模型的泛化性能,而基于数据混合(Data Mixing)的一系列数据增强算法,兼顾了样本和标签。基于混合的增广算法通过凸性组合(Convex Combination)来生成虚拟样本和标签,达到扩充样本量和提高数据分布多样性的目的。
样本混合增强算法的核心问题是如何生成合理的混合样本以及对应的混合标签,在图像分类任务中,一般固定混合标签的生成方式,改进混合图像的生成算法。如下图所示,CutMix将一张图像的局部区域随机替换为另一张图像的对应区域,并根据混合图像上不同像素的面积比例生成混合标签。但是由于CutMix在原图上选取局部区域的位置和尺寸均是随机选择,可能出现被切割的区域不包含分类任务相关目标的现象,这将导致混合标签与混合图像中目标的语义不匹配而误导模型的优化。
为了解决该问题,PuzzleMix和Co-Mixup等基于图像显著性区域(Saliency Region)和组合优化算法设计了较为精确的样本混合策略,使得类别相关的区域在混合后的样本中保留下来。但是这种间接优化方式引入了大量的额外运算开销,这对于追求高效的数据增广方法而言是极为不利的。因此,该工作主要讨论了以下两个问题:
为了解决这两个问题,我们先对mixup问题进行了重定义并提出了“闭环自反馈”框架:automatic mixup(AutoMix)。如下图所示,AutoMix不仅可以精确定位目标区域并准确生成混合样本,而且在一定程度上减少了额外计算成本,提高了训练效率。
3. Preliminary3.1 Mixup training对于输入样本 和其对应的标签 。我们通过 cross-entropy (CE) loss来学习一个分类器 :
基于以上, 我们进一步考虑mixup classification|问题: 给定样本混合函数 , 标签混合函数 , 和从 中采样的混合比例 。我们可以得到混合后的样本 和标签 . 与上式相似, 我们可以通过mixup crossentropy (MCE) loss来学习一个新的分类器 :
3.2 Mixup reformulation通过 我们可以发现mixup training有以下两种特征 (1) 需要设计额外样本和标签的混合函 数 和 。(2) 的分类性能取决于混合函数的设计。因此, 我们很自然的把mixup训练 拆分成两个互相接收互益反馈的子任务(i) 混合样本生成 (ii) 混合样本分类。我们最终的目的是训练 一个好的分类器, 故mixup样本生成是服务于分类任务的辅助任务。一般情况下, 我们会使用onehot形式对标签进行编码, 基于这种信息固定且无序的标签编码方式, 标签混合函数 会直接采 用线性揷值的方式对标签进行混合:
而样本混合函数 的设计便成为决定模型性能的关键。通过定义一个参数化的样本混合函数 , 我们可以把mixup training的训练目标写成一个统一的优化目标:
3.3 Offline mixup limits the power of mixup为了优化上述函数, 现有的方法主要采用非参数化的方式将单独做离线优化设计。基于不同的 先验假设, 先前的mixup方法主要侧重在以非参数化的方式手动设计 , 比如最大化混合样本 中与标签相关的saliency信息, 而这样设计的 是脱离了最终优化目标的。如下图所示, 左图 中手工设计的mixup所对应对的混合样本生成是独立于混合样本分类任务的, 所以他们所生成出的 混合样本可能与最终优化目标无关因此存在冗余甚至降低训练效率。为了解决该问题, 我们提出了 具有闭环自学习性质的AutoMix, 如右侧子图所示, 成功把这两个子任务动态得联系了起来。
4. AutoMix: closed self-feedback framework4.1 Parametric Mixup Generation参数化的mixup policy 不仅可以与主干网络同时更新, 而且摆脱计算显著性信息的额外开 销。为了形成闭环反馈, 我们使用中间层的特征作为 的输入。在给定样本特征 和 和混 合比例 的条件下, AutoMix的混合函数可以写成以下形式:
其中 是逐元素点乘, 为嵌入了 信息的 层特征。我们选择的 嵌入方式也非常简单有 效, 。基于这样的设计, 样本混合效果如下图所示 。
4.2 Mix Block的目标是生成一个像素级的掩码 , 用于混合输入空间的样本对 和 。由于 是计 算样本对之间的关系并且在输入空间使用, 所以参数化的混合函数中需要包含相似度矩阵 的计 算和上采样函数 。此外, 由于mixup的对称性, 。以 为例子, 的计算过程如下:
为线性变换矩阵; 是矩阵乘; 是将输出的掩码归一到0到1之间的Sigmoid激活函数。得 到 之后, 对于 的掩码则利用对称性便可得到, 。由于 需要根据 计算 和 样本对之间像素级的相对关系, 所以我们提出cross-attention mechanism来达到这个目的:
其中, 是共享参数的线性变换矩阵, 是归一化因子。综上所述, Mix Block的设计如下图 所示:
在Mix Block的端到端的训练方面, 我们提出了一个辅助损失函数 , 用于帮助Mix Block在训练 早期生成与 成比例的混合掩码:
是一个随着训练渐变为0的损失权重, 初始值为 。此外, 我们在使用MCE loss的同时也加入了 标准的CE loss, 主要是为了加速主干网络的学习以提供稳定的特征给Mix Block生成新的混合样 本。AutoMix的最终优化目标可以总结为:
但是我们发现, 在一次梯度反传中同时更新 和 两套参数的方式会带来不稳定性, 如下图所 示, Mix Block很容易陷入Trivial solution (vanilla mixup)。为了更好在一套框架下同时优化两套参 数 (bi-level optimization), 我们进一步引入了Momentum Pipeline (MP) 用于解耦合两套参数 的训练, 在稳定了训练过程的同时也加快了收敛速度。
4.3 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就可以为主干网络提供高质量的混合样本。
5. Results我们对AutoMix做了全面的评估,主要分为以下三个方面:(1)多场景下的图像分类问题,(2)基于对抗样本的鲁棒性测试和(3)迁移到其他下游任务的性能表现。AutoMix均表现突出,达到最佳性能。
5.1 Image Classification在图像分类的经典benchmark上进行大量测试,主要测试数据为CIFAR、Tiny ImageNet和ImageNet。在小分辨率数据集上,我们基于ResNet、ResNeXt和Wide-ResNet对比了主流mixup算法。
ImageNet: 在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更加贴近红色虚线,起到了最佳的矫正效果。
5.2 Robustness我们使用人造数据集CIFAR-C和对抗攻击手段FGSM来测试模型的鲁棒性。
5.3 Transfer Learning与其他mixup方法一致,我们分别在CUB-200和COCO2017数据集上对弱监督目标定位和目标检测这两个常见的下游任务做了测试。效果如下:
Weakly supervised object localization (WSOL)
Object Detection
5.4 Ablation Study消融实验主要分析了三个问题:(1)Mix Block中所提出的模块是否有效?(2)如果去掉EMA和CE loss,模型性能会受多少影响?(3)AutoMix中的超参数应该如何选择?
上面的两个表格回答问题(1)和(2)。左边的表验证了cross attention模块、 \lambda\lambda embedding和辅助损失的重要性。右边的表格将设计的Mix Block与MixUp和CutMix做横向对比,我们可以看出MP的设计对Mix Block是非常关键的,而EMA和CE loss只是起到incremental的增益效果。下图回答了问题(3),AutoMix的超参数包括 BetaBeta 分布中的 \alpha\alpha 值和特征图的层数,我们通过实验测试将他们分别定为 \alpha=2\alpha=2 和 l=3l=3 。这种设置是通用且高效的,无需额外调整。
本文仅做学术分享,如有侵权,请联系删文。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。