盘点深度学习中的各种数据增强技巧

DeepSmote:一种深度SMOTE方法 DeepSmote 一种全新的将深度学习与Smote相结合的过采样方法! 目前在许多领域已经被使用,值得大家关注学习! 阅读详情


1 什么是数据增强?

数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。

比如上图,第1列是原图,后面3列是对第1列作一些随机的裁剪、旋转操作得来。

每张图对于网络来说都是不同的输入,加上原图就将数据扩充到原来的10倍。假如我们输入网络的图片的分辨率大小是256×256,若采用随机裁剪成224×224的方式,那么一张图最多可以产生32×32张不同的图,数据量扩充将近1000倍。虽然许多的图相似度太高,实际的效果并不等价,但仅仅是这样简单的一个操作,效果已经非凡了。

如果再辅助其他的数据增强方法,将获得更好的多样性,这就是数据增强的本质。

数据增强可以分为,有监督的数据增强和无监督的数据增强方法。其中有监督的数据增强又可以分为单样本数据增强和多样本数据增强方法,无监督的数据增强分为生成新的数据和学习增强策略两个方向。

2 有监督的数据增强

有监督数据增强,即采用预设的数据变换规则,在已有数据的基础上进行数据的扩增,包含单样本数据增强和多样本数据增强,其中单样本又包括几何操作类,颜色变换类。

2.1. 单样本数据增强

所谓单样本数据增强,即增强一个样本的时候,全部围绕着该样本本身进行操作,包括几何变换类,颜色变换类等。

(1) 几何变换类

几何变换类即对图像进行几何变换,包括翻转,旋转,裁剪,变形,缩放等各类操作,下面展示其中的若干个操作。

水平翻转和垂直翻转

随机旋转

随机裁剪

变形缩放

翻转操作和旋转操作,对于那些对方向不敏感的任务,比如图像分类,都是很常见的操作,在caffe等框架中翻转对应的就是mirror操作。

翻转和旋转不改变图像的大小,而裁剪会改变图像的大小。通常在训练的时候会采用随机裁剪的方法,在测试的时候选择裁剪中间部分或者不裁剪。值得注意的是,在一些竞赛中进行模型测试时,一般都是裁剪输入的多个版本然后将结果进行融合,对预测的改进效果非常明显。

以上操作都不会产生失真,而缩放变形则是失真的。

很多的时候,网络的训练输入大小是固定的,但是数据集中的图像却大小不一,此时就可以选择上面的裁剪成固定大小输入或者缩放到网络的输入大小的方案,后者就会产生失真,通常效果比前者差。

(2) 颜色变换类

上面的几何变换类操作,没有改变图像本身的内容,它可能是选择了图像的一部分或者对像素进行了重分布。如果要改变图像本身的内容,就属于颜色变换类的数据增强了,常见的包括噪声、模糊、颜色变换、擦除、填充等等。

基于噪声的数据增强就是在原来的图片的基础上,随机叠加一些噪声,最常见的做法就是高斯噪声。更复杂一点的就是在面积大小可选定、位置随机的矩形区域上丢弃像素产生黑色矩形块,从而产生一些彩色噪声,以Coarse Dropout方法为代表,甚至还可以对图片上随机选取一块区域并擦除图像信息。

添加Coarse Dropout噪声

颜色变换的另一个重要变换是颜色扰动,就是在某一个颜色空间通过增加或减少某些颜色分量,或者更改颜色通道的顺序。

颜色扰动

还有一些颜色变换,本文就不再详述。

几何变换类,颜色变换类的数据增强方法细致数来还有非常多,推荐给大家一个git项目:

https://github.com/aleju/imgaug

预览一下它能完成的数据增强操作吧。

2.2. 多样本数据增强

不同于单样本数据增强,多样本数据增强方法利用多个样本来产生新的样本,下面介绍几种方法。

(1) SMOTE[1]

SMOTE即Synthetic Minority Over-sampling Technique方法,它是通过人工合成新样本来处理样本不平衡问题,从而提升分类器性能。

类不平衡现象是很常见的,它指的是数据集中各类别数量不近似相等。如果样本类别之间相差很大,会影响分类器的分类效果。假设小样本数据数量极少,如仅占总体的1%,则即使小样本被错误地全部识别为大样本,在经验风险最小化策略下的分类器识别准确率仍能达到99%,但由于没有学习到小样本的特征,实际分类效果就会很差。

