图像分类的数据集非常大。尽管如此,依然需要数据增强来提高模型泛化能力。数据增强一般包括重新缩放图像的随机裁剪、随机水平翻转、随机 RGB 颜色与亮度变换等技术。此外,也存在不同的缩放、裁剪等技术(即单尺度训练 vs 多尺度训练)。在测试阶段进行多裁剪评估也是经常使用的途径,不过该方案的计算成本更昂贵且性能改进有限。请注意,随机缩放和裁剪的目标是在不同尺寸和位置上学习对象的重要特征。
Keras 并未实现所有数据增强技术的开箱即用,但可以通过 ImageDataGenerator 模块的预处理技术轻松实现。Andrew Howard 提出的数据增强技术更深入地解释了这些关键性的方法,具体参见文章Some Improvements on Deep Convolutional Neural Network Based Image Classification
VGG的数据增强
- 训练阶段
使用了Multi-Scale的方法做数据增强,将原始图片缩放到不同的尺寸S,然后再随机裁剪224×224的图片 - 测试阶段
也采用了Multi-Scale的方法,将图像scale到一个尺寸Q,并将图片输入卷积网络计算,然后再最后一个卷积层使用滑窗的方式进行分类预测,将不同窗口的分类结果平均,再将不同尺寸Q的结果平均,得到最后的结果。这样可以提高数据的利用率和预测准确率。