数据增强基础
通过人工方式增加训练数据的多样性,从而提高模型的泛化能力,使其能够在未见过的数据上表现得更好。
数据增强方法
几何变换
-
旋转、裁剪
颜色变换
-
灰度图、ColorJitter、颜色反转
自动增强
-
自动增强: AutoAugment
-
随机增强: RandAugment
进阶数据增强方法
Mixup
将两个不同的图像及其标签按照一定的比例混合
MixUp方法中混合比例是一个超参数alpha。alpha是一个在0到1之间的值。例如,alpha=0.5,意味着两个图像各占新图像的一半。
Cutmix
将一个图像的一部分剪切并粘贴到另一个图像上来创建新的训练样本。
根据剪切区域的大小来调整两个图像的标签。
方法优点:
1.增加数据多样性
2.减少过拟合:可以减少模型对特定训练样本的依赖
3.提高泛化能力:可以帮助模型学习到更加泛化的特征表示,从而提高模型在未见过的数据上的表现。
实践
模型:EfficientNet-B0
epoch=2; batch_size=64; 数据量10w
1.不进行数据增强
2.水平或垂直翻转图像
3.随机灰度变换
在验证集上表现好!于是又跑了一次全数据集
最终得分:0.98253
引入随机灰度竟然得分更高!有点奇怪。感觉验证集数据可能在色度变换上与训练集存在一定差异(猜测)。尝试一下随机反转图像的颜色的数据增强。旨在提高模型泛化能力!
4.随机反转图像的颜色
10w:
全数据集:
最终得分:0.98672
结果是令人欣慰的!
5.随机反转图像的颜色+水平或垂直翻转图像(混合)
最终得分:0.98151
这是说明水平或垂直翻转图像效果反而不好了吗,当然模型也可能存在一定误差。