为何要进行数据增强呢?
在深度学习中,一般要求样本的数量要充足,样本数量越多,训练出来的模型效果越好,模型的泛化能力越强。但是实际中,样本数量不足或者样本质量不够好,这就要对样本做数据增强,来提高样本质量。
关于数据增强的作用总结如下:
1,增加训练的数据量,提高模型的泛化能力
2,增加噪声数据,提升模型的鲁棒性
数据增强的方法(我们以图像数据为例):
1,数据翻转:数据翻转是一种常用的数据增强方法,这种方法不同于旋转 180 °。这种方法是做一种类似于镜面的翻折。
2,数据旋转:旋转就是顺时针或者逆时针的旋转,注意在旋转的时候, 最好旋转 90 - 180 度否则会出现尺度的问题
3,图像缩放:图像可以被放大或缩小。放大时,放大后的图像尺寸会大于原始尺寸。大多数图像处理架构会按照原始尺寸对放大后的图像进行裁切而图像缩小会减小图像尺寸,这使我们不得不对图像边界之外的东西做出假设。
4,图像剪裁:这种方法更流行的叫法是随机裁剪,我们随机从图像中选择一部分,然后降这部分图像裁剪出来,然后调整为原图像的大小
5,图像平移:平移是将图像沿着 x 或者 y 方向 (或者两个方向) 移动。我们在平移的时候需对背景进行假设,比如说假设为黑色等等,因为平移的时候有一部分图像是空的,由于图片中的物体可能出现在任意的位置,所以说平移增强方法十分有用。
6,添加噪声:过拟合通常发生在神经网络学习高频特征的时候 (因为低频特征神经网络很容易就可以学到,而高频特征只有在最后的时候才可以学到) 而这些特征对于神经网络所做的任务可能没有帮助,而且会对低频特征产生影响,为了消除高频特征我们随机加入噪声数据来消除这些特征。
什么是正则化?
链接:https://www.cnblogs.com/jianxinzhou/p/4083921.html
L1和L2正则化
正则化(Regularization)是机器学习中一种常用的技术,其主要目的是控制模型复杂度,减小过拟合。最基本的正则化方法是在原目标(代价)函数 中添加惩罚项,对复杂度高的模型进行“惩罚”。
https://zhuanlan.zhihu.com/p/29360425
dropout
Dropout可以作为训练深度神经网络的一种trick供选择。在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象
https://zhuanlan.zhihu.com/p/38200980
本文主要介绍四种数据增广的方法:mixup,mosaic,cutmix,cutout
Cutout
论文地址:https://arxiv.org/abs/1708.04552
开源代码github地址:https://github.com/uoguelph-mlrg/Cutout
Cutout 是直接对输入的图像进行遮挡。
作者在论文中也进行了说明,这样做法有以下两点优势:
(1) 通过 Cutout 可以模拟真实场景中主体被部分遮挡时的分类场景;
(2) 可以促进模型充分利用图像中更多的内容来进行分类,防止网络只关注显著性的图像区域,从而发生过拟合。
l链接:https://blog.csdn.net/Jamence/article/details/104831291
Mixup
论文地址:https://arxiv.org/pdf/1710.09412.pdf
开源代码github地址:https://github.com/facebookresearch/mixup-cifar10
Mixup 是最先提出的图像混叠增广方案,其原理简单、方便实现,不仅在图像分类上,在目标检测上也取得了不错的效果。
为了便于实现,通常只对一个 batch 内的数据进行混叠,在 Cutmix 中也是如此。
论文的贡献在于提出了一个一般性的领域分布,称作 mixup:
μ(x˜,y˜|xi,yi)=1n∑jnEλ[δ(x˜=λ⋅xi+(1−λ)⋅xj,y˜=λ⋅yi+(1−λ)⋅yj)],μ(x,y|xi,yi)=1n∑jnEλ[δ(x=λ⋅xi+(1−λ)⋅xj,y=λ⋅yi+(1−λ)⋅yj)],
其中, λ∼Beta(α,α)λ∼Beta(α,α), α∈(0,∞)α∈(0,∞)。
x˜=λxi+(1−λ)xjx~=λxi+(1−λ)xj
y˜=λyi+(1−λ)yjy~