视觉变压器(ViT)因其简单性、灵活性和可扩展性而快速取代基于卷积的神经网络。图片被分割成补丁,并且每个补丁被线性投影到一个令牌上,构成了这个模型的基础。输入照片通常被划分为一组固定数量的补丁,然后再使用。
最近的研究发表了对这个模型的潜在改进:FlexiViT允许连续的序列长度范围,因此通过在单个设计中适应不同的补丁尺寸来计算成本。这是通过在每次训练迭代中随机选择补丁尺寸,并使用缩放技术来适应初始卷积嵌入中的多个补丁尺寸来实现的。Pix2Struct的替代补丁方法,保持了纵横比,对于图表和文档理解等任务非常有价值。
NaViT是谷歌研究人员开发的一种替代方法。Patch n’ Pack是一种技术,它允许在保持纵横比的同时改变分辨率,通过将来自不同图像的许多补丁打包到一个序列中。这个想法基于“示例打包”,这是一种在自然语言处理中使用的技术,通过将多个实例合并成一个序列来高效训练具有不同长度输入的模型。科学家们发现,随机采样分辨率可以显著减少训练时间。NaViT在广泛的解决方案范围内实现了出色的性能,便于在推理时平滑地权衡成本和性能,并且可以以较低的成本轻松适应新的任务。
从示例打包所实现的固定批次形状中出现了像保持纵横比的解析率采样、可变的令牌丢弃率和自适应计算等研究思路。
NaViT在预训练期间的计算效率尤为令人印象深刻,并在微调过程中持续存在。成功地将单个NaViT应用于不同的分辨率,可以在性能和推理成本之间实现平滑的权衡。
在训练和操作过程中将数据输入深度神经网络是常见的实践。因此,计算机视觉应用必须使用预定的批次大小和几何形状,以确保在现有硬件上获得最佳性能。由于这个原因和卷积神经网络固有的架构限制,将图像调整大小或填充到预定大小已经成为常见的做法。
虽然NaViT基于原始的ViT,但理论上可以使用任何可以处理补丁序列的ViT变种。研究人员对ViT进行了以下结构性改变以支持Patch n’ Pack。Patch n’ Pack是一种将序列打包应用于视觉变换器的简单方法,它显著提高了训练效率,这已经被研究界证明过。由此产生的NaViT模型具有灵活性,易于适应新的任务,而不会造成巨大的成本开销。自适应计算和提高训练和推理效率的新算法的研究只是Patch n’ Pack所带来的可能性的两个例子,而这些以前因需要固定的批次形式而受到限制。他们还认为NaViT对ViT来说是朝着正确方向迈出的一步,因为它代表了大多数计算机视觉模型的传统CNN设计输入和建模流程的改变。