一种图像增广(Image Augmentation)方式 Sample pairing image augmentation

在深度学习领域中常常存在着图像数量不够,或者图像种类不丰富等情况,这一点在医学图像处理中尤其常见,根据我个人经验,使用良好的图像增广(Augmentation)往往能达到事半功倍,甚至是起到决定性的效果。

另外,随着半监督、无监督等算法的新起,对图像增广,以及图像relabel的各种算法也开始出现,有必要在这里讨论下一些奇怪但有效的图像增广方法。

Sample pairing 增广方法来自于奇文Data Augmentation by Pairing Samples for Images Classification;说是文章很奇,是因为初一看这种方法实在是没有道理,但是据作者介绍包括我自己验证确实对于模型有一定程度上的提高。下面开始介绍这篇论文的思想以及我自己对这种方法的思考。

论文通篇描述的是,下面这幅图:

 

一种图像增广(Image Augmentation)方式 Sample pairing image augmentation_第1张图片  

从这里可以看到,作者的增广方式是从数据集中随机挑选出一幅图像A,该图具有标签A(可以理解为图像A的种类,比如图像A是一幅猫的图,那么标签A就是猫),于此同时随机挑选一个图像B,该图具有标签B,B标签可能和A标签相同,也可不同;然后A图B图进行常规的图像增广(旋转、改变颜色、模糊、加入随机噪声等等);然后从A、B中挑出一个patch,该patch从文章给出的尺寸来看几乎就是全图(实际使用中我测试过用全图进行合成,效果没有明显差别);然后将pathA和patchB进行混合,混合方式很简单,就是将A和B在三个通道(RGB)上求均值,得到一个混合后的patch,但是这个patch依然还是使用标签A 作为它的类别,然后将这个合成patch送入网络进行训练。

训练过程中,loss如下图所示,就着这张图来说一下作者的训练策略

一种图像增广(Image Augmentation)方式 Sample pairing image augmentation_第2张图片  

作者按照如下步骤进行训练:

1. 前几个epoch 并不使用该方法进行数据增广(我认为这里是力求让网络从初始状态快速收敛到目标空间附近)

2.在进入中间训练阶段,使用samplepairing 方法进行数据增广 (我认为相当于加入干扰),此时从loss曲线上可以看到,loss曲线马上就表现出反弹的趋势

3.在中间训练阶段,也就是作者上图提到的samplepairing enable intermittently 过程,间歇性关闭samplepairing方法进行训练(我认为相当于在训练引入干扰的同时,有意识的将可能发散的网络拉回)

4.在训练的后续阶段,也就是作者标的fine tuning阶段,去掉samplepairing 方法进行常规训练

据作者描述他在CIFAR和SVHN数据集上可以用较小的数据获得更好的结果,比如在加入sample pairing方法后50个样本的训练效果可以比100个样本但没有加入sample pairing的要好。

 

我的思考:

在小数据集上除了要保证必须的模型指标外,最应该提防的是模型过拟合,这种sample pairing方法且不说如何提高模型指标,从防止模型过拟合的角度来说,这种方法相对于在数据集上做了如下处理

原来的数据集之间假设如下分布

一种图像增广(Image Augmentation)方式 Sample pairing image augmentation_第3张图片

改造后的数据集可以认为如下分布:

一种图像增广(Image Augmentation)方式 Sample pairing image augmentation_第4张图片

也就是说通过它这种非一般的数据增广,将原本小数据集上离散分布的数据之间打通,虽然在某种程度上的打通是不合理的,是无法在真实世界中出现的,但是没关系,毕竟测试的时候不会遇到这些情况;这相当于是在用小数据集通过这种简单的方式来重构,重合出某两个类别物体之间的某种结构上、颜色上、相对位置上的联通性,让模型去做判断识别、最终用一个小数据集来抽象拟合大数据集的情况。比如下面所示:

一种图像增广(Image Augmentation)方式 Sample pairing image augmentation_第5张图片

你可能感兴趣的:(深度学习,图像处理,learning,Image,Augmentation))