探讨了在不重叠的图像块上嵌套基本局部变换的思想,并以分层的方式对它们进行聚合。发现块聚合功能在实现跨块非局部信息通信中起着至关重要的作用。
这个观察结果引导我们设计一个简化的体系结构,它需要在原始视觉转换器上进行少量的代码更改。所提出的明智选择的设计有三个好处:(1)NesT收敛速度更快,需要更少的训练数据,以在ImageNet和像CIFAR这样的小数据集上实现良好的泛化;(2)当将我们的关键思想扩展到图像生成时,NesT带来了一个强大的解码器,比以前基于变压器的生成器快8倍;(3)通过设计中的这种嵌套层次结构将特征学习和抽象过程解耦,可以构建一种新的方法(称为GradCAT),用于可视化地解释学习到的模型。
1. 引言
缺乏归纳偏差,如局部性和平移等方差,是ViT模型数据效率低下的一个解释。Transformer模型以一种可变形的卷积方式学习局部行为:底层局部关注周围像素,顶层倾向于长期依赖。另一方面,高分辨率图像中像素对之间的全局自关注在计算上是昂贵的。减少自注意力范围是提高模型训练计算效率的一种方法。这些类型的见解与具有局部自注意力和层次transformer的最新结构一致,而不是整体的全局自注意力,它们对局部图像补丁进行关注。为了促进补丁间的信息交流,提出了专门的设计,如“光晕操作”和“移位窗口”。这些都是基于修改自注意力机制,并且在复杂的体系结构中经常产生。另一方面,设计目标保持原有的关注,引入聚合功能的设计,提高数据的准确性和效率,同时带来可解释性的好处。
NesT模型通过堆叠规范Transformer Blocks来单独处理不重叠的图像块。跨块自注意力是通过分层嵌套这些Transformer 并将它们与建议的聚合函数连接来实现的。图1说明了整个体系结构和生成它的简单伪代码。
(左)嵌套变压器层次结构的NesT示意图;(右)生成架构的简单伪代码。每个节点t1处理一个图像块。在层次之间进行块聚合(这里的num hierarchy= 3),实现图像(feature map)平面上的跨块通信。
将分层嵌套的 Transformer 与所提出的块聚合函数集成可以优于以前复杂的(局部)自注意力变体,从而大大简化了体系结构并提高了数据效率。
NesT通过显著简化的架构设计实现了令人印象深刻的ImageNet分类精度。与流行的卷积架构相比,NesT在小数据集上实现了匹配的精度。当将这一思想从分类扩展到图像生成时,NesT可以被重新用于强大的解码器,该解码器可以获得比卷积架构更好的性能,同时具有相当的速度。
提出了一种名为GradCAT的新方法,通过遍历其树状结构来解释NesT的推理过程。这提供了一种新的视觉可解释性,解释了聚合局部变形器如何选择性地处理来自语义图像补丁的局部视觉线索。
2. 相关工作
基于Vision Transformer 的模型面临的一个挑战是数据效率。虽然原始的ViT在预训练时使用数亿张图像时性能优于卷积网络,但这种数据需求并不总是实际可行的。数据高效的ViT(DeiT)(Touvron et al 2021a,b)试图通过引入来自卷积网络的 教师蒸馏 来解决这个问题。尽管这种方法很有前景,但它增加了监督训练的复杂性,并且在数据高效基准测试(Hassani et al 2021; Chen et al 2021)上的现有报告性能仍然显著低于卷积网络。
由于ViT已显示出在图像分类以外的视觉任务上的改进,之前的工作研究了其在生成建模、视频理解、分割和检测、可解释性等方面的适用性。
3. 提出的方法
3.1 主要架构
总体设计是堆叠规范 transformer 层,对每个图像块独立进行局部自注意力,然后分层嵌套。通过在每两个层次之间提出的块聚合来实现空间相邻块之间处理信息的耦合。
整体层次结构可由两个关键超参数确定:补丁大小S × S和块层次数。每个层次结构中的所有块共享一组参数。
首先,给定一个形状为H × W × 3的图像作为输入,其中H是高度,W是宽度,3代表RGB三个颜色通道。该模型将图像分割成大小为S × S的图像块(或称为“patches”)。每个这样的图像块都被线性投影(即,通过一个线性层转换)到一个 维的嵌入向量中,其中 表示 d 维实数空间。
接下来,所有的这些嵌入向量被组织成块(blocks),并展平以生成一个输入张量X,其形状为