mixup: Beyond Empirical Risk Minimization
这篇论文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的更多相关文章
- 小样本利器4. 正则化+数据增强 Mixup Family代码实现
前三章我们陆续介绍了半监督和对抗训练的方案来提高模型在样本外的泛化能力,这一章我们介绍一种嵌入模型的数据增强方案.之前没太重视这种方案,实在是方法过于朴实...不过在最近用的几个数据集上mixup的表 ...
- AI大有可为:NAIE平台助力垃圾分类
摘要:生活垃圾的分类和处理是目前整个社会都在关注的热点,如何对生活垃圾进行简洁高效的分类与检测对垃圾的运输处理至关重要.AI技术在垃圾分类中的应用成为了关注焦点. 如今AI已经是这个时代智能的代名词了 ...
- Octave Convolution卷积
Octave Convolution卷积 MXNet implementation 实现for: Drop an Octave: Reducing Spatial Redundancy in Conv ...
- deeplearning模型库
deeplearning模型库 1. 图像分类 数据集:ImageNet1000类 1.1 量化 分类模型Lite时延(ms) 设备 模型类型 压缩策略 armv7 Thread 1 armv7 T ...
- YOLOV4知识点分析(二)
YOLOV4知识点分析(二) 6. 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org ...
- YOLOV4各个创新功能模块技术分析(二)
YOLOV4各个创新功能模块技术分析(二) 四.数据增强相关-GridMask Data Augmentation 论文名称:GridMask Data Augmentation 论文地址:https ...
- 论文解读(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》
论文信息 论文标题:Data Augmentation for Deep Graph Learning: A Survey论文作者:Kaize Ding, Zhe Xu, Hanghang Tong, ...
- Andrew Ng机器学习公开课笔记 -- 学习理论
网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法 Bias/va ...
- SVM(支持向量机)与统计机器学习 & 也说一下KNN算法
因为SVM和统计机器学习内容很多,所以从 http://www.cnblogs.com/charlesblc/p/6188562.html 这篇文章里面分出来,单独写. 为什么说SVM和统计学关系很大 ...
随机推荐
- ubuntu关机重启命令
重启命令 : 1.reboot 2.shutdown -r now 立刻重启 3.shutdown -r 10 过10分钟自动重启 4.shutdown -r 20:35 ...
- Android Studio下载/更新SDK
今天安装配置Android Studio的时候,用SDK Manager下载SDK的时候只显示了一个7.0,别的都刷新不出来(被墙了).去网上搜索怎么解决,发现很多帖子的方法已经过时了(跟现在的AS版 ...
- 由上一个血案引发的关于property和attribute关系的思考
boss说,学习要刨根问底. 好的,开刨. 一.property和attribute在英语里有什么区别 看似没有区别.但其实大神说: property是 物体本身自带属性,不能改变的(一旦改了就是另外 ...
- 【MySQL数据库】一些bug的解决
往往碰到mysql配置好后,第二天就登不上,也运行不了服务. 在cmd中输入 net start mysql 报mysql无法启动系统错误1067等 解决方案: 以前搞到最后没办法,重装了,后来找到 ...
- 新手,再来1个 vue2入门的教程,有源码参考
在这之前有入门的,作者写的不错的, 照着来一下,也收益颇多,上个例子是基于 "dependencies": { "vue": "^2.2.6&qu ...
- Android Editable
在android的sdk中有讲,“This is the interface for text whose content and markup can be changed (as opposed ...
- xshell连接虚拟机Connection failed
一.问题描述:xshell连接不了虚拟机,出现错误提示:Could not connect to '192.168.1.100' (port 22): Connection failed. 二.查找错 ...
- XML与web开发-01- 在页面显示和 XML DOM 解析
前言: 关于 xml 特点和基础知识,可以菜鸟教程进行学习:http://www.runoob.com/xml/xml-tutorial.html 本系列笔记,主要介绍 xml 在 web 开发时需要 ...
- 微信小程序-02-项目文件之间配合和调用关系
微信小程序-02-项目文件之间配合和调用关系 我就不说那么多了,我是从官方文档拷贝的,然后加上一些自己的笔记,不喜勿喷 官方文档:https://developers.weixin.qq.com/mi ...
- Rxjava学习(一基础篇)
一.Rxjava跟EventBus的区别 RxJava 是一个响应式编程框架,通过一种扩展的观察者设计模式来实现异步操作. 跟AsyncTask和Handler类似,但是比AsyncTask和Hand ...