数据增扩对模型的泛化性的提升效果是显著的,本文就提出了一种数据叠加的类型的思想来提升网络的泛化性能。这是ICLR2018上一篇数据增强的文章(额。。。貌似没中)。其思想比较有意思在这里分享一下个人的见解,不到之处请指正!
首先我们看看作者是如何实现数据增扩的,假设存在一张图像A 我们知道它的标签为a,存在另外一张图像B它的标签为b,则
产生的新数据为。我们让C同时具有A和B的标签,即C对应标签a和b。这样我们假设原来的数据集有N张图像,那么能够增加到张图像。显然我们知道C同时具有A和B的标签,那么会导致模型很难区分C属于哪一类,这会导致模型难以收敛。因此,作者在原来的没有做数据增扩的数据集上进行了微调。从而让模型更好的收敛!
作者将这种数据增扩方式称为”模型的正则化器“,这里我们称模型使用增扩数据集训练的过程”称为正则化训练“。我们考虑模型的正则化训练过程的,对于n分类任务文中指出正确分类的最大概率为
具体的表现我们看看实验效果:
我们可以看出这几个数据集上都有提升,但是在训练数据样本较充足的SVHN数据集中的提升不是很明显,其它的数据集上表现还不错。对于ImageNet上作者只取了前100个类别。对于ILSVRC数据集作者使用的是GoogleNet我们看看作者训练SVHN和cifar数据集的模型结构如下所示:
图3和图4是cifar10和ILSVRC上的训练误差和验证误差,可以看出训练loss在微调阶段不做增扩的和做了增扩相比更好,但是在验证损失上我们看出做了数据增扩的比没有做收敛的效果更好。
图5是在ILSVRC数据集上的训练和验证损失随着迭代次数变化而变化的情况,可以看出没做数据增强的验证很快就过拟合了!
而做了数据增强的训练损失波动很大,但是验证误差收敛到更小的值!
图6是比较减少训练样本时比较数据增扩和无增扩的性能,绿色框表示图像与非训练集中的图像进行合成的结果,在大多数情况下其效果比不做任何数据增强的方法更好,此外我们能够看出这种数据增扩方式在训练数据较少的情况下优势更加明显。图7是比较不同的合成方法下的模型的表现,可以看出训练数据与其它所有数据都合成的方法比较好,两个超类是作者定义的一个包含4个类别,另一个包含6个类别,此外需要注意的是这5种数据合成方案中的数据都是随机挑选的。
图8是比较合成图像的数据的标签来自一方和两方的效果对比,发现其效果基本是一样的,这样我们采用合成的数据标签来自一方能够减少一定的训练样本。
图9比较了采用随机加权的方法合成图像与本文的方法对比,一种是均匀采样,一种是按照分布采样。具体的分布的概率分布函数为:
其中是gamma函数
图10是比较使用合成图像进行训练的比例对最终模型效果的影响,可以看出使用率达到90%的step时效果最好。实际上我们可以看出这类数据增强方式,可以看作是正则化过程,让模型先找到一个比较合理的分类网络的权重,然后再微调网络,这有点像meta learning的目的,以一个初始化好的参数网络,在目标任务上进行微调。