浙大发布「数据混合增强」框架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

相关文章
|
2月前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
1102 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
3月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
279 1
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
384 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
159 0
|
3月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
140 3
|
3月前
|
算法 数据挖掘 定位技术
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
104 1
|
3月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
184 0
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
278 0
|
2月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
213 2
|
3月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
226 3

热门文章

最新文章