Paper Reading: Mixup

原文地址:https://arxiv.org/abs/1710.09412


问题定义

核心:提供一种新的data augmentation方法(属于VRM,vicinal risk minimization)。

方式:生成不同<样本,标签>对的插值

优点&意义:

  1. 提升模型性能 - 在CIFAR-10, CIFAR-100, Google commands和UCI数据集上验证(在一些state-of-art模型上表现出更好的性能+让模型具有更好的泛化能力)。
  2. 降低神经网络对错误标签的记忆能力 -- 实验4。
  3. 对对抗样本更加robust而且不牺牲速度(no computational overhead) -- 实验5。
  4. 使GANs训练更加稳定。
  5. 添加code简便。
  6. 更加general:适用于各种尺寸的网络、各种规模的数据、各种大小的数据。在imagenet-2012和cifar-10上都可行 -- 实验123。
  7. 不需要significant domain knowledge。

出发点:

  1. 不同领域的神经网络模型share两个特点:
    1. 最小化训练样本上的平均err – ERM(Empirical Risk Minimization)
    2. 网络规模随task的training sample数量线性增长(数据量越大state of art网络规模更大
    但又有理论指出,只要训练数据增加的同时网络规模不随之增加,EMR的收敛是可以被保证的 -- why?
    => 二者存在矛盾。EMR存在局限性:在测试分布与训练数据略有不同时,ERM方法不具有良好的解释和泛化性能。 
    1. EMR使网络倾向于去记忆数据而非去泛化数据,甚至会记忆随机数据。
    2. 另一方面,神经网络使用ERM方法训练后,在训练分布之外的样本(如对抗样本)上验证时会极大地改变预测结果。
  2. 数据增强、其他的VRM(Vicinal Risk Minimization)同样存在缺陷:
    1. 需要human knowledge确定哪些是样本的vicinity (neighborhood) -- dataset dependent。
    2. 假设临近的样本属于相同class,因此没有利用到不同class的样本的vicinity relation。

相关工作:

  1. 数据增强系列
    1. CV领域 rotation, translation, cropping, resizeing, flipping, random erasing,核心在于增加样本在视觉上的不变性。
    2. Speech领域增加noise让模型更加robust。
  2. Supervision Signal系列
    1. 样本interpolation - 在相邻样本、相同class之间进行interpolation + extrapolation 
      缺陷:只在input/feature level进行调整, 没有在target level做相同操作
    2. Label smoothing (or penalize high confidence softmax distributions)
      缺陷:没有在input实现,只对label进行了处理
  3. mixup结合了上面两点。


未来工作:

  1. 推广 mixup 到其他 supervised learning problem - 如 regression 和结构化预测(结构化预测:给定一个句子,找出它对应的依存树(dependency tree);对一个图进行分割(image segmentation)等。)。
    输出为结构化对象,而非真实值:

Structured prediction or structured (output) learning is an umbrella term for supervised machine learning techniques that involves predicting structured objects, rather than scalar discrete or real values.[1]

  1. 推广 mixup 到其他领域 unsupervised learning, semi-supervised, reinforcement learning。
  2. 拓展mixup自身算法 - 从interpolation扩展到extrapolation来提高对和training data相差更大的数据的鲁棒性。


问题:

  1. 为了让模型充分收敛,可能需要更多的迭代- 见 Fig3(b)
  2. 添加mixup后可能需要调小wd,因为mixup本身起了正则化作用 - 见 AblationStudy
  3. alpha的大小选取无法给出定论,是一种 bias-variance trade-off,实验时需要进行多种尝试,增加模型的capacity,alpha大小对其性能的影响会越来越小。
  4. 只适用于one hot 标签。
  5. 只应用于classification,不适用于regression。

算法

算法设计

  1. 首先要了解Dirac函数的基本公式

    在A为一个实数是为”Identifier“
  2. 其次了解ERM在做什么:最小化数据分布P上的平均loss,可以用loss在所有数据上的积分表示:

    但是由于P一般是一个离散分布
    因此P(x,y)的数据分布可以表示为:

    因此,套用Dirac函数表示目标函数:
  3. VRM和ERM的区别:用生成样本代替原始样本,其余不变。

  4. Mixup:VRM的一种
    分布P:

    其中 λ∼Beta(α,α),α∈(0,∞);
    以batch为单位,进行该batch上的随机排序后和原样本进行interpolation,training阶段不保留原样本,全部使用混合样本&标签(n个),test阶段使用原样本与标签。
    Loss除了样本标签变为in-between data, 其余不变。
    Acc计算方式为 (lam * predicted.eq(targets_a) + (1 - lam) * predicted.eq(targets_b)), predicted为预测结果。
    每个in-between data的生成方式:

理解

  1. 为什么lambda使用了beta分布 (online drawer: eurekastatistics.com/beta-distribution-pdf-grapher/)
    1. 在minibatch上实现mixup,每个mini batch内部使用相同lambda,每个mini batch之间使用不同的随机产生的lambda。
    2. 为什么不使用正态分布等函数:期望分布既可以在{0, 1}内取值概率大,也期望分布可以在0.5附近取值概率大(同正态分布),当两个参数(a,b)想等时关于x=0.5中心对称。
  2. alpha如何选取比较好:

    1. 模型的capacity增大,real data traning err对alpha大小的敏感性减小。

    2. alpha越大,training准确率越低,但模型的泛化能力更强。

    3. 实验中的alpha:

    1. alpha [0.1, 0.4]提升ERM性能; 更大的alpha会使之欠拟合; alpha趋近于正无穷时training err很高 1; alpha趋近于正无穷时training err可以很低 0.1; 0.2

实验

ImageNet-2012

数据

ImageNet 1.3 million 50k 224*224 1000


实验结果

实验结论

  1. mixup epoch越多效果越好,ERM在增加epoch时性能不变化
  2. mixup在大型网络上效果要更好(resnet-101降低的err超过resnet-50) --- 存疑,resnet-50在增加了epoch后err下降更多 -- why?
    1. 问题:
      1. 为什么小的网络要benefit less(相同epoch下)
        答:大的网络记忆能力更强。因此边界更加明显,加入mixup后边缘模糊化相对更加显著;小的网络本身边缘已经比较模糊,添加mixup后边际效益不大。
      2. 为什么小的网络经过更多的epoch可以benefit more than大型网络 ?

Cifar10 & Cifar100

数据

Cifar 10 50,000 10,000 32*32 10
Cifar 100 50,000 10,000 32*32 100


实验结果

实验结论

  1. fig3(b)验证了“mixup epoch 越多效果越好,ERM 在增加 epoch 时性能不变化“的结论。

  2. 所有实验中 mixup 性能都明显更好。
  3. Fig3(b) 中 ERM 和 mixup 的 converge speed 相同?????末端似乎不相同。。?收敛速度怎么定义?

Speech - Google command

数据

Speech 65,000 160*101 (经过图谱提取和zero-padding) 30


实验结果

实验分析

  1. 在vgg11上有提升,LeNet上无提升且有欠拟合倾向 -- 验证了“mixup对大型网络(larger capacity)帮助更大”的结论。
    (ps1:capacity一般用参数量/VC复杂度表示)
    (ps2:VC复杂度:VC维用来描述假设空间的表达能力 -- 假设空间的容量越大,VC维越大,那么模型就越难学习。)
  2. 在vgg11上alpha=0.2性能>alpha=0.1;在LeNet上alpha=0.2性能<alpha=0.1,原模型已经欠拟合。
  3. 在vgg11上的前5个epoch使用了ERM -- ERM有助于initial convergence。

降低模型对Corrupted Label的记忆能力

实验结果

上表中train两列为取自最后一个epoch

实验结论

  1. ERM在0.1以后的lr下开始过拟合(train test相差0.7,0.8)。
  2. Dropout可以有效减轻过拟合。
  3. mixup可以比dropout在test性能上更好(both在最好的模型上和最好的模型的最后一个epoch上,alpha在比价大的数值下 -- 8 or 32)。
  4. mixup在train上表现更好:在真实标签上表现比dropout好;在corrupted标签下跟dropout同样resistant。
  5. mixup+dropout性能最好,说明二者兼容,可一起使用(在50%和80%上性能最好)。

增强对对抗样本的鲁棒性

动机

  1. ERM对于对抗样本十分脆弱。
  2. 相关工作:
    1. 对Jacobian norm增加panalty(如weight decay等)。
    2. 数据增强:训练数据增加对抗样本
    3. 生成对抗样本的方法 --  ascending the gradient of the loss surface with respect to the legitimate example。
    问题:有很大的computational overhead
  3. mixup可以在不牺牲速度的前提下提升对对抗样本的鲁棒性(如fig2b,mixup可以让模型的gradient norm更小)。

    注:Fig2 的 testset 均为 in-between training data,训练数据不同。

黑盒攻击 & 白盒攻击

  1. 攻击者并不知道机器学习所使用的算法和参数,但攻击者仍能与机器学习的系统有所交互,比如可以通过传入任意输入观察输出,判断输出。

  2. 攻击者能够获知机器学习所使用的算法,以及算法所使用的参数。攻击者在产生对抗性攻击数据的过程中能够与机器学习的系统有所交互。

  3. Ref:http://www.4hou.com/info/news/8087.html
  4. 文中白盒攻击的对抗样本在自身模型训练时产生并在自身模型上测试;
    黑盒对抗样本在model1(ERM)上产生,在model2(ERM)和model3(mixup)上进行测试。

实验结果

实验结论

  1. 相比于ERM,对于黑白盒攻击,mixup都有更好的鲁棒性;没有计算的额外开销。
  2. 对于白盒攻击的I-FGSM攻击方法不具有鲁棒性。


结构化数据实验

实验结果

UCI数据,6个class性能均更好,网络由全连接层组成。

稳定GANs训练

GANs 生成对抗网络

  1. Ref:https://blog.csdn.net/cookie_234/article/details/70500301 (含优缺点解释)。
  2. GANs目的:生成和真实数据相似的(肉眼无法识别)的假数据(对抗样本)。
  3. GAN由生成模型(G)和决策模型(D)组成,结构如下:
    下方为生成模型、上方为决策模型。
  4. GAN模型没有损失函数,优化过程是一个“二元极小极大博弈(minimax two-player game)”问题: 二元极小极大博弈
    (前面的min max含义:对于D,希望得到最大值,对于G,希望得到最小值?G只有后半部分作为输入和x无关)

    目的:最大化D的区分度,最小化G和real数据集的数据分布。
  5. 上面的公式的具体解释:ref https://blog.csdn.net/sxf1061926959/article/details/54630462
    判别模型的loss:

    z符合随机向量分布,G(z)是生成模型的输出。
    x符合真实数据分布,D(x)是判别模型对齐判断结果,x是D的输入。
    目的:希望判别模型有很强的判别能力,对于G(z)可以判别为0,对于x可以判别为1。
    生成模型的loss:

    目的:希望生成模型的输出更加符合真实数据,即希望D(G(z))趋向于1。
  6. 对两个模型分别计算loss,分别进行梯度下降。
  7. GANs算法流程
  8. GANs缺点:训练十分困难,因为D经常提供给G”消失的梯度“以至于生成模型会永远生成相同的z。

算法设计

  1. 原始优化问题:
  2. mixup优化问题:

    改进的思路:对于D,其输入变成了mixup输入,原本的D和fig1b一样的二分类问题,mixup对其进行了平滑。对于G,因为和x无关(x是D的输入),因此G的loss并没有改变。
  3. 原理:对于判别模型的梯度有正则化功效、模糊边界(like fig1b),因此让G的梯度的信息源更加稳定。(因果关系?)

实验结果

黄色点为生成样本,蓝色点为真实样本。

实验结论

  1. mixup可以稳定GANs训练。
  2. mixup GANs对于不同的网络结构和超参数的选择都更加robust(如上图第一行第二行)。

Ablation Study

实验目的

了解不同的mixup方法对性能的影响、和不同的regularize方式对比。

实验结果

实验结论

总体结论

  1. paper中给出的mixup方式效果最好(AC+RP),所有的添加项/对比项性能都更差。
  2. 额外结论:mixup有正则化功能,可以通过在不同wd上的test err的对比得出:
    1. ERM在大的wd上效果更好,mixup在小的wd上效果更好。
    2. mixup + feature map mixup中,layer越高,在更大的wd上表现效果更好 -- 可见layer越高,正则化程度越小。
  3. 分项结论:

  1. 1 只在SC中使用mixup 有效 不如AC
    2 只在相邻sample中进行mixup 有效 不如RP
    3 只在input中使用smooth 有效 不如label + targt mixup
    4 label smoothing 有效 不如mixup
    5 mixup + label smoothing 有效 性能好于 label smoothing, 不如 mixup
    6 Gaussian noise 无效  
    7 在不同feature map上进行mixup + label mixup  有效 不如mixup,在layer1使用效果最好

感想

  1. 比较简单的思路也可以通过实验的充分性和论文的表述能力证明其巨大意义 - 决定了这只是小trick还是creative idea。



猜你喜欢

转载自blog.csdn.net/weixin_42148236/article/details/80708381