1.摘要
大型深度神经网络是非常强大的,但在记忆和针对对抗样本的敏感性上却表现地不太理想。在这项研究中,我们提出了mixup,它是一个用以解决这些问题的简单学习原则。实质上,mixup是在样本对和其标签的凸组合(convex combinations)上训练神经网络的。通过这样做,mixup将神经网络正规化以支持训练样本之间的简单线性行为。我们分别在ImageNet-2012、CIFAR-10、CIFAR-100、Google命令和UCI数据集上进行试验,研究结果表明,mixup可以改进当前最先进的神经网络架构的泛化能力。我们还发现,mixup能够减少对错误标签的记忆,增加对抗样本的健壮性,并能够稳定对生成对抗网络的训练过程。
2.引入
大型深度神经网络在计算机视觉(Krizhevsky 等人于2012年提出)、语音识别(Hinton 等人于2012年提出)和强化学习(Silver等人于2016年提出)等领域均实现了突破性发展。在大多数的成功应用中,这些神经网络有两个共同点:首先,它们进行训练以将其训练数据的平均误差最小化,这种学习规则也被称为经验风险最小化(Empirical Risk Minimization,ERM)原则(Vapnik于1998年提出);其次,这些当前最先进的神经网络的大小与训练样本的数量呈线性关系。例如,Springenberg等人(于2015年提出)的网络使用106个参数来对CIFAR-10数据集中的5×104个图像进行建模,Simonyan和Zisserman(于2015年提出)的网络使用108个参数来对ImageNet-2012数据集中的106个图像进行建模,Chelba等人(于2013年提出)的网络使用2×10^10个参数对十亿单词(One Billion Word)数据集中的10^9个单词进行建模。
引人注目的是,学习理论(Vapnik和Chervonenkis于1971年提出)的经典结果告诉我们,只要学习机器(如神经网络)的大小不随着训练数据数量的增加而增加,那么ERM的收敛性就是可以得到保证的。其中,学习机器的大小是根据其参数数量,或相关地,根据其VC复杂度(Harvey等人于2017年提出)来衡量的
这一矛盾挑战了ERM训练当前神经网络模型的适应性,正如在最近的研究中所强调的那样。一方面,ERM允许大型神经网络记忆(而不是从中泛化)训练数据,即使是在强正则化,或是标签是随机分配的分类问题(Zhang等人于2017年提出)中。另一方面,在对训练分布之外的样本(也被称之为对抗样本)进行评估时,用ERM训练的神经网络会彻底地改变其预测结果(Szegedy等人于2014年提出)。这一证据表明,当测试分布与训练数据略有不同时,ERM便无法对其进行解释或为其提供泛化。那么,ERM的替代方案是什么呢?
选择在类似但不相同的样本上进行训练以增加到训练数据中的方法称为数据增强(data augmentation)(Simard等人于1998年提出),而后由邻域风险最小化原则(Vicinal Risk Minimization,VRM)形式化(Chapelle等人于2000年提出)。在VRM中,需要用人类知识来描述训练数据中每个样本周围的邻域区域。然后,可以从训练样本的附近分布中提取附加的虚拟样本,以扩大训练分布的支持。例如,当进行图像分类时,通常将一个图像的邻域定义为其水平反射、轻微旋转和轻微缩放的集合。虽然一直以来,数据增强都会促使改进泛化能力(Simard等人于1998年提出),但是该过程是依赖于数据集的,因此需要使用专家知识。除此之外,数据扩充假设邻域中的样本共享相同的类,并且不对不同类的样本之间的邻域关系进行建模。
贡献:受到这些问题的启发,我们引入了一个简单的、并且和数据无关的数据扩充例程,称为mixup。简而言之,mixup能够构建虚拟的训练样本:
其中(xi,yi)和(xj,yj)是从我们的训练数据中随机抽取的两个样本,且λ∈[0,1]。因此,mixup通过结合先验知识,即特征向量的线性插值应该导致相关目标的线性插值,来扩展训练分布。Mixup在很少的几行代码中就可以得以实施,并且引入了最少的计算开销。
尽管它很简单,但mixup在CIFAR-10、CIFAR-100和ImageNet-2012图像分类数据集中实现了当前最先进的性能。此外,当从错误数据中进行学习,或面对对抗样本时,mixup能够增强神经网络的健壮性。最后,mixup能够改善在语音和表格数据中的泛化能力,并可用于稳定GAN的训练过程。相关实验的源代码资源链接:https://coming.soon/mixup。
我们通过探讨与之前工作的联系来结束本文,并且提出一些观点以供讨论。
3.从经验风险最小到mixup
在监督学习当中,我们感兴趣的是找到一个函数f来描述随便一个特征向量X和目标向量Y之间的关系,这种关系遵循联合分布P(X,Y)。为此,我们定义了一个损失函数L用来惩罚预测值f(x)和实际目标值y之间的区别。然后呢,我们最小化在这个数据分布P上的平均损失,这也就是我们熟知的期望风险: image.png不幸的是,这个分布P在绝大多数情况下都是未知的。不过呢,我们通常很容易获取一个训练数据集 image.png 在这里对于i=1,2,...,n来说, image.png 。使用这个训练集,我们能通过经验分布获取到近似的P image.png 在这里, image.png 是以(xi,yi)为中心的迪拉克测度。使用经验分布 image.png ,我们能够获得经验风险的近似期望风险: image.png 通过最小化上面式子而学习到的函数f就是广为人知的经验风险最小化理论,Empirical Risk Minimization (ERP)(Vapnik,1998)。虽然计算效率很高,但是经验损失只监控了有限的n个样本上函数f的表现。当考虑一个具有与n相当数量参数的函数时(比如大型神经网络),一个最简单的方法就是直接记住这个训练数据。不过,这种记忆反过来使得f在训练集之外的数据上表现不够令人满意。
然而,朴素估计 image.png 是用来近似真实分布的很多方法的其中一种。比如,在邻域风险最小化(Vicinal Risk Minimization,VRM)原则中,分布P就是用下式来定义 image.png 这里,v是一个邻域分布,用来表示在训练特征-目标对(xi,yi)邻域上寻找到虚构特征-目标对 image.png 的概率。特别地,Chapelle等人考虑高斯邻域 image.png ,这等价于通过添加高斯噪声来增强数据。在使用VRM学习时,我们在邻域分布上采样来构造一个数据集 image.png ,并且最小化经验邻域风险: image.png 本篇论文的贡献在于提出了一种通用的邻域分布,mixup: image.png 在这里, image.png 总而言之,从mixup邻域分布采样,产生虚拟特征-目标向量 image.png 这里,(xi,yi)和(xj,yj)是从训练数据中随机抽样的2个特征-目标向量,λ属于[0,1]。mixup的超参数α控制着特征-目标对之间插值的强度,当α趋于0的时候mixup模型回归会回归到ERM。
mixup的实现简单直接,下图展示了用PyTorch训练时实现mixup的几行必要的代码。
mixup究竟做了什么?mixup邻域分布可以被理解为一种数据增强方式,它令模型在处理样本和样本之间的区域时表现为线性。我们认为,这种线性建模减少了在预测训练样本以外的数据时的不适应性。从奥卡姆剃刀的原理出发,线性是一个很好的归纳偏见,因为它是最简单的可能的几种行为之一。图1显示了mixup导致决策边界从一个类到另一个类线性的转变,提供了一个更平滑的不确定性估计。图2显示了在CIFAR-10数据集上用mixup和ERM两个方法训练的两个神经网络模型的平均表现。两个模型有相同的结构,使用相同的训练过程,在同一个从训练数据里随机抽样而来的样本上来评估。用mixup训练的模型在预测训练数据之间的数据时更稳定。 image.png image.png