SMOTE方法是基于插值的方法,它可以为小样本类合成新的样本,主要流程为:

第一步,定义好特征空间,将每个样本对应到特征空间中的某一点,根据样本不平衡比例确定好一个采样倍率N;

第二步,对每一个小样本类样本(x,y),按欧氏距离找出K个最近邻样本,从中随机选取一个样本点,假设选择的近邻点为(xn,yn)。在特征空间中样本点与最近邻样本点的连线段上随机选取一点作为新样本点,满足以下公式:

第三步,重复以上的步骤,直到大、小样本数量平衡。

该方法的示意图如下。

在python中,SMOTE算法已经封装到了imbalanced-learn库中,如下图为算法实现的数据增强的实例,左图为原始数据特征空间图,右图为SMOTE算法处理后的特征空间图。

(2) SamplePairing[2]

SamplePairing方法的原理非常简单,从训练集中随机抽取两张图片分别经过基础数据增强操作(如随机翻转等)处理后经像素以取平均值的形式叠加合成一个新的样本,标签为原样本标签中的一种。这两张图片甚至不限制为同一类别,这种方法对于医学图像比较有效。

经SamplePairing处理后可使训练集的规模从N扩增到N×N。实验结果表明,因SamplePairing数据增强操作可能引入不同标签的训练样本,导致在各数据集上使用SamplePairing训练的误差明显增加,而在验证集上误差则有较大幅度降低。

尽管SamplePairing思路简单,性能上提升效果可观,符合奥卡姆剃刀原理,但遗憾的是可解释性不强。

(3) mixup[3]

mixup是Facebook人工智能研究院和MIT在“Beyond Empirical Risk Minimization”中提出的基于邻域风险最小化原则的数据增强方法,它使用线性插值得到新样本数据。

令(xn,yn)是插值生成的新数据,(xi,yi)和(xj,yj)是训练集随机选取的两个数据,则数据生成方式如下

λ的取指范围介于0到1。提出mixup方法的作者们做了丰富的实验,实验结果表明可以改进深度学习模型在ImageNet数据集、CIFAR数据集、语音数据集和表格数据集中的泛化误差,降低模型对已损坏标签的记忆,增强模型对对抗样本的鲁棒性和训练生成对抗网络的稳定性。

SMOTE,SamplePairing,mixup三者思路上有相同之处,都是试图将离散样本点连续化来拟合真实样本分布,不过所增加的样本点在特征空间中仍位于已知小样本点所围成的区域内。如果能够在给定范围之外适当插值,也许能实现更好的数据增强效果。

3 无监督的数据增强

无监督的数据增强方法包括两类:

(1) 通过模型学习数据的分布,随机生成与训练数据集分布一致的图片,代表方法GAN[4]。      

(2) 通过模型,学习出适合当前任务的数据增强方法,代表方法AutoAugment[5]。

3.1 GAN

关于GAN(generative adversarial networks),我们已经说的太多了。它包含两个网络,一个是生成网络,一个是对抗网络,基本原理如下:

(1) G是一个生成图片的网络,它接收随机的噪声z,通过噪声生成图片,记做G(z) 。      

(2) D是一个判别网络,判别一张图片是不是“真实的”,即是真实的图片,还是由G生成的图片。

GAN的以假乱真能力就不多说了。

2 Autoaugmentation[5]

AutoAugment是Google提出的自动选择最优数据增强方案的研究,这是无监督数据增强的重要研究方向。它的基本思路是使用增强学习从数据本身寻找最佳图像变换策略,对于不同的任务学习不同的增强方法,流程如下:

(1) 准备16个常用的数据增强操作。

(2) 从16个中选择5个操作,随机产生使用该操作的概率和相应的幅度,将其称为一个sub-policy,一共产生5个sub-polices。

(3) 对训练过程中每一个batch的图片,随机采用5个sub-polices操作中的一种。

(4) 通过模型在验证集上的泛化能力来反馈,使用的优化方法是增强学习方法。

(5) 经过80~100个epoch后网络开始学习到有效的sub-policies。

(6) 之后串接这5个sub-policies,然后再进行最后的训练。

总的来说,就是学习已有数据增强的组合策略,对于门牌数字识别等任务,研究表明剪切和平移等几何变换能够获得最佳效果。

