这篇论文MIT和FAIR的工作,主要是提出了一种mixup的方式。(感觉是一种产生hard sample的方法,是一种新的、更有效的数据增强。)

1 Introduction

大网络需要大数据,目前CV领域的任务逐渐采用大模型来解决。这些大模型有两个共同特点:①经验风险最小化(ERM),在训练集上需要训练出比较好的性能,也就是拟合训练数据;②模型规模与数据集规模线性增长,才有可能训出比较好的模型,作者举了几个任务中的模型与数据集来说明这个问题。

可是矛盾的是,众所周知:当模型规模不随着训练数据增加而增加时,ERM才会得到保证。(此处不太明白是啥意思...)

这一矛盾挑战了ERM在神经网络训练中的适用性。一方面ERM会让网络记住训练数据(而不是泛化),即便做了很强的正则化;另一方面,当测试样本取自于训练数据分布之外时,网络的推测会发生剧变(比如对抗样本)。这些都说明了ERM是不利于泛化的。

以上,作者对ERM作了一番批判,主要还是强调overfitting的问题。

接着作者引入了data augmentation,从VRM理论角度描述了一下data augmentation是个啥,也就是使训练数据的特征空间{X}的点更丰富,在原始样本附近,按某一分布产生新样本点。随后又告诉大家,目前的data augmentation有两个毛病:①生成的相似样本是属于同一类的(文中描述为data augmentation assumes that the examples in the vicinity share the same class);②不同类的样本之间的关系没有被建模。(我觉得,大概就是为了后面说mixup做铺垫,目前的data augmentation产生的样本是增强了各个类的样本数量,而没有强化不同类之间的样本区别。)

通过以上论述可知,最初的ERM是没有数据增强的,对训练样本完全信赖,并且尽可能拟合之,这就是ERM principle,可是会带来过拟合,显而易见。VRM是产生近邻virtual sample,也就是做了data augmentation,由此一定程度缓解了过拟合,但是也只是一定程度上,因为仍然是ERM原则,因此还是会有过拟合。同时还存在一些其他问题:生成的virtual sample是通过某一个training sample产生的,并且和该training sample共享同一标签,也就是没有不同类、不同training sample之间的互动。由此引出了一种更好的data augmentation方法,也就是通过mixup的方式来产生virtual sample。

2 From Empirical Risk Minimization to mixup

首先从数据分布角度给出期望风险的形式化定义:feature vector X和target vector Y满足联合分布P(X, Y),那么期望风险就是所有(X, Y)的Loss function对P(X, Y)的积分。

不幸的是,期望风险是可望而不可即的,只能用经验风险代替。由于各种场景的测试数据的联合分布P是不可知的,只能使用训练数据的分布代替,称为经验分布,使用以各个样本点为中心的Dirac function的平均来计算。那么经验风险所有样本的Loss对经验分布的积分,也即所有样本的Loss直接求平均。对经验风险进行优化,就是ERM(Empirical Risk Minimization)。

由此引出了ERM,为了实现ERM,就要对每一个样本降Loss,因此模型会尽力拟合尽可能多的样本,作者称之为“Memorize”,这和“Generalize”相对。由此导致了训练出来的X与Y之间的映射f在training data之外的表现不好。

为了缓解在原始训练集上ERM带来的过拟合问题,出现了data augmentation,对此的理论解释是VRM。神经网络的本质是特征提取+分类,训练过程是在做两件事:①调节extractor的参数用来提取对分类最有效的特征,②调节classifier的参数用来实现特征空间到target空间的最佳映射。过拟合问题就是:网络对于见过的数据,能够有很大把握分类正确,可是没见过的数据很有可能分类错误,也就是——feature空间到target空间的映射还有Achilles‘ heel。通过data augmentation,可以减少一部分盲区。而VRM就是描述feature空间中样本点附件的空间应该如何划分的问题,VRM通过按照某一分布在真实样本点附近构造virtual sample。

鉴于ERM的过拟合严重,VRM还不够general,作者提出了一种数据增强的方式——mixup。其形式非常显然,唯一的包装是vicinal distribution的描述,但是其本质还是很清楚简单的,这就是作者说的Occam's razor。

在实现上,作者提供了一些深入思考:

  • 更多数量的样本进行mixup不会带来更多收益。
  • 作者的实验是在同一个minibatch中进行mixup,但是注意需要shuffle。
  • 同类样本的mixup不会带来收益。

接着在What is mixup doing?部分,作者mixup会让模型behave linearly in-between training examples,这种线性的组合方式会抑制模型做预测时的波动,

λ~B(α,α),作者实验发现,α∈[0.1, 0.4]会使得模型性能相比较ERM提升,过大的α会导致欠拟合。由于mixup后样本数量会增加,因此训练时间要放长,才能使模型得到收敛,性能稳定提升。

作者给出了一副很形象的示意图,ERM会在各个类之间形成明确的决策边界,而mixup在样本点附近是渐变的,是一种线性过渡。

