数据增强是一种通过减少过拟合的简单技术。在数据增强(data augmentation)中,假设我们处理的数据集有限,而深度学习需要更多的数据,那么我们可以通过数据增强来生成数据。
例如,如果我们有一张照片,使用Keras图像生成器(image generator)可以创建一张新照片。这一过程被称为数据增强,有助于减少过拟合。
数据增强通过使用现有数据创建修改后的数据集副本来人工增加训练集。
增强数据 vs. 合成数据
- 增强数据来自原始数据,进行了些许修改。
- 合成数据是在不使用原始数据集的情况下人工生成的。它通常使用深度神经网络(DNNs)和生成对抗网络(GANs)来生成合成数据。
何时使用数据增强?
防止模型过拟合。
初始训练集太小。
提高模型准确性。
降低标注和清理原始数据集的操作成本。
数据增强的局限性
原始数据集中的偏差会在增强数据中保留。
数据增强的质量保证成本高昂。
需要研究和开发(RnD)来构建具有高级应用的系统。例如,使用GANs生成高分辨率图像可能具有挑战性。
数据增强的应用
- 医疗
- 自动驾驶汽车
- 自然语言处理
- 自动语音识别
Tensorflow和Keras提供的图像增强功能非常方便。
只需添加一个增强层,tf.image或ImageDataGenerator来执行增强。
数据增强在涉及文本或图像分类的机器学习模型中更为常用,因为在这些领域中收集新数据可能很困难。
.flow_from_directory(directory)这些生成器可以与Keras模型方法一起使用,这些方法接受数据生成器作为输入,例如fit_generator、evaluate_generator和predict_generator。