营销展示型网站模板,施工企业,国外网站排名前十,做市场调查的网站摘要
https://arxiv.org/pdf/2203.11926.pdf 我们提出了焦点调制网络#xff08;简称FocalNets#xff09;#xff0c;其中自注意力#xff08;SA#xff09;被焦点调制模块完全取代#xff0c;用于在视觉中建模令牌交互。焦点调制包含三个组件#xff1a;#xff08;…摘要
https://arxiv.org/pdf/2203.11926.pdf 我们提出了焦点调制网络简称FocalNets其中自注意力SA被焦点调制模块完全取代用于在视觉中建模令牌交互。焦点调制包含三个组件i焦点上下文化通过堆叠深度卷积层实现以从短到长范围编码视觉上下文ii门控聚合用于选择性地收集上下文信息到每个查询令牌的调制器中iii元素级仿射变换将调制器注入查询中。大量实验表明FocalNets表现出非凡的可解释性如图1所示并在图像分类、目标检测和分割等任务上以类似的计算成本超越了SoTA SA对应项例如Swin和Focal Transformers。具体来说具有tiny和base大小的FocalNets在ImageNet-1K上可以达到 82.3 % 82.3\% 82.3%和 83.9 % 83.9\% 83.9%的top-1准确率。在 22 4 2 224^{2} 2242分辨率的ImageNet-22K上进行预训练后使用 22 4 2 224^{2} 2242和 38 4 2 384^{2} 3842分辨率微调时分别达到了 86.5 % 86.5\% 86.5%和 87.3 % 87.3\% 87.3%的top-1准确率。对于使用Mask R-CNN的目标检测任务使用 1 1 1倍训练计划的FocalNet base比Swin对手高出 2.1 2.1 2.1个百分点并且已经超过了使用 3 3 3倍训练计划的Swin 49.0 49.0 49.0 v.s. 48.5 48.5 48.5。对于使用UPerNet的语义分割任务FocalNet base在单尺度上比Swin高出 2.4 2.4 2.4个百分点并且在多尺度上也比Swin表现更好 50.5 50.5 50.5 v.s. 49.7 49.7 49.7。使用大型FocalNet和Mask2former我们在ADE20K语义分割上实现了 58.5 m I o U 58.5 \mathrm{mIoU} 58.5mIoU在COCO全景分割上实现了 57.9 P Q 57.9 \mathrm{PQ} 57.9PQ。使用巨大的FocalNet和DINO我们在COCO minival和test-dev上分别实现了 64.3 64.3 64.3和 64.4 m A P 64.4 \mathrm{mAP} 64.4mAP在比Swinv2-G[53]和BEIT-3[84]等基于注意力的大型模型更优越的基础上创下了新的SoTA记录。这些令人鼓舞的结果表明焦点调制可能是视觉领域所需要的。
1、引言
Transformer [79] 最初是为自然语言处理NLP而提出的自从Vision TransformerViT [22] 这一开创性工作以来它已成为计算机视觉中普遍使用的架构。Transformer在各种视觉任务中都展现出了巨大的潜力包括图像分类 [75, 82, 89, 54, 108, 78]、目标检测 [3, 120, 114, 18]、分割 [80, 86, 14] 以及更多其他任务 [45, 112, 4, 9, 81, 41]。在Transformer中自注意力SA无疑是成功的关键它使全局交互变得依赖于输入这与卷积操作使用共享内核限制在局部区域内进行交互形成了鲜明对比。尽管如此SA的效率一直是人们关注的焦点因为它对于视觉令牌数量的复杂度是二次方的特别是对于高分辨率输入时。为了解决这个问题许多工作提出了SA的变体通过令牌合并 [82]、窗口注意力 [54, 78, 108]、动态令牌选择 [60, 98, 59] 或混合方法 [95, 15] 来实现。同时一些模型通过增强SA与深度卷积的结合来提出以捕获具有良好局部结构感知的长距离依赖关系 [89, 25, 94, 23, 21, 40, 7, 20]。
在这项工作中我们旨在回答一个根本问题是否有比自注意力SA更好的方式来建模依赖于输入的长距离交互我们首先分析了当前SA的先进设计。在图2的左侧我们展示了在ViT [22] 和Swin Transformer [54] 中提出的红色查询令牌与其周围橙色令牌之间的常用窗口式注意力。为了产生输出SA涉及大量查询-键交互红色箭头随后是查询与大量空间分布令牌上下文特征之间同样大量的查询-值聚合黄色箭头。但是是否有必要进行如此繁重的交互和聚合呢在这项工作中我们采取了一种替代方法即首先围绕每个查询局部地聚合上下文然后使用聚合的上下文自适应地调制查询。如图2右侧所示我们可以简单地应用与查询无关的局部聚合例如深度卷积来生成不同粒度级别的汇总令牌。之后这些汇总令牌被自适应地聚合到调制器中最终注入到查询中。这种改变仍然能够实现依赖于输入的令牌交互但通过将聚合与单个查询解耦显著简化了这个过程从而仅对几个特征进行轻量级的交互。我们的方法受到焦点注意力focal attention的启发 [95]它执行多个级别的聚合以捕获精细和粗略的视觉上下文。然而我们的方法在每个查询位置提取调制器并利用一种更简单的方式来实现查询-调制器交互。我们将这种新机制称为焦点调制并使用它来替代SA构建一个无注意力的架构即焦点调制网络简称FocalNet。
最终我们在图像分类、目标检测和分割任务上进行了大量实验结果表明我们的FocalNet在性能上始终显著优于同等成本的SoTA SA模型。特别地我们的FocalNet在使用微小和基本模型大小时分别达到了82.3%和83.9%的top-1准确率但吞吐量与Swin和Focal Transformer相当甚至翻倍。当在ImageNet-22K上以224^2分辨率进行预训练时我们的FocalNet在 22 4 2 224^2 2242和 38 4 2 384^2 3842分辨率下分别达到了86.5%和87.3%的准确率与Swin在相似成本下的表现相当或更好。在转移到密集预测任务时这一优势尤为显著。在COCO目标检测任务上我们的FocalNet使用微小和基本模型大小在Mask R-CNN 1×设置下分别实现了46.1和49.0的框mAP超过了使用3×设置的Swin46.0和48.5框mAP。在ADE20k语义分割任务上我们的基本模型大小的FocalNet在单尺度评估下达到了50.5 mIoU超过了Swin在多尺度评估下的表现49.7 mIoU。使用预训练的大型FocalNet我们在ADE20K语义分割任务上实现了58.5 mIoU在基于Mask2former的COCO全景分割任务上实现了57.9 PQ。使用巨大的FocalNet和DINO [106]我们在COCO minival和test-dev上分别实现了64.3和64.4 mAP在COCO上建立了新的SoTA超过了如Swinv2-G [53]和BEIT-3 [84]等基于注意力且规模更大的模型。请在图3中查找视觉比较并在实验中查找详细信息。最后我们将Focal Modulation应用于类似于ViTs的单体布局中并清楚地展示了其在不同模型大小上的优越性。 2、相关工作
自注意力机制。Transformer [79] 首先通过将图像分割成一系列视觉标记在 Vision Transformer (ViT) [22] 中引入视觉领域。ViTs中的自注意力SA策略在经过优化的训练方案下已经展现出优于现代卷积神经网络ConvNets如ResNet [30]的性能。随后多尺度架构[5, 82, 94]、轻量级卷积层[89, 25, 46]、局部自注意力机制[54, 108, 15, 95]以及可学习的注意力权重[101]等被提出以进一步提升性能并支持高分辨率输入。更全面的综述可以参考[38, 27, 38]。我们的焦点调制机制与SA有着显著的不同它首先从不同粒度级别聚合上下文然后调制各个查询标记从而形成一个无需注意力的标记交互机制。在上下文聚合方面我们的方法受到[95]中提出的焦点注意力的启发。然而焦点调制的上下文聚合是在每个查询位置进行的随后进行调制而非注意力计算。这些机制上的差异使得效率和性能得到了显著提升。另一项密切相关的工作是Poolformer [100]它使用池化来总结局部上下文并通过简单的减法来调整单个输入。尽管效率不错但它在性能上仍然落后于流行的视觉变换器如Swin。正如我们将要展示的在不同级别上捕获局部结构是至关重要的。
MLP架构。视觉MLP可以分为两类(i)全局混合MLP如MLP-Mixer [72]和ResMLP [74]通过空间投影在视觉标记之间进行全局通信辅以各种技术如门控、路由和傅里叶变换[51, 58, 70, 71]。(ii)局部混合MLP通过空间移位、置换和伪核混合等方式对邻近标记进行采样以实现交互[99, 32, 48, 8, 26]。最近MixShift-MLP [113]以类似于焦点注意力[95]的精神利用MLP同时实现了局部和全局交互。MLP架构和我们的焦点调制网络都是无注意力的。然而具有多级上下文聚合的焦点调制能够自然地捕获短程和长程结构因此在准确性和效率之间实现了更好的权衡。
卷积神经网络ConvNets一直是计算机视觉中深度神经网络复兴的主要驱动力。自从VGG [63]、InceptionNet [67]和ResNet [30]的出现以来该领域已经迅速发展。专注于提高ConvNets效率的代表性工作有MobileNet [33]、ShuffleNet [111]和EfficientNet [69]。另一条研究线路旨在集成全局上下文以补偿ConvNets例如SE-Net [35]、Non-local Network [85]、GCNet [2]、LR-Net [34]和C3Net [97]等。引入动态操作是增强ConvNets的另一种方法如Involution [43]和DyConv [10]所展示的。最近ConvNets从两个方面重新崛起i卷积层被集成到自注意力SA中并带来了显著的增益[89,25,46,23]反之亦然[76]iiResNets通过使用类似的数据增强和正则化策略缩小了与ViTs之间的差距[88]将SA替换为动态深度卷积[28, 55]也可以略微超过Swin。我们的焦点调制网络也利用深度卷积作为微架构但进一步引入了多级上下文聚合和输入依赖调制。我们将展示这个新模块的性能显著优于原始的卷积网络。
3、焦点调制网络
3.1、从自注意力到焦点调制
给定一个视觉特征图 X ∈ R H × W × C \mathbf{X} \in \mathbb{R}^{H \times W \times C} X∈RH×W×C 作为输入一个通用的编码过程通过与其周围环境 X \mathbf{X} X例如相邻的标记的交互 T \mathcal{T} T 和对上下文的聚合 M \mathcal{M} M 为每个视觉标记查询 x i ∈ R C \boldsymbol{x}_{i} \in \mathbb{R}^{C} xi∈RC 生成一个特征表示 y i ∈ R C \boldsymbol{y}_{i} \in \mathbb{R}^{C} yi∈RC。
自注意力。自注意力模块使用后期聚合过程可以表述为 y i M 1 ( T 1 ( x i , X ) , X ) \boldsymbol{y}_{i} \mathcal{M}_{1}(\mathcal{T}_{1}(\boldsymbol{x}_{i}, \mathbf{X}), \mathbf{X}) yiM1(T1(xi,X),X)
其中在通过交互 T 1 \mathcal{T}_{1} T1 计算查询和目标之间的注意力分数之后对上下文 X \mathbf{X} X 进行聚合 M 1 \mathcal{M}_{1} M1。
焦点调制。相比之下焦点调制使用早期聚合过程来生成精炼的表示 y i \boldsymbol{y}_{i} yi可以表述为 y i T 2 ( M 2 ( i , X ) , x i ) \boldsymbol{y}_{i} \mathcal{T}_{2}(\mathcal{M}_{2}(i, \mathbf{X}), \boldsymbol{x}_{i}) yiT2(M2(i,X),xi)
其中首先使用 M 2 \mathcal{M}_{2} M2 在每个位置 i i i 对上下文特征进行聚合然后基于 T 2 \mathcal{T}_{2} T2 查询与聚合的特征进行交互以形成 y i \boldsymbol{y}_{i} yi。
比较式1和式2我们发现i焦点调制的上下文聚合 M 2 \mathcal{M}_{2} M2 通过共享操作符例如深度卷积分摊了上下文的计算而自注意力中的 M 1 \mathcal{M}_{1} M1 计算成本更高因为它需要对不同查询求和不可共享的注意力分数ii交互 T 2 \mathcal{T}_{2} T2 是标记与其上下文之间的轻量级操作符而 T 1 \mathcal{T}_{1} T1 涉及计算标记到标记的注意力分数具有二次复杂度。
基于式2我们将焦点调制实例化为 y i q ( x i ) ⊙ m ( i , X ) \boldsymbol{y}_{i} q\left(\boldsymbol{x}_{i}\right) \odot m(i, \mathbf{X}) yiq(xi)⊙m(i,X)
其中 q ( ⋅ ) q(\cdot) q(⋅) 是查询投影函数 ⊙ \odot ⊙ 表示逐元素乘法。 m ( ⋅ ) m(\cdot) m(⋅) 是上下文聚合函数其输出称为调制器。图 4(a) 和 (b) 比较了自注意力和焦点调制。所提出的焦点调制具有以下有利的特性
平移不变性。由于 q ( ⋅ ) q(\cdot) q(⋅) 和 m ( ⋅ ) m(\cdot) m(⋅) 总是以查询标记 i i i 为中心并且不使用位置嵌入因此调制对输入特征图 X \mathbf{X} X 的平移是不变的。明确的输入依赖性。调制器是通过 m ( ⋅ ) m(\cdot) m(⋅) 聚合目标位置 i i i 周围的局部特征来计算的因此我们的焦点调制明确地依赖于输入。空间特异性和通道特异性。目标位置 i i i 作为 m ( ⋅ ) m(\cdot) m(⋅) 的指针可以实现空间特异性调制。逐元素乘法可以实现通道特异性调制。解耦的特征粒度。 q ( ⋅ ) q(\cdot) q(⋅) 保留了单个标记的最精细信息而 m ( ⋅ ) m(\cdot) m(⋅) 提取了更粗糙的上下文。它们通过调制解耦但结合在一起。
接下来我们将详细描述式3中 m ( ⋅ ) m(\cdot) m(⋅) 的实现。
3.2、通过 m ( ⋅ ) m(\cdot) m(⋅) 的上下文聚合
已经证明短程和远程上下文对于视觉建模都至关重要 [95, 21, 55]。然而具有较大感受野的单一聚合不仅会在时间和内存上带来高昂的计算成本还会破坏对密集预测任务特别有用的局部精细结构。受 [95] 的启发我们提出了一种多尺度分层上下文聚合。如图 4 © 所示聚合过程包含两个步骤分层上下文化以从局部到全局范围提取不同粒度级别的上下文门控聚合将不同粒度级别的所有上下文特征凝聚成调制器。
步骤 1分层上下文化。
给定输入特征图 X \mathbf{X} X我们首先使用线性层将其投影到一个新的特征空间即 Z 0 f z ( X ) ∈ R H × W × C \mathbf{Z}^{0} f_{z}(\mathbf{X}) \in \mathbb{R}^{H \times W \times C} Z0fz(X)∈RH×W×C。然后使用 L L L 个深度卷积堆叠来获得上下文的分层表示。在焦距级别 ℓ ∈ { 1 , … , L } \ell \in \{1, \ldots, L\} ℓ∈{1,…,L}输出 Z ℓ \mathbf{Z}^{\ell} Zℓ 是通过以下方式推导的 Z ℓ f a ℓ ( Z ℓ − 1 ) ≜ GeLU ( DWConv ( Z ℓ − 1 ) ) ∈ R H × W × C , \mathbf{Z}^{\ell} f_{a}^{\ell}\left(\mathbf{Z}^{\ell-1}\right) \triangleq \operatorname{GeLU}\left(\operatorname{DWConv}\left(\mathbf{Z}^{\ell-1}\right)\right) \in \mathbb{R}^{H \times W \times C}, Zℓfaℓ(Zℓ−1)≜GeLU(DWConv(Zℓ−1))∈RH×W×C,
其中 f a ℓ f_{a}^{\ell} faℓ 是第 ℓ \ell ℓ 级的上下文化函数通过卷积核大小为 k ℓ k^{\ell} kℓ 的深度卷积 DWConv 后跟一个 GeLU 激活函数 [31] 来实现。使用深度卷积进行式4的分层上下文化是出于其理想特性的考虑。与池化操作 [100, 35] 相比深度卷积是可学习的且结构感知的。与常规卷积相比它是通道化的因此在计算上更为经济。
分层上下文化过程通过 Eq. (4) 生成了 L L L 个级别的特征图。在级别 ℓ \ell ℓ 上有效感受野是 r ℓ 1 ∑ i 1 ℓ ( k i − 1 ) r^{\ell} 1 \sum_{i1}^{\ell} \left(k^{i} - 1\right) rℓ1∑i1ℓ(ki−1)这通常远大于卷积核的大小 k ℓ k^{\ell} kℓ。为了捕获整个输入的全局上下文这可能是一个高分辨率的输入我们在第 L L L 级别的特征图 Z L \mathbf{Z}^{L} ZL 上应用全局平均池化得到 Z L 1 AvgPool ( Z L ) \mathbf{Z}^{L1} \operatorname{AvgPool}(\mathbf{Z}^{L}) ZL1AvgPool(ZL)。因此我们总共获得了 ( L 1 ) (L1) (L1) 个特征图 { Z ℓ } ℓ 1 L 1 \left\{\mathbf{Z}^{\ell}\right\}_{\ell1}^{L1} {Zℓ}ℓ1L1它们共同捕获了不同粒度级别的短程和远程上下文。
步骤 2门控聚合。
在这一步骤中通过分层上下文化得到的 ( L 1 ) (L1) (L1) 个特征图被凝聚成一个调制器。在图像中一个视觉标记查询与其周围上下文之间的关系通常取决于标记本身的内容。例如模型可能会依赖于局部精细特征来编码显著视觉对象的查询但对于背景场景的查询则主要依赖于全局粗粒度特征。基于这种直觉我们使用一个门控机制来控制从每个查询的不同级别中聚合多少信息。
具体来说我们使用一个线性层来获取一个空间级别感知的门控权重 G f g ( X ) ∈ R H × W × ( L 1 ) \mathbf{G} f_{g}(\mathbf{X}) \in \mathbb{R}^{H \times W \times (L1)} Gfg(X)∈RH×W×(L1)。然后通过逐元素乘法执行加权和得到一个与输入 X \mathbf{X} X 大小相同的单一特征图 Z out \mathbf{Z}^{\text{out}} Zout Z out ∑ ℓ 1 L 1 G ℓ ⊙ Z ℓ ∈ R H × W × C \mathbf{Z}^{\text{out}} \sum_{\ell1}^{L1} \mathbf{G}^{\ell} \odot \mathbf{Z}^{\ell} \in \mathbb{R}^{H \times W \times C} Zoutℓ1∑L1Gℓ⊙Zℓ∈RH×W×C
其中 G ℓ ∈ R H × W × 1 \mathbf{G}^{\ell} \in \mathbb{R}^{H \times W \times 1} Gℓ∈RH×W×1 是 G \mathbf{G} G 中对应于级别 ℓ \ell ℓ 的一个切片。在图 5 中可视化这些门控图时我们惊讶地发现我们的 FocalNet 确实如我们所期望的那样学会了自适应地从不同焦距级别收集上下文。我们可以看到对于一个小对象上的标记它更多地关注低焦距级别的精细局部结构而一个位于均匀背景中的标记则需要从更高级别中感知到更大的上下文。到目前为止所有的聚合都是空间上的。为了实现不同通道之间的通信我们使用了另一个线性层 h ( ⋅ ) h(\cdot) h(⋅) 来获得调制器映射 M h ( Z out ) ∈ R H × W × C \mathbf{M} h\left(\mathbf{Z}^{\text{out}}\right) \in \mathbb{R}^{H \times W \times C} Mh(Zout)∈RH×W×C。在图 6 中我们可视化了 FocalNet 最后一层中调制器 M \mathbf{M} M 的幅度。有趣的是调制器自动更加关注那些决定类别的物体这为我们提供了一种简单的方式来解释 FocalNet。 焦点调制。根据上述描述的 m ( ⋅ ) m(\cdot) m(⋅) 的实现方式Eq.(3) 中的焦点调制可以在标记级别上重写为 y i q ( x i ) ⊙ h ( ∑ ℓ 1 L 1 g i ℓ ⋅ z i ℓ ) \boldsymbol{y}_{i} q\left(\boldsymbol{x}_{i}\right) \odot h\left(\sum_{\ell1}^{L1} \boldsymbol{g}_{i}^{\ell} \cdot \boldsymbol{z}_{i}^{\ell}\right) yiq(xi)⊙h(ℓ1∑L1giℓ⋅ziℓ)
其中 g i ℓ \boldsymbol{g}_{i}^{\ell} giℓ 和 z i ℓ \boldsymbol{z}_{i}^{\ell} ziℓ 分别是 G ℓ \mathbf{G}^{\ell} Gℓ 和 Z ℓ \mathbf{Z}^{\ell} Zℓ 在位置 i i i 上的门控值和视觉特征。我们将提出的焦点调制以 PyTorch 风格的伪代码总结在算法 1 中该算法使用几个深度可分离卷积和线性层实现。
3.3、与其他架构设计的关系
根据公式 Eq. (6)我们建立了我们的焦点调制与其他相关架构设计除了自注意力机制之间的联系。深度可分离卷积已被用于增强自注意力SA的局部结构建模 [89, 21, 25]或者纯粹地用于实现高效的长距离交互 [33, 28, 55]。我们的焦点调制也采用了深度可分离卷积作为其构建块之一。然而我们并不是直接将其响应作为输出而是使用深度可分离卷积来捕获分层上下文然后将其转换为调制器来调制每个查询。我们将在实验中展示这三个组件作为一个整体共同贡献了最终的良好性能。
Squeeze-and-Excitation (SE) 是在视觉转换器出现之前提出的 [35]。它利用全局平均池化来全局地压缩上下文然后是一个多层感知器MLP和一个 Sigmoid 函数以获取每个通道的激励标量。SE 可以被视为焦点调制的一个特例。在 Eq. (6) 中设置 L 0 L0 L0焦点调制退化为 q ( x i ) ⊙ h ( f g ( x i ) ⋅ Avg-Pool ( f z ( X ) ) ) q\left(\boldsymbol{x}_{i}\right) \odot h\left(f_{g}\left(\boldsymbol{x}_{i}\right) \cdot \text{Avg-Pool}\left(f_{z}(\mathbf{X})\right)\right) q(xi)⊙h(fg(xi)⋅Avg-Pool(fz(X)))这与 SE 类似。在我们的实验中我们研究了这种变体并发现全局上下文对于视觉建模来说是远远不够的。
PoolFormer 是最近提出的模型因其简洁性而备受关注 [100]。它使用平均池化在滑动窗口中局部提取上下文然后使用元素级的减法来调整查询标记。它与 SE-Net 有相似的精神但使用局部上下文而不是全局上下文并使用减法而不是乘法。将 PoolFormer 和焦点调制放在一起比较我们可以发现它们都提取局部上下文并启用查询-上下文交互但方式不同池化与卷积减法与调制。
3.4、复杂度
在焦点调制公式 Eq. (6) 中主要有三个线性投影 q ( ⋅ ) , h ( ⋅ ) q(\cdot), h(\cdot) q(⋅),h(⋅) 和 f z ( ⋅ ) f_{z}(\cdot) fz(⋅) 用于 Z 0 \mathbf{Z}^{0} Z0。此外它还需要一个轻量级的线性函数 f g ( ⋅ ) f_{g}(\cdot) fg(⋅) 用于门控和 L L L 个深度可分离卷积 f a { 1 , … , L } f_{a}^{\{1, \ldots, L\}} fa{1,…,L} 用于分层上下文化。因此可学习的参数总数为 3 C 2 C ( L 1 ) C ∑ ℓ ( k ℓ ) 2 3 C^{2} C(L1) C \sum_{\ell} \left(k^{\ell}\right)^{2} 3C2C(L1)C∑ℓ(kℓ)2。由于 L L L 和 ( k ℓ ) 2 \left(k^{\ell}\right)^{2} (kℓ)2 通常远小于 C C C模型大小主要由第一项决定我们将在 Sec. 4 中展示。关于时间复杂度除了线性投影和深度可分离卷积层之外元素级乘法为每个视觉标记引入了 O ( C ( L 2 ) ) \mathcal{O}(C(L2)) O(C(L2)) 的复杂度。因此特征图的总复杂度为 O ( H W × ( 3 C 2 C ( 2 L 3 ) C ∑ ℓ ( k ℓ ) 2 ) ) \mathcal{O}\left(H W \times \left(3 C^{2} C(2L3) C \sum_{\ell} \left(k^{\ell}\right)^{2}\right)\right) O(HW×(3C2C(2L3)C∑ℓ(kℓ)2))。相比之下Swin Transformer 中窗口大小为 w w w 的窗口自注意力复杂度为 O ( H W × ( 3 C 2 2 C w 2 ) ) \mathcal{O}\left(H W \times \left(3 C^{2} 2 C w^{2}\right)\right) O(HW×(3C22Cw2))而 ViTs 中的普通自注意力复杂度为 O ( ( H W ) 2 C H W × ( 3 C 2 ) ) \mathcal{O}\left((H W)^{2} C H W \times \left(3 C^{2}\right)\right) O((HW)2CHW×(3C2))。
3.5、网络架构
我们采用了与 Swin [54] 和 Focal Transformers [95] 相同的阶段布局和隐藏维度但将自注意力模块替换为焦点调制模块。因此我们构建了一系列焦点调制网络FocalNet变体。在 FocalNets 中我们只需要指定焦点层级数量 L L L和每个层级的卷积核大小 k ℓ k^{\ell} kℓ。为了简化我们从较低的焦点层级到较高的焦点层级逐渐增加卷积核大小即 k ℓ k ℓ − 1 2 k^{\ell} k^{\ell-1} 2 kℓkℓ−12。为了匹配 Swin 和 Focal Transformers 的复杂度我们针对四种布局设计了小感受野SRF和大感受野LRF版本分别使用 2 和 3 个焦点层级。我们在网络开头使用非重叠卷积层进行块嵌入核大小 4 × 4 4 \times 4 4×4步长 4 4 4并在两个阶段之间使用另一个非重叠卷积层核大小 2 × 2 2 \times 2 2×2步长 2 2 2。
4、实验
4.1、图像分类
我们在ImageNet-1K分类任务[19]上比较了不同的方法。遵循[75, 54, 95]中的配方我们使用ImageNet-1K训练集训练FocalNet-T、FocalNet-S和FocalNet-B并在验证集上报告Top-1准确率%。训练细节见附录。
为了验证FocalNet的有效性我们将其与基于ConvNets、Transformers和MLPs的三组方法进行比较。结果如表1所示。我们看到FocalNets优于传统的CNNs例如ResNet[30]及其增强版[88]、MLP架构如MLP-Mixer[73]和gMLP[50]以及Transformer架构如DeiT[75]和PVT[82]。特别是我们将FocalNets与Swin和Focal Transformers进行了比较它们使用相同的架构来验证FocalNet在底层部分的独立有效性。我们发现具有小感受野SRF的FocalNets在模型大小、FLOPs和吞吐量相似的情况下性能始终优于Swin Transformer。例如微型FocalNet比Swin-Tiny提高了0.9%的Top-1准确率。与Focal TransformersFocalAtt相比虽然我们改用大感受野LRF但它仍然远小于FocalAtt中使用的感受野。焦点调制在所有模型大小上均优于强大且设计精良的焦点注意力。更重要的是它通过去除许多耗时的操作如滚动和展开大大提高了运行速度。
模型增强。我们研究了是否一些常用于视觉Transformer的技术也可以提升我们的FocalNets。首先我们探讨了使用重叠的补丁嵌入patch embedding进行下采样的效果[25]。根据[89]我们在开始时将补丁嵌入的核大小和步长从(4,4)更改为(7,4)并在后续阶段将(2,2)更改为(3,2)。比较结果如表2所示。重叠的补丁嵌入提高了所有尺寸模型的性能但稍微增加了计算复杂性和时间成本。
其次我们按照[21,119]的做法将FocalNets设计得更深但更窄。在表3中我们将FocalNet-T的深度布局从2-2-6-2更改为3-3-16-3将FocalNet-S/B从2-2-18-2更改为4-4-28-4。同时第一阶段的隐藏维度分别从96、128减少到64、96。这些改变导致模型更小、FLOPs更少但由于顺序块的数量增加时间成本会更高。结果表明增加深度显著提升了FocalNets的性能。这些结果证明了为视觉Transformer开发的常用模型增强技术可以很容易地用于提升FocalNets的性能。
ImageNet-22K预训练。我们研究了在ImageNet-22K上进行预训练的FocalNets的有效性。ImageNet-22K包含14.2M张图像和21K个类别。训练细节见附录。我们在表4中报告了结果。虽然FocalNet-B/L都是在224×224分辨率下进行预训练并直接在目标域中转移到384×384的图像大小但我们可以看到它们始终优于Swin Transformer。
4.2、语言-图像对比学习
我们还研究了FocalNet在最近流行的语言-图像对比学习范式中的应用。更具体地说我们的实验设置遵循了野外图像分类ICinW挑战中的学术赛道。在这个赛道中我们使用ImageNet-21K去除了ImageNet-1K的图像、GCC3M12M和YFCC15M进行预训练并评估了20个下游数据集和ImageNet-1K的零样本性能[42]。这一设置最初是在UniCL[96]中提出的。我们使用UniCL目标进行模型预训练并将视觉骨干网络指定为FocalNet-B和Swin-B进行比较。结果如表5所示。在ICinW的20个数据集上FocalNet-B平均比Swin-B高出0.8个点的增益在ImageNet-1K上高出2.0个点的增益。
4.3、目标检测与分割
目标检测与实例分割。我们在COCO 2017数据集[49]上进行目标检测的比较。我们选择Mask R-CNN[29]作为检测方法并使用在ImageNet-1K上预训练的FocalNet-T/S/B作为骨干网络。所有模型都在118k训练图像上进行训练并在5k验证图像上进行评估。我们采用两种标准的训练方案12个周期的1×方案和36个周期的3×方案。按照[54]我们使用相同的多尺度训练策略随机将图像的较短边缩放到 [ 480 , 800 ] [480, 800] [480,800]。与[95]类似为了适应更高的输入分辨率我们在所有焦点级别上通过增加6个核大小 k ℓ k^{\ell} kℓ来进行上下文聚合。与[95]中上采样相对位置偏差不同FocalNets使用简单的零填充来处理额外的核参数。这种扩展引入的开销可以忽略不计但有助于提取更长的范围上下文。在训练时我们使用AdamW[57]作为优化器初始学习率为 1 0 − 4 10^{-4} 10−4权重衰减为0.05。所有模型的批处理大小设置为16。对于FocalNet-T/S/B我们在1×训练方案中分别设置随机丢弃率为0.1、0.2、0.3在3×训练方案中分别设置为0.3、0.5、0.5。
结果如表6所示。我们测量了box和mask的mAP并报告了小范围和大范围接收域模型的结果。与Swin Transformer相比FocalNets在1×训练方案中对于tiny、small和base模型box mAP A P b \mathrm{AP}^{b} APb分别提高了2.2、1.5和1.9。在3×训练方案中改进仍然是一致且显著的。值得注意的是FocalNet-T/B在1×训练方案下的性能45.9/48.8与经过3×训练方案的Swin-T/B46.0/48.5相当。与FocalAtt[95]相比具有大范围接收域的FocalNets在所有设置下均表现出色并且计算成本更低。对于实例分割我们观察到FocalNets的趋势与目标检测相似。为了进一步验证FocalNets的通用性我们使用FocalNet-T作为骨干网络训练了三个检测模型Cascade Mask R-CNN[1]、Sparse R-CNN[66]和ATSS[109]。我们使用3×训练方案对所有模型进行训练并在表7中报告了box mAP。可以看出与之前的SoTA方法相比FocalNets为这三种检测方法都带来了明显的提升。
语义分割。我们在语义分割任务上评估FocalNets的性能这是一个需要精细理解和长距离交互的密集预测任务。我们使用ADE20K[118]数据集进行实验并遵循[54]使用UperNet[90]作为分割方法。我们使用在ImageNet-1K上预训练的FocalNet-T/S/B作为骨干网络对UperNet进行160k次迭代训练输入分辨率为 512 × 512 512 \times 512 512×512批处理大小为16。为了进行比较我们报告了单尺度和多尺度MS的mIoU。表8显示了使用不同骨干网络的结果。在所有设置下FocalNet显著优于Swin和Focal Transformer。即使是基础模型FocalNetSRF在单尺度和多尺度上分别比Swin Transformer高出2.1和1.4。与Focal Transformer相比FocalNets表现出更大的优势并且计算成本更低。这些结果证明了FocalNets在像素级密集预测任务上的优越性除了实例级目标检测任务外。
扩大FocalNets的规模。鉴于上述FocalNets在目标检测和分割任务上表现出的优越性能我们进一步研究了在扩大规模时的有效性。特别是为了与在ImageNet-22K上以 384 × 384 384 \times 384 384×384分辨率预训练的Swin-L进行公平比较我们也使用3个焦点级别和核大小[3, 5, 7]在ImageNet-22K上以 384 × 384 384 \times 384 384×384分辨率对FocalNet-L进行预训练。我们使用Mask2former[12]在ADE20K上进行语义分割在COCO上进行全景分割。如表9所示FocalNet-L在模型大小相似且使用相同预训练数据的情况下性能优于Swin-L。我们注意到以灰色字体显示的方法如Swinv2-G和ViT-Adapter-L取得了更好的性能但使用了更多的参数和训练数据。在表10中我们比较了不同模型在具有133个类别的COCO数据集上的全景分割性能。我们的FocalNet-L在PQ上略优于Swin-L。这些结果清楚地证明了在扩大到大模型规模时我们的FocalNets在各种分割任务上的有效性。
最后我们研究了在大规模目标检测中FocalNets的有效性。目前许多方法已经扩展到数十亿模型参数[52, 84]。为了迎头赶上我们在ImageNet-22K上预训练了一个具有约7亿参数的巨大FocalNet使用与我们大模型相同的方案进行90个周期的训练。在预训练的FocalNet-H基础上我们使用公开的目标检测方法DINO[106]。按照之前的工作我们在Object365[62]上预训练检测模型并在COCO训练集上进行微调。我们在表11中报告了结果。我们的模型击败了如SwinV2-G[52]、BEIT-3[106]等SoTA方法同时消耗的参数和骨干网络预训练数据更少。它还优于使用新特征蒸馏技术[87]调整的SwinV2-G并在COCO排行榜上建立了新的SoTA。我们相信在配备相同技术并在更多数据上进行预训练后我们的FocalNet可以进一步得到提升。
4.4、网络检验
模型变体。我们在表12中比较了从FocalNet衍生出的六个不同模型变体。
深度卷积网络。它将顶层 L L L的特征向量输入到一个两层的多层感知机MLP。得到的模型接近于DW-Net[28]。尽管它可以达到81.6%的准确率超过了Swin81.3%但它的性能比FocalNet低0.7%。FocalNet虽然使用深度卷积作为组件但其目的是聚合上下文信息并用于调制每个单独的标记。池化聚合器。它将深度卷积模块替换为平均池化在标记聚合方面与MetaFormer[100]相似。平均池化具有稍低的复杂度但导致准确率显著下降1.8%。与深度卷积相比池化是置换不变的因此无法捕获视觉结构。全局池化聚合器。它移除了所有级别的局部聚合只保留全局聚合 Z L 1 \mathbf{Z}^{L1} ZL1。这个变体类似于SENet[35]。结果表明仅使用全局上下文进行视觉建模是不够的导致准确率显著下降6.7%。多尺度自注意力。给定不同级别的汇总标记将它们结合起来的直观方法是在它们之间执行自注意力SA。我们开发了两种SA方法在聚合之前和之后分别计算 q q q、 k k k、 v v v。与FocalNet相比这两种方法都导致性能明显下降并增加了运行时间延迟。滑动窗口自注意力。最后我们在窗口内的每个视觉标记上应用滑动窗口SA。由于它涉及每个细粒度标记的密集交互时间和内存成本激增并且性能比FocalNet差。
组件分析。这里我们进行FocalNet的消融实验以研究每个组件的相对贡献。实验结果如表13所示其中我们探讨了以下模型架构变化对模型性能的影响
将乘法替换为加法我们将方程6中的逐元素乘法改为加法这将调制器转换为一个偏置项。这导致准确率下降了0.7%这表明逐元素乘法是比加法更强大的调制方式。无全局聚合我们在焦点调制中移除了顶部的全局平均池化。这导致性能下降了0.3%。即使分层聚合已经覆盖了一个相对较大的感受野全局信息 Z L 1 \mathbf{Z}^{L1} ZL1对于捕获全局上下文仍然是有用的。仅顶部聚合我们不是从所有焦点级别聚合特征图而只使用顶层的特征图。在这种情况下较低级别的、更“局部”和“细粒度”的特征被完全丢弃。这种变化导致性能下降了0.4%这验证了我们的假设即不同级别和空间范围的特征是相互补充的。无门控聚合在聚合多个级别的特征图时我们移除了门控机制。这导致性能下降了0.4%。正如我们之前讨论的视觉标记查询与其周围环境的依赖关系取决于查询内容。提出的门控机制有助于模型自适应地学习在哪里以及收集多少信息。
在表14中我们研究了改变焦点级别即深度卷积层的数量 L L L的影响。在我们之前报告的实验中结果表明较大的感受野通常能获得更好的性能大感受野 vs. 小感受野。这里我们进一步改变 L L L的值来探究。除了设置 L 2 L2 L2和 L 3 L3 L3外我们还尝试了 L 0 L0 L0、 L 1 L1 L1和 L 4 L4 L4。相应地增加 L L L的值会带来轻微的性能提升并最终达到一个平稳的状态。令人惊讶的是即使只有单一层级且核大小为3的焦点调制也能获得不错的性能。当我们将单层级的核大小从3增加到13时性能会轻微下降0.1%并且与具有三个层级但相同感受野大小的模型第二行相比存在0.4%的差距。这表明仅增加感受野并不一定能提高性能同时兼顾细粒度和粗粒度上下文的分层聚合是至关重要的。
4.5、与ViTs和ConvNeXts的比较
ViTs[22]无疑是应用自注意力进行视觉建模的开创性工作。在这里我们追溯其起源并研究我们的焦点调制是否可以适应像ViTs这样的整体架构。我们将ViTs中的所有自注意力模块替换为焦点调制以构建整体式的FocalNet-T/S/B。我们使用16的patch大小和三个焦点级别核大小分别为3、5和7这样有效感受野就接近ViT中的全局自注意力。如表16所示FocalNets在类似的浮点运算和速度下始终优于ViTs。除了定量比较外我们还在图7中展示了FocalNet-B/16和ViT-B/16的调制图和注意力图。FocalNets明显表现出比ViTs更强的可解释性。
在第2节中我们简要讨论了一些与我们的工作同时进行的相关研究。其中ConvNeXts[55]在一些具有挑战性的视觉任务上取得了新的最佳性能。在这里我们通过总结一系列视觉任务的结果在表15中定量比较了FocalNets与ConvNeXts的性能。FocalNets在大多数情况下都优于ConvNeXts。我们的FocalNets使用深度卷积来进行上下文建模与ConvNeXt相似但还使用调制来将上下文信息注入到每个单独的标记中这产生了显著的差异。
5、结论
在本文中我们提出了焦点调制这是一种新的通用机制能够实现依赖于输入的标记交互用于视觉建模。它包含层次化的上下文化为每个查询标记从短程到长程收集上下文基于查询内容自适应地聚合上下文特征到调制器中的门控聚合以及简单而有效的调制。通过焦点调制我们构建了一系列简单的无注意力焦点调制网络FocalNets用于各种视觉任务。广泛的实验表明FocalNets在图像分类、目标检测和语义分割等任务上以相似的时间/内存成本显著优于目前最先进的自注意力模型例如Swin和Focal Transformer。值得注意的是我们的FocalNets在COCO目标检测任务上实现了新的最佳性能同时使用的参数和预训练数据远少于先前的工作。这些令人鼓舞的结果使得焦点调制成为有效且高效的视觉建模中自注意力机制的一个更优选甚至更好的选择。
未来工作
这项工作的主要目标是开发一种更有效的视觉标记交互方式。尽管这看起来是直接的但仍需要进行更全面的研究以验证我们的焦点调制是否可以应用于其他领域如NLP任务。此外当处理多模态任务时自注意力机制可以很容易地通过交替查询和键来转变为交叉注意力。提出的焦点调制需要为单个查询收集上下文。如何执行所谓的交叉调制需要更多关于多模态学习的探索。
致谢
我们要感谢IDEA团队的雷张、张浩、李峰和刘世龙他们为我们在使用DINO进行目标检测方面提供了有益的讨论和详细的指导。同时我们也要感谢Aishwarya Kamath分享了Object365v2数据集。此外我们感谢Lingchen Meng在将DINO中的对比去噪转换为常规去噪方面提供的帮助。感谢各位的支持和协助使得我们的研究工作得以顺利进行。