第3章 数据增强总览:分类与策略
数据增强这个事儿,说白了就是给模型「喂」更多样化的数据。我刚开始做多模态项目时,总觉得数据不够就多采点呗,后来发现——采集成本高得吓人,而且很多场景根本采不到。这时候,数据增强就成了性价比最高的选择。
这一章咱们把数据增强的「家底」翻一翻。我会从两个维度来拆解:一是按学习范式分(有监督、自监督、无监督),二是按执行时机分(在线增强、离线增强)。这两个维度搞清楚了,后面选策略时就不会抓瞎。
3.1 按学习范式分类
为什么先按学习范式分?因为不同的训练方式,对增强的需求完全不同。我踩过这个坑——在自监督任务里用了大量有监督的增强策略,结果把对比学习的正负样本关系搞乱了,模型直接崩掉。
3.1.1 有监督数据增强
有监督增强,就是咱们手里有标签,增强后标签也跟着变。比如图像翻转了,类别标签不变;但如果是目标检测,框的坐标就得跟着变。
常见的操作包括:
- 几何变换: 旋转、翻转、裁剪、缩放。我做过一个车牌识别项目,只用水平翻转就把准确率从82%提到了91%。
- 颜色变换: 亮度、对比度、饱和度调整。注意别调过头,否则语义可能变——比如把「红灯」调成「绿灯」。
- 噪声注入: 高斯噪声、椒盐噪声。适合提升模型的鲁棒性。
- 混合类增强: MixUp、CutMix。这类操作会生成「混合标签」,比如0.7的猫+0.3的狗。
3.1.2 自监督数据增强
自监督学习这两年火得不行。它的核心思路是:让模型自己从数据中找「监督信号」。数据增强在这里不是锦上添花,而是核心引擎。
你想想看,SimCLR、MoCo、BYOL这些经典方法,哪个不是靠数据增强构造正负样本对的?
| 方法 | 增强策略 | 我的经验 |
|---|---|---|
| SimCLR | 随机裁剪+颜色抖动+高斯模糊 | 颜色抖动强度很敏感,调大了正样本对差异太大,模型学不到共性 |
| MoCo v3 | 随机裁剪+水平翻转+颜色抖动 | 我习惯把裁剪比例设到0.2-1.0,效果最稳 |
| BYOL | 更强的颜色抖动+灰度化+模糊 | 灰度化对纹理敏感的任务帮助很大 |
自监督增强有个关键点:增强后的两个视图,必须来自同一张原始图。这个「同一来源」的约束,决定了你不能用那些会改变语义的操作。
3.1.3 无监督数据增强
无监督增强,说白了就是没有标签,也没有对比学习的正负样本约束。增强的目的很纯粹——让模型学到更鲁棒的特征表示。
常见的做法包括:
- 生成式增强: 用GAN、VAE生成新样本。我做过一个工业缺陷检测项目,真实缺陷样本只有200张,用StyleGAN生成了5000张,检测率从65%提到了89%。
- 随机掩码: 像MAE那样,随机遮掉一部分图像块,让模型去重建。这其实也是一种增强。
- 数据扰动: 对输入做随机变换,但不需要保持任何标签一致性。
3.2 在线增强 vs 离线增强
这个维度其实更「工程化」。说白了就是:增强操作是在训练过程中实时做,还是提前做好存起来。
3.2.1 离线增强
离线增强,就是先把原始数据扩增N倍,存到磁盘上,训练时直接读。
优点:
- 训练速度快,因为数据预处理已经做完了
- 增强结果可复现,方便调试
- 适合计算资源受限的场景
缺点:
- 磁盘占用大——扩增10倍,磁盘就多占10倍空间
- 数据多样性有限——每个epoch看到的增强版本是固定的
- 灵活性差——想换增强策略,得重新生成一遍
3.2.2 在线增强
在线增强,就是每个batch实时做增强。PyTorch的torchvision.transforms、TensorFlow的tf.image都是干这个的。
优点:
- 数据多样性无限——每个epoch看到的增强版本都不同
- 磁盘占用小——只存原始数据
- 灵活——可以动态调整增强策略
缺点:
- 增加训练时间——CPU/GPU要做实时计算
- 结果不可完全复现——除非固定随机种子
3.2.3 怎么选?
我个人习惯这样判断:
- 数据量小于1万: 离线增强,直接扩到10万级别
- 数据量1万-10万: 在线增强为主,配合少量离线增强做验证集
- 数据量大于10万: 纯在线增强,除非有特殊需求
- 多模态场景: 建议在线增强,因为不同模态的增强策略需要协同调整
3.3 知识体系总览
下面这张图,把咱们这一章的核心内容串起来了。我画图时习惯把「分类」和「策略」分开,这样后面选方案时思路更清晰。
3.4 多模态场景下的特殊考量
多模态模型的数据增强,比单模态复杂得多。为什么?因为不同模态的增强策略需要「对齐」。
举个例子:图像-文本匹配任务。你给图像做了随机裁剪,文本要不要跟着变?如果文本描述的是「一只白猫在沙发上」,你把猫裁掉了,文本却不变,那模型就学错了。
我常用的策略:
- 图像+文本: 图像做颜色抖动、高斯模糊,文本保持不变。因为颜色变化不影响文本语义。
- 图像+音频: 图像做裁剪,音频做时间拉伸。但要注意——裁剪后的图像和拉伸后的音频,在时间上要对齐。
- 视频+文本: 视频做时序裁剪,文本只保留对应时间段的描述。这个我在做视频理解时踩过坑——不裁剪文本,模型会把「前面的人在跑步」和「后面的人在走路」混在一起。
3.5 本章小结
这一章咱们把数据增强的「家底」翻了个遍。记住几个关键点:
- 按学习范式选策略: 有监督要保标签,自监督要保正负样本关系,无监督最自由
- 按执行时机选方案: 小数据离线,大数据在线,多模态优先在线
- 多模态要特别注意: 跨模态语义一致性是底线