当前位置: 首页 > 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.lryc.cn/news/621250.html

相关文章:

  • 从0到1:C++ 语法之 nullptr
  • 机器学习内容总结
  • 机器学习初学
  • 前端vue框架
  • 机器学习知识总结
  • 智能体评测技术与实践:从评估维度到DeepEval实战指南
  • 20250814,通义万相,无限生成权限(慢速)
  • Linux中的日志管理
  • Linux中tty与8250-uart的虐恋(包括双中断发送接收机制)
  • 前端包管理工具
  • hive加载csv中字段含有换行符的处理方法
  • Spring-cloud-openfeign-设置超时时间
  • 数据结构:用两个栈模拟队列(Queue Using 2 Stacks)
  • 8.14网络编程——TCP通信基础
  • 【22-决策树】
  • 零基础-动手学深度学习-10.3. 注意力评分函数
  • 20道CSS相关前端面试题及答案
  • torch.nn中Sequential的使用
  • 【代码随想录day 20】 力扣 538.把二叉搜索树转换为累加树
  • CMake语法与Bash语法的区别
  • 扩展用例-失败的嵌套
  • 流式数据服务端怎么传给前端,前端怎么接收?
  • jenkins在windows配置sshpass
  • 设计模式笔记_行为型_状态模式
  • 【JavaEE】多线程 -- 线程状态
  • 纸箱拆垛:物流自动化中的“开箱密码”与3D视觉的智能革命
  • 面试题之项目中灰度发布是怎么做的
  • Flink on YARN启动全流程深度解析
  • 会议通信系统核心流程详解(底稿1)
  • Linux软件编程:进程和线程