何为数据增强

数据增强是通过已经获得的数据来产生更多的数据,等质量训练样本的增强会提高模型的精度。这种处理手段常被用于数据不足的场景中。

模型需要大量的数据才可能在许多任务中获得较为满意的结果,但是,现实生活中,很多场景无法获得大量的样本数据(如医学图像等),这时,使用数据增强可以解决这个问题,提高样本数据的数量和质量。有一些机器学习库实现了数据增强,如imgaug对计算机视觉的图像数据进行了增强。

但是在自然语言处理领域中,由于自然语言本身是离散的抽象符号,微小的变化就可能会导致含义的巨大偏差,所以数据增强算法并不常用。很多自然语言处理任务在真正落地的时候,往往会遇到数据量不足的问题,自然语言的数据增强算法值得我们深入研究。

CV领域图像数据增强

图像处理的数据增强方法:

  • 几何变换:克服训练数据中存在的位置偏差
  • 颜色变换:在色彩通道空间将某种颜色通道关闭,或者改变亮度值
  • 旋转反射变换:旋转一个角度(需慎重,1-20°较合适),或者改变内容朝向
  • 缩放变换:按照一定的比例进行放大和缩小
  • 移动变换:向左,向右,向上或向下移动图像
  • 翻转变换:水平或者竖直的轴进行图像翻转操作
  • 裁剪:直接裁剪部分图片
  • 随机擦除:随机选取图片中的一部分,将这部分图片删除(类似mask)
  • 噪声注入:从高斯分布中采样出的随机值矩阵加入到图像的RGB像素中
  • 内核过滤器:将特定功能的内核滤镜与图像进行卷积操作(如锐化和模糊)
  • 混合图像:通过平均图像像素值将图像混合在一起(每个像素点混合像素值、非线性方法混合图像、随机图像裁剪和拼接来混合图像……)
  • 特征空间增强:在特征空间(将图像这种高维向量映射为低维向量)进行数据增强操作,如SMOTE算法
  • 对抗生成:使用对抗生成样本,提高样本质量
  • 基于GAN的数据增强:使用GAN生成模型生成数据
  • 神经风格转换:神经网络风格迁移来生成不同风格的数据

NLP领域文本数据增强

NLP领域被验证为有效的数据增强方法不多,常见方法如下:

  • 同义词词典:将单词替换为它的同义词,可在短时间内生成大量数据
  • 随机插入:随机选择一个单词,选择它的一个同义词,插入原句子中的随机位置
  • 随机交换:随机选择一对单词,交换位置
  • 随机删除:随机删除句子中的单词
  • 语法树结构替换:通过语法树结构,精准地替换单词
  • 加噪:类似于图像领域的加噪,NoiseMix提供9种单词级别和2种句子级别的扰动来生成更多的句子
  • 情境增强:用于文本分类任务的独立于域的数据扩充,通过用标签条件的双向语言模型预测的其他单词替换单词
  • 生成对抗网络:利用生成对抗网络的方法来生成和原数据同分布的数据
  • 回译技术:是机器翻译中经常使用的一个数据增强的方法,通过快速产生一些翻译结果达到增加数据的目的。有时可以改变句法结构等,并保留语义信息
  • 扩句-缩句-句法:先将句子压缩,得到句子的缩写,然后再扩写,通过这种方法生成的句子和原句子具有相似的结构,但是可能会带来语义信息的损失。
  • 无监督数据扩增:UDA方法生成无监督数据与原始无监督数据具备分布的一致性