浙大发布「数据混合增强」框架AutoMix,还顺手开源了众多mixup算法(2)

简介: 浙大发布「数据混合增强」框架AutoMix,还顺手开源了众多mixup算法

3.3 Offline mixup limits the power of mixup

为了优化上述函数,现有的方法主要采用非参数化的方式将单独做离线优化设计。基于不同的先验假设,先前的mixup方法主要侧重在以非参数化的方式手动设计,比如最大化混合样本中与标签相关的saliency信息,而这样设计的是脱离了最终优化目标的。如下图所示,左图中手工设计的mixup所对应对的混合样本生成是独立于混合样本分类任务的,所以他们所生成出的混合样本可能与最终优化目标无关因此存在冗余甚至降低训练效率。为了解决该问题,我们提出了具有闭环自学习性质的AutoMix,如右图所示,成功把这两个子任务动态得联系了起来。

4 AutoMix: closed self-feedback framework 4.1 Parametric Mixup Generation 参数化的mixup policy 不仅可以与主干网络同时更新,而且摆脱计算显著性信息的额外开销。为了形成闭环反馈,我们使用中间层的特征作为的输入。在给定样本特征和和混合比例的条件下,AutoMix的混合函数可以写成以下形式:其中是逐元素点乘,为嵌入了信息的层特征。我们选择的嵌入方式也非常简单有效,,样本混合效果如下图所示(=0, 0.3, 0.7, 1)。

4.2 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)用于解耦合两套参数的训练,在稳定了训练过程的同时也加快了收敛速度。

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

Object detection5.4 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的超参数包括分布中的值和特征图的层数,我们通过实验测试将他们分别定为和。这种设置是通用且高效的,无需额外调整。参考资料:https://zhuanlan.zhihu.com/p/550300558

相关文章
C4.
|
1月前
|
算法 程序员 C语言
C语言的选择结构与数据算法
C语言的选择结构与数据算法
C4.
17 0
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
Paper Digest | 突破个性化推荐数据稀疏性:长尾增强的图对比学习算法研究
本文提出了一种新的长尾增强的图对比学习方法(LAGCL),该方法促使模型同时兼顾头部节点与尾部节点之间的知识,并通过长尾增强技术来使模型产出更均匀更准确的节点表征,从而改进基于 GNN 的推荐任务。
|
1月前
|
缓存 算法 安全
Java集合框架:深入探究数据结构与算法的精华
Java集合框架:深入探究数据结构与算法的精华
|
2天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
10 0
|
2天前
电信公司churn数据客户流失k近邻(knn)模型预测分析
电信公司churn数据客户流失k近邻(knn)模型预测分析
15 0
|
1月前
|
Rust Dart 算法
55.3k star!开源算法教程,附带动画图解,学习算法不再苦恼!
55.3k star!开源算法教程,附带动画图解,学习算法不再苦恼!
|
2月前
|
机器学习/深度学习 算法 搜索推荐
【实操】数据扩增:Retinex算法用于图像颜色恢复和对比度增强
【实操】数据扩增:Retinex算法用于图像颜色恢复和对比度增强
30 0
【实操】数据扩增:Retinex算法用于图像颜色恢复和对比度增强
|
2月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
36 0
|
1月前
|
机器学习/深度学习 算法 生物认证
基于深度学习的人员指纹身份识别算法matlab仿真
基于深度学习的人员指纹身份识别算法matlab仿真
|
25天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。