论文原文:Zhang H, Cisse M, Dauphin Y N, et al. mixup: Beyond Empirical Risk Minimization[J]. 2017.
原文链接:https://arxiv.org/abs/1710.09412
---------------------------------------------------------------------------------------------------------------------------------------
大型深度神经网络是非常强大的,但在记忆和针对对抗样本的敏感性上却表现地不太理想。在这项研究中,我们提出了mixup,它是一个用以解决这些问题的简单学习原则。实质上,mixup是在样本对和其标签的凸组合(convex combinations)上训练神经网络的。通过这样做,mixup将神经网络正规化以支持训练样本之间的简单线性行为。我们分别在ImageNet-2012、CIFAR-10、CIFAR-100、Google命令和UCI数据集上进行试验,研究结果表明,mixup可以改进当前最先进的神经网络架构的泛化能力。我们还发现,mixup能够减少对错误标签的记忆,增加对抗样本的健壮性,并能够稳定对生成对抗网络的训练过程。
大型深度神经网络在计算机视觉(Krizhevsky 等人于2012年提出)、语音识别(Hinton 等人于2012年提出)和强化学习(Silver等人于2016年提出)等领域均实现了突破性发展。在大多数的成功应用中,这些神经网络有两个共同点:首先,它们进行训练以将其训练数据的平均误差最小化,这种学习规则也被称为经验风险最小化(Empirical Risk Minimization,ERM)原则(Vapnik于1998年提出);其次,这些当前最先进的神经网络的大小与训练样本的数量呈线性关系。例如,Springenberg等人(于2015年提出)的网络使用10^6个参数来对CIFAR-10数据集中的5×10^4个图像进行建模,Simonyan和Zisserman(于2015年提出)的网络使用10^8个参数来对ImageNet-2012数据集中的10^6个图像进行建模,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。
我们通过探讨与之前工作的联系来结束本文,并且提出一些观点以供讨论。
mixup的实现简单直接,下图展示了用PyTorch训练时实现mixup的几行必要的代码。
mixup究竟做了什么?mixup邻域分布可以被理解为一种数据增强方式,它令模型在处理样本和样本之间的区域时表现为线性。我们认为,这种线性建模减少了在预测训练样本以外的数据时的不适应性。从奥卡姆剃刀的原理出发,线性是一个很好的归纳偏见,因为它是最简单的可能的几种行为之一。图1显示了mixup导致决策边界从一个类到另一个类线性的转变,提供了一个更平滑的不确定性估计。图2显示了在CIFAR-10数据集上用mixup和ERM两个方法训练的两个神经网络模型的平均表现。两个模型有相同的结构,使用相同的训练过程,在同一个从训练数据里随机抽样而来的样本上来评估。用mixup训练的模型在预测训练数据之间的数据时更稳定。