【CVPR2022】TeachAugment: Data Augmentation Optimization Using Teacher Knowledge
cvpr2022一篇关于数据增强的文章,最近想扩增数据集,看看能不能用到吧。
原文链接:https://arxiv.org/abs/2202.12513
知乎同步更新,id为cocotaini,笔记链接:https://zhuanlan.zhihu.com/p/499049748
摘要:
对抗数据扩增策略,通过寻找最大的扩增损失,对于很多任务感化行都很好。但是,已有方法需要大量调参,避免过度变化导致图像特征缺失。本文提出基于对抗策略的,叫做TeachAugment的数据增强方法。该方法的不需要大量调参,通过使用teacher模型,就可以为模型产生有信息的图像。特别的,产生的扩增结果需要保证对于teacher模型可以辨别,但对于目标模型有对抗性。本文还提出了使用神经网络的数据扩增方法,简化了搜索空间的设计,允许使用梯度方法的更新扩增结果。本文提出的TeachAugment比已有的扩增方法在图像分类、语义分割、非监督学习中表现更好。
1. 概述:
为提高模型泛化性,数据扩增是一项非常重要的技术。为了能够自动地找出最有效的扩增策略,AutoAugment被提出。然而,该方法需要上千个GPU时,才能找到有效的数据扩增结果。
近期的研究都暗示可以降低AutoAugment方法的花销。尤其是,在线数据扩增优化框架,相应地更新扩增策略和目标网络,不仅减少计算开销,还可以通过整合搜索和训练过程,简化数据扩增搜索过程中的搜索流程。
很多在线优化方法基于对抗策略,搜索扩增最大化损失,这样可以提高模型泛化性。然而,对抗式数据扩增方法,在没有任何限制的条件下,不够稳定。因为,忽略图像中的内在含义,也可以达到损失最大化。如图一所示。
为避免产生无意义的图像,以前的方法基于先验知识,对扩增结果进行了正则化,限制搜索域中幅度参数的搜索范围。但是仍有很多微调的参数会干扰实验者(practitioners)。
为减轻调参问题,本文提出一种基于教师知识的在线数据扩增优化方法,叫做Teach Augment。TeachAugment也基于对抗数据扩增策略,但是他在一定的范围内进行搜索,这个范围是:转化的图像对于老师模型是可以辨认的,如图1所示。不像之前的对抗数据扩增方法,因为有teacher模型,TeachAugment不需要先验知识和超参数,来避免过度扩增从而忽略图像内在的含义。因此,TeachAugment不需要调参来保证转化后的图像是可辨认的。
而且,本文提出了使用神经网络的数据扩增方法,完成两种功能,几何扩增和色彩扩增。我们的扩增模型只应用两种转化方法,但是他们可以表示大多数的扩增函数,包括AutoAugment的搜索空间和他们的组成函数。神经网络的使用有两个好处,(1)可以通过反向传播更新扩增参数(2)减少搜索空间中函数的数量,从几十个到2个。
2. 相关工作:
传统的数据扩增方法中,几何和色彩转化被广泛应用于深度学习中。而且,现有的数据扩增已经获得了很高的准确率。数据扩增不仅提高了图像的识别准确率,而且在近期的无监督、半监督学习中都发挥了重要的作用。虽然数据扩增通常情况下可以提高模型的泛化性,但是有时也会影响模型的表现,引发偏差。因此,我们需要人工找出有效的扩增策略。
Cubuk等人提出自动查找有效数据扩增的方法,叫做AutoAugment。本文粗略的把现有的数据扩增方法分为两类:代理(proxy based)和非代理(proxy free)任务。代理任务方法是通过使用训练数据的子集或者小模型来减少开销。因此,这种方法的效果不是最好的。非代理方法,直接在使用所有训练数据的目标网络上搜索数据扩增策略。因此,效果可能是最优的。
3. 使用teacher知识的数据扩增优化方法
3.1. 预操作
x表示从数据集X采样得到的图像,aΦ表示扩增函数。在传统数据扩增方法中,Φ对应数据扩增的幅度。在本文中,Φ对应神经网络的参数。通常的使用数据扩增的训练过程中,每个minibatch的样本被aΦ转化,送入目标网络fθ中。之后,更新目标网络的参数来最小化任务损失L。本文忽略了目标标签,因为本文不仅考虑监督式学习,还包括非监督。
另外,对抗数据扩增搜索参数Φ来最大化损失。这个目标通过交替更新Φ和θ来解决。但是,对抗式数据扩增方法如果没有正则化或者对搜索空间大小的限制的话,不能很好的提高模型泛化性。因为最大化Φ容易忽略图像x的内在信息。因此,我们使用teacher模型,代替了基于先验知识的正则化。
3.2. TeachAugment
取任意一个模型作为teacher模型,只要和目标模型fθ不同即可。本文,使用了两种teacher模型,一个预训练的teacher和一个EMAteacher(他的权重通过指数加权法对目标模型的权重进行更新)。对于目标模型,此目标和对抗数据扩增方法有相同的组成部分,但是这个扩增函数需要最小化teacher模型的损失,最大化目标函数的损失。使用本方法,可以有效避免内在含义的消失,因为当图像变得不可辨认时,teacher模型会出现梯度爆炸。引入的teacher模型损失需要扩增函数来转化图像,从而使扩增结果对于目标模型是对抗性的,而对于teacher模型是可辨认的。
如图2所示,在随机梯度下降过程中,交替更新扩增函数和目标模型。
本文首先更新n步目标网络,之后更新扩增函数。
不像之前的方法,需要基于域的限定来正则化扩增函数,比如循环一致性和平滑性。并且,TeachAugment不限制转化的图像的辨认困难程度,可以确保转化后的图像都是可辨认的。
3.3. 改进措施
TeachAugment的训练过程和GAN网络、强化学习中的actor-critic方法相似,都是交替更新两个网络。TeachAugment运用了三项技术,experience replay,non-saturating loss,label smoothing。此外,本文引入色彩正则化来减轻扩增前后图像色彩分布的不一致性。
不饱和损失
对于图像分类问题,损失函数L通常是交叉熵损失。在这种情况下,在最大化问题中Φ经常会饱和,导致目标模型的预测置信度非常高。使用不饱和损失,公式见原文,来更新扩增模型。
经验重演
在强化学习中,经验重演存储actor过去选择的动作,并且重复使用来更新critic。本文通过存储扩增模型,并且对其优先处理。之后,根据优先级对这些扩增模型从缓存中进行随机采样,对目标模型进行更新。
标签平滑
代替独热编码。本文中,避免了因为目标模型预测置信度过高导致梯度爆炸。
色彩正则化
色彩扩增模型趋向于转化每个像素的颜色,使其不再服从训练数据的色彩分布。因此,扩增图像会影响识别的准确率。为了校准扩增前后的色彩分布,本文使用了SWD(sliced Wasserstein 距离)来正则化色彩扩增模型。
4. 使用神经网络的数据增强
我们提出了使用参数Φ的神经网络的数据增强方法,包括两个模型,色彩扩增模型cΦ和几何扩增模型gΦ。该模型可以通过梯度方法更新参数,使用两个函数来更新搜索空间的结构。
扩增过程如图3,
【CVPR2022】TeachAugment: Data Augmentation Optimization Using Teacher Knowledge相关推荐
- 论文阅读 【CVPR-2022】 A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation
论文阅读 [CVPR-2022] A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation st ...
- 【CVPR2022】Detecting Camouflaged Object in Frequency Domain
[CVPR2022]Detecting Camouflaged Object in Frequency Domain 论文有一个非官方的实现:https://github.com/VisibleShad ...
- 【CVPR2022】用于域适应语义分割的域无关先验
摘要:本文给大家分享一篇我们在CVPR 2022 上发表的paper:Domain-Agnostic Prior for Transfer Semantic Segmentation.文章提出了一种图 ...
- 【SeaJS】【3】seajs.data相关的源码阅读
在SeaJS官网上推荐了源码阅读顺序,本文并没有采用这个顺序,而是按个人习惯以调试官方示例的方式进行源码阅读.早期版本作者玉伯使用了几个闭包形式,本文源码版本为2.1.1,它的编码方式个人认为更加脚本 ...
- 论文阅读【6】Autoaugment: Learning augmentation strategies from data
本文提出的AutoAugment方法可以依据验证集上的损失值自动选择数据增强策略. 目录 问题描述 解决思想 具体实现 为什么有效 参考 问题描述 数据增强基于已有的训练样本数据生成更多的训练数据,其 ...
- YOLOv5的Tricks | 【Trick3】Test Time Augmentation(TTA)
如有错误,恳请指出. 文章目录 1. TTA概念介绍 2. TTA代码实现 3. TTA使用方法 一句话简单的介绍Test Time Augmentation(TTA)就是测试过程中也使用数据增强,官 ...
- 【转】Spring Data JDBC - Reference Documentation
Spring Data JDBC - Reference Documentation Jens Schauder, Jay Bryant, Mark Paluch, Bastian Wilhelm V ...
- 【 MATLAB 】Filter Data
Filter Data Filter Difference Equation(滤波器差分方程) 滤波器是一种数据处理技术,可以消除数据中的高频波动或从数据中去除特定频率的周期性趋势. 在MATLAB® ...
- 【转】WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务
在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Se ...
最新文章
- List再整理,从代码底层全面解析List(看完后保证收获满满)
- 【每日DP】day3 P1387 最大正方形(奇怪的DP增加了 / 二维前缀和)难度⭐⭐★
- python的sklearn示例_KNN sklearn python实现小示例
- 配置DispatcherServlet应该写/还是/*
- access窗体中再制作查询窗体_如何给java窗体添加下拉菜单项,以选择游戏难度为例 - 攻向前端的小白...
- msf与cs互相传动
- 如何构建一套高性能、高可用性、低成本的视频处理系统?
- 摆脱困境:从计划作业中调用安全方法
- 打开 igv java_必备可视化Integrative Genomic Viewer(IGV)
- redux reducer_如何通过约定创建Redux reducer
- Debian7桌面屏蔽图标和右键菜单的解决方法。
- 公众号获取token失败_恶意请求微信公众号token,导致access_token超过10万次解决思路...
- 讲解wpe抓包,封包
- Android:简易计算器
- Qt点击按钮两次才弹出菜单如何解决
- linux关闭防火墙安装Vmware tools
- tableau高级绘图(十二)-tableau绘制辐射堆叠图
- (转载)7 .24张小龙内部讲座《通过微信谈产品》完整版
- 防火墙单向访问控制_使用防火墙实现安全的访问控制
- ps插件摹客iDoc使用技巧