RandAugment(NeurIPS 2020)论文速读

paper:RandAugment: Practical automated data augmentation with a reduced search space

third-party implementation:https://github.com/open-mmlab/mmpretrain/blob/main/mmpretrain/datasets/transforms/auto_augment.py

存在的问题 

自动增强策略已经在图像分类和目标检测任务取得了sota的效果,大规模采用这些方法的一个障碍是它们包含一个单独搜索阶段,这增加的训练的复杂性并可能大大增加计算成本。此外由于单独搜索阶段的存在,这些方法无法发根据模型或数据集的大小来调整正则化强度。自动搜索策略通常是在小数据上训练小模型,然后应用于训练更大的模型。

本文的创新点

本文为了消除了上述两个障碍,提出了一种新的数据增强策略RandAugment,它显著减小了搜索空间,并可以直接在目标任务上训练而不需要一个单独的代理任务。此外它的正则化强度可以根据不同模型和数据集的大小进行定制,并可以在不同任务和数据集上统一使用。在CIFAR-10/100、SVHN、ImageNet数据集上,RandAugment相较于之前的所有自动增强方法,取得了匹配或更优的性能。

本文的贡献总结如下:

  • 本文证明了数据增强的最佳强度取决于模型的大小和训练集的大小。这一观察结果表明,在一个较小的代理任务上,对增强策略的单独优化对于学习和迁移增强策略可能是次优的。
  • 本文引入了一个大大简化的数据增强搜索空间,其中包含2个可解释的超参数。我们可以使用简单的网格搜索来为模型和数据集定制增强策略,去除了单独搜索的过程。
  • 利用该方法,我们在CIFAR、SVHN、ImageNet上取得了sota的结果。在目标检测任务上,我们和sota只有0.3%的微小差距。在ImageNet上,我们取得了85.0%的sota精度,比之前的方法提升了0.6%,比baseline增强方法提升了1.0%。

方法介绍

RandAugment的主要目标是去掉在在代理任务上的单独搜索。因为单独的搜索阶段使训练变得复杂而且计算成本很高。更重要的是,代理任务可能导致结果是次优的。为了去除独立的搜索阶段,我们希望将数据增强策略的参数变为训练模型的超参。考虑到之前的学习的增强方法包含了30+参数,我们专注于大幅减少数据增强的参数空间。

以往的研究表明,learned增强策略的主要好处在于增加的示例的多样性。例如AutoAugment列举了一个策略,即从 \(K=14\) 个图像变换中选择应用哪些,以及应用每种变换的概率。

为了减少参数空间但同时保持图像的多样性,我们将学习的策略和应用每种变换的概率替换成parameter-free的过程,即总是以 \(\frac{1}{K}\) 的均匀概率选择一种变换。给定一个训练图像的 \(N\) 个变换,RandAugment可以有 \(K^N\) 种策略。最后需要考虑的一组参数是每个增强变换的大小magnitude。仿照AutoAugment,我们使用同样的线性尺度来表示每种变换的强度。简单的说就是每个变换的强度都表示为一个从0到10之间的整数,其中10表示最大强度。数据增强策略包括为每个变换确定一个整数。为了进一步减少参数空间,我们观察到,在训练过程中,每个变换学习到的强度都遵循一个相似的schedule(具体可以参考文章Population based augmentation中的图4),因此我们假设一个全局distortion \(M\) 足以参数化所有的变换。我们在训练中实验了4种 \(M\) 的schedule:常量强度、随机强度、线性增加的强度、上限一直增加的随机强度。

最终的算法包含两个参数 \(N,M\) 并且两行Python代码就可以实现,如下

这两个参数就是可解释的,比如 \(N\) 和 \(M\) 越大正则化的强度越大。一些标准方法可以用来进行参数优化,但考虑到搜索空间非常小,我们发现网格搜索grid search就相当有效了。

实验结果

作者首先通过实验验证了单独的代理任务失败的情况。

图3(a)展示了三种Wide-ResNet模型在逐渐增加的失真强度下精度相对baseline的提升,正方形处表示达到最高精度的失真强度。可以看出越大的模型,在达到最高精度时所需的失真强度也越大。这表明更大的网络需要更大的数据distortion来进行正则化,图3(b)也验证了这一点。图3(c)展示了Wide-ResNet-28-10在不同大小训练集上精度相对baseline的提升,同样训练集数据量越大,达到最高精度所需的失真强度也越大,图3(d)也验证了这一点。因此在代理任务上学习到的变换强度可能更针对于代理任务而不是目标任务。 

表2-表4分别是RandAument在CIFAR-10、CIFAR-100、SVHN、ImageNet、COCO数据集上与之前学习的增强方法的对比,可以看到RandAument取得了类似或更好的结果。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2807677.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

k8s学习笔记-基础概念

(作者:陈玓玏) deployment特别的地方在于replica和selector,docker根据镜像起容器,pod控制容器,job、cronjob、deployment控制pod,job做离线任务,pod大多一次性的,cronj…

React 模态框的设计(一)拖动组件的设计

春节终结束了,忙得我头疼。终于有时间弄自己的东西了。今天来写一个关于拖动的实例讲解。先看效果: 这是一个简单的组件设计,如果用原生的js设计就很简单,但在React中有些事件必须要多考虑一些。这是一个系列的文章,…

UI设计中,2D、2.5D、3D、4D该如何辨别?教会你

hello,我是大千UI工场,从事UI设计8年之久,在日常工作中经常听到一些概念,现在将这些概念图文并茂的呈现给您,欢迎点赞评论,如有设计需求,可以私信我们。 在UI设计中,2D、2.5D、3D和4…

企业计算机服务器中了babyk勒索病毒怎么办?Babyk勒索病毒解密数据恢复

