论文地址:MixMo: Mixing Multiple Inputs for Multiple Outputs via Deep Subnetworks
代码地址:https://github.com/alexrame/mixmo-pytorch
一、贡献
- 提出了一种新的多输入多输出深度子网学习广义框架 MixMo,MixMo 可以作为一种集成方法或一种新的混合样本数据增强方法进行分析,同时仍然与两种研究方向的工作保持互补。
- 不对称的混合也会造成网络特征中的信息不平衡的新问题,作者通过一个新的加权损失函数来解决多个分类训练任务之间的不平衡问题。
- 基于 MixMo ,作者提升了 CIFAR-100 和 Tiny ImageNet 数据集上的 SOTA 性能。
二、背景
为了在真实场景或竞赛中增加鲁棒性,CNN通常会采用两种实用策略: 数据增强和模型集成 。
数据增强 可以减少过拟合并提升模型的泛化性。
- 传统的数据增强是保留标签的:例如翻转、裁剪等。
- 混合样本数据增强 (MSDA) 是改变标签的,输入和标签按比例混合产生多样的人工样本。
- Mixup 在 样本 层面通过线性插值增加多样的人工样本。
- Manifold Mixup 在 特征 层面线性插值增加多样的人工特征,在网络的不同深度混合。
- Binary masking MSDAs(如 CutMix)通过将一幅图像的 patch 粘贴到另一幅图像上来代替插值,从而使混合样本多样化。
模型集成 证明了聚合来自多个神经网络的不同预测能够显著提高泛化能力。
- 深度集成(Deep Ensemble)同时训练多个具有不同随机初始化的网络,在训练和推理时的时间和显存消耗是昂贵的,这往往限制了模型集成的适用性。并且为了提高性能,通常要求集成的模型结构是不一样的。
- 为解决传统集成中的开销,多输入多输出(MIMO)在单个基础网络中装配子网络,几乎“免费”实现了集成。MIMO 不需要子网之间的结构差异:他们学习构建自己的路径,同时像在 DE 中一样多样化。
三、动机
上面的工作提出的不用额外计算的集成方法:MIMO,是在一个网络中同时设置不同的 subnet 。训练时,每个 subnet 只学习分类多个输入数据中的一个。然而,现在最大的问题是如何在没有结构差异的情况下加强 subnet 之间的多样性,并且如何更好地混合这些多个输入的问题迄今尚未被研究。
作者的 Motivation 是用一个更合适的混合机制来代替 MIMO 中求和导致的次优操作。受到混合样本数据增强的启发,作者发现特征的混合可以使 subnet 更强,使得数据更加多样,进而提高模型 performance 。
四、方法
1. 总体架构
如上图,作者在训练过程中同时考虑了 M 个输入,M 个输入被 M 个参数不共享的卷积神经网络分别编码到一个共享空间中,然后通过 Mixing Block 对浅层特征进行混合,之后将混合后的特征表示送到核心网络,核心网络最终分成 M 个分支;这 M 个分支用来预测不同输入信息的 label。在inference 的时候,同一图像重复 M 次:通过平均 M 个预测获得“免费”的集成效果。(“分-总-分”结构)
2. Mixing Block M
Mixing block 是 MixMo 的核心,它将两个输入组合成一个共享表示。受 MSDA 混合方法的启发,MixMo 通用框架包含了更广泛的变体。
作者提出的第一个变体是 Linear-MixMo,借鉴了 MixUp 的思想,直接将两张图片通过一个透明度叠在一起:
接着,作者受到 CutMix 的启发,提出了 Cut-MixMo :
与 Linear-MixMo 不同,这里并不是将整张图片相加,而是像 CutMix 一样,每次都是加了一个 patch。
Cut-MixMo 比其他策略表现更好。具体来说,Cut-MixMo 中的 binary mixing 取代了MIMO 和 Linear-MixMo 中的线性插值,使子网络更加精确和多样化。
作者分析了为什么 Cut-MixMo 会比 Linear-MixMo 要更好?
1)基于 CutMix 优于 Mixup 的相同原因,CutMix 中的 binary mixing 训练了更强的单个子网,此外通过 binary mixing,模拟了常见的物体遮挡问题。
2)线性插值从根本上不适合诱导多样性,因为两个输入都保留了完整的信息。CutMix 通过交替选择图像 patch,显式地增加了数据集的多样性。
训练过程中的损失函数为各自样本的交叉熵损失函数之和(分别乘上各自的权重,权重的计算见下文):
在 inference 的时候,同一个输入 x 被输入到不同的分支中,核心网络 C 的输入为 的和,这最大的保留了来自两种编码的信息。然后,最终的预测结果为不同分支的预测平均值。这使得模型可以在一次前向传播的过程中享受模型融合的结果。
3. Loss Weighting
Mixing 机制中的不对称可能导致一种输入盖过另一种输入。当 时,权重更大的输入可能更容易预测。因此,作者定义了一个权重函数 来平衡多个损失函数的重要性。这种加权调整了有效学习率、梯度在网络中的流动方式以及混合信息在特征中表示的方式。加权函数具体表示如下:
其中 是一个超参数, 取不同值的曲线如下所示:
五、实验
Main results on CIFAR-100 and CIFAR-10
上表展示了 MixMo 在 CIFAR 10 和 CIFAR 100 上的结果,可以看出相比于原始的网络,MixMo对于性能的提升非常明显。
从上图可以看出,随着宽度 w 的增加,MixMo 比 DE(绿色曲线)的性能提升更加明显。
Training time
可以看出,在相同的训练时间内,Cut-MixMo 的表现优于 DE。
The mixing block M
上表比较几个 mix block 的性能,可以看出无论形状如何,binary mixing 的性能都优于线性混合。
Weighting function
上图比较了加权函数不同 r 下的性能,r 在 [3,6] 范围内达到了很好的 trade-off。
Multiple encoders and classifiers
上表的实验结果表明,2 个编码器和 2 个分类器对于实验效果是比较好的。
Pushing MixMo further:Tiny ImageNet
在更大的规模和更多样的 64*64 图像上,Cut-MixMo 在 Tiny ImageNet 上达到了 70.24% 的新水平。