用于大规模图像识别的转换器
视频介绍:用于大规模图像识别的转换器
虽然卷积神经网络(CNN)自 1980 年代以来一直用于计算机视觉,但直到 2012 年AlexNet 大幅超越当代最先进的图像识别方法的性能时,它们才处于最前沿。有两个因素促成了这一突破:(i) ImageNet等训练集的可用性,以及 (ii) 商品化 GPU 硬件的使用,这为训练提供了更多的计算。因此,自 2012 年以来,CNN 已成为视觉任务的首选模型。
使用 CNN 的好处是它们不需要手工设计的视觉特征,而是学习直接从“端到端”数据执行任务。然而,虽然 CNN 避免了手工制作的特征提取,但该架构本身是专门为图像设计的,并且可能对计算要求很高。展望下一代可扩展视觉模型,人们可能会问这种特定于领域的设计是否必要,或者是否可以成功利用更多领域不可知和计算效率更高的架构来实现最先进的结果。
作为朝着这个方向迈出的第一步,我们提出了Vision Transformer (ViT),这是一种尽可能基于最初为基于文本的任务而设计的Transformer架构的视觉模型。ViT 将输入图像表示为图像块序列,类似于将 Transformer 应用于文本时使用的词嵌入序列,并直接预测图像的类标签。ViT 在足够的数据上训练时表现出出色的性能,以四倍的计算资源优于同类最先进的 CNN。为了促进该领域的更多研究,我们开源了代码和模型。
Vision Transformer
原始文本 Transformer 将一系列单词作为输入,然后将其用于分类、翻译或其他 NLP 任务。对于 ViT,我们对 Transformer 设计进行了尽可能少的修改,使其直接对图像而不是单词进行操作,并观察模型可以自行学习多少图像结构。
ViT 将图像划分为方形补丁网格。通过连接补丁中所有像素的通道,然后将其线性投影到所需的输入维度,将每个补丁展平为单个向量。由于 Transformer 与输入元素的结构无关,我们向每个补丁添加了可学习的位置嵌入,这使模型能够了解图像的结构。先验地,ViT 不知道图像中补丁的相对位置,甚至不知道图像具有 2D 结构——它必须从训练数据中学习此类相关信息,并在位置嵌入中编码结构信息。
扩大
我们首先在 ImageNet 上训练 ViT,它获得了 77.9% 的 top-1 准确率的最佳分数。虽然这对于第一次尝试来说是不错的,但它与最先进的技术相去甚远——目前在 ImageNet 上训练的最好的CNN 在没有额外数据的情况下达到了 85.8%。尽管有缓解策略(例如,正则化),但 ViT 由于缺乏有关图像的内置知识而过度拟合 ImageNet 任务。
为了研究数据集大小对模型性能的影响,我们在ImageNet-21k(14M 图像,21k 类)和JFT(300M 图像,18k 类)上训练 ViT ,并将结果与最先进的 CNN 进行比较,Big Transfer (BiT),在相同的数据集上训练。正如之前所观察到的,在 ImageNet(1M 图像)上训练时,ViT 的性能明显低于 CNN 等价物 (BiT)。然而,在 ImageNet-21k(14M 图像)上的性能相当,在 JFT(300M 图像)上,ViT 现在优于 BiT。
最后,我们研究了训练模型所涉及的计算量的影响。为此,我们在 JFT 上训练了几种不同的 ViT 模型和 CNN。这些模型涵盖了一系列模型大小和训练持续时间。因此,他们需要不同数量的训练来进行训练。我们观察到,对于给定的计算量,ViT 比等效的 CNN 产生更好的性能。
高性能的大规模图像识别
我们的数据表明:(1)经过足够的训练,ViT 可以表现得非常好,(2)ViT 在更小和更大的计算规模上都能产生出色的性能/计算权衡。因此,为了查看性能改进是否会延续到更大的范围,我们训练了一个 600M 参数的 ViT 模型。
这个大型 ViT 模型在多个流行的基准测试中获得了最先进的性能,包括在 ImageNet 上的 88.55% 的 top-1 准确率和在 CIFAR-10 上的 99.50%。ViT在 ImageNet 评估集“ImageNet-Real”的清理版本上也表现良好,达到 90.72% 的 top-1 准确率。最后,即使训练数据点很少,ViT 也能很好地处理各种任务。例如,在VTAB-1k 套件(19 个任务,每个任务 1,000 个数据点)上,ViT 达到 77.63%,显着领先于单模型最先进技术(SOTA)(76.3%),甚至匹配通过多个模型的集合(77.6%)。最重要的是,与之前的 SOTA CNN 相比,这些结果是使用更少的计算资源获得的,例如,比预训练的 BiT 模型少 4 倍。
可视化
为了对模型学习的内容有一些直观的了解,我们可视化了它的一些内部工作原理。首先,我们查看位置嵌入——模型学习对补丁的相对位置进行编码的参数——并发现 ViT 能够重现直观的图像结构。每个位置嵌入与同一行和列中的其他位置嵌入最相似,表明模型已经恢复了原始图像的网格结构。其次,我们检查每个变压器块的一个元素与另一个元素之间的平均空间距离。在较高层(深度为 10-20)仅使用全局特征(即大注意力距离),但较低层(深度 0-5)捕获全局和局部特征,如平均注意力的大范围所示距离。相比之下,只有局部特征存在于 CNN 的较低层。这些实验表明,ViT 可以学习硬编码到 CNN 中的特征(例如对网格结构的认识),但也可以自由学习更通用的模式,例如在较低层混合局部和全局特征,这有助于泛化。
总结
虽然 CNN 已经彻底改变了计算机视觉,但我们的结果表明,为成像任务量身定制的模型可能是不必要的,甚至是次优的。随着数据集大小的不断增加,以及无监督和半监督方法的不断发展,在这些数据集上进行更有效训练的新视觉架构的开发变得越来越重要。我们相信 ViT 是迈向通用、可扩展架构的初步步骤,该架构可以解决许多视觉任务,甚至来自多个领域的任务,并对未来的发展感到兴奋。
更新说明:优先更新微信公众号“雨夜的博客”,后更新博客,之后才会陆续分发到各个平台,如果先提前了解更多,请关注微信公众号“雨夜的博客”。
博客来源:雨夜的博客