当前位置: 首页 > news >正文

Data Augmentation数据增强

目录

数据增强是什么

为什么数据增强

数组增强分类

有监督数据增强

无监督数据增强


数据增强是什么

数据增强又称数据扩增,是一种通过应用合理且随机的变换(例如图像位移、旋转)来增加训练集多样性的技术。让有限的数据产生等价于更多数据的价值,并避免不相关性特征。

例如针对车型识别模型,合理随机变换同车型/不同车型图片的主体大小、位置、视角、色彩等不相关特征,避免特征提取的不相关倾向性,但不接受垂直飞天侧身超高曝汽车图片。

为什么数据增强

一方面大部分实际项目难以获得充足的数据,需要充分利用已有数据进行数据增强。另一方面,卷积神经网络需要提取合理而有效的特征,而非集中不相关特征。

例如针对鸟类识别模型,原数据集中A品种和B品种鸟类占比各50%,羽毛颜色为两类品种的不相关特征,但受限数据获取难度,原数据集中A品种鸟均体现蓝色,B品种鸟均体现红色,使用颜色变换随机扩充各品种颜色比例至50%左右,可以有效避免提取颜色为显著特征。

数组增强分类

数据增强可以分为,有监督数据增强和无监督数据增强。

有监督数据增强

有监督数据增强还可以分为单样本数据增强和多样本数据增强。

  • 单样本数据增强:增强一个样本时,完全围绕样本本身进行操作,如几何变换、颜色变换等。
  • 多样本数据增强:利用多个样本来产生新的样本,如SMOTE合成少数过采样,SamplePairing样本配对,mixup混合线性插值等

简单集合变换进行增强示例:

train_transformer = transforms.Compose([# 随机水平翻转,翻转概率为0.5transforms.RandomHorizontalFlip(p=0.5),  # 随机垂直翻转,翻转概率为0.5transforms.RandomVerticalFlip(p=0.5),  transforms.ToTensor(),transforms.Normalize([meanR, meanG, meanB], [stdR, stdG, stdB])])

无监督数据增强

无监督数据增强还可以分为随机生成扩增和学习策略增强。

  • 随机生成扩增:学习数据分布,随机生成与分布一致的图片,例如GAN生成对抗网络。
  • 学习策略增强:通过模型学习出适合任务的数据增强策略,例如AutoAugment自动增强。

GAN(generative adversarial networks)包含两个网络,生成网络和对抗网络:

  1. 生成网络接收随机噪声z,通过噪声生成图片,记做G(z) 。
  2. 对抗网络判别图片是否由G生成的,训练好的生成网络能生成以假乱真的图片。

AutoAugment是Google提出的自动选择最优数据增强方案的研究,使用增强学习从数据本身寻找最佳图像变换策略,针对不同的任务学习出不同的增强方法,核心思想:

  1. 准备16个常用的数据增强操作。
  2. 选择n个操作,随机产生使用概率和幅度,称为一个sub-policy,共产生5个sub-policy。
  3. 训练过程每一个batch的图片随机采用5个sub-policy操作中的一种。

http://www.dtcms.com/a/331937.html

相关文章:

  • 快速部署一个鉴黄服务
  • Android 项目:画图白板APP开发(二)——历史点、数学方式推导点
  • SQL详细语法教程(三)mysql的函数知识
  • 区块链 + 域名Web3时代域名投资的新风口(上)
  • Gemma 3 多模态推理 通过vllm运行Gemma-3-27B-IT模型的推理服务
  • 【系统安装】虚拟机中安装win10IOT企业版系统记录
  • 解决安装 scikit-learn==1.3.1 时出现的版本匹配错误
  • PHP 开发全解析:从基础到实战的进阶之路
  • sFlow原理与配置
  • Java面试场景题大全精简版
  • MySql——聚簇索引(主键索引)和非聚簇索索引(非主键索引)引区别(即聚集索引和非聚集索引区别)
  • MyBatis学习总结(六)
  • 【面板数据】各省及市省级非物质文化遗产数据合集(2005-2024年)
  • 《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
  • 解锁 Docker:一场从入门到源码的趣味解谜之旅
  • 卸载python遇到msi文件权限不足
  • Python闭包详解:理解闭包与可变类型和不可变类型的关系
  • 新手如何高效运营亚马逊跨境电商:从传统SP广告到DeepBI智能策略
  • docker 容器管理入门教程
  • 身份全景图
  • Encoder-Decoder Model编码器-解码器模型
  • 【学习笔记】Java并发编程的艺术——第4章 Java并发编程基础
  • CMake笔记:Alias Target在哪些地方可以使用
  • 傅里叶变换+attention机制,深耕深度学习领域
  • shellgpt
  • Linux计划任务
  • 当GitHub宕机时,我们如何协作?
  • nginx入门需知(含安装教程)
  • OpenCV图像注册模块
  • Spring 三级缓存三个小问题记录