文章:https://arxiv.org/pdf/1710.09412.pdf
代码:github
作者:张宏毅
如今大规模深度神经网络具有强大的性能,不过,其损耗巨大的内存以及对对抗样本的敏感性一直不尽如人意。作者提出的mixup是一个简单地减缓两种问题的方案。
本质上,mixup在成对样本及其标签的凸组合上训练神经网络。这样做,mixup规范神经网络增强了训练样本之间的线性表达。
作者指出,mixup方法在ImageNet-2012, CIFAR-10等数据集上的优秀网络上实现,都提高了其表现性能。作者认为,mixup减少了错误标签的开销,增强了对抗样本的鲁棒性,稳定了生成对抗网络的训练。
大规模深度神经网络近年来取得了重大的突破,他们具有两点共性:
冲突的地方在于,经典机器学习理论告诉我们,只要学习机(如神经网络)的规模不随着训练数据数量的增加而增加,那么ERM的收敛性就是可以得到保证的。其中,学习机的规模由参数数量,或其VC复杂度来衡量。
这一矛盾挑战了ERM方法在当前神经网络训练中的适应性。
这一证据表明,在测试分布与训练数据略有不同时,ERM 方法已不具有良好的解释和泛化性能。
因而,数据增强方法(Simard et al., 1998),在简单但不同的样本中去训练数据以及 Vicinal Risk Minimization( VRM)领域风险最小化原则被提出。在VRM中,需要专业知识描述训练数据中每个样本的邻域,从而可以从训练样本邻域中提取附加的虚拟样本以扩充对训练分布的支持。数据增强可以提高泛化能力,但这一过程依赖于数据集,而且需要专家知识。其次,数据增强假定领域内样本都是同一类,且没有对不同类不同样本之间领域关系进行建模。
受这些问题启发,作者提出了一种简单且数据无关的数据增强方式,被称作 mixup 。简而言之,mixup 构建了虚拟的训练样本。
论文的贡献在于提出了一个一般性的领域分布,称作 mixup:
mixup 领域分布可以看作一种形式的数据增强方式增强了模型 f 在训练样本之间的线性表现。作者断定线性表现消减了在训练样本之外预测的不良振荡。由于线性是一种最简单的可能性表示,从奥卡姆剃刀的观点来看线性是一种良好的归偏置。
实验过程不详述,具体请看论文。仅贴出重要的图表:
在作者的实验中,有以下一贯的趋势:随着 α 的增加,在真实数据中的训练错误增加,同时泛化差距减小。这证明了作者的一个假设,mixup可以隐式地控制模型的复杂度。然而,作者并没有找到一个很好的方法在偏差-方差的平衡中找到最佳位置。举例来说,在CIFAR-10训练中,即使当 α→∞ 时,在真实数据上的训练误差会非常低。然而在ImageNet 分类任务中,真实数据的训练误差在 α→∞ 时会有明显上升。基于作者在ImageNet 和 Google
commands 上使用不同网络结构做的实验,发现增大网络容量,可以使训练误差对大的 α 值敏感性降低,这给mixup 带来更多的优势。
mixup 对更加深入研究还有一些可能性。
ps:我也写了一个简单的 MXNet 实现,欢迎star