The Effectiveness of Data Augmentation in Image Classification using Deep
Abstract
本文的主要工作是对比各种数据增强技术的效果,其中包括传统的数据增强方法和一些使用GAN生成新数据的方法。最后,作者提出了一个新的方法,可以让网络学习如何进行数据增强来提高自己的性能。
Introduction
首先,作者基于自己的小网络训练一个baseline。然后,利用经典的数据增强技术再次训练该网络。接着,使用cycleGAN生成数据来训练网络。最后,提出了一种新的方法,将分类神经网络和风格迁移相结合来替代传统的数据增强技术。以上方法都会在验证集上测试其性能。
Related work
这一部分的内容是简单的回顾以往所使用的数据增强的方法。
最主要的方法是数据扭曲,利用已有的数据进行直接变换得到新的数据。比较常用的就是在形状和颜色做出改变,这写变化都可以理解成一种仿射变换:
y
=
W
x
+
b
y=Wx+b
y=Wx+b
GAN因为可以直接生成新数据,所以也被用来做数据增强。但GAN需要先生成数据对训练集进行扩充,然后再训练分类器。
最后,作者提出了一种可以同时进行数据增强和分类任务的模型。他们训练了一个风格迁移模型来学习怎样最有效的生成数据。其目标不仅是通过数据增强来减少过拟合,而且是在某种程度上通过数据增强后可以更好地改进分类器。
Method
两种模式:
-
在训练网络之前生成数据
使用GANs和基础变换创建数据集,然后训练网络
-
试图通过预先设置的神经网络学习增强
输入两个随机图片,输出一个图片,该图像在样式上或背景上都与训练集中给定的图像相匹配。将这个生成的图像与原图像一起喂给分类器进行训练。其动机是训练模型来识别给定数据集的最佳数据增强方案。
Traditional Transformations
仿射变换:平移,放大缩小,旋转,翻转,扭曲,遮挡
Generative Adversarial Networis
风格迁移
Learning the Augmentation
增强网络接收来自同一类的两幅图像作为输入图像,并返回与单个图像相同大小的层。生成数据的网络的末端会计算一个附加损失,以调节增强图像与输入图像的相似程度。最后的损失是该损失和分类网络的交叉熵损失的加权和,其中增强损失考虑了以下三种,具体形式在后面有给出。
- Content loss
- Style loss via gram matrix
- No loss is computed at this layer
Datasets and Features
数据集选择的是二分类的小数据集,一共使用了三个,其一是tiny-imagenet-200中选择的猫狗类,其二是将猫换成了金鱼,其三是MNIST中的0和8
Experiments
定义 L c L_c Lc为分类损失, L a L_a La为数据增强损失
其中计算增强损失作者考虑了两种方法,其一为内容损失,即计算均方误差:
L
a
c
o
n
t
e
n
t
=
1
D
2
∑
i
,
j
(
A
i
j
−
T
i
j
)
L_{a}^{content}=\frac{1}{D^2}\sum_{i,j}(A_{ij}-T_{ij})
Lacontent=D21i,j∑(Aij−Tij)
其二为风格损失,需要在gram matrix上计算内容损失
gram matrix: 假设输入图像的size为[ ch, h, w]。我们经过flatten(即是将hw进行平铺成一维向量)和矩阵转置操作,可以变形为[ ch, hw]和[ h*w, ch]的矩阵。再对其作内积得到Gram Matrices,即gram matrix可以视为矩阵自己与自己的转置的内积,可以表示为:
g r a m = [ ( α 1 , α 1 ) ( α 1 , α 2 ) ( α 1 , α 3 ) ( α 2 , α 1 ) ( α 2 , α 2 ) ( α 2 , α 3 ) ( α 3 , α 1 ) ( α 3 , α 2 ) ( α 3 , α 3 ) ] gram = \left[ \begin{matrix} (\alpha_1,\alpha_1) & (\alpha_1,\alpha_2) & (\alpha_1,\alpha_3)\\ (\alpha_2,\alpha_1) & (\alpha_2,\alpha_2) & (\alpha_2,\alpha_3)\\ (\alpha_3,\alpha_1) & (\alpha_3,\alpha_2) & (\alpha_3,\alpha_3) \end{matrix} \right] gram=⎣⎡(α1,α1)(α2,α1)(α3,α1)(α1,α2)(α2,α2)(α3,α2)(α1,α3)(α2,α3)(α3,α3)⎦⎤
则特征
F
F
F的gram matrix就可以写为:
G
i
j
=
∑
k
F
i
k
F
j
k
G_{ij}=\sum_{k}F_{ik}F_{jk}
Gij=k∑FikFjk
此时可以写出风格损失:
L
a
s
t
y
l
e
=
1
C
2
∑
i
,
j
(
G
i
j
A
−
G
i
j
T
)
L_{a}^{style}=\frac{1}{C^2}\sum_{i,j}(G_{ij}^A-G_{ij}^T)
Lastyle=C21i,j∑(GijA−GijT)
最后的训练损失为两个损失之和:
α
L
c
+
β
L
a
\alpha L_c+\beta L_a
αLc+βLa