InternImage:利用可变形卷积探索大规模视觉基础模型
Title:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions
paper是上海AI Lab发表在CVPR 2023的工作
paper链接
Abstract
与近年来大规模视觉变换器(ViT)的巨大进步相比,基于卷积神经网络(CNN)的大规模模型仍处于早期状态。这项工作提出了一种新的基于 CNN 的大规模基础模型,称为 InternImage,它可以从增加参数和训练数据(如 ViT)中获得增益。与最近关注大密集核的CNN不同,InternImage以可变形卷积作为核心算子,使得我们的模型不仅具有检测和分割等下游任务所需的大有效感受野,而且还具有自适应空间聚合以输入和任务信息为条件。因此,所提出的 InternImage 减少了传统 CNN 的严格归纳偏置,并使从 ViT 等海量数据中学习具有大规模参数的更强、更鲁棒的模式成为可能。我们模型的有效性在 ImageNet、COCO 和 ADE20K 等具有挑战性的基准测试中得到了证明。值得一提的是,InternImage-H在COCO test-dev上取得了新纪录65.4 mAP,在ADE20K上取得了62.9 mIoU,超越了当前领先的CNN和ViT。
1. Introduction
随着Transformers在大规模语言模型中取得的显着成功[3-8],视觉Transformers(ViTs)[2, 9-15]也席卷了计算机视觉领域,并正在成为大规模语言模型研究和实践的首选。视觉基础模型。一些先驱者 [16-20] 尝试将 ViT 扩展到具有超过 10 亿个参数的大型模型,击败卷积神经网络 (CNN),并显着提升各种计算机视觉任务的性能极限,包括基本分类、检测和分割。虽然这些结果表明 CNN 在海量参数和数据时代不如 ViT,但我们认为,当配备类似的算子/架构级设计时,基于 CNN 的基础模型也可以实现与 ViT 相当甚至更好的性能,参数设置、海量数据。
为了弥合CNN和ViT之间的差距,我们首先从两个方面总结它们的差异:(1)从算子级别[9,21,22]来看,ViT的多头自注意力(MHSA)具有长程依赖性和自适应空间聚合(见图1(a))。受益于灵活的 MHSA,ViT 可以从海量数据中学习比 CNN 更强大、更稳健的表示。 (2)从架构角度来看[9,22,23],除了MHSA之外,ViT还包含一系列标准CNN中未包含的高级组件,例如层归一化(LN)[24]、前馈网络(FFN) ) [1]、GELU [25] 等。尽管最近的工作 [21,22] 做出了有意义的尝试,通过使用具有非常大内核(例如 31×31)的密集卷积将长程依赖性引入 CNN,如图所示如图1(c)所示,在性能和模型规模方面与最先进的大规模ViT[16,18-20,26]仍有相当大的差距。
图1.不同核心操作的比较。 (a) 显示了多头自注意力 (MHSA) [1] 的全局聚合,其计算和内存成本在需要高分辨率输入的下游任务中非常昂贵。 (b) 将 MHSA 的范围限制在局部窗口 [2] 以降低成本。 © 是具有非常大的内核的深度卷积,用于模拟长程依赖关系。 (d) 是可变形卷积,它与 MHSA 具有类似的有利特性,并且对于大规模模型来说足够有效。我们从它开始构建一个大规模的CNN。
在这项工作中,我们专注于设计一个基于 CNN 的基础模型,可以有效地扩展到大规模参数和数据。具体来说,我们从灵活的卷积变体——可变形卷积(DCN)开始[27, 28]。通过将其与一系列类似于 Transformer 的定制块级和架构级设计相结合,我们设计了一个全新的卷积骨干网络,称为 InternImage。如图1所示,与最近改进的具有非常大的内核(例如31×31 [22])的CNN不同,InternImage的核心算子是公共窗口大小为3×3的动态稀疏卷积,(1)其采样偏移量可以灵活地从给定数据中动态学习适当的感受野(可以是长程或短程); (2)根据输入数据自适应调整采样偏移和调制标量,可以实现类似ViTs的自适应空间聚合,减少规则卷积的过归纳偏差; (3)卷积窗口是常见的3×3,避免了大密集核带来的优化问题和昂贵的成本[22, 29]。
通过上述设计,所提出的 InternImage 可以有效地扩展到大参数大小,并从大规模训练数据中学习更强的表示,在广泛的视觉范围内实现与大规模 ViT [2,11,19]相当甚至更好的性能任务。总而言之,我们的主要贡献如下:
(1)我们提出了一种新的基于CNN的大规模基础模型——InternImage。据我们所知,它是第一个有效扩展到超过 10 亿个参数和 4 亿张训练图像的 CNN,并实现了与最先进的 ViT 相当甚至更好的性能,这表明卷积模型也是一个值得探索的领域对于大规模模型研究方向。
(2) 我们通过使用改进的 3×3 DCN 算子引入长程依赖和自适应空间聚合,成功地将 CNN 扩展到大规模设置,并探索以算子为中心的定制基本块、堆叠规则和缩放策略。这些设计有效地利用了算子,使我们的模型能够从大规模参数和数据中获得收益。
(3) 我们在图像分类、目标检测、实例和语义分割等代表性视觉任务上评估了所提出的模型,并通过将模型规模扩大到 3000 万来与最先进的 CNN 和大规模 ViT 进行比较到10亿,数据范围从100万到4亿。具体来说,我们具有不同参数大小的模型可以始终优于 ImageNet [30] 上的现有技术。仅在 ImageNet-1K 数据集上训练的 InternImageB 就达到了 84.9% 的 top-1 准确率,比基于 CNN 的同行 [21, 22] 至少高出 1.1 个百分点。在大规模参数(即 10 亿)和训练数据(即 4.27 亿)下,InternImage-H 的 top-1 准确率进一步提升至 89.6%,接近精心设计的 ViT [2, 19]和混合 ViT [20]。此外,在具有挑战性的下游基准 COCO [31] 上,我们最好的模型 InternImage-H 在 21.8 亿个参数下实现了最先进的 65.4% box mAP,比 SwinV2-G [16] 高 2.3 个点(65.4 vs 。63.1),参数减少了 27%,如图 2 所示。
图 2. 不同主干网 COCO 的性能比较。所提出的 InternImage-H 在 COCO 测试开发上达到了新纪录 65.4 box AP,显着优于最先进的 CNN 和大规模 ViT。
2. Related Work
视觉基础模型。在大规模数据集和计算资源可用后,卷积神经网络(CNN)成为视觉识别的主流。在AlexNet [32]的基础上,人们提出了许多更深、更有效的神经网络架构,例如VGG [33]、GoogleNet [34]、ResNet [35]、ResNeXt [36]、EfficientNet [37, 38]等除了架构设计之外,还制定了更复杂的卷积运算,例如深度卷积[39]和可变形卷积[27, 28]。通过考虑 Transformer 的先进设计,现代 CNN 通过在宏观/微观设计中发现更好的组件并引入具有长程依赖性 [21,22,40] 或动态权重 [41] 的改进卷积,在视觉任务中显示出有希望的性能。
近年来,新的视觉基础模型关注基于Transformer的架构。 ViT[9]是最具代表性的模型,由于全局感受野和动态空间聚合,它在视觉任务中取得了巨大成功。然而,ViT 中的全局注意力受到昂贵的计算/内存复杂性的影响,尤其是在大型特征图上,这限制了其在下游任务中的应用。为了解决这个问题,PVT [10, 11] 和 Linformer [42] 对下采样的键和值映射进行全局关注,DAT [43] 对值映射中的稀疏样本信息采用变形关注,而 HaloNet [44] 和 Swin Transformer [2] 开发了局部注意力机制,并使用haloing和移位操作在相邻局部区域之间传输信息。
大型模型。扩展模型是提高特征表示质量的重要策略,在自然语言处理(NLP)领域已得到充分研究[45]。受到 NLP 领域成功的启发,Zhai 等人[19]首先将 ViT 扩展到 20 亿个参数。 Liu等人[16]将分层结构Swin Transformer扩展为具有30亿个参数的更深更广的模型。一些研究人员通过结合不同级别的 ViT 和 CNN 的优点,开发了大规模混合 ViT [20, 46]。最近,BEiT-3 [17] 使用多模态预训练进一步探索了基于 ViT 的更强的大规模参数表示。这些方法显着提高了基本视觉任务的上限。然而,基于 CNN 的大规模模型的研究在参数总数和性能方面落后于基于 Transformer 的架构。尽管新提出的 CNN [21,22,40,47]通过使用具有非常大的内核或递归门控内核的卷积引入了长程依赖性,但与最先进的 ViT 仍然存在相当大的差距。在这项工作中,我们的目标是开发一种基于 CNN 的基础模型,可以有效地扩展到与 ViT 相当的大规模。
3. Proposed Method
为了设计基于 CNN 的大规模基础模型,我们从灵活的卷积变体,即可变形卷积 v2 (DCNv2) [28] 开始,并在此基础上进行一些调整,以更好地适应大规模基础模型的要求。然后,我们通过将调整后的卷积算子与现代骨干网中使用的高级块设计相结合来构建基本块 [16, 19]。最后,我们探索基于 DCN 的块的堆叠和缩放原理,以构建可以从海量数据中学习强表示的大规模卷积模型。
3.1. Deformable Convolution v3
卷积与 MHSA。之前的工作 [21,22,48] 广泛讨论了 CNN 和 ViT 之间的差异。在决定InternImage的核心算子之前,我们首先总结一下规则卷积和MHSA的主要区别。
(1) 远程依赖。尽管人们早就认识到,具有大有效感受野(长程依赖性)的模型通常在下游视觉任务上表现更好[49-51],但 CNN [33,35] 事实上的有效感受野堆叠了 3× 3个规则卷积比较小。即使模型非常深,基于 CNN 的模型仍然无法获取像 ViT 那样的远程依赖关系,这限制了其性能。
(2)自适应空间聚合。与权重由输入动态调节的 MHSA 相比,规则卷积 [52] 是一种具有静态权重和强归纳偏置的算子,例如 2D 局部性、邻域结构、平移等价性等。凭借高归纳特性,模型由与 ViT 相比,规则卷积可能收敛得更快并且需要更少的训练数据,但它也限制了 CNN 从网络规模数据中学习更通用、更稳健的模式。补充材料中详细介绍了更多稳健性实验。
重新审视 DCNv2。 弥合卷积和 MHSA 之间差距的一种直接方法是将长程依赖性和自适应空间聚合引入到常规卷积中。 让我们从 DCNv2 [28] 开始,它是常规卷积的一般变体。 给定输入 x ∈ R C × H × W \mathbf{x} \in \mathbb{R}^{C \times H \times W} x∈RC×H×W 和当前像素 p 0 p_0 p0,DCNv2 可以表示为:
y ( p 0 ) = ∑ k = 1 K w k m k x ( p 0 + p k + Δ p k ) , \mathbf{y}\left(p_0\right)=\sum_{k=1}^K \mathbf{w}_k \mathbf{m}_k \mathbf{x}\left(p_0+p_k+\Delta p_k\right ), y(p0)=k=1∑Kwkmkx(p0+pk+Δpk),
其中 K K K表示采样点总数, k k k枚举采样点。 w k ∈ R C × C \mathbf{w}_k \in \mathbb{R}^{C \times C} wk∈RC×C表示第 k k k个采样点的投影权重, m k ∈ R \mathbf{m}_k \in \mathbb{R } mk∈R表示第 k k k个采样点的调制标量,通过sigmoid函数进行归一化。 p k p_k pk 表示预定义网格采样的第 k k k 个位置 { ( − 1 , − 1 ) , ( − 1 , 0 ) , … , ( 0 , + 1 ) , … , ( + 1 , + 1 ) } \{(-1,-1),(-1,0), \ldots,(0,+1), \ldots,( +1,+1)\} {(−1,−1),(−1,0),…,(0,+1),…,(+1,+1)} 与常规卷积相同, Δ p k \Delta p_k Δpk 是对应于第 k k k 个网格采样位置的偏移量。 从方程中我们看到,(1)对于长程依赖,采样偏移 Δ p k \Delta p_k Δpk是灵活的,能够与短程或长程特征交互; (2) 对于自适应空间聚合,采样偏移 Δ p k \Delta p_k Δpk 和调制标量 m k \mathbf{m}_k mk 都是可学习的,并由输入 x \mathbf{x} x 调节。 由此可见,DCNv2 与 M H S A M H S A MHSA 具有相似的有利特性,这促使我们在此算子的基础上开发基于 CNN 的大规模基础模型。
为 Vision Foundation 模型扩展 DCNv2。在通常的实践中,DCNv2通常用作常规卷积的扩展,加载常规卷积的预训练权重并进行微调以获得更好的性能,这并不完全适合需要从头开始训练的大规模视觉基础模型。在这项工作中,为了解决这个问题,我们从以下几个方面扩展了DCNv2:
(1)在卷积神经元之间共享权重。与常规卷积类似,原始DCNv2中的不同卷积神经元具有独立的线性投影权重,因此其参数和内存复杂度与采样点总数呈线性关系,这显着限制了模型的效率,尤其是在大规模模型中。为了解决这个问题,我们借鉴了可分离卷积[53]的想法,并将原始卷积权重 wk 分离为深度部分和逐点部分,其中深度部分由原始位置感知调制标量 mk 负责,逐点部分是采样点之间共享的投影权重w。
(2)引入多组机制。多组(头)设计首先出现在组卷积[32]中,并广泛应用于transformer的MHSA[1]中,并与自适应空间聚合一起工作,以有效地从不同位置的不同表示子空间中学习更丰富的信息。受此启发,我们将空间聚合过程分为G组,每个组都有单独的采样偏移量 Δ p g k \Delta p_{g k} Δpgk和调制尺度 m g k \mathbf{m}_{g k} mgk,因此单个卷积层上的不同组可以具有不同的空间聚合模式,从而为下游提供更强的特征任务。
(3)沿采样点归一化调制标量。原始 DCNv2 中的调制标量通过 sigmoid 函数按元素归一化。因此,每个调制标量都在[0, 1]范围内,并且所有样本点的调制标量之和不稳定,在0到K之间变化。这导致大规模训练时DCNv2层的梯度不稳定参数和数据。为了缓解不稳定问题,我们将沿样本点的逐元素 sigmoid 归一化更改为 softmax 归一化。这样,调制标量之和被限制为1,使得不同尺度下模型的训练过程更加稳定。
结合上述修改,扩展的 DCNv2(标记为 DCNv3)可以表示为等式: (2)。
y ( p 0 ) = ∑ g = 1 G ∑ k = 1 K w g m g k x g ( p 0 + p k + Δ p g k ) , \mathbf{y}\left(p_0\right)=\sum_{g=1}^G \sum_{k=1}^K \mathbf{w}_g \mathbf{m}_{g k} \mathbf{x }_g\left(p_0+p_k+\Delta p_{g k}\right), y(p0)=g=1∑Gk=1∑Kwgmgkxg(p0+pk+Δpgk),
其中 G G G表示聚合组的总数。 对于第 g g g 组, w g ∈ R C × C ′ 、 m g k ∈ R \mathbf{w}_g \in \mathbb{R}^{C \times C^{\prime}}、\mathbf{m}_{g k} \in \mathbb{ R} wg∈RC×C′、mgk∈R表示组的位置无关投影权重,其中 C ′ = C / G C^{\prime}=C / G C′=C/G表示组维度。 m g k ∈ R \mathbf{m}_{g k} \in \mathbb{R} mgk∈R 表示第 g g g 组中第 k k k 个采样点的调制标量,由 softmax 函数沿维度 K 归一化。 x g ∈ R C ′ × H × W K 归一化 。 \mathbf{x}_g \in \mathbb{R}^{C^{\prime} \times H \times W} K归一化。xg∈RC′×H×W 表示切片的输入特征图。 Δ p g k \Delta p_{g k} Δpgk是第 g g g组中网格采样位置 p k p_k pk对应的偏移量。
总的来说,DCNv3作为DCN系列的扩展,具有以下三个优点:(1)该算子弥补了规则卷积在长程依赖和自适应空间聚合方面的不足; (2) 与常见的 MHSA 和密切相关的可变形注意力等基于注意力的算子相比 [43, 54],该算子继承了卷积的归纳偏置,使得我们的模型在训练数据更少和训练时间更短的情况下更加高效; (3) 该算子基于稀疏采样,比以前的方法(例如 MHSA [1] 和重参数化大内核 [22])具有更高的计算和内存效率。 此外,由于稀疏采样,DCNv3只需要一个 3 × 3 3\times 3 3×3内核来学习长程依赖关系,这更容易优化,并避免了额外的辅助技术,例如在大型内核中使用的重参数化[22]。