首页天道酬勤()

()

admin 12-02 03:12 256次浏览

作者|张宁(哈尔滨工业大学SCIR)

编辑|唐莉

本文转载自微信官方账号哈尔滨工业大学SCIR。

数据扩充是一种通过使有限的数据产生更多等价的数据来人为扩展训练数据集的技术。它是克服训练数据不足的有效手段,广泛应用于深度学习的各个领域。然而,由于生成的数据和真实数据之间的差异,不可避免地会带来噪声问题。

为什么需要数据增强

深度神经网络在许多任务中表现良好,但这些网络通常需要大量数据来避免过度拟合。遗憾的是,很多场景无法获得大量数据,比如医学图像分析。

数据增强技术就是为了解决这个问题而存在的,它解决了数据有限的问题。数据增强是一组技术,可以提高训练数据集的大小和质量,以便您可以使用它们来构建更好的深度学习模型。

在计算视觉领域,生成增强图像相对容易。即使引入了噪声或图像的一部分被裁剪,模型仍然可以对图像进行分类。数据增强有一系列简单有效的方法可供选择。计算视觉中有一些用于数据增强的机器学习库,比如im gaug(https://github.com/aleju/im gaug),它封装了很多数据增强算法,为开发者提供了便利。

但是在自然语言处理领域,由于自然语言本身是一个离散的抽象符号,微小的变化可能导致意义的巨大偏差,因此数据增强算法并不常用。很多自然语言处理任务在实际落地时往往会遇到数据不足的问题,自然语言的数据增强算法值得我们深入研究。接下来,我们先介绍计算视觉领域的数据增强方法,再介绍自然语言处理领域的数据增强算法,希望对大家有所启发。

计算视觉数据增强

计算视觉中的数据增强算法大致可以分为两类:第一类是基于基础图像处理技术的数据增强,第二类是基于深度学习的数据增强算法。

首先,下面介绍基础图像处理技术的数据增强方法——。

几何变换:由于训练集和测试集之间可能存在潜在的位置偏差,模型很难达到测试集中训练集的效果。几何变换能有效克服训练数据中的位置偏差,易于实现。很多图像处理库都包含这个功能。

色彩空间:图片在输入电脑之前通常会被编码为快乐巨人(高度宽度色彩通道),因此可以在色彩通道空间进行数据增强,比如关闭某个色彩通道或者改变亮度值。

旋转/反射:选择一个角度并左右旋转图像,以更改图像内容的方向。应该仔细考虑旋转的角度。角度过大或过小都不合适。合适的角度是1度到20度。

噪声注入:从高斯分布采样的随机值矩阵被添加到图像的RGB像素。给图像添加噪声可以帮助CNN学习更强大的功能。

内核过滤器:内核过滤器是图像处理中非常流行的技术,例如锐化和模糊。通过将具有特定函数的核滤波器与图像卷积,可以获得增强的数据。直观地,通过数据增强生成的图像可以使模型对这种类型的图像更加鲁棒。

混合图像:通过平均图像像素值将图像混合在一起是一种非常违反直觉的数据增强方法。对于人们来说,混合图像生成的数据似乎毫无意义。虽然这种方法缺乏可解释性,但作为一种简单有效的数据增强算法,已经有一系列相关的研究。Inoue通过混合图像每个像素点的像素值来混合图像,Summers和Dinneen尝试用非线性方法混合图像,Takahashi和Matsubara通过随机图像裁剪和拼接来混合图像,后期的mixup方法取得了很好的效果。

随机擦除:随机擦除是钟等人开发的一种数据增强技术,受Dropout机制的启发,他们随机选择图像的一部分,删除图像的这一部分。该技术可以在图像部分遮挡时提高模型的性能,并且可以保证网络关注的是整个图像,而不仅仅是其中的一部分。

缩放:将图像按一定比例放大缩小,不改变图像的内容,但可以增加模型的泛化性能。

平移:向左、向右、向上或向下移动图像可以避免数据中的位置偏差。例如,在人脸识别数据集中,如果所有图像都居中,使用这种数据增强方法可以避免可能的位置偏差引起的误差。

翻转:通常是围绕水平或垂直轴翻转图像。这种扩展是最简单的扩展,并且已经被证明对ImageNet数据集有效。

裁剪:如果输入数据集的大小发生变化,裁剪可以作为数据预处理的一种手段。通过裁剪图像的中心色块,可以获得新的数据。在实际使用中,这些数据增强算法使用一组数据增强策略,而不仅仅是一组。在《自动增强》一文中,作者试图使模型自动选择数据增强策略。

第二类是基于深度学习的数据增强算法——。

特征空间增强:神经网络可以转换这种高维图像

向量映射为低维向量,之前讨论的所有图像数据增强方法都应用于输入空间中的图像。现在可以在特征空间进行数据增强操作,例如:SMOTE算法,它是一种流行的增强方法,通过将k个最近的邻居合并以形成新实例来缓解类不平衡问题。

对抗生成(Adversarial Training):对抗攻击表明,图像表示的健壮性远不及预期的健壮性,Moosavi-Dezfooli等人充分证明了这一点。对抗生成可以改善学习的决策边界中的薄弱环节,提高模型的鲁棒性。

基于GAN的数据增强(GAN-based Data Augmentation):使用 GAN 生成模型来生成更多的数据,可用作解决类别不平衡问题的过采样技术。

神经风格转换(Neural Style Transfer):通过神经网络风格迁移来生成不同风格的数据,防止模型过拟合。

如果想要阅读更多的细节,请参考这篇文章:

https://link.springer.com/article/10.1186/s40537-019-0197-0

自然语言处理数据增强

在自然语言处理领域,被验证为有效的数据增强算法相对要少很多,下面我们介绍几种常见方法。

同义词词典(Thesaurus):Zhang Xiang等人提出了Character-level Convolutional Networks for Text Classification,通过实验,他们发现可以将单词替换为它的同义词进行数据增强,这种同义词替换的方法可以在很短的时间内生成大量的数据。

随机插入(Randomly Insert):随机选择一个单词,选择它的一个同义词,插入原句子中的随机位置,举一个例子:“我爱中国” —> “喜欢我爱中国”。

随机交换(Randomly Swap):随机选择一对单词,交换位置。

随机删除(Randomly Delete):随机删除句子中的单词。

语法树结构替换:通过语法树结构,精准地替换单词。

加噪(NoiseMix):(https://github.com/noisemix/noisemix),类似于图像领域的加噪,NoiseMix提供9种单词级别和2种句子级别的扰动来生成更多的句子,例如:这是一本很棒的书,但是他们的运送太慢了。->这是本很棒的书,但是运送太慢了。

情境增强(Contextual Augmentation):这种数据增强算法是用于文本分类任务的独立于域的数据扩充。通过用标签条件的双向语言模型预测的其他单词替换单词,可以增强监督数据集中的文本。

生成对抗网络:利用生成对抗网络的方法来生成和原数据同分布的数据,来制造更多的数据。在自然语言处理领域,有很多关于生成对抗网络的工作:

Generating Text via Adversarial Training

GANS for Sequences of Discrete Elements with the Gumbel-softmax Distribution

SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient

回译技术(Back Translation):回译技术是NLP在机器翻译中经常使用的一个数据增强的方法。其本质就是快速产生一些翻译结果达到增加数据的目的。回译的方法可以增加文本数据的多样性,相比替换词来说,有时可以改变句法结构等,并保留语义信息。但是,回译的方法产生的数据严重依赖于翻译的质量。

扩句-缩句-句法:先将句子压缩,得到句子的缩写,然后再扩写,通过这种方法生成的句子和原句子具有相似的结构,但是可能会带来语义信息的损失。

无监督数据扩增(Unsupervised Data Augmentation):通常的数据增强算法都是为有监督任务服务,这个方法是针对无监督学习任务进行数据增强的算法,UDA方法生成无监督数据与原始无监督数据具备分布的一致性,而以前的方法通常只是应用高斯噪声和Dropout噪声(无法保证一致性)。(https://arxiv.org/abs/1904.12848)

哈工大SCIR近年来在数据增强领域发表了若干论文,例如我中心主任zsdwt教授在2017年ACL会议中提出一种简单而新颖的方法来自动生成零指代消解的大规模伪数据[12]。淡淡的黑猫等人于2018年COLING会议中提出了对话语义理解的序列到序列数据增强,相比之前的工作,在生成新语句时不考虑语句间关系,他们利用训练数据中与一个语句具有相同语义的其他句子,提出了基于序列到序列生成的数据增强框架[13]。phdbg等人提出一种数据增强算法来提升模型判断问题是否是可回答的问题的能力[14]。

此外,这个仓库(https://github.com/quincyliang/nlp-data-augmentation)中介绍了一些自然语言处理中的数据增强技术。

总结

数据增强是增大数据规模,减轻模型过拟合的有效方法,但是,数据增强不能保证总是有利的。在数据非常有限的域中,这可能导致进一步过度拟合。因此,重要的是要考虑搜索算法来推导增强数据的最佳子集,以便训练深度学习模型。

虽然相比于计算视觉,自然语言处理领域中的数据增强应用更少,难度也要更大,但是同时也意味着更大的机遇。

参考文献

[1] Zhang, X., Zhao, J., & LeCun, Y. (2015). Character-level convolutional networks for text classification. In Advances in neural information processing systems (pp. 649-657).

[2] Shorten, C., & Khoshgoftaar, T. M. (2019). A survey on image data augmentation for deep learning. Journal of Big Data, 6(1), 60.

[3] Jung, A. (2015). Image augmentation for machine learning experiments.

[4] DeVries, T., & Taylor, G. W. (2017). Dataset augmentation in feature space. arXiv preprint arXiv:1702.05538.

[5] Xie, Q., Dai. Z., Hovy. E,. Luong. M., & Le. Q. (2019). Unsupervised Data Augmentation for Consistency Training. arXiv preprint arXiv:1904.12848.

[6] Chawla, N. V., Bowyer, K. W., Hall, L. O., & Kegelmeyer, W. P. (2002). SMOTE: synthetic minority over-sampling technique. Journal of artificial intelligence research, 16, 321-357.

[7] Berthelot, D., Carlini, N., Goodfellow, I., Papernot, N., Oliver, A., & Raffel, C. (2019). Mixmatch: A holistic approach to semi-supervised learning. arXiv preprint arXiv:1905.02249.

[8] Wei, J. W., & Zou, K. (2019). Eda: Easy data augmentation techniques for boosting performance on text classification tasks. arXiv preprint arXiv:1901.11196.

[9] Yu, L., Zhang, W., Wang, J., & Yu, Y. (2017, February). Seqgan: Sequence generative adversarial nets with policy gradient. In Thirty-First AAAI Conference on Artificial Intelligence.

[10] Kusner, M. J., & Hernández-Lobato, J. M. (2016). Gans for sequences of discrete elements with the gumbel-softmax distribution. arXiv preprint arXiv:1611.04051.

[11] Jing, Y., Yang, Y., Feng, Z., Ye, J., Yu, Y., & Song, M. (2019). Neural style transfer: A review. IEEE transactions on visualization and computer graphics.

[12] Liu, T., Cui, Y., Yin, Q., Zhang, W., Wang, S., & Hu, G. (2016). Generating and exploiting large-scale pseudo training data for zero pronoun resolution. arXiv preprint arXiv:1606.01603.

[13] Hou, Y., Liu, Y., Che, W., & Liu, T. (2018). Sequence-to-sequence data augmentation for dialogue language understanding. arXiv preprint arXiv:1807.01554.

[14] Zhu, H., Dong, L., Wei, F., Wang, W., Qin, B., & Liu, T. (2019). Learning to Ask Unanswerable Questions for Machine Reading Comprehension. arXiv preprint arXiv:1906.06045.

[15] Inoue, H. (2018). Data augmentation by pairing samples for images classification. arXiv preprint arXiv:1801.02929.

[16] Cubuk, E. D., Zoph, B., Mane, D., Vasudevan, V., & Le, Q. V. (2018). Autoaugment: Learning augmentation policies from data. arXiv preprint arXiv:1805.09501.

[17] Zhong, Z., Zheng, L., Kang, G., Li, S., & Yang, Y. (2017). Random erasing data augmentation. arXiv preprint arXiv:1708.04896.

[18] Summers, C., & Dinneen, M. J. (2019, January). Improved mixed-example data augmentation. In 2019 IEEE Winter Conference on Applications of Computer Vision (WACV) (pp. 1262-1270). IEEE.

[19] Takahashi, R., Matsubara, T., & Uehara, K. (2019). Data augmentation using random image cropping and patching for deep CNNs. IEEE Transactions on Circuits and Systems for Video Technology.

[20] Zhang, Y., Gan, Z., & Carin, L. (2016). Generating text via adversarial training. In NIPS workshop on Adversarial Training (Vol. 21).

短信供应商怎么选择?linux下运行文件的命令是什么-linux运维iOS项目中的version和build详解云分发网络有什么用处?微信小程序如何实现自定义弹窗组件Android编程自定义Notification实例分析等保咨询 UDBCP
图形变换是什么(图形变换的基本方法有) 中心对称点(中心对称的定义)
相关内容