在训练神经网络解决图像分类问题时,数据增强是获得卓越效果的一个关键手段。针对目前主流的数据增强手段,当训练与测试时使用的图像分辨率差异较大时,分类器模型会出现性能差异。针对这一问题,Facebook人工智能研究院(FAIR)在论文“Fixing the Train-test Resolution Discrepancy”中提出了一种新的策略来优化分类器,这一策略可以减小训练与测试时的分辨率不同引起的性能差异。目前,此方法已在Github开源,链接附在本文文末。
FAIR首席科学家Yann LeCun表示,通过在Instagram图片标签上预训练并在ImageNet上微调(finetune),论文提出的全新ResNext101模型再次刷新了ImageNet数据集图像分类竞赛的准确度,在图像分类、目标检测等计算机视觉技术领域立下了新标杆。诸如目标检测、图像分割等等计算机视觉基础任务都可以将其骨干网络替换为这一新模型,借助其强大的特征提取能力,有望取得更好的效果。换言之,整个计算机视觉业界都有机会因之受益。本文是AI前线第90篇论文导读,我们将对该数据增强方法及其技术实现进行具体介绍。
1 背景介绍
CNN被广泛的用于诸多计算机视觉任务,如图像分类、目标检测、图像恢复、风格转换以及图像压缩等。为了尽可能的提升CNN模型的性能,训练数据与测试数据的分布需要尽可能的接近。在图像识别任务中,普遍会使用一种随机裁剪的数据增强方法。被裁剪出来的区域也被称为类别区域(Region of Classification,RoC),这部分内容会被变形成神经网络输入所要求的固定大小(即固定分辨率,如ResNet的输入为224224,AlexNet的输入为227*227)然后加载到网络中。在测试阶段,RoC会被设置为包含图像中央部分内容的一个矩形区域。当测试和训练阶段的RoC不同时,网络看到的数据之间的分布会存在一个较大的差异,这会影响到网络模型的性能表现。如图1所示,使用标准数据增强方法时,在测试和训练阶段用来表示白马的像素数量是不同的。调整测试和训练时输入网络的图像区域大小,可以保证用来表示白马的像素数量一致。
随着近些年深度学习的发展,训练和测试时的数据预处理方法被广泛应用于提升CNN模型的性能。但目前为止这两类数据预处理方法通常都是独立优化的。在这篇论文中,作者首先展示了独立优化存在的问题——导致显著的分布偏移。随后作者证明了上述问题可以通过在尺度和分辨率层面上同时对训练及测试数据进行优化来改善。本文提出的策略只需要微调(fine-tune)两个网络层即可弥补对图片裁剪时区域大小改变而引起的统计学偏差。同时,该策略并不会影响已有的预处理方法的使用。通过本文提出的方法,CNN模型仅需在小尺寸(分辨率)的图像上训练即可在大尺寸的测试图像上获得比使用大尺寸训练的模型更好的性能。这使得CNN在训练阶段的模型大小可以有效地被压缩,同时也意味着可以使用更大的批大小在GPU设备上进行训练。