Mixed Sample Data Augmentation (MSDA)
有很多数据增强的方式,比如传统的对图像进行旋转裁剪等,这里介绍几种新的且在图像任务中比较有效的数据增强方式,例如Cutmix、Mixup以及FMix
1 MSDA介绍
MSDA就是混合图像数据增强,主要分为两大类,一种是通过插值的方式进行,另一种是通过加mask的方式进行。
1.1 interpolation
对于第一种比较有名的是MixUp,它就是通过一定的比例将两张图象进行插值融合,网络的pipline如图1-1所示。
图1-1
Mixup算法的核心思想是按一定的比例随机混合两个训练样本及其标签。这种混合方式不仅能够增加样本的多样性,并且能够使不同类别的决策边界过渡更加平滑,减少了一些难例样本的误识别,模型的鲁棒性得到提升,训练时也比较稳定。
使用MixUp对图像进行增强的示例如图1-2所示。
图1-2
右图是将猫和狗进行一定比例的融合,这时候,标签也会变成软标签。
1.2 mask
另一种MSDA的方式是给图像加掩码,例如Cutmix,如图1-3所示。
图1-3
首先是随机生成box将图片一部分cut out出来,接下来用另一个数据的图像对这部分进行填充,生成新的图像
2、问题分析
2.1 图像增强的原则
在不破坏数据分布的前提下,尽可能的扩大数据空间。这里不破坏数据分布,我的理解就是这里说的一方面是整体的数据类别的分布,另一方面对于单张图片来说,数据增强不能破坏原有的像素之间关联信息的一个分布(就是自己的一个感觉,虽然cutmix直接把图像给扣了,但后面会解释一下)。
2.2 interpolation以及mask方法比对
在论文中通过实验,发现MixUp破坏了原有的数据分布,cutmix没有破坏数据的分布。论文中的解释是这样的:
Our principle finding is that the masking MSDA approach
works because it effectively preserves the data distribution in
a way that interpolative MSDAs do not, particularly in the
perceptual space of a Convolutional Neural Network (CNN).
This derives from the fact that each convolutional neuron at a
particular spatial position generally encodes information from
only one of the inputs at a time. This could also be viewed
as local consistency in the sense that elements that are close
to each other in space typically derive from the same data
point.
大致意思就是说,虽然在Cutmix中将图片扣出来一块,但是对于CNN来说有局部一致性,我理解的是,CNN处理MixUp的时候,因为像素是叠加的,因此对于CNN会破坏pixels的distribution,相反对于cutmix虽然扣掉一部分,但还是保留了原图的distribution。
2.3 Cutmix存在的问题
Cutmix都是用矩形框来cut out,会有一定的限制在里面。
2.4 是不是只要抠图不直接叠加像素都可以保持像素distribution不变
这个问题我觉得自己提的不错,论文中也给出了解释,应该是单一的连续的区域,才有这种效果。
3、FMix
经过上面的问题分析,mask要好于interpolation的方式,但是现在的Cutmix是存在一些问题的,因此FMix其实是对Cutmix的一种改进。
FMix就是通过对图像高低频进行划分,生成binary的两个区域,针对这两个区域进行填充,如图3-1所示。
图3-1
从上图中可以很清晰的看出来,FMix的整个过程
另外,结尾附上FMix工程链接,好用:https://github.com/ecs-vlc/FMix
好久没更新博客了,确实六月份毕业季有点心不在焉,七月要好好加油了
另外,封面图是郑州的 只有河南,戏剧幻城 十分震撼,安利一波