1简介
1.1 背景说明
卷积神经网络已经在一些与计算机视觉相关的任务上取得了相当不错的结果,如图像分类和目标检测。这种成功可以用卷积神经元的工作原理来解释:它根据图像的空间属性来突出给定的特征。浅层网络注意是归纳一些形状或者纹理特征;然而,更深层次的网络可以检测出更复杂更抽象的特征,比如整个物体或人脸。如今,从生物识别到疾病检测,很难找到其他没有CNN的计算机视觉技术。
关于CNN的一个关键问题是如何对卷积核进行堆叠?以在给定的任务上实现最佳的结果。在几个不同的任务上使用相同的基本架构是很普遍的,只需要改变输出。例如,EfficientNet是一种用于图像分类的神经网络,它也被用于EfficientDet体系结构来处理目标检测任务。
该体系结构可能是计算机视觉模型的核心部分;然而,在开始训练之前还有其他相关的要点。例如,优化技术可能会影响最终的性能。即使是kernel的初始化方法都有可能会影响模型最终的性能。
本研究集中讨论在这些可能影响最终性能因素的一个方面:正则化。
根据所使用的正则化策略,一些架构可以在最终结果上获得相关的增益。使用良好的正则化方法的一个重要方面是,它不会影响最终模型的性能。这意味着,独立于使用或不使用一个正则化方法,模型的推理计算成本是相同的。然而,在某些情况下,它可以影响训练阶段的性能,使用少量的计算开销或训练周期。无论如何,产出的结果通常是可以补偿这一成本的。
1.2 为什么正则化方法有效?
CNN通常用于计算机视觉任务,如图像分类和目标检测,以创建像人类视觉一样强大的视觉模型。如果考虑到可用的信息数量,很明显,训练任务需要更多数据可变性。考虑到一个健康的大脑和眼睛正常的人,不考虑睡觉的时间,平均每天保留大约16个小时的新信息。
即使考虑到像ImageNet这样的巨大数据集,与人类大脑通过眼睛接收到的数据数量相比,可用的图像数量也是最小的。这种新数据的不可用性可能会导致一种称为过拟合的情况,即模型学习如何很好地表示训练数据,但它不能有效地处理新信息,即测试数据。这种情况通常发生在模型在可用的训练信息中进行了详尽的训练时,而它不能很好地扩展到其他新信息中。
作为一个人工神经网络,神经网络的训练步骤可以描述为一个优化问题,目标是训练得到一个合适的权值;假定给一个输入和损失函数,可以转换期望的信息输出最低可能的误差。实现这一目标的一种方法是最小化以下功能:
其中为Frobenius norm,为输入数据,和分别表示权重矩阵和目标标签。Frobenius norm增加了X和之间的相似性。
这种解释有一个主要优点:这个公式可以通过矩阵分解进行优化,产生X的结构化分解。然而,只有当W或固定在优化两个矩阵时,将原始方程转换为非凸公式时,才能实现全局最小值。如果矩阵分解为矩阵近似,可以解决这个问题:
其中,目标是估计矩阵A,最终得到一个凸优化,这意味着它有一个全局最小值,通过梯度下降算法可以找到。当使用正则化时,这个方程变为:
其中,描述了基于A的正则化函数,而λ是设置正则化函数对目标函数的影响程度的标量因子。
正则化方法的一个关键方面,独立于训练阶段的工作,是为了防止模型过拟合。它通过增加CNN不同阶段的数据的可变性来操作。当处理图像时,最直接的方法是随机改变图像,比如旋转和翻转。
虽然这种类型的正则化工作得很好,但应该考虑到一些问题。例如,一些转换可能会将图像扭曲成分类中的另一个现有类。更直接的例子是MNIST数据集上的基线图像分类:如果旋转太多,输入“6”可能会转换为“9”,导致模型学习错误的信息。
1.3 正则化和标准化
机器学习中的一个普遍问题是调整给定模型的参数,使其对训练数据和新的数据能够有更好的鲁棒性。旨在减少不属于训练集的数据上的误差的算法的集合被称为正则化技术。
标准化和正则化技术的一个主要区别是,正则化在训练期后不再使用,而标准化保留在模型之中。例如,Cutout和MaxDropout在推理期间没有被执行,但是Batch Normalization在推理时需要执行。
1.4 正则化主要用在哪里?
尽管大多数作品都应用于输入,但也有很多研究致力于内部结构和标签层。图1描述了本次调查中科学工作的比例。
图1
大约44%的工作依赖于对输入的正则,其中最著名的是数据增强策略。CNN输入中参数和结构的容易改变可以解释如此多的工作量。图像处理和计算机视觉驱动的应用程序在处理深度学习时仍然发挥着重要的作用。
第二种最常见的正则化方法是那些对模型的内部结构进行正则的方法。Dropout为这一研究领域的进展做出了很大的贡献。一些作品主要是基于Dropout进行的改进,当然其中也有一些是全新的方法。
1.5 正则化方法的缺点
第一个是标签不随输入或在神经网络的中层直观地改变。在这2个级别中执行变化是更自然的,因为在视觉上更容易理解在训练和推理过程中发生了什么。然而,要解释执行标签更改时会发生什么就比较困难了。尽管最初的研究认为它防止了过拟合问题,但它未能解释为什么会避免这种情况。
另一种解释是对大多数方法缺乏数学解释。幸运的是,一些技术,如Dropout和Mixup,对它们的内部机制提供了有趣的见解。
最后,最好要记住,开发机器学习领域最关键的步骤之一是创建标签可靠的数据集。虽然本文关注的是正则化策略,但值得记住,最终,与标签的组合方式上的突破可能会促进更强大的系统。因此,强调更多与标签正则化相关的工作值得研究。
2正则化方法大集结
3.1 Cutout
Cutout是一种直接而强大的数据增强的技术。在训练过程中,它在输入神经网络之前随机去除图像的区域。Cutout作者详尽地分析了CIFAR-10和CIFAR-100数据集中被移除区域的理想大小。
图3 Cutout
理想的大小根据每个类的实例的数量和给定数据集的类的数量而变化。例如,在CIFAR-10数据集上的最佳结果是通过删除一个大小为16×16的patch来完成的,而对于CIFAR-100,关于最佳结果的区域大小是8×8。对于SVHN数据集,通过使用网格搜索找到了最佳的crop大小为20×20。对于STL-10数据集,最佳结果的crop大小为32×32。
3.2 RandomErasing
RandomErasing是在Cutout技术的基础上进一步的发展。Cutout是对图像的随机裁剪,而RandomErasing关注的是在空白空间中去除并随机添加信息,例如噪声。与Cutout不同,RadomErasing并不是每次都删除图像的一部分。在这项工作中,作者在3种不同的分类数据集(CIFAR-10,CIFAR-100和Fashion-MNIST)上评估了该方法,用于目标检测的VOC2007数据集,以及用于ReID的三种不同的CNN架构(IDE, TriNet和SVDNet)。
图4 RandomErasing
对于分类任务,4种不同的架构被用于评估目的:ResNet、ResNet with pre-activation、Wide Residual Networks和ResNeXt。在所有情况下,RandomErasing方法完成了相关的误差减少(至少0.3%)。
对于目标检测任务,当只使用该数据集中的可用数据训练模型时,平均精度(mAP)提高了0.5,当训练数据与VOC2012训练数据集结合时,平均精度(mAP)提高了0.4。图4显示了随机擦除是如何工作的。
3.3 AutoAugment
AutoAugment试图找出给定数据集上的哪些transformations可以提高模型的准确性。它使用5个不同的transformations为给定策略创建一个搜索空间,这些transformations由2个附加参数控制:给定更改概率(Cutout,SamplePairing,Shear X/Y,Translate X/Y,Rotate,AutoContrast,Invert,Equalize,Solarize,Posterize,Contrast,Color,Brightness以及Sharpness)和变化幅度。
图5 AutoAugment
然后将这些策略输入一个“child”模型,该模型是一个用部分训练数据集训练的CNN。这个CNN的准确性被告知一个“控制器”模型,它是一个循环神经网络(RNN)。这个RNN输出一个给定策略在未来被使用的概率。在控制器训练过程的最后,使用5个最佳策略(每个策略有5个子策略)来训练最终的模型,用于评估数据集。使用这些生成的策略和子策略使得AutoAugment在CIFAR-10、CIFAR-100、SVHN和ImageNet数据集上达到了最先进的结果。
这种方法的一个巨大优势是这些策略在不同数据集之间的可迁移性:在最初的工作中,为ImageNet找到的策略被用来训练其他5个不同的数据集,即使没有在这些数据集上训练AutoAugment,也能显著改善结果。这种方法的一个缺点是用来训练控制器模型的时间:例如,对于ImageNet数据集,它需要大约15000个小时的处理,这在一些情况下可能是不切实际的。Fast AutoAugment的目标就是通过一种新的算法来克服这一瓶颈,在产生相似结果的同时,显著减少搜索过程所需的时间。
3.4 PBA
Population Based Augmentation(PBA)不仅展示了一种新的增强算法,而且展示了调度策略而不是固定策略,改进了以往研究的结果。
图6 PBA
在每3步中,它改变了一半的策略,即1/4的权重变化,另外1/4的超参数变化。虽然自动增强意味着在CIFAR-10数据集上的训练开销为5000个小时,但PBA只增加了5个小时。
3.5 RandAugment
如前所述,寻找最佳数据增强的方法的一个巨大瓶颈涉及到它们的计算负担,因为它可能比自己的神经网络训练需要更长的时间。另一个问题与在搜索过程中发现的策略有关,这可能会导致次优策略,即它确实改善了局部的结果;然而,它并不会带来最好的全局结果,因为它使用了一个较浅的神经网络,并假设这个规则可以应用于任何其他的,更深的架构。
图7 RandAugment
14个最常见的策略
RandAugment使用了在之前的工作中发现的14个最常见的策略,并在训练期间对每个策略的大小进行搜索,从而消除了初步探索步骤的需要,并根据当前的训练CNN定制数据放大。结果表明,该方法不仅比以往的方法更快,而且显著改善了结果。
3.6 Mixup
训练CNN的一种可能性是,Mixup来自训练数据集中的2幅图像,并迫使模型可靠地确定这种Mixup图像属于哪一类。然而,如何为这种Mixup生成编码标签并不普遍。提供这个新的输入/输出训练对可以让模型从损坏的输入中学习更多的特征。最初的工作表明,使用这种方法的模型不仅可以改善图像分类任务的结果,而且可以改善语音识别、生成对抗网络的稳定、表格数据集等问题的结果。图5演示了Mixup的工作原理。
图5 Mixup
3.7 CutMix
另一种混合输入和标签以改善结果的策略是CutMix。与Mixup不同,CutMix会替换给定输入中的整个区域,并通过给予与每个类使用的区域相同的权重来更改标签。例如,如果一只猫的图像被30%的图像替换为一个飞机的图像,则该标签被设置为70%的猫和30%的飞机。这一策略的结果有了显著的改善。通过使用绘制Grad-CAM可以观察到生成的Heatmap更好地突出了更准确地定义感兴趣目标的区域。
图6 CutMix
3.8 CutBlur
一些针对图像处理的深度学习任务,如图像分类或目标检测,可以通过使用数据增强来提升模型性能。一些工作,如AutoAugment、Cutout和RandomErasing可以通过对训练图像应用一些transformations来显著改善结果。然而,对于超分辨率(SR)任务,文献中缺乏提出正则化技术来明确地处理这个问题的工作。
图7 CutBlur
尽管可以使用上述技术并可能改善结果,但它们并不是通过手工设计来处理SR问题的。到目前为止,唯一发现的方法是CutBlur,它的工作原理是用来自类似区域的低分辨率(LR)版本替换高分辨率图像(HR)上的给定区域。作者表明,CutBlur有助于模型在SR问题上更好的推广,但同样的技术可以用于重建被高斯噪声退化的图像。
3.9 BatchAugment
训练cnn的一个重要超参数与mini-batch size有关,mini-batch size用于计算反向传播中使用的梯度。该超参数通常采用GPU的上限,这对于提高训练收敛速度至关重要。BatchAugment工作巧妙地利用了这个限制。它不只是使用来自数据集的不同实例来满足整个内存,而是使用默认的数据扩展设置来考虑内存限制的一半,然后复制具有不同数据扩展可能性的所有实例。这听起来像是一个简单的技巧;然而,结果表明,使用这种方法的神经网络在最终结果上有显著的改善。另一点是,通过复制增强图像,分析表明需要更少的时间点来实现收敛。
3.10 FixRes
图像分辨率可能会影响训练周期效率和最终的分类精度。例如,对EfficientNet的研究通过将输入大小作为影响最终结果的参数之一,从而强调了这一想法。然而,如果一个模型被训练,例如,分辨率为224×224,测试集的推理应该使用一样的图像分辨率。
图8 FixRes
FixRes提出的工作强调了测试集的分辨率应该高于用于训练的分辨率。这种变化不仅产生了一个更可靠的神经网络,而且比传统方法训练得更快,因为它需要更少的计算量,因为用于这种目的的图像比用于推理的图像要小。该方法表明,在使用迁移学习时,它可以改善在其他数据集上的结果。
3.11 Bag-of-Tricks
这里分析的工作的一个关键点是,它们经常没有将任何其他正则化方法与它们当前的研究结合起来。因此,很难知道两个正则化器是如何相互影响的。Bag-of-Tricks研究通过结合几种已知的正则化方法,如Mixup、Label Smoothing和Knowledge Destilation。消融研究表明,如果应用一定的方法,最终结果可以显著改善。例如,使用这种方法组合的MobileNet在ImageNet数据集中提高了近1.5%的结果,这是一个显著的收益。然而,该研究缺乏对层间正则化方法的深入评价,如Dropout。