GridMask:一种数据增强方法
GridMask Data Augmentation, ARXIV 2020
代码地址:https://github.com/akuxcw/GridMask
这篇论文提出了一种简单的数据增强方法,在图像分类、检测、分割三个任务进行实验,效果提升明显。
1. Introduction
作者首先回顾了数据增强(Data augmentation)方法,指出当前方法有三类:spatial transformation, color distortion, 以及 information dropping。本文提出的方法属于 information dropping,作者指出,对于此类方法,避免过度删除或保持连续区域是核心问题:一方面,过度删除区域将造成完整目标被删除或者上下文信息缺失,因此,剩下的区域不足以表达目标信息,会成为noisy data。另一方面,保留过多区域,将会使得目标不受影响(untouched),会影响网络的鲁棒性。
作者重点介绍了 Cutout 和 HaS 方法。Cutout方法只删除图像中的一块连续区域,因此,容易出现删除掉整个目标,或者一点目标也没有删除的情况;HaS方法把图像划分为若干小块的区域,然后随机删除,但仍然会出现和 Cutout 相同的问题。下图展示了 GridMask 方法与当前方法的对比。
2. Methodology
GridMask 通过生成一个和原图相同分辨率的mask,然后将该mask与原图相乘得到一个图像。下图中灰色区域的值为1,黑色区域的值为0。这样,就实现了特定区域的 information dropping,本质上可以理解为一种正则化方法。
GridMask对应4个参数,为 \((x,y,r,d)\) ,四个参数的设置如下图所示:
从图中可以看出,\(r\) 代表了保留原图像信息的比例,有一个计算方法,具体可以阅读论文。\(d\) 决定了一个dropped square的大小, 参数 \(x\)和\(y\)的取值有一定随机性,细节可以阅读论文。
3. 实验分析
在ImageNet-1K图像分类任务上,Cutout对ResNet50的提升为0.6%,HaS的提升为0.7%,AutoAugement提升为1.1%,相比而言,GridMask的提升为1.4%。作者还在CIFAR10数据集上进行了实验,这里不再详述。
在Ablation Study中,作者首先分析了参数\(r\)。如下图所示,在ImageNet-1K数据集上,设置为0.6比较好;在CIFAR10数据集上,设置为0.4比较好。作者解释为,在复杂的数据集上应该保持更多的信息来避免under-fitting,在简单数据集上应该丢弃更多的信息来减少over-fitting。这和 common sense 是一致的。
作者还在目标检测、语义分割任务上进行了实验,具体可阅读论文,不再详述。此外,作者还把方法和 Mixup方法进行了结合,结果表明性能同样可以得到提升。
4. 总结与讨论
GridMask是简单、通用性强并且有效的数据增强工具,同时,作者相信未来可以构造more excellent structures 来进一步改进性能。
GridMask:一种数据增强方法的更多相关文章
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...
- iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比
iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比 iphoneiPhoneIPhoneIPHONEIphone数据持久化 对比总结 本篇对IOS中常用的5种数据持久化方法进行简单 ...
- JSON三种数据解析方法(转)
原 JSON三种数据解析方法 2018年01月15日 13:05:01 zhoujiang2012 阅读数:7896 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- YoloV4当中的Mosaic数据增强方法(附代码详细讲解)码农的后花园
上一期中讲解了图像分类和目标检测中的数据增强的区别和联系,这期讲解数据增强的进阶版- yolov4中的Mosaic数据增强方法以及CutMix. 前言 Yolov4的mosaic数据增强参考了CutM ...
- Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法
目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled ...
- python中常用的九种数据预处理方法分享
Spyder Ctrl + 4/5: 块注释/块反注释 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(St ...
- AI佳作解读系列(四)——数据增强篇
前言 在深度学习的应用过程中,数据的重要性不言而喻.继上篇介绍了数据合成(个人认为其在某种程度上可被看成一种数据增强方法)这个主题后,本篇聚焦于数据增强来介绍几篇杰作! (1)NanoNets : H ...
- TensorFlow之DNN(三):神经网络的正则化方法(Dropout、L2正则化、早停和数据增强)
这一篇博客整理用TensorFlow实现神经网络正则化的内容. 深层神经网络往往具有数十万乃至数百万的参数,可以进行非常复杂的特征变换,具有强大的学习能力,因此容易在训练集上过拟合.缓解神经网络的过拟 ...
- 数据增强利器--Augmentor
最近遇到数据样本数目不足的问题,自己写的增强工具生成数目还是不够,终于在网上找到一个数据增强工具包,足够高级,足够傻瓜.想要多少就有多少!再也不怕数据不够了! 简介 Augmentor是一个Pytho ...
随机推荐
- Nginx基本知识,nginx安装使用方法
Nginx 是一款高性能的Web服务器软件. - 具有极高的并发性能 - 利用Nginx与Tomcat组合使用, 搭建反向代理集群 - Nginx 反向代理集群可以解决网站的高并发问题! 1.安装 Y ...
- day18__文件操作
一.3 种模式 r: 只读模式, r+: 读写模式,覆盖开头内容 w: 写模式,全覆盖 (如果是没有的文件则重新创建空文件) a+: 读写模式,从最开头写,覆盖开头内容 (如果是没有的 ...
- 使用scrapy实现去重,使用Redis实现增量爬取
面试场景: 要求对正在爬取的内容与mysql数据库中的数据进行比较去重 解决方式: 通过Redis来作为中间件,通过url来确保爬过的数据不会再爬,做到增量爬取. Redis数据库其实就是一个中间件, ...
- AcWing 走廊泼水节 题解
这道题大致题意就是让一棵树任意两点有连边(也就是完全图),但是补完后最小生成树是一开始的那棵树,问最小加的边权之和是多少. 了解题意后,我们可以想到用Kruskal(废话),当每两个集合合并的时候,除 ...
- sorted 函数及小练习
python 中sorted函数 sorted() 函数对所有可迭代的对象进行排序操作. sorted 语法: sorted(iterable[, cmp[, key[, reverse]]]) 参数 ...
- 11. RobotFramework内置库-Collections
Collections库是RobotFramework用来处理列表和字典的库,详细可参见官方介绍. 官方地址:http://robotframework.org/robotframework/late ...
- 每天一个LINUX命令(pwd)
每天一个LINUX命令(pwd) 基本信息 pwd: /bin/pwd,显示当前路径的绝对路径 语法:pwd 应用程序位置 which pwd PWD作用 pwd --help ...
- web标签语义化的理解_web语义化是什么意思
web语义化是什么? Web语义化,使用语义恰当的标签,可以让页面具有良好的结构,页面元素具有良好的含义,从而让人和机器都能快速理解.语义化的web页面一方面可以让机器在更少的人类干预情况下收集并研究 ...
- Docker装的Oracle 11g没有HR用户怎么办?一个脚本解决问题!
#0x0 问题描述 这个学期有一门Oracle的课,我图省事就直接拉了个docker镜像来做练习,一直倒也没啥问题,但是今天的作业需要用到HR这个模板用户. 然而我执行alter user hr ac ...
- CSS(二)- 选择器 - 伪元素和伪类(思维导图)
伪元素 伪元素可以创建一些文档语言无法创建的虚拟元素.比如:文档语言没有一种机制可以描述元素内容的第一个字母或第一行,但伪元素可以做到(::first-letter.::first-line).同时, ...