数据增强是什么?对训练数据稍作变化,凭空多出更多样本
数据增强(Data Augmentation)是一种扩充训练数据的技术:它通过对现有的数据进行各种合理的变换,生成新的训练样本,从而增加训练数据的数量和多样性,帮助机器学习模型学得更好,尤其是减少过拟合、提高模型在新数据上的表现。
为什么需要数据增强
深度学习模型通常需要大量的训练数据,但收集和标注数据的成本很高。数据不足时,模型容易“死记硬背”训练数据,在训练集上表现很好,遇到新的数据却表现很差,这就是过拟合。数据增强的思路很简单:一张猫的照片,左右翻转一下、稍微旋转一点、调亮一些、裁掉一部分,仍然是一只猫。把这些变换后的图片也作为训练数据,模型就能见到更多样的情况,学会抓住本质的特征,而不是记住某张图片的细节。
图像的数据增强
几何变换:水平翻转、旋转、缩放、随机裁剪、平移。颜色变换:调整亮度、对比度、饱和度、色调,转为灰度。加入噪声和模糊。遮挡:随机遮住图片的一部分,比如 Cutout 方法,让模型学会在物体部分被遮挡时也能识别。混合样本:Mixup 把两张图片按比例叠加,标签也按比例混合;CutMix 把一张图片的一块区域剪下来贴到另一张图片上。还有通过算法自动搜索最佳增强策略的方法,比如 AutoAugment、RandAugment。
需要注意的是,变换必须保持标签不变:比如识别手写数字时,把“6”旋转 180 度就变成了“9”,这种变换就不能用;识别文字时也不能做左右翻转。
其他类型数据的增强
文本:同义词替换、随机插入或删除词语、调整语序,以及回译,也就是把句子翻译成另一种语言再翻译回来,得到意思相同但表达不同的句子。语音:调整语速和音调、加入背景噪声、模拟不同的房间混响,以及在频谱图上遮盖部分时间或频率的 SpecAugment 方法。表格数据:对少数类别的样本进行过采样,比如 SMOTE 方法通过在少数类样本之间插值来生成新的样本,用来缓解类别不均衡的问题。
生成式 AI 带来的新方式
如今,越来越多的人用生成式模型来合成训练数据:用图像生成模型生成各种场景的图片,用大语言模型生成多样化的问答和对话数据。这种合成数据已经成为训练大模型的重要数据来源之一。但合成数据也需要进行质量筛选,否则可能引入错误和偏差。此外,在对比学习等自监督方法中,数据增强还扮演着核心角色:对同一张图片做两种不同的增强,让模型学会把它们识别为“同一个东西”,从而在没有标签的情况下学到有用的特征。