一、数据增强产生的背景
深度学习网络在处理计算机视觉任务中获得巨大的成功。而这些网络都有着大量的参数,需要大量的数据来学习网络中的参数,从而避免出现过拟合现象。
要解决过拟合问题,目前实施的策略主要分为两个方向:
1.模型结构的改进
- Dropout 正则化方法
- Batch Normalization 正则化方法
- 迁移学习
2.数据集的改进
-
数据增强(本节关注的内容)
数据增强是一种解决过拟合问题的非常有效的方法。它假定可以通过增强从原始数据集中提取出更多的信息,使得增强后的数据集代表更为全面的数据集合,进而缩小训练集和验证集之间的差距。
举一个例子:如果有图像分类的任务,目的是识别两类汽车。而我们已有的数据集,福特的汽车都朝向左边,雪佛兰的汽车都朝向右边。
而真实应用场景中,福特的汽车也可能朝向右边。当我们喂给当今最优秀的分类网络一张朝向右边的福特时,它的结果大概率仍然会识别为雪佛兰。
原因在哪儿呢? 我们可以说模型过拟合了,学到了不重要的特征,在测试集上不具有良好的泛化能力。改变的一种方式是可以通过翻转使每个类型的车辆都有左边和右边的图像,就使得网络不会过于关注位置信息,更关注外形、轮廓等信息。
二、数据增强的两种形式
2.1 离线增强
离线数据增强的特点是预先对已有数据集进行所有必要的变换,使得增强后的数据数量变为原始数据数量的N倍(N为增强因子)。
离线数据增强的主要考虑因素是与扩增数据带来的额外内存和计算约束。因此,这种方式更适用于小数据集。
2.2 在线增强
在线数据增强的特