而对于ImageNet中的图像分类任务,AutoAugment学习到了不使用剪切,也不完全反转颜色,因为这些变换会导致图像失真。AutoAugment学习到的是侧重于微调颜色和色相分布。

除此之外还有一些数据增强方法,篇幅有限不做过多解读,请持续关注。

4 思考

数据增强的本质是为了增强模型的泛化能力,那它与其他的一些方法比如dropout,权重衰减有什么区别?

(1) 权重衰减,dropout,stochastic depth等方法,是专门设计来限制模型的有效容量的,用于减少过拟合,这一类是显式的正则化方法。研究表明这一类方法可以提高泛化能力,但并非必要,且能力有限,而且参数高度依赖于网络结构等因素。

(2) 数据增强则没有降低网络的容量,也不增加计算复杂度和调参工程量,是隐式的规整化方法。实际应用中更有意义,所以我们常说,数据至上。

[1] Chawla N V, Bowyer K W, Hall L O, et al. SMOTE: synthetic minority over-sampling technique[J]. Journal of Artificial Intelligence Research, 2002, 16(1):321-357.

[2] Inoue H. Data Augmentation by Pairing Samples for Images Classification[J]. 2018.

[3] Zhang H, Cisse M, Dauphin Y N, et al. mixup: Beyond Empirical Risk Minimization[J]. 2017.

[4] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative Adversarial Networks[J]. Advances in Neural Information Processing Systems, 2014, 3:2672-2680.

[5] Cubuk E D, Zoph B, Mane D, et al. AutoAugment: Learning Augmentation Policies from Data.[J]. arXiv: Computer Vision and Pattern Recognition, 2018.

欢迎扫码关注:

数据增强技术大盘点:大数据时代的必备技能 本文全面介绍了数据增强技术,涵盖了图像、文本和音频等不同类型数据的增强方法。对于图像数据,基于变换的方法包括几何变换、颜色变换和加噪声等,基于生成的方法有生成对抗网络(GAN)和变分自编码器(VAE);文本数据增强方法有基于变换的词汇替换、句子重组、添加噪声以及基于生成的GAN和VAE应用;音频数据增强同样有基于变换的时域和频域变换以及基于生成的GAN和VAE应用。通过案例研究,展示了数据增强技术在实际项目中能够有效提升模型性能,但也面临一些挑战,如生成模型生成的数据质量问题等。 阅读详情

相关推荐

猪只盘点方案总结

1. 方案一 1.1 算法方案解析 1.1.1 数据噪声 1.1.2 数据预处理 1.1.3 数据增强 1.1.4 模型训练与改进 1.1.5 模型训练trick 1.2 改进与创新 1.3 优化思路 2. 方案二 2.1 赛题目标 2.2 赛题挑战 2.3 算法设计 2.3.1 模型选择 2.3.2 模型泛化 2.3.3 模型优化 2.3.4 模型训练 2.4 结果展示 2.5 方案亮点 2.6 优化思路 3. 方案三 3.1 赛题分析 3.2 算法设计 3.2.1 模型选择 3.2.2 数据增强 ...

herosunly的博客 1万+

【技术综述】深度学习中的数据增强方法都有哪些?

很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好:(1)寻找更多的数据。(2)充分利用已有的数据进行数据增强,今天就来说说数据增强。 作者 | 言有三 编辑 | 言有三 1 什么是数据增强? 数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。 比如上图,第1列是原图,后面3列是对第1列作...

hacker_long的专栏 4279

163种中草药图像数据集构建与ResNet-50迁移学习实战指南

在计算机视觉领域,高质量标注数据集是模型训练的基石,直接影响图像分类、目标检测等任务的性能。其核心原理在于为算法提供结构化的监督信号,通过深度学习模型学习从像素到语义的映射关系。构建此类数据集的技术价值在于解决了特定垂直领域(如中医药)数据稀缺的痛点,为AI技术落地提供了关键“燃料”。在应用场景上,标准化数据集广泛支撑着教学演示、算法验证和产业应用开发。本文聚焦于中草药识别这一细分领域,详细介绍了一个包含163种常见药材、经过多源聚合与清洗的图像数据集构建全过程,并提供了基于PyTorch和ResNet-5

weixin_33672400的博客 458

【论文笔记】数据增强系列.1

