C/C++教程

mixup: BEYOND EMPIRICAL RISK MINIMIZATION概述

本文主要是介绍mixup: BEYOND EMPIRICAL RISK MINIMIZATION概述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  参考简书

1.针对的问题

  大型的深度神经网络存在一些不好的行为,比如记忆性和对抗样本敏感问题。当前的神经网络大多都是基于经验风险最小化(ERM原理)这个基本思想进行学习或训练的,这个思想通过最小化在训练数据的平均误差以拟合真实的数据分布进行学习,当样本容量足够大时,经验风险最小化能保证有很好的学习效果,但是当样本容量很小,函数参数量不断增大时,ERM的训练趋向于记忆训练数据,导致泛化能力不足和难以抵御分布外的对抗样本的问题。(ERM中通过训练集来估计数据分布,但是当样本量不足或参数量太多时,则对真实数据分布的拟合效果很差)

  解决ERM问题的一个途径就是使用邻域风险最小化原则(Vicinal Risk Minimization,VRM),即通过先验知识构造训练样本在训练集分布上的邻域值。通常做法就是传统的数据扩充,如翻转,旋转,放缩等,但是这种做法过于依赖特定数据集,需要人类的专门先验知识,并且数据增强假定邻域内样本都是同一类,没有对不同类不同样本之间邻域关系进行建模。(VRM中通过邻域分布来估计数据分布,由于邻域是生成的,所以数据量可以变为“无限”)

2.主要贡献

  提出一种新的数据扩展方式,即使用线性插值的方法得到新的扩展数据。 

3.方法

  前面提到,以传统的数据增强方法得到的邻域存在问题,所以作者提出了一种通用的邻域分布,mixup。

  本质上,mixup在成对样本及其标签的凸组合(convex combinations)上训练神经网络。具体来说,假设(x_{i},y_{i}),(x_{j},y_{j})是两个随机抽取的样本,构建的样本为\tilde{x} =\lambda x_{i}+(1-\lambda ) x_{j}\tilde{y} =\lambda y_{i}+(1-\lambda ) y_{j}\lambda =1,其中x_{i},x_{j}代表原始输入向量,y_{i},y_{j}代表one-hot标签编码。

  实验证明在狄利克雷分布(多变量普遍化的\beta 分布)上对三个或者四个特征进行凸组合并不能带来更多的提升,反而会增加计算负担。所以论文中λ满足\beta 分布(伯努利分布乘上[0,1]之间的均匀分布得到),目前mixup的实现使用一个单独的data loader来得到一个minibatch,mixup在随机shuffle之后应用于同一个minibatch。此外,仅在具有相同标签的输入之间进行插值不会得到性能提升。

  mixup可以理解为一种激励模型在训练数据之间表现出线性的数据扩充方法,作者认为,这种线性行为可以在训练集之外进行预测时增加鲁棒性,减少错误预测的数量。此外,从奥卡姆剃刀(如无必要,勿增实体,即简单有效原理)的角度来看,线性是一种很好的归纳偏差,因为它是最简单的行为之一。




 

这篇关于mixup: BEYOND EMPIRICAL RISK MINIMIZATION概述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!