数据增强(data augmentation)在计算机视觉领域是一种非常强大的降低过拟合的技术。
计算机视觉在深度学习中之所以过拟合,原因是学习样本太少,导致无法训练出能够泛化到新数据的模型。如果拥有无限的数据,那么模型能够观察到数据分布的所有内容,这样就不会过拟合。
数据增强是从现有的训练样本中生成更多的训练数据,其方法是利用多种能够生成可信图像的随机变换来增加(augment)样本。其目标是,模型在训练时不会两次查看到完全相同的图像。这让模型能观察到数据的更多内容,从而具有更好的泛化能力。
Keras中可以通过ImageDataGenerator实例读取的图像执行多次随机变换来实现。
from keras.preprocessing.image import ImageDataGenerator
datagen = IamgeDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest'
)
参数含义:
1)rotation_range:角度值(在0~180范围内),表示图像随机旋转的角度范围。
2)width_shift和height_shift是图像在水平或垂直方向上平移的范围(相对于总宽度或总高度的比例)
3)shear_range是随机错切变换的角度