​本文简单介绍数据增强、好处和常见方式,以及最近的三篇数据增强的论文:CutMix(ICCV2019),ContrastMask(CVPR2022),BCP(CVPR2023)。数据增强是深度学习中的一种技术,它通过从现有数据生成新的训练数据来扩展原数据集。数据增强工具通过操作现有数据的参数,将数据转换为新的、独特的样本。可以对图像、文本、音频和视频输入执行数据增强。有两种类型的数据增强:离线(增强图像存储在驱动器上,然后在训练模型之前与真实数据相结合)和在线(数据增强应用于随机选择的图像并用于训练原始数

m0_61899108的博客 3633

Cadence Virtuoso VIVA波形分析:从背景色修改到线宽调整的完整指南

本文详细介绍了Cadence Virtuoso VIVA波形分析工具的核心使用技巧,包括背景色修改、线宽调整等高级功能。通过具体操作步骤和配置方法,帮助工程师优化波形显示效果,提升工作效率。特别强调了与Calculator组件的配合使用,以及专业波形图的输出技巧。

weixin_27330481的博客 623

5分钟搞定!用OpenCV实现全景图像柱面展开的保姆级教程(附完整代码)

本文提供了一份使用OpenCV实现全景图像柱面展开的详细教程。通过清晰的数学原理讲解和分步代码演示,指导读者快速掌握从等距柱状投影全景图到平面展开图的核心转换方法,并涵盖性能优化、参数调整及透视视图扩展等实用技巧,适合图像处理爱好者和开发者实践。

sony5的博客 576

不平衡分类数据集处理(SMOTE和SMOTE-ENN)

处理不平衡数据集的方法

qq_51465769的博客 6964

高通 vs MTK vs 海思:三大平台 ISP 架构横向对比与实战差异分析

随着移动影像能力成为智能终端差异化竞争的核心维度,ISP(Image Signal Processor)架构日益重要。高通、MTK、海思三大 SoC 厂商在 ISP 设计上各具特色,不仅在图像处理链路、模块集成度、算法加速路径等方面存在显著差异,同时也决定了终端厂商在成像质量、调试复杂度与扩展能力上的实际表现。本文将基于真实平台项目经验,横向对比三大主流平台的 ISP 架构关键指标,系统分析其在实际开发过程中的能力边界、工程成本与调优空间,帮助工程师更精准地进行平台选型与优化策略制定。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3938

【机器学习】数据增强(Data Augmentation)

文章目录一、引言 - 背景二、为什么需要数据增强?三、什么是数据增强?定义分类四、有监督的数据增强1. 单样本数据增强(1)几何变换类(2)颜色变换类2. 多样本数据增强(1) SMOTE(2) SamplePairing(3) mixup五、无监督的数据增强1. GAN2.Conditional GANs3. Autoaugmentation六、数据增强过程中需要注意的问题七、总结参考链接 一、引言 - 背景 很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好:.

weixin_44211968的博客 11万+

数据分析案例-基于红米和华为手机的用户评论分析

在智能手机市场日益繁荣的今天,红米与华为手机作为国产手机品牌的佼佼者,凭借其各自独特的品牌魅力和技术实力,赢得了广泛的用户群体和高度关注。随着技术的不断进步和消费者需求的日益多样化,用户对手机的期望已不仅限于基本的通讯功能,更涵盖了性能、拍照、续航、用户体验等多个方面。因此,深入探究红米与华为手机在用户长期使用过程中的实际表现,尤其是用户评论中所反映出的真实反馈,对于理解市场需求、优化产品设计及提升用户体验具有重要意义。本实验的背景正是基于这样的市场环境和技术发展趋势。我们旨在通过收集并分析红米与华为手机的

m0_64336780的博客 1万+

在 SAP S/4HANA Public Cloud 中,用 RAP 一键生成 PDF 并在 Fiori 前端触发下载的完整方案

create;update;delete;// 生成并返回当前文档上下文。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 416

数据增强_盘点深度学习中的各种数据增强技巧

1 什么是数据增强?数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。比如上图,第1列是原图,后面3列是对第1列作一些随机的裁剪、旋转操作得来。每张图对于网络来说都是不同的输入,加上原图就将数据扩充到原来的10倍。假如我们输入网络的图片的分辨率大小是256×256,若采用随机裁剪成224×224的方式,那么一张图最多可以产生32×32张不同的...

weixin_39658318的博客 968

UG\NX二次开发 判断对象是虚线还是实线

网友提问“怎么区分虚线实线”,这个可以通过函数判断。

王牌飞行员_里海的博客 359

深度学习中的各种数据增强

数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程。这包括对数据进行不同方向的扰动处理或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而人为的扩充新的数据集。 这里我们需要区分两个概念,即增强数据和合成数据: 成数据:指在不使用真实世界图像的情况下人工生成数据,合成数据可由 GAN 或者现如今大火的 AGI 技术 Diffusion Model 产生; 增强数据:从原始图像派生而来,并进行某种较小的几何变换(例如翻转、平移、旋转或添加噪声等)或者色

m0_61899108的博客 1414

在VINS-FUSION上处理KITTI数据集(双目+GPS)

VINS-Fusion 是一个开源的实时多传感器状态估计库,主要由香港科技大学的沈邵劼教授领导的研究团队开发。它是 VINS-Mono(单目视觉惯性系统)的扩展,支持多种传感器组合,如双目、立体相机和IMU。

如果想成为中心,那么就到中心去吧。 1206

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习中SOTA的trick盘点

深度学习中SOTA的trick盘点

501

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度学习刷新SOTA的tricks大盘点

dl tricks

猛码Memmat 1285

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数据增强策略 - 图像

这次盘点了计算机视觉各大主流任务上的数据增强策略随着深度学习在计算机视觉的广泛应用,以卷积神经网络为代表的深度学习模型取得了突破性的进展。然而,直至今日,尽管提出了以 ViT 为代表的新一代视觉网络架构,但数据问题仍然是构建深度学习模型最常见的挑战之一。在实际的应用场景中,足量且高保真的优质数据集通常是可遇不可求的,一方面费钱费时费力不说,由于隐私保护和极端概率问题,数据集的获取变得尤为困难。因此,一种低成本且有效的方法便是利用数据增强来减少对训练数据的依赖。

具身机器人和通用AI 1233

数据增强2

数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程。这包括对数据进行不同方向的扰动处理或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而人为的扩充新的数据集。这里我们需要区分两个概念,即增强数据和合成数据合成数据:指在不使用真实世界图像的情况下人工生成数据,合成数据可由GAN或者现如今大火的AGI技术产生; whaosoft aiot http://143ai.com

whaosoft143ai的博客 1112

YOLOv8在零售货架盘点中的落地案例

通过YOLOv8目标检测模型与容器化部署,实现零售货架商品的高效自动识别。系统在边缘端完成低延迟推理,云端进行数据聚合与分析,显著提升盘点速度与准确率,同时释放人力并支持运营决策优化,推动智慧零售落地。

weixin_42587866的博客 452

YOLOv8在智能仓储货架盘点中的应用

YOLOv8凭借高精度与实时性,正在重塑智能仓储中的货架盘点方式。通过AI视觉自动识别商品,实现快速计数、异常预警与库存优化,结合边缘设备部署和容器化环境,显著提升效率与响应速度,推动仓储管理向自动化、智能化升级。

weixin_35835018的博客 970

目标检测 | 盘点提升小目标检测的思路

点击上方“AI算法修炼营”,选择加星标或“置顶”标题以下,全是干货来源:本文授权转自知乎作者高毅鹏,整理:极市平台https://zhuanlan.zhihu.com/p/1216666...

AI算法修炼营的博客 7807

基于深度学习模型的花卉图像分类代码_盘点图像分类的窍门:专家深度学习模型,提升性能的处理技巧!...

你最近一次了解到深度学习理论百分百与实际验证相匹配是什么时候?这种情况很少发生。研究论文阐明的是一种情况,但实际生活中的结果却与之有所不同。这不完全是研究论文的问题。实验是科学研究的重点,基于特定的环境,特定数据集,我们得到相应结果。一旦你在实际中应用这些模型,处理噪声和野生数据的挑战就必须考虑。理论并不是经常和现实世界中所发生的完全契合,但理论确实提供了一个基准。那么造成理论和实际之间差距的原因...

weixin_42514640的博客 365
上一篇: Python pandas模块21个常用操作可视化
下一篇: 教程 | 算法太多挑花眼?教你如何选择正确的机器学习算法
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值