博主整理了近几年混合样本数据增强(Mixed Sample Data Augmentation)相关论文和代码,并分享在github上,地址如下,

https://github.com/JasonZhang156/awesome-mixed-sample-data-augmentation

如果大家对混合样本数据增强算法有兴趣,可以star或者fork到自己的仓库。

博主会对内容持续更新!


一、相关理论

Mixup是MIT和FAIR在ICLR 2018上发表的文章中提到的一种数据增强算法。在介绍mixup之前,我们首先简单了解两个概念:经验风险最小化(Empirical risk minimization,ERM)和邻域风险最小化(Vicinal Risk Minimization,VRM)。

“经验风险最小化”是目前大多数网络优化都遵循的一个原则,即使用已知的经验数据(训练样本)训练得到的学习器的误差或风险,也叫作“经验误差”或“训练误差”。相对的,在新样本(未知样本)上的误差称为“泛化误差”,显然,我们希望学习器的“泛化误差”越小越好。然而,通常我们事先并不知道新样本是什么样的,实际能做的是努力使经验误差越小越好。但是,过分的减小经验误差,通常会在未知样本上产生很差的结果,也就是我们常说的“过拟合”。

关于“泛化性”,通常可以通过使用大规模训练数据来提高,但是实际上,获取有标签的大规模数据需要耗费巨大的人工成本,甚至有些情况下根本无法获取数据。解决这个问题的一个有效途径是“邻域风险最小化”,即通过先验知识构造训练样本的邻域值。一般的做法就是传统的数据增强方法,比如加噪、翻转、缩放等,但是这种做法很依赖于特定的数据集和人类的先验知识。

二、算法介绍

Mixup是一种一般性(不针对特定数据集)的邻域分布方式,可以表示为,

其中,λ ~Beta(α, α),α ∈ (0, ∞)。从上式可以看出,mixup以线性插值的方式来构建新的训练样本,

其中,(xi , yi ) 和 (xj , yj )是从原始训练数据中随机选取的两个样本,λ ∈ [0, 1]。α是mixup的超参数,控制两个样本插值的强度,当α → 0时,则退化到了ERM的情况。

上图展示了mixup和ERM的性能对比图,可以看出mixup方法能够产生更鲁棒的结果。

三、算法实现

下面给出mixup的python版本,

def get_batch(x, y, step, batch_size, alpha=0.2):"""get batch data:param x: training data:param y: one-hot label:param step: step:param batch_size: batch size:param alpha: hyper-parameter α, default as 0.2:return:"""candidates_data, candidates_label = x, yoffset = (step * batch_size) % (candidates_data.shape[0] - batch_size)# get batch datatrain_features_batch = candidates_data[offset:(offset + batch_size)]train_labels_batch = candidates_label[offset:(offset + batch_size)]# ERMif alpha == 0:return train_features_batch, train_labels_batch# mixupif alpha > 0:weight = np.random.beta(alpha, alpha, batch_size)x_weight = weight.reshape(batch_size, 1, 1, 1)y_weight = weight.reshape(batch_size, 1)index = np.random.permutation(batch_size)x1, x2 = train_features_batch, train_features_batch[index]x = x1 * x_weight + x2 * (1 - x_weight)y1, y2 = train_labels_batch, train_labels_batch[index]y = y1 * y_weight + y2 * (1 - y_weight)return x, y

四、总结

Mixup的实现方法非常简单,只需几行代码,却取得了非常惊人的效果。论文中的实验包括我自己在做一些分类任务时,使用mixup的性能都要优与常规的方法,是一项很有意义的工作。

【参考文献】

[1] mixup: Beyond Empirical Risk Minimization

[2] https://en.wikipedia.org/wiki/Empirical_risk_minimization

