今天要介绍的是NaViT,这是一种适用于任何长宽比以及分辨率的Transformer模型。
在使用计算机视觉模型处理图像之前,要先将图像调整到固定的分辨率,这种方式很普遍,但并不是最佳选择。
Vision Transformer(ViT)等模型提供了灵活的基于序列的建模,因此可以改变输入序列的长度。
在本篇论文中,研究人员利用NaViT(原生分辨率ViT)的这一优势,在训练过程中使用序列打包,来处理任意分辨率和长宽比的输入内容。
在灵活使用模型的同时,研究人员还展示了在大规模监督和对比图像-文本预训练中训练效率的提高。
NaViT可以高效地应用于图像和视频分类、物体检测和语义分割等标准任务,并在鲁棒性和公平性基准方面取得了更好的结果。
在推理时,输入分辨率的灵活性可用于平滑地控制测试时间的性价比权衡。
研究人员相信,NaViT标志着脱离了大多数计算机视觉模型所使用的标准CNN设计的输入和建模流水线,代表了ViTs的一个有前途的方向。
如下图所示,NaViT在预训练期间(左图)有显著的计算效率,并可用于下游微调(中图)。
且单个NaViT可成功应用于多个分辨率(右图),在性能和推理成本之间实现平衡。
要知道,深度神经网络通常以成批输入进行训练和运行。
为了在硬件上实现高效的处理,意味着批次形状是固定的,反过来又说明计算机视觉应用的图像大小是固定的。
这一点再加上卷积神经网络历来存在的架构限制,导致研究人员要么调整图像大小,要么将图像填充为固定大小。
但这两种方法都存在缺陷:前者损害性能,后者效率低下。
ImageNet、LVIS和WebLI分别作为分类、检测和网络图像数据集的代表实例,对其长宽比的分析表明,大多数图像通常不是正方形的,如下图所示。
在语言建模中,通常通过示例打包绕过固定序列长度的限制:来自多个不同示例的标记被组合在一个序列中,这可以显著加快语言模型的训练。
通过将图像视为补丁(标记)序列,研究人员发现,Vision Transformers也能从同样的范式中获益,研究人员称之为Patch n' Pack。
应用这种技术,可以在原有的分辨率的图像上训练视觉transformer。
示例包装后可以在保持长宽比的情况下实现可变分辨率图像,从而减少训练时间,提高性能和灵活性。
研究人员展示了为支持Patch n'Pack而需要修改的数据预处理和建模。
研究人员在NaViT中使用的基本架构沿用了Vanilla ViT,并进行了必要修改。
此外,研究人员还对ViT进行了一些小的改进。
研究人员在两种设置中对NaViT进行预训练:在JFT-4B上进行分类训练和在WebLI上进行对比语言图像训练。
通常情况下,对于JFT,在训练前会对图像进行截取。而在这两种情况下,图像都会被调整为正方形。
除非另有说明,所有NaViT模型都是在没有这些操作的情况下进行预训练的,并保留了原有的长宽比。
NaViT使用FLAX库,在JAX中实现,并在Scenic中进行构建。
这里研究人员进行了两种不同的与训练——
分类预训练和对比预训练。
上图展示了通过序列打包实现的连续token丢弃策略,提高了表现性能。
研究人员对论文中所介绍的的因子化嵌入及其设计选择进行评估。
他们关注的是绝对性能,以及对训练体系之外的分辨率的推断。
为了测试这一点,研究人员在JFT上对NaViT-B/16模型进行了200k步的训练,分辨率为R∼U(160, 352)。
在不修改嵌入变量的情况下,研究人员评估了一系列分辨率下的性能,将ViT-B/16与在固定分辨率256下训练的ViT-B/16进行比较。
对于相同数量的图像,在新的分辨率下使用位置嵌入的标准插值进行了评估。
下图则是测试结果。
很明显能发现的是,因子化方法优于基线ViT和Pix2struct的学习型二维嵌入,后者尤其难以泛化到更高分辨率。
NaViT在ImageNet-A上的表现也更好,因为ImageNet-A上有许多长宽比极高的图像,而且重要信息都在图片中心之外。
下图展示了使用NaViT-L/16或ViT-L/16评估根据公平性相关信号训练的注释器的准确性。
左图:NaViT提供了更好的表示方法,提高了注释器的准确性。
右图:与将图像大小调整为正方形相比,在NaViT中使用原始长宽比可获得更高的性能。
研究人员已经证明,Patch n' Pack--序列打包在视觉变换器中的简单应用--可显著提高训练效率。由此产生的NaViT模型可在推理时应用于多种分辨率,并以低成本适应新任务。
Patch n'Pack使得以前因为需要固定形状而进行不下去的各种研究成为可能,包括自适应计算和提高训练和推理效率的新算法。
详细研究请参考原论文。因能力有限,本文翻译中若有错讹,深表歉意。
参考资料:
https://arxiv.org/pdf/2307.06304.pdf