神经网络训练的最终目标是:网络对任何输入数据都能给出正确的预测。这意味着,对于任意的未知数据,网络都要保持鲁棒。如果能够达到这个目的,即使网络在训练集上表现不好也没关系。但是,往往,一个好的模型,在任意输入上表现都好,因此对于训练数据的表现也应该好。训练过程中肯定存在这种问题:网络对训练数据表现越来越好,但训练过程中我们不知道网络有没有出现过拟合。因此,需要一些技术,来预防模型在训练集上出现过拟合,比如regularization、dropout、data augmentation等,mixup的提出也是为了防止过拟合。

Previews:

Joint distribution (https://blog.csdn.net/tiankong_/article/details/78332666),

Dirac function (https://zh.wikipedia.org/zh-cn/%E7%8B%84%E6%8B%89%E5%85%8B%CE%B4%E5%87%BD%E6%95%B0),

Beta distribution (https://www.zhihu.com/question/30269898)

mixup: Beyond Empirical Risk Minimization的更多相关文章

  1. 小样本利器4. 正则化+数据增强 Mixup Family代码实现

    前三章我们陆续介绍了半监督和对抗训练的方案来提高模型在样本外的泛化能力,这一章我们介绍一种嵌入模型的数据增强方案.之前没太重视这种方案,实在是方法过于朴实...不过在最近用的几个数据集上mixup的表 ...

  2. AI大有可为:NAIE平台助力垃圾分类

    摘要:生活垃圾的分类和处理是目前整个社会都在关注的热点,如何对生活垃圾进行简洁高效的分类与检测对垃圾的运输处理至关重要.AI技术在垃圾分类中的应用成为了关注焦点. 如今AI已经是这个时代智能的代名词了 ...

  3. Octave Convolution卷积

    Octave Convolution卷积 MXNet implementation 实现for: Drop an Octave: Reducing Spatial Redundancy in Conv ...

  4. deeplearning模型库

    deeplearning模型库 1. 图像分类 数据集:ImageNet1000类 1.1  量化 分类模型Lite时延(ms) 设备 模型类型 压缩策略 armv7 Thread 1 armv7 T ...

  5. YOLOV4知识点分析(二)

    YOLOV4知识点分析(二) 6. 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org ...

  6. YOLOV4各个创新功能模块技术分析(二)

    YOLOV4各个创新功能模块技术分析(二) 四.数据增强相关-GridMask Data Augmentation 论文名称:GridMask Data Augmentation 论文地址:https ...

  7. 论文解读(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》

    论文信息 论文标题:Data Augmentation for Deep Graph Learning: A Survey论文作者:Kaize Ding, Zhe Xu, Hanghang Tong, ...

  8. Andrew Ng机器学习公开课笔记 -- 学习理论

    网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/va ...

  9. SVM(支持向量机)与统计机器学习 & 也说一下KNN算法

    因为SVM和统计机器学习内容很多,所以从 http://www.cnblogs.com/charlesblc/p/6188562.html 这篇文章里面分出来,单独写. 为什么说SVM和统计学关系很大 ...

随机推荐

  1. CodeForces 606A(水)

    这道题之前没注意到at least,审题不仔细啊,两个问题解法还是有些许区别的 有at least的 #include <iostream> #include <string> ...

  2. HDU 2199 (二分法)

    主要思想就是两端逼近,最后得到结果,0MS #include <iostream> #include <cstdlib> #include <cstdio> #in ...

  3. rocketmq 控制台 trackType NOT_CONSUME_YET

    1. 问题描述 rocketmq消费者偶有没有收到消息,查看后台, 显示NOT_CONSUME_YET 2. 分析 mq控制台 显示有该条消息数据 只是状态为未消费 那么问题应该出在 消费者一方 诶? ...

  4. NOI 2016 区间 解题报告

    题目描述 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn].现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置.换句话说,就是使得存在一个 x,使得对于每一 ...

  5. C# 读取config

    控制台应用程序 App.config: AppSettings.config: Program.cs: string a = ConfigurationManager.AppSettings[&quo ...

  6. MySQL基础操作&&常用的SQL技巧&&SQL语句优化

    基础操作     一:MySQL基础操作         1:MySQL表复制             复制表结构 + 复制表数据             create table t3 like t ...

  7. Linux下vim(文本编译器)的使用

    vim (文本编译器): Vim是从 vi 发展出来的一个文本编辑器. vim的一些命令操作: 插入命令: a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行 ...

  8. 辅助判卷程序的一些小bug

    首先谈一下,double类型 之前查过一些资料,double类型做==(相等)判断时候,会出现一些错误,及61.95与61.95不相等 对main函数中的部分加以改正,下面的answer为string ...

  9. linux系统PKWindows系统,从各方便分析linux和Windows的优劣

    服务器系统linux系统和linux系统哪个好用,公说公有理婆说婆有理,今天鼎峰凡凡大概对Linux系统与Windows系统的优缺点PK!可以从以下几个方面来看 ①成本  赞成Linux的声音Linu ...

  10. leetcode Ch6-Data Structure

    1. Sliding Window Maximum class Solution { public: vector<int> maxSlidingWindow(vector<int& ...