数据增强(Data Augmentation)策略大全

图像数据增强方法

几何变换

  • 旋转:随机旋转图像一定角度(如±30°)。
  • 翻转:水平或垂直翻转图像。
  • 缩放:随机放大或缩小图像区域。
  • 裁剪:随机裁剪图像的一部分并调整至原尺寸。
  • 平移:沿x或y轴方向平移图像。

颜色空间变换

  • 亮度调整:随机改变图像亮度。
  • 对比度调整:调整图像对比度。
  • 饱和度调整:修改色彩饱和度。
  • 添加噪声:高斯噪声、椒盐噪声等。
  • 颜色抖动:随机调整RGB通道值。

高级增强技术

  • Mixup:混合两张图像及其标签(λ∈[0,1])。
  • Cutout:随机遮挡图像部分区域。
  • CutMix:用另一张图像的部分区域替换当前图像。
  • RandAugment:自动化选择增强策略的组合。

文本数据增强方法

词汇替换

  • 同义词替换:使用WordNet或预训练词向量替换单词。
  • 随机插入:在句子中随机插入同义词。
  • 随机交换:交换相邻词汇顺序。
  • 随机删除:以概率删除某些词汇。

语法变换

  • 回译:通过翻译至其他语言再译回原语言。
  • 句子重组:利用依存分析树调整句式结构。

生成模型

  • GPT-3等模型生成语义相似的句子。
  • 变分自编码器(VAE)生成新文本样本。

音频数据增强方法

时域增强

  • 变速:调整音频播放速度(保持音高)。
  • 时移:前后移动音频片段。
  • 裁剪:截取部分音频并填充至原长度。

频域增强

  • 添加噪声:白噪声、环境噪声等。
  • 音高变换:改变音频频率成分。

高级方法

  • SpecAugment:对频谱图进行时间/频率维度的遮挡。

视频数据增强方法

帧级增强

  • 对每一帧应用图像增强技术(如旋转、裁剪)。

时序增强

  • 帧采样:随机跳过或重复部分帧。
  • 时序裁剪:截取视频片段并调整至原长度。

空间-时序增强

  • 3D Cutout:在视频立方体(长×宽×时间)中随机遮挡。

通用注意事项

  • 增强后的数据需保持标签有效性(如翻转后的"6"可能变成"9")。
  • 避免过度增强导致模型学习到虚假模式。
  • 结合任务特性选择策略(如医学影像需谨慎几何变换)。

代码示例(图像旋转):

python 复制代码
from PIL import Image
import random

def rotate_image(image, max_angle=30):
    angle = random.uniform(-max_angle, max_angle)
    return image.rotate(angle)

公式示例(Mixup):

新样本生成公式:

x' = λx_i + (1-λ)x_j, \\quad y' = λy_i + (1-λ)y_j

其中 ( λ \sim Beta(α,α) ),通常 ( α=0.4 )。

相关推荐
骥龙1 小时前
第六篇:AI平台篇 - 从Jupyter Notebook到生产级模型服务
ide·人工智能·jupyter
TOPGUS1 小时前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销
一招定胜负2 小时前
入门MediaPipe:实现实时手部关键点检测
计算机视觉
松☆2 小时前
CANN深度解析:构建高效AI推理引擎的软件基
人工智能
ujainu2 小时前
CANN仓库中的AIGC可持续演进工程:昇腾AI软件栈如何构建“活”的开源生态
人工智能·开源·aigc
光锥智能2 小时前
从连接机器到激活知识:探寻工业互联网深水区的山钢范式
人工智能
GHL2842710902 小时前
分析式AI学习
人工智能·学习·ai编程
ujainu2 小时前
CANN仓库中的AIGC性能极限挑战:昇腾软件栈如何榨干每一瓦算力
人工智能·开源
wenzhangli72 小时前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
brave and determined2 小时前
CANN ops-nn算子库使用教程:实现神经网络在NPU上的加速计算
人工智能·深度学习·神经网络