随着网络技术的应用与普及,越来越多的企业采用了数字化办公模式,数字化办公模式可以为企业提供强有力的数据支撑,可以为企业的发展方向与产品业务调整做好基础工作。但网络是一把双刃剑,在为企业提供便利的同时,也为企…

Visual Studio 打开.edmx文件不显示表并报错:没有可用于.edmx的编辑器

打开.edmx文件时,呈现的是xml视图,不显示Diagram视图,且弹出报错“没有可用于.edmx的编辑器” 解决方案:在.edmx文件上右键,选择ado.net entity data model designer,即可正常显示表

EasyRecovery2024数据恢复软件深度评测与使用教程

一、EasyRecovery数据恢复软件是否好用? EasyRecovery是一款业界知名的数据恢复软件,具有强大的恢复能力和广泛的数据兼容性。它能帮助用户从各种存储设备中恢复丢失或删除的数据,包括硬盘、U盘、SD卡等。以下是关于EasyRecovery的详细分析&…

《C++面向对象程序设计》✍学习笔记

C的学习重点 C 这块,重点需要学习的就是一些关键字、面向对象以及 STL 容器的知识,特别是 STL,还得研究下他们的一些源码,下面是一些比较重要的知识: 指针与引用的区别,C 与 C 的区别,struct 与…

25-k8s集群中-RBAC用户角色资源权限

一、RBAC概述 1,k8s集群的交互逻辑(简单了解) 我们通过k8s各组件架构,知道各个组件之间是使用https进行数据加密及交互的,那么同理,我们作为“使用”k8s的各种资源的使用者,也是通过https进行数…

ARMv8-AArch64 的异常处理模型详解之异常向量表vector tables

目录 一,AArch64 异常向量表 二,栈指针以及SP寄存器的选择 三,从异常返回 一,AArch64 异常向量表 异常向量表(vector tables)是一组存放于普通内存(normal memory)空间的&#xf…

【智能车入门:pcb版】(蓝牙遥控、超声波避障、红外循迹)

实现最简单的蓝牙遥控、超声波避障、红外循迹) 总览项目获取 本篇是对 上一篇博客的改进,上一篇博客使用面包板,看起来很乱,春节结束之后嘉立创免费打板恢复,板子到了之后进行焊接测试,相较于使用面包板&a…

【算法与数据结构】链表、哈希表、栈和队列、二叉树

目录 一、算法与数据结构 二、链表 三、哈希表 四、栈和队列 五、二叉树 一、算法与数据结构 算法和数据结构是计算机科学中两个非常重要的概念。 数据结构是组织和存储数据的方式,它定义了数据元素之间的关系和操作。数据结构可以分为线性结构(如…

【前端素材】推荐优质后台管理系统Welly平台模板(附源码)

一、需求分析 后台管理系统(或称作管理后台、管理系统、后台管理平台)是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成,为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

让程序员设计B端界面,好比武大郎招聘:向我看齐。不忍直视!

hello,我是大美B端工场,B端系统的要求越来越高了,很多公司还让程序员负责页面,页面搞的没法看,也怪不得程序员。程序员来搞页面,那还不是武大郎招聘——向我看齐,以我的标准为标准吗&#xff1f…

Spring Security学习(七)——父子AuthenticationManager(ProviderManager)

前言 《Spring Security学习(六)——配置多个Provider》有个很奇怪的现象,如果我们不添加DaoAuthenticationProvider到HttpSecurity中,似乎也能够达到类似的效果。那我们为什么要多此一举呢?从文章的效果来看确实是多…

C++的STL常用算法->常用遍历算法、常用查找算法、常用排序算法、常用拷贝和替换算法、常用算术生成算法、常用集合算法

#include<iostream> using namespace std; #include <algorithm> #include <vector> //常用遍历算法 for_each //普通函数 void print01(int val) { cout << val << " "; } //仿函数 //函数对象 class print02 { public: v…

go语言的理解,看这一篇就够了

1.来源 Go语言是谷歌2009年发布的第二款开源编程语言 2.谷歌为什么要创建Go语言 计算机硬件技术更新频繁, 性能提高很快,默目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个简洁而高效…

备考2024年汉字小达人:历年考题练一练-18道选择题

今天为大家分享汉字小达人的备考学习资源&#xff0c;通过参加没有报名费、人人可参加的汉字小达人比赛&#xff0c;激发孩子学习语文的兴趣&#xff0c;并且提升语文学习成绩。 汉字小达人的两轮比赛&#xff08;区级自由报名活动、市级活动&#xff09;的选择题主要有六种题型…

Unity(第三部)新手绘制地形

1、创建地形 游戏对象3d对象地形 2、功能 1、 红框内按键为创建相邻地形、点击后相近地形会呈现高亮框、点击高亮区域可以快速创建地形 每块地形面积是1km*1km 2、第二个按钮是修改地形 下面的选择是修改类型 选项含义描述Raise or Lower Terrain升高或降低地形单击左键可…

备战蓝桥杯————双指针技巧巧解数组3

利用双指针技巧来解决七道与数组相关的题目。 两数之和 II - 输入有序数组&#xff1a; 给定一个按升序排列的数组&#xff0c;找到两个数使它们的和等于目标值。可以使用双指针技巧&#xff0c;在数组两端设置左右指针&#xff0c;根据两数之和与目标值的大小关系移动指针。 …

Python中的functools模块详解

大家好&#xff0c;我是海鸽。 函数被定义为一段代码&#xff0c;它接受参数&#xff0c;充当输入&#xff0c;执行涉及这些输入的一些处理&#xff0c;并根据处理返回一个值&#xff08;输出&#xff09;。当一个函数将另一个函数作为输入或返回另一个函数作为输出时&#xf…