Skip to content

数据增强 (Data Augmentation)

动机与核心思想

数据增强是指在不实际收集新数据的前提下,通过对已有样本施加变换来人工扩充训练集的技术。其主要动机包括:

  • 缓解过拟合:当训练数据量有限时,模型容易记住训练样本而非学到泛化特征。增强后的多样化样本迫使模型关注更鲁棒的模式。
  • 增加数据多样性:真实场景中的数据分布远比训练集丰富,增强操作模拟了光照变化、视角偏移、表述差异等现实变动。
  • 降低数据收集与标注成本:高质量标注数据的获取往往昂贵且耗时,数据增强以极低成本带来等效的数据量提升。

核心原则是:变换后的样本应保持语义不变,即增强操作不能改变样本的标签含义。


图像增强

图像领域是数据增强应用最成熟的方向,方法可分为几何变换、颜色变换与高级混合方法三类。

几何变换

方法 说明
水平/垂直翻转 (Flip) 最常用的基础操作,对自然图像几乎总是安全的
随机旋转 (Rotation) 在一定角度范围内旋转,需注意边界填充策略
随机裁剪 (Random Crop) 从原图中截取子区域并缩放回原始尺寸
缩放 (Scale) 对图像进行随机缩放,模拟距离变化
仿射变换 (Affine) 包含平移、旋转、缩放、剪切的组合变换

在目标检测任务中,几何变换需要同步变换 bounding box 坐标。

颜色变换

  • 亮度 (Brightness):随机调整图像整体亮度,模拟不同曝光条件。
  • 对比度 (Contrast):改变像素值的动态范围。
  • 色相 (Hue) / 饱和度 (Saturation):在 HSV 空间中随机偏移,模拟色温变化。
  • 随机灰度化 (Random Grayscale):以一定概率将彩色图像转为灰度,迫使模型减少对颜色的依赖。

高级混合方法

Cutout (2017):在图像上随机遮挡一个正方形区域(填零),强制模型利用全局信息而非局部特征。

Mixup (2018):对两张图像及其标签做线性插值:

\[\tilde{x} = \lambda x_i + (1 - \lambda) x_j, \quad \tilde{y} = \lambda y_i + (1 - \lambda) y_j\]

其中 \(\lambda \sim \text{Beta}(\alpha, \alpha)\)。Mixup 产生的软标签对模型校准 (calibration) 也有正面作用。

CutMix (2019):结合 Cutout 和 Mixup 的思想——将一张图像的矩形区域粘贴到另一张图像上,标签按面积比例混合。相比 Cutout 没有信息浪费,相比 Mixup 保留了局部结构。

Mosaic (YOLOv4):将四张图像拼接为一张,使模型在一次前向传播中看到更多目标和背景组合,对小目标检测尤其有效。

AutoAugment 与 RandAugment

AutoAugment (Google, 2019):将增强策略的选择建模为搜索问题,用强化学习在候选操作空间中搜索最优的增强策略组合。缺点是搜索成本极高。

RandAugment (2020):大幅简化了 AutoAugment——只需两个超参数 \(N\)(操作数量)和 \(M\)(操作强度),从预定义操作集中随机选取 \(N\) 个操作、每个操作强度为 \(M\)。实验表明其效果与 AutoAugment 相当,但搜索成本几乎为零。


文本增强

文本数据的增强难度高于图像,因为离散的词序列对微小扰动更敏感,容易破坏语义和语法。

反向翻译 (Back Translation)

反向翻译是 NLP 中最有效的增强手段之一,在机器翻译、文本分类、问答等任务中广泛使用。

原理:将源语言文本翻译为中间语言,再翻译回源语言。由于翻译模型的表达差异,回译结果通常在保留语义的同时产生不同的措辞和句式。

