在本文中,我们提出了一种新颖的隐式语义数据扩增 ISDA 方法,以补充诸如翻转,平移或旋转之类的传统扩充技术。我们的工作受到有趣的属性的启发,即深层网络擅长于线性化特征,从而使深层特征空间中的某些方向对应于有意义的语义转换,例如添加阴影或更改背景。因此,在特征空间中沿许多语义方向翻译训练样本可以有效地扩充数据集以提高泛化能力。为了有效且高效地实现这一思想,我们首先对每个类别的深度特征的协方差矩阵进行在线估计,以获取类别内语义的变化。然后从具有估计协方差的零均值正态分布中提取随机向量,以增强该类别中的训练数据。重要的是,我们可以直接最小化增强训练集上期望交叉熵(CE)损失的上限,而不是显式地增强样本,从而得到了一种高效算法。实际上,我们证明了所提出的 ISDA 可以最大程度地减少健壮 CE 损失,从而给正常训练过程增加了可忽略的额外计算成本。尽管 ISDA 很简单,但它不断提高了流行的深度模型 ResNet 和 DenseNet 在各种数据集(例如 CIFAR 10,CIFAR 100 和 ImageNet)上的泛化性能。可在以下位置获得用于重现我们结果的代码:https://github.com/blackfeatherwang/ISDA-for-Deep-Networks。
数据增强是一种有效的技术,以缓解训练深度网络[1,2,3,4,5]中的过拟合问题。在图像识别的背景下,这通常对应于在输入样本上应用保留内容的转换,例如裁剪、水平镜像、旋转和颜色抖动。这些增强技术虽然有效,但不能进行语义转换,例如改变对象的背景或前景对象的纹理。最近的工作表明,如果允许语义转换(类标识保持),数据增强技术可能更强大[6,7,8]。例如,通过为训练集中的每个类训练一个生成性对抗网络(GAN),就可以从生成器中采样无限数量的样本。不幸的是,这个过程在计算上是密集的,因为训练生成模型并推断它们以获得增强样本是不简单的任务。此外,由于数据量的增加,训练过程也可能会延长。
本文提出了一种用于训练深度图像识别网络的隐式语义数据扩增(ISDA)算法。ISDA 是高效的,因为它不需要训练/推断辅助网络或显式地生成额外的训练样本。我们的方法是由最近的工作所做的有趣的观察所驱动的,这些观察表明网络中的深层特征通常是线性化的[9,10]。具体来说,在深层特征空间中存在许多语义方向,使得沿着这些方向中的一个数据样本被翻译成一个特征表示,对应于具有相同类标识但语义不同的另一个样本。例如,某一方向对应于“戴眼镜”的语义翻译。当一个不戴眼镜的人的特征沿着这个方向被翻译时,新的特征可能对应于同一个戴眼镜的人(新图像可以使用适当的算法显式重建,如[9]所示)。因此,通过搜索许多这样的语义方向,我们可以有效地扩充训练集,以补充传统的数据增强技术。
然而,显式地找到语义方向并不是一项简单的任务,这通常需要大量的人工注释[9]。相反,随机采样方向是有效的,但可能会导致无意义的转换。例如,对”car”类应用”make-beaspeacled”转换是没有意义的。在本文中,我们采用了一种简单的方法,在有效性和效率之间取得了很好的平衡。具体地说,我们对每个类的特征协方差矩阵进行在线估计,从而捕获类内的变化。然后,我们从零均值多元正态分布与估计的协方差中采样方向,并将其应用于该类别中训练样本的特征以扩充数据集。这样,生成无意义的语义转换的几率可以大大降低。
为了进一步提高效率,我们用所提出的数据增强方案导出了期望交叉熵(CE)损失的封闭形式上界。因此,我们可以直接最小化上界,而不是显式地执行增强过程,这实际上是一种新的鲁棒损失函数。由于不需要生成显式的数据样本,我们将我们的算法称作隐式语义数据扩增(ISDA)。与现有的语义数据增强算法相比,我们所提出的 ISDA 可以在大多数深层模型之上方便地实现,而不需要引入辅助模型或额外的计算成本。
虽然 ISDA 算法简单,但是它的有效性令人惊讶,并且很好地补充了现有的非语义数据扩增技术。我们对几种有竞争力的图像分类基准进行了大量的实证分析,结果表明,ISDA 能够有效地提高常用深度网络的泛化性能,特别是在训练数据较少和传统增强技术的情况下。
在本节中,我们简要回顾了现有的相关课题研究。
数据扩增技术是一种广泛应用于深度网络训练的方法。例如,在图像识别任务中,应用诸如随机翻转、镜像和旋转等数据增强技术来增强卷积网络中的某些不变性[4,5,3,11]。最近,提出了自动数据扩增技术,如 AutoAugment[12],以在大量候选对象中寻找更好的扩充策略。与我们的方法类似,具有边缘化损坏特征的学习[13]可以看作是一种隐式数据扩增技术,但它仅限于简单的线性模型。另一方面,最近的研究表明,将类标识保持转换(如改变对象背景或改变视角)应用于训练数据的语义数据扩增技术也是有效的[14,15,6,8]。这通常是通过生成具有特殊深度结构的额外语义转换训练样本来实现的,如 DAGAN[8]、域适应网络[15]或其他基于 GAN 的生成器[14,6]。虽然这些方法是有效的,但由于需要预先训练生成模型并在训练过程中进行推断,这些方法实现起来并不容易,而且计算成本也很高。
鲁棒损失函数。如文中所示,ISDA 相当于最小化一个新的鲁棒损失函数。因此,我们就这一课题的相关工作作一简要回顾。近年来,人们提出了几种用于深度学习的鲁棒损失函数。例如,Lqloss[16]是由负 Box-Cox 变换导出的交叉熵(CE)损失和平均绝对误差(MAE)损失的一种平衡噪声鲁棒形。focus loss[17]将高权重附加到稀疏的硬示例集上,以防止大量简单样本主导网络的训练。在[18,19,20]中提出了引入较大的 CE 损耗裕度的想法。在[21]中,将 CE 损失和对比损失结合起来,以学习更多的区分特征。从相似的角度来看,中心损失[22]同时学习了每个类别的深层特征的中心,并区别对待了特征空间中样本与它们对应的类别中心之间的距离,从而增强了类别内的紧凑性和类别间的可分离性。
深层特征空间中的语义转换。我们的工作源于这样一个事实:由深卷积网络学习的高级表示可以潜在地捕获语义抽象[23,10]。事实上,在特定方向上翻译深层特征与对输入图像执行有意义的语义转换相对应。例如,深度特征插值[9]利用预先训练的神经网络对深度特征的简单插值来实现语义图像转换。基于变分自动编码器(VAE)和生成对抗性网络(GAN)的方法[24,25,26]建立了一个与图像抽象相对应的潜在表示,可对其进行操作以编辑图像的语义。一般来说,这些方法揭示了深层特征空间中的某些方向对应于有意义的语义转换,并可用于执行语义数据扩增。
众所周知,深度网络擅长于在深层特征空间[4,5,9,27]中形成高层次的表示,样本之间的语义关系可以通过特征的相对位置来捕捉[10]。以往的研究表明,当特征映射到输入空间时,向特定方向转换特征对应于有意义的语义转换[9,28,10]。在此基础上,我们提出在特征空间中直接扩充训练数据,并将此过程整合到深层模型的训练中。
隐式语义数据扩增(ISDA)包含两个重要组成部分,即类条件协方差矩阵的在线估计和鲁棒损失函数的优化。第一个组件的目标是找到一个分布,我们可以从中抽取有意义的语义转换方向来进行数据扩增,而第二个组件可以避免显式地生成大量额外的训练数据,与现有的数据扩增技术相比,ISDA 具有显著的效率。
如前所述,深层特征空间中的某些方向对应于有意义的语义转换,如“make-bespectacled”或“change-view-angle”。这促使我们通过在深层特征上应用这种语义转换来扩充训练集。然而,对于大规模的问题,人工搜索语义方向是不可行的。为了解决这个问题,我们建议从一个零均值的正态分布和一个与类内协方差矩阵成比例的协方差中抽样随机向量来近似该过程,该协方差矩阵捕获了该类样本的方差,因此很可能包含丰富的语义信息。
直观地说,person 类的特征可能会沿着“make-bespectacled”的方向变化,而在“has puller”方向上几乎没有变化,这种变化只出现在其他类,如 plane 类中。我们希望每个类的协方差矩阵的主成分能很好地表示每个类的有意义变换对应的方向。
显然,简单实现在 M 很大的时候计算效率很低,因为特征集会被放大 M 倍。下面,我们考虑 M 增长到无穷大的情况,并发现损失函数可以得到一个易于计算的上界,从而得到了一个高效的实现。
在这一部分中,我们在几个广泛使用的图像分类基准,即 CIFAR-10、CIFAR-100[1]和 ImageNet[29]上对所提出的算法进行了实证验证。我们首先在这些数据集上评估不同深度网络架构下 ISDA 的有效性。其次,在标准基线增强的基础上,我们应用了最近提出的几种非语义图像增强方法,并研究了 ISDA 的性能。第三,我们比较了最新的鲁棒损失函数和基于生成器的语义数据扩增算法。最后,进行消融研究,以检查每个成分的有效性。我们还借助生成网络在原始输入空间中可视化增强样本。
数据集。我们在实验中使用了三个图像识别基准。(1)两个 CIFAR 数据集由 CIFAR-10 的 10 个类中的 32x32 彩色自然图像和 CIFAR-100 的 100 个类中的 32x32 彩色自然图像组成,其中 50000 个图像用于训练,10000 个图像用于测试。在我们的实验中,我们从训练集中拿出 5000 幅图像作为验证集来搜索超参数 λ0。这些样本在选择最优 λ0 后也用于训练,并报告了在测试集上的结果。采用通道均值和标准差对图像进行归一化预处理。对于训练集的非语义数据扩增,我们遵循[30]中的标准操作:在图像的每侧填充 4 个像素,然后结合随机水平翻转进行 32x32 的随机裁剪。(2)ImageNet 是 ILSVRC2012[29]提供的 1000 类数据集,提供 120 万张用于训练的图像和 50000 张用于验证的图像。我们采用了[2,4,5]中相同的增强配置。
非语义增强技术。为了研究 ISDA 对传统数据扩增方法的互补作用,应用了两种最先进的非语义扩充技术,分别使用和不使用 ISDA。(1)Cutout[31]在训练期间随机屏蔽输入的正方形区域,以使模型正则化。(2)AutoAugment[32]自动搜索最佳的扩充策略,以在目标数据集上获取最高的验证精度。所有超参数都与介绍它们的论文中声明的相同。
基线。我们的方法与几个基线进行了比较,包括最先进的鲁棒损失函数和基于生成器的语义数据增强方法。(1)Dropout[37]是一种广泛使用的正则化方法,它在训练过程中随机地静音某些神经元。(2)Large-margin softmax loss[18]将用余弦距离测量的大决策裕度引入标准 CE 损失。(3)Disturb label[38]是一种正则化机制,它在每次迭代中用不正确的标签随机替换一小部分标签。(4)focus loss[17]将重点放在一组稀疏的硬示例上,以防止简单样本主导训练过程。(5)Center loss[22]同时学习每个类的特征中心,并最小化深度特征与其对应的类中心之间的距离。(6)Lqloss[16]是一种噪声-鲁棒损失函数,采用负 Box-Cox 变换。(7) 对于基于生成器的语义扩充方法,我们训练了几个最先进的 GAN[39,40,41,42],然后使用这些 GAN 生成额外的训练样本进行数据扩增。为了公平比较,在可能的情况下,所有方法都使用相同的训练配置来实现。超参数设置的详细信息见附录 B。
训练细节。对于深层网络,我们在 CIFAR 上实现 ResNet、SE-ResNet、Wide-ResNet、ResNeXt 和 DenseNet,在 ImageNet 上实现 ResNet、ResNeXt 和 DenseNet。附录 B 给出了这些模型的详细配置。ISDA 的超参数 λ0 根据验证集的性能从集合{0.1,0.25,0.5,0.75,1}中选择。在 ImageNet 上,由于 GPU 内存的限制,我们利用协方差矩阵的对角线来近似协方差矩阵,即特征各维的方差。从{1,2.5,5,7.5,10}中选择最佳超参数 λ0。
表 1 显示了 ISDA 在具有最先进的深层网络的大规模 ImageNet 数据集上的性能。可以看出,ISDA 显著提高了这些模型的泛化性能。例如,通过使用 ISDA 进行训练,ResNet-50 的 Top-1 错误率降低了 1.1%,接近 ResNet-101 的性能(21.9%v.s.21.7%),参数减少了 43%。同样,ResNet-101+ISDA 的性能超过了 ResNet-152,参数减少了 26%。与 ResNets 相比,DenseNets 由于其架构设计而受到的过拟合影响较小,因此似乎从我们的算法中获益较少。
我们在表 2 中报告了 CIFAR-10/100 上几种具有和不具有 ISDA 的深度网络的错误率。可以获得类似于 ImageNet 的观测结果。在 CIFAR-100 上,对于相对较小的模型,如 ResNet-32 和 ResNet-110,ISDA 将测试误差降低了约 1%,而对于 Wide-ResNet-28-10 和 ResNeXt-29、8x64d 等较大模型,我们的方法比竞争基线的性能高出近 0.7%。
表 3 显示了最近提出的强大的传统图像增强方法(即 Cutout [31]和 AutoAugment[32])的实验结果。有趣的是,当这些技术存在时,ISDA 似乎更加有效。例如,在应用 AutoAugment 时,在 CIFAR-100 上,通过 Shake-Shake(26,2x112d)和 Wide-ResNet-28-10,ISDA 的性能分别提高了 1.34%和 0.98%。请注意,这些改进比标准情况更重要。对于这种现象,一个合理的解释是,非语义增强方法有助于学习更好的特征表示,这使得深层特征空间中的语义转换更加可靠。图 2 中显示了在使用 Wide-ResNet-28-10 的 CIFAR-100 上进行训练时测试误差的曲线。很明显,在第三次学习率下降之后,ISDA 取得了显着改善。在第四次下降之后,ISDA 表现出了更好的性能。
我们将 ISDA 与第 4.1 节中描述的一些竞争基线进行了比较,从鲁棒损失函数到基于生成模型的语义数据扩增算法。结果总结在表 4 中,训练曲线在附录 D 中给出。可以观察到 ISDA 与所有竞争的基线算法相比都有优势。使用 ResNet-110,在 CIFAR-10 和 CIFAR-100 上,其他鲁棒损失函数的测试误差分别为 6.38%和 27.85%,而 ISDA 分别达到 6.23%和 27.11%。
在所有基于 GAN 的语义增强方法中,ACGAN 的性能最好,尤其是在 CIFAR-10 上。但是,这些模型在 CIFAR-100 上的性能通常会降低,因为 CIFAR-100 没有足够的样本为每个类学习有效的生成器。相比之下,ISDA 在所有数据集上显示出一致的改进。此外,基于 GAN 的方法需要额外的计算来训练生成器,并在训练过程中引入大量开销。相比之下,ISDA 不仅导致较低的泛化误差,而且更加简单高效。
为了证明我们的方法能够生成有意义的语义增强样本,我们引入了一种将增强特征映射回像素空间的方法,以明确显示图像的语义变化。由于篇幅的限制,我们延后了对映射算法的详细介绍,并在附录 C 中给出。
图 3 显示了可视化结果。第一列和第二列表示原始图像和未经任何增强的重建图像。其余各列展示了所提出的 ISDA 的增强图像。可以观察到 ISDA 能够改变图像的语义,如背景、视角、汽车的颜色和类型、皮肤的颜色等,这对于传统的数据增强技术来说是不可能的。
为了更好地理解 ISDA 中不同成分的有效性,我们进行了一系列的消融研究。具体来说,考虑了几个变量:(1)单位矩阵是指用单位矩阵 ∑c 代替协方差矩阵。(2)对角线矩阵是指只使用协方差矩阵 ∑c 的对角元素。(3)单一协方差矩阵是指使用从所有类的特征计算出的全局协方差矩阵。(4)常量 λ0 意味着使用一个常量 λ0,而不将其设置为训练迭代的函数。
表 5 给出了消融结果。采用单位矩阵会使 CIFAR-10 的测试误差增加 0.05%,使 CIFAR-100 的测试误差增加近 0.56%。使用单一协方差矩阵也会大大降低泛化性能。原因很可能是它们都无法在深层特征空间中找到正确的方向来执行有意义的语义转换。采用对角线矩阵也会影响性能,因为它没有考虑特征之间的相关性。
本文提出了一种有效的隐式语义数据扩增算法(ISDA),以补充现有的数据扩增技术。与现有的利用生成模型来增加语义转换样本的训练集的方法不同,我们的方法更有效,更容易实现。事实上,我们证明了 ISDA 可以表示为一个新的鲁棒损失函数,它与任何具有交叉熵损失的深层网络都兼容。在多个竞争图像分类数据集上的大量实验结果表明了该算法的有效性和效率。
A ISDA 实现细节
B 训练细节
在 CIFAR 上,我们实现了 ResNet、SE-ResNet、Wide-ResNet、ResNeXt 和 DenseNet。采用具有 Nesterov 动量的 SGD 优化算法对所有模型进行训练。训练的具体超参数如表 6 所示。
在 ImageNet 上,我们使用与 CIFAR 相同的 L2 权重衰减和动量来训练 300 个迭代的所有模型。初始学习率设置为 0.2,并用余弦进行退火。批大小设置为 512。我们对 DenseNets 采用 λ0 =1,ResNet 和 ResNeXts 采用 λ0=7.5,ResNet-101 使用的是 λ0=5。
所有基线均采用上述相同的训练配置。如果它在基本模型中没有应用,则将 Dropout 率设置为 0.3,以便进行比较,遵循[37]中的说明。对于干扰标签中的噪声率,在 CIFAR-10 和 CIFAR-100 数据集上的 Wide-ResNet-28-1 和在 CIFAR10 上的 ResNet-110 中采用 0.05,而 CIFAR100 上的 ResNet-110 使用 0.1。Focus loss 包含两个超参数 α 和 γ。大量的组合已经在验证集上进行了测试,我们最终选择 α=0.5 和 γ=1 进行所有四个实验。对于 Lqloss,虽然[16]指出 q=0.7 在大多数情况下都能达到最佳性能,但我们建议在我们的实验中,q=0.4 更适合,因此采用 q=0.4。对于中心损失,我们发现它的性能很大程度上受中心损失模块的学习率的影响,因此它的初始学习率设置为 0.5,以获得最佳的泛化性能。
对于基于生成器的增强方法,我们采用了[39,40,41,42]]中引入的 GANS 结构来训练生成器。对于 WGAN,在 CIFAR-10 数据集中为每个类训练一个生成器。对于 CGAN、ACGAN 和 infoGAN,只需要一个模型就可以生成所有类的图像。采用标准正态分布的 100 维噪声作为输入,生成与其标签相对应的图像。特别地,infoGAN 具有两个维度的额外输入,它们代表整个训练集的特定属性。合成图像在每一个批处理中都有固定的比例。基于验证集的实验,将广义图像的比例设为 1/6。
C 反向卷积网络
为了明确说明 ISDA 所产生的语义变化,我们提出了一种将深度特征映射回像素空间的算法。一些额外的可视化结果如图 5 所示。
图 4 显示了该算法的概述。由于卷积网络(如 ResNet 或 DenseNet)没有闭合形式的逆函数,映射算法的作用类似于[43]和[9],通过固定模型和调整输入来找到与给定特征相对应的图像。然而,考虑到 ISDA 本质上增强了图像的语义,我们发现直接优化像素空间中的输入是无关紧要的。因此,我们添加了一个固定的预训练生成器 G,它是通过训练 wasserstein GAN[39]获得的,以生成分类模型的图像,并优化生成器的输入。这种方法使得用增强语义有效地重建图像成为可能。
映射算法可分为两个步骤:
所提出的算法是在单个批处理上执行的。在实际应用中,采用 ResNet-32 网络作为卷积网络。 我们采用标准梯度下降(GD)算法进行 10000 次迭代来解决 Eq.15 16。对于步骤一和步骤二,初始学习速率分别设置为 10 和 1,每 2500 次迭代除以 10。我们应用了 0.9 的动量和 1e-4 的 l2 重量衰减。
D 附加实验结果
最新方法和 ISDA 的测试误差曲线如图 6 所示。ISDA 的性能一直优于其他方法,并且在所有情况下都表现出最好的泛化性能。值得注意的是,ISDA 在 CIFAR-100 中降低了测试误差,这表明我们的方法更适合于样本较少的数据集。这一观察结果与本文的结果一致。除此之外,在 CIFAR-10 上,中心损失方法与 ISDA 相比具有一定的竞争力,但它并不能显著提高 CIFAR-100 的泛化能力。
本文由南京大学 ISE 实验室 2020 级硕士李彤宇转述翻译