【深度学习】Mixup: Beyond Empirical Risk Minimization相关推荐

  1. mixup:beyond empirical risk minimization

    全网最全:盘点那些图像数据增广方式Mosiac,MixUp,CutMix等. - 知乎全网最全:盘点那些图像数据增广方式Mosiac,MixUp,CutMix等. 本文由林大佬原创,转载请注明出处,来 ...

  2. mixup: BEYOND EMPIRICAL RISK MINIMIZATION

    原文:https://arxiv.org/pdf/1710.09412.pdf 代码:https://github.com/hongyi-zhang/mixup 摘要:深度神经网络非常强大,但也有一些 ...

  3. [ICLR 2018] mixup: Beyond Empirical Risk Minimization

    Contents Mixup Experiments Image Classification Task Speech data Memorization of Corrupted Labels Ro ...

  4. mixup: BEYOND EMPIRICAL RISK MINIMIZATION 小笔记

    概述 文章指出一些成功的神经网络所有的两个共同点:首先是会拟合一个训练集,其次是模型规模随着数据集样本增多而增大.同时也指出一些问题:一是尽管在很强的正则化下,模型也可以记住训练数据,而不是根据泛化得 ...

  5. 【Mixup】《Mixup:Beyond Empirical Risk Minimization》

    ICLR-2018 文章目录 1 Background and Motivation 2 Related Work 3 Advantages / Contributions 4 Method 5 Ex ...

  6. ICLR2018_mixup: Beyond Empirical Risk Minimization

    作者 Hongyi Zhang 张宏毅 @ 张宏毅知乎      北大->MIT    论文所属FAIR Abstract 深度神经网络有些不好的行为:强记忆和对对抗样本敏感 Christian ...

  7. [论文评析]Cross-Domain Empirical Risk Minimization for Unbiased Long-Tailed Classification,AAAI,2022

    Cross-Domain Empirical Risk Minimization for Unbiased Long-Tailed Classification 文章信息 背景 动机 方法 因果分析 ...

  8. 机器学习理论 之 经验风险最小化(Empirical Risk Minimization)

    该理论探讨的是模型在training set上的error 与 generation error的关系. 训练模型时,需要多少个样本,达到什么精度,都是由理论依据的. 理论点: 偏差方差权衡(Bias ...

  9. 经验风险最小化(ERM, Empirical risk minimization)

    转自:http://sophic.blog.163.com/blog/static/35997947201362975230995/

最新文章

  1. 最新发布| Jira官宣中国区本地部署特殊政策,公布Data Center价格
  2. windows命令行下访问linux,Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...
  3. OpenGL Gouraud着色法的实例
  4. Zuul指定path+serviceid
  5. java中try 与catch的使用
  6. Linux下安装MyEclipse和Tomcat服务器详解,以及我安装过程中所出现的问题以及解决办法,并实现一个web小程序
  7. 人工智能芯片与传统芯片的区别
  8. 平昌一中高考2021成绩查询,2019年四川省平昌中学高考喜报
  9. extjs fieldset 和 radio
  10. 面向对象编程(六):数据封装
  11. Egret入门学习日记 --- 第十篇(书中 2.9~2.13节 内容)
  12. Javascript This 机制
  13. java aes输出长度_关于Java下的AES加密明文长度的问题
  14. acs880变频器选型手册_设备安装:变频器调试成功就差这一步了
  15. 行业解读 | 什么是人工智能语音技术?一篇文章让你读懂它
  16. linux r画图如何输出图片大小,R画图,设画布大小
  17. 架构设计分布式数据结构与算法面试题(2020最新版)
  18. Android10无法访问根目录文件解决
  19. Vmware VDI\桌面虚拟化\虚拟化技术\IT 管理
  20. 玩转高并发,17年开发经验架构师,历时三年编写Java高并发三部曲

热门文章

  1. 小狼毫自定义短语-Rime-双拼
  2. XXT-dpkg-脚本
  3. 智慧型物业管理系统功能解析
  4. 数值计算(一)之解线性方程组(高斯消去法,列选主元消去法,全选主元消去法,杜立特尔分解,克洛特分解,乔里斯基分解)
  5. 网店描述页详情页产品图片批量下载提取采集软件
  6. 一些mathtype符号
  7. IT人才外包的驻场外派流程是怎样的?
  8. PowerShell 实现Word批量替换关键词
  9. Mathematica+Matlab联合使用实现可视化、交互编程
  10. 这14个人,是程序界当之无愧的扛把子!