实现流程

  1. 准备原始文本语料 \(D = \{x_1, x_2, \ldots, x_n\}\)
  2. 选择一个或多个中间语言(如中文 -> 英文 -> 中文,或中文 -> 法文 -> 中文)。
  3. 使用翻译 API 或本地翻译模型将每条文本翻译为中间语言。
  4. 将中间语言结果翻译回源语言,得到增强样本 \(x_i'\)
  5. 对增强样本做质量过滤(如去除与原文完全相同的结果、去除明显不通顺的翻译)。
  6. 将增强样本与原始样本合并为训练集。

适用场景

  • 低资源语言的文本分类:标注数据稀缺时效果尤为显著。
  • 机器翻译:经典的 Back Translation 方法利用单语数据生成伪平行语料,是提升翻译质量的标准技巧。
  • 问答与阅读理解:对问题做回译可以增加问题的多样性,同时答案 span 通过对齐保持不变。

注意事项:使用多个中间语言可以获得更多样的结果;采样式解码(而非 beam search)产生的多样性更高;需要对回译质量做过滤,低质量翻译会引入噪声。

EDA (Easy Data Augmentation)

EDA 提出了四种简单的文本扰动操作:

  • 同义词替换 (Synonym Replacement):随机选取非停用词并替换为 WordNet 同义词。
  • 随机插入 (Random Insertion):随机选取一个词的同义词插入句中随机位置。
  • 随机交换 (Random Swap):随机交换句中两个词的位置。
  • 随机删除 (Random Deletion):以一定概率随机删除每个词。

EDA 的优点是实现极其简单,不依赖外部模型;缺点是增强多样性有限,且在大数据集上收益递减。

基于 LLM 的文本增强

随着大语言模型的成熟,使用 GPT、Claude 等 LLM 进行文本改写成为一种高质量的增强方式:

  • Prompt 改写:给定原始文本,要求 LLM 生成语义相同但措辞不同的版本。
  • 风格迁移:将正式文本改写为口语化表达,或反之。
  • 条件生成:给定标签,直接让 LLM 生成符合该标签的新样本。

优势在于生成质量高、多样性强;缺点是成本较高,且需要对生成结果做标签一致性验证。


音频增强

音频增强多应用于语音识别 (ASR) 和音频分类任务。

  • 时间拉伸 (Time Stretching):在不改变音高的前提下加速或减速音频,模拟不同语速。
  • 音高偏移 (Pitch Shifting):在不改变时长的前提下升高或降低音高,模拟不同说话人特征。
  • 添加噪声 (Noise Injection):叠加环境噪声(白噪声、街道噪声、室内混响等),提升模型在嘈杂环境下的鲁棒性。
  • 时间偏移 (Time Shifting):随机平移音频波形的起始位置。

SpecAugment

SpecAugment (Google, 2019) 是语音识别中里程碑式的增强方法,直接在 Mel 频谱图上操作:

  • Time Masking:在时间轴上随机遮挡连续若干帧。
  • Frequency Masking:在频率轴上随机遮挡连续若干频带。

SpecAugment 非常简单,但在 ASR 任务上带来了巨大的性能提升,与 Cutout 在图像领域的思想一脉相承。


表格数据增强

表格数据(结构化数据)的增强主要针对类别不平衡问题,通过在特征空间中合成少数类样本来实现。

SMOTE (Synthetic Minority Over-sampling Technique)

SMOTE 的核心思想是在少数类样本之间进行插值:

  1. 对每个少数类样本 \(x_i\),找到其 \(k\) 个最近邻(同为少数类)。
  2. 随机选取一个近邻 \(x_j\),在 \(x_i\)\(x_j\) 的连线上随机生成一个新样本:\(x_{\text{new}} = x_i + \lambda (x_j - x_i)\),其中 \(\lambda \in [0, 1]\)

SMOTE 避免了简单过采样(复制样本)导致的过拟合问题。

ADASYN (Adaptive Synthetic Sampling)

ADASYN 在 SMOTE 基础上引入自适应机制:对于那些更难分类的少数类样本(即周围多数类样本较多的区域),生成更多的合成样本。这使得增强集中于决策边界附近,提升了分类器在困难区域的性能。


对比学习中的数据增强

数据增强在自监督对比学习中扮演核心角色,其质量直接决定了学到的表征质量。

SimCLR 的增强组合策略

SimCLR (Chen et al., 2020) 的关键发现是:单一增强操作不足以学到好的表征,需要组合使用多种增强

SimCLR 的标准增强流水线包括:随机裁剪 + 调整大小、随机颜色失真 (color jittering)、随机高斯模糊。其中,随机裁剪与颜色失真的组合被实验证明是最关键的——单独使用任何一种都会显著降低性能。

直觉上,随机裁剪迫使模型理解图像的全局结构,颜色失真防止模型走"颜色直方图匹配"的捷径。两者组合创造了足够困难的正样本对,推动模型学习更深层的语义特征。


增强的注意事项与最佳实践

保持标签一致性

增强操作不能改变样本的真实标签。例如:对数字"6"做 180 度旋转会变成"9";对情感文本做过度改写可能反转情感极性。在设计增强策略时必须考虑任务语义。

避免过度增强

增强幅度过大会生成脱离真实分布的样本(out-of-distribution),反而损害模型性能。建议从温和的增强参数开始,逐步增大强度并观察验证集指标。

验证集与测试集不做增强

数据增强仅应用于训练阶段。验证集和测试集必须保持原始分布,以准确反映模型的真实泛化能力。Test-Time Augmentation (TTA) 是推理阶段的一种特殊技巧——对测试样本做多次增强并取预测均值,但这属于推理策略而非训练增强。

增强策略应与任务匹配

不同任务对增强的容忍度不同。分类任务通常能承受较强的增强;检测和分割任务中几何变换需同步标注;文本生成任务中增强需格外谨慎以避免引入语法错误。

与正则化方法的关系

数据增强本质上是一种隐式正则化。它与 Dropout、Weight Decay 等显式正则化方法是互补的,在实践中通常联合使用以获得最佳效果。


评论 #