RIFormer:保持你的视觉主干有效但移除令牌混合器

news2024/9/25 22:44:05

摘要

https://arxiv.org/pdf/2304.05659

本文研究了如何在去除其基本构建块中的标记混合器(token mixers)的同时保持视觉主干的有效性。标记混合器作为视觉变换器(Vision Transformers, ViTs)的自注意力机制,旨在实现不同空间标记之间的信息通信,但面临相当大的计算成本和延迟。然而,直接移除它们将导致不完整的模型结构先验,并因此带来显著的精度下降。为此,我们首先基于重参数化思想开发了RepIdentity Former基础模型,以研究无标记混合器的模型架构。然后,我们探索了改进的学习范式,以打破简单无标记混合器主干的局限性,并将经验实践总结为5条指导原则。借助所提出的优化策略,我们能够构建一个极其简单的视觉主干,同时拥有令人鼓舞的性能,并在推理过程中享受高效率。广泛的实验和消融分析也表明,通过适当的优化策略,可以将网络架构的归纳偏差融入简单的网络结构中。我们希望这项工作能够作为优化驱动的高效网络设计探索的起点。项目页面:https://techmonsterwang.github.io/RIFormer/。
在这里插入图片描述

1. 引言

过去几年中,计算机视觉领域的巨大进步部分归功于视觉主干的变革,包括卷积神经网络(Convolutional Neural Networks, ConvNets)[13,17,27,33]和视觉变换器(Vision Transformers, ViTs)[14, 43]。它们的基本构建块中都有特定的模块,用于在不同空间位置之间聚合信息,这些模块被称为标记混合器(token mixer),如ViTs中的自注意力机制。虽然标记混合器在许多视觉任务上的有效性已得到证明[5,6,26,51],但其计算复杂度通常占网络的大部分。在实践中,由于速度和计算成本的问题,沉重的标记混合器使得视觉主干在边缘设备上的应用受到限制。

文献中已有一些尝试研究用于简化视觉主干的高效标记混合器[32,34,52]。尽管这些工作已经通过轻量级设计实现了具有竞争力的性能,但它们仍然保留了标记混合器,这带来了不可忽视的延迟增加,如图1所示。最近的工作[53]发现移除标记混合器是可能的,但会导致性能下降。这些对高效标记混合器的探索启发我们思考:是否可以在移除标记混合器的同时保持视觉主干的有效性?预期得到的无标记混合器视觉主干将对实际应用既高效又有效。

在本文中,我们首先回顾了当前的模型架构和学习范式。大多数以前的工作都集中在改进架构上,同时采用传统的监督学习从头开始优化模型。不同的是,我们提出采用简化的模型架构,并探索学习范式设计以充分挖掘简单模型的潜力。我们的目标是同时保持无标记混合器视觉主干(即IdentityFormer,如图1-(b)所示)的效率和有效性。为此,我们在以下部分中深入研究了简单而有效的学习策略——知识蒸馏(Knowledge Distillation, KD)[18]。
在这里插入图片描述

我们的主要思想是从强大的教师模型(带有标记混合器)中向学生模型(无标记混合器)蒸馏知识。我们实现了重参数化思想,以扩大学生网络的建模能力,同时保持其效率,如图2所示。具体而言,我们在学生模型中引入了简单的仿射变换,以替代训练中的标记混合器。在推理过程中,仿射变换的参数可以合并到LayerNorm[2]中,从而使学生模型最终成为无标记混合器的模型。

我们根据经验将我们的学习策略总结为以下指导原则,希望能为如何学习极简模型提供启示。具体来说,1) 不使用真实标签的软蒸馏更为有效;2) 仅使用仿射变换而不进行蒸馏难以避免性能退化;3) 提出的块级知识蒸馏(称为模块模仿)有助于利用仿射算子的建模能力;4) 具有大感受野的教师模型有助于提升感受野受限的学生模型;5) 将教师模型(除标记混合器外)的预训练权重加载到学生模型中,可以改善收敛性和性能。

基于上述指导原则,我们最终获得了一个具有竞争力的无标记混合器的高效视觉模型,称为RepIdentityFormer(RIFormer)。RIFormer在宏观和微观设计上几乎与MetaFormer[52]相同,但安全地移除了所有标记混合器。定量结果表明,我们的网络在ImageNet-1K[8]上的推理速度更快,且性能优于许多主流骨干网络。对特征分布和有效感受野(ERF)的消融分析也表明,通过适当的优化策略,显式标记混合器带来的归纳偏差可以隐式地融入简单的网络结构中。综上所述,我们的工作主要贡献如下:

  • 我们提出通过为简单模型架构开发先进的学习范式来探索视觉骨干网络,以满足现实应用的需求。
  • 我们通过实例化重参数化思想,构建了一个无标记混合器的视觉模型RIFormer,该模型在保持推理效率的同时,提高了对归纳偏差的建模能力。
  • 我们提出的实用蒸馏策略指导原则已被证明在保持视觉骨干网络竞争力的同时移除标记混合器方面是有效的。

2. 相关工作

2.1 视觉Transformer加速

由于自注意力机制的二次计算成本,视觉Transformer是一种推理速度慢、能耗高的骨干网络,因此不利于在资源受限的边缘设备上部署,需要压缩技术。为视觉Transformer瘦身设计了各种技术路线,如蒸馏出具有更少深度和嵌入维度的高效Transformer[16,43,45,50,57]、修剪或合并不重要的标记[3,23,31,32]、应用节能操作[25,37]或设计高效的注意力替代方案[4,26,34]等。与这些路线不同,我们的工作提出了一种全新的角度,即完全移除骨干网络中的复杂标记混合器,同时保持令人满意的性能。

2.2 结构重参数化

结构重参数化[12,13,55]是一种训练技术,它将训练时和推理时的架构解耦。例如,RepVGG[13]是一种在推理时具有吸引人性能和速度的简单VGG风格架构,而在训练时则是一个具有手动添加的1x1分支和恒等映射分支的强大架构。类似地,这种技术可以进一步扩展到超大核ConvNets[12]、MLP类模型[9]、网络剪枝[11]和特殊优化器设计[10]。在本文中,我们遵循该技术,在训练后引入参数并将它们等效地吸收到LN层中。经过适当优化后的额外权重有助于模型学习有用的表示。

3. 初步与动机

在本节中,我们首先简要回顾标记混合器的概念。然后,我们通过经验性的延迟分析重新审视它们对推理速度的不可避免的副作用,从而引出本文的动机。

3.1 初步:标记混合器的概念

标记混合器是一种在给定的视觉骨干网络中执行标记混合功能的结构。它允许从不同空间位置进行信息聚合[52]。例如,在ViT[14]中,自注意力模块通过并行执行查询、键和值矩阵(这些矩阵是从输入特征线性投影得到的)之间的注意力函数来作为标记混合器。此外,ResMLP[42]通过将空间MLP视为标记混合器来应用跨块线性子层。上述标记混合器的计算和内存成本随图像尺度的增加而二次增加。

在这里插入图片描述

3.2 动机

在本节中,我们通过对ViT[14]模型进行定量延迟分析,关注标记混合器的副作用。我们从一个修改后的12层ViT-Base模型开始,该模型仅包含输入嵌入,在每个基本构建块中没有任何操作。然后,我们逐渐将操作组件(如LN、注意力、通道MLP等)添加到每个基本块中,最终模型成为没有全局平均池化层和分类器头的ViT-Base。对于每个模型,我们在224^2分辨率下使用A100 GPU以批量大小为2048进行推理,并计算30次运行的平均时间。整个过程重复三次,我们取中间值作为统计延迟。如图1所示,在堆叠了常规的12层之后,标记混合器可以带来额外的1433.6毫秒延迟,约占骨干网络的46.3%。

根据以上分析,标记混合器对模型的延迟带来了显著的副作用,这使其在实际应用中受到限制。这一观察自然引出了一个问题:我们能否保持骨干网络的有效性但移除标记混合器?具体来说,最近的一项工作[53]介绍了MetaFormer模型,其基本构建块中没有任何标记混合器,并发现这会导致不可忽视的性能退化。基于这些发现,我们提出通过结合归纳偏差与高级优化策略(如知识蒸馏[18,43,57]、结构重参数化[12,13]等)来挖掘极简模型的全部潜力。我们将在本文的其余部分详细介绍所有探索细节。

4. 探索RIFormer:路线图

在本节中,我们展示了一条从完全监督的RIFormer方法到更高级训练范式的轨迹。在此过程中,我们针对类似Transformer的模型研究和开发了不同的优化方案,同时保持推理时间模型不变。我们使用的基线RIFormer与最近开发的MetaFormer[52]具有完全相同的宏观架构和模型大小,唯一的区别在于其基本构建块在推理过程中不使用标记混合器。我们控制RIFormer-S12模型的计算复杂度与PoolFormerS12[52]相当,大约包含1200万个参数和1.8G MAC。本节中的所有RIFormer-S12模型都在ImageNet-1K上训练了120个周期,并进行了评估。超参数细节见附录第1节。我们的探索路线图如下。
在这里插入图片描述

4.1 无标记混合器的视觉骨干网络

我们的探索目标是移除推理时间模型视觉骨干网络中每个基本块中的标记混合器,以获得更高的推理速度,同时努力保持性能。因此,我们从使用CE损失的完全监督训练方案的RIFormerS12模型开始,主要遵循[52]。作为性能参考,我们将结果与PoolFormer-S12进行比较,因为它仅使用基本的池化操作作为标记混合器,因此性能差距可以归因于基本标记混合功能的缺失。如表1所示,与PoolFormer-S12相比,使用简单监督训练的RIFormer-S12会导致不可接受的性能下降(2.7%的top-1准确率)。结果表明,在每个构建块中没有标记混合器的情况下,常规的监督学习在帮助模型从图像中学习有用信息方面是有限的,需要更高级的训练过程。
在这里插入图片描述

然后,我们调查并修改了一系列训练范式以改善较差的基线性能,可以概括为:1) 知识蒸馏;2) 教师类型影响;3) 结构重参数化;4) 提出的模块模仿技术;5) 从教师模型中加载部分参数。由于我们的目标是探索不同高级训练方案的影响而不是网络架构,因此在中间步骤中推理时间模型架构始终保持不变。接下来,我们分享了训练RIFormer的5条有用指南。

4.2. 蒸馏范式设计

我们现在研究一个具有令牌混合器的通用视觉骨干教师如何对一个RIFormer学生进行知识蒸馏[18,43],并总结如何有效利用来自强大教师网络的“软”标签。指南1:不使用真实标签的软蒸馏对于没有令牌混合器的学生可能是有效的。基本上,大多数现有的知识蒸馏(KD)方法都是为具有令牌混合器的模型设计的。例如,通过同时学习真实标签和教师卷积神经网络(convnet)预测的软标签来帮助一个学生convnet是一种常见的做法。此外,DeiT[43]的一些观察结果表明,使用硬标签而不是软标签作为监督目标可以显著改善Transformer的性能。相比之下,没有令牌混合器的基本骨干网络在其基本块中没有明确的补丁聚合模块,因此其蒸馏应该与常规骨干网络不同。具体来说,尽管RIFormer与Transformer具有相同的宏观结构,但由于我们故意从每个构建块中移除了令牌混合器,因此它仍然不能被视为一个学生Transformer。然而,我们也不倾向于将其视为纯convnet,因为RIFormer在宏观/微观架构设计上与Transformer相似。因此,我们有动力探索一种适合RIFormer的、具有前景的KD方法。

通常,交叉熵目标是为了帮助学生网络再现硬准确标签,但我们认为这个过程可能不适合RIFormer。首先,真实标签可以通过标签平滑正则化[39]转换为软分布,其中真实标签的权重为1-\varepsilon,而每个类别的权重为\varepsilon。负类中的未学习均匀分布信息量较少,可能会干扰教师给出的已学习软分布。其次,在RIFormer中,1x1卷积实际上主导了基本构建块,仅“混合”了每个位置的特征而不是空间信息。这种简化的设计可能需要在监督标签中包含更丰富的信息。为了证明这一点,表2比较了四种不同设置的性能。默认的教师是GFNet-H-B[34](5400万个参数)。使用真实标签的硬蒸馏将准确率从72.31%提高到73.51%。这表明具有令牌混合器的教师对没有令牌混合器的学生有积极影响。事实上,在不使用真实标签的情况下进行软蒸馏的组合表现最好,将网络性能提高到74.05%。

备注1. 对于没有令牌混合器的粗糙模型来说,使用真实标签的监督学习似乎不是最合适的方式。具有令牌混合器的教师可以帮助指导训练,但仍然无法完全恢复移除令牌混合器所造成的性能差距,这需要其他策略。

4.3. 恒等映射的重参数化

指南2:仅使用未定制的蒸馏的仿射变换,难以恢复性能退化。在这一部分,我们采用了结构重参数化[9,12,13]方法的思想,该方法通常在训练时使用一个强大的模型,并在推理时等效地转换为一个简单的模型。具体来说,RIFormer中的推理时间令牌混合器模块可以视为LN层之后的恒等映射。因此,训练时间模块应至少满足两个基本要求:1) 每个位置的运算符允许等效变换;2) 参数化运算符允许额外的表示能力。因此,我们在训练期间应用了一个仿射变换运算符来替换恒等映射,该运算符仅执行通道级的缩放和平移,如图2所示。仿射运算符及其前面的LN层可以转换为具有修改权重的LN,因此在推理时可以等效地转换为恒等映射。将输入特征表示为 M ∈ R N × C × H × W \mathrm{M} \in \mathbb{R}^{N \times C \times H \times W} MRN×C×H×W,仿射运算符可以表示为:

Affine ⁡ ( M , s , t ) : , i , : , : = s i M : , i , : , : + t i − M : , i , : , : \operatorname{Affine}(\mathrm{M}, \mathbf{s}, \mathbf{t})_{:, i,:,:}=\mathbf{s}_{i} \mathrm{M}_{:, i,:,:}+\mathbf{t}_{i}-\mathrm{M}_{:, i,:,:} Affine(M,s,t):,i,:,:=siM:,i,:,:+tiM:,i,:,:

其中 s ∈ R C \mathbf{s} \in \mathbb{R}^{C} sRC t ∈ R C \mathbf{t} \in \mathbb{R}^{C} tRC 是可学习的权重向量。我们遵循[52]的做法,由于残差连接,在实现时从输入中减去一个项,因此不合并等式1中的第一项和第三项。然后,我们描述如何将仿射变换合并到其前面的LN层中,以便训练时间模型可以等效地转换为部署模型,但其块中不再有令牌混合器。我们使用 μ , σ , γ , β \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}, \boldsymbol{\beta} μ,σ,γ,β 分别表示前面LN层的均值、标准差、学习到的缩放因子和偏置。分别用 T ( a ) ∈ R N × C × H × W ,   T ′ ( a ) ∈ R N × C × H × W \mathrm{T}^{(a)} \in \mathbb{R}^{N \times C \times H \times W}, \mathrm{~T}^{\prime(a)} \in \mathbb{R}^{N \times C \times H \times W} T(a)RN×C×H×W, T(a)RN×C×H×W 表示图2-(a)中仿射残差子块的输入和输出。在训练期间,我们有:

T ′ ( a ) = Affine ⁡ ( L N (   T ( a ) , μ , σ , γ , β ) , s , t ) − T ( a ) \mathrm{T}^{\prime(a)}=\operatorname{Affine}\left(\mathrm{LN}\left(\mathrm{~T}^{(a)}, \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}, \boldsymbol{\beta}\right), \mathbf{s}, \mathbf{t}\right)-\mathrm{T}^{(a)} T(a)=Affine(LN( T(a),μ,σ,γ,β),s,t)T(a)

其中LN是LN函数,通过PyTorch中的GroupNorm API实现(将组数设置为1),遵循[52]。在推理期间,残差子块中仅存在一个LN层之后的恒等映射。因此,我们有:

T ′ ( a ) = L N (   T ( a ) , μ , σ , γ ′ , β ′ ) \mathrm{T}^{\prime(a)}=\mathrm{LN}\left(\mathrm{~T}^{(a)}, \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}^{\prime}, \boldsymbol{\beta}^{\prime}\right) T(a)=LN( T(a),μ,σ,γ,β)

其中 γ ′ \boldsymbol{\gamma}^{\prime} γ β ′ \boldsymbol{\beta}^{\prime} β 是合并后LN层的权重和偏置参数。基于等式2和等式3的等价性,对于 ∀ 1 ≤ i ≤ C \forall 1 \leq i \leq C ∀1iC,我们有:

γ i ′ = γ i ( s i − 1 ) , β i ′ = β i ( s i − 1 ) + t i \gamma_{i}^{\prime}=\gamma_{i}\left(\mathbf{s}_{i}-1\right), \quad \beta_{i}^{\prime}=\beta_{i}\left(\mathbf{s}_{i}-1\right)+\mathbf{t}_{i} γi=γi(si1),βi=βi(si1)+ti

仿射变换和重参数化过程的证明和类似PyTorch的代码分别显示在附录的第2节和第3节中。由于LN层在推理期间没有预先计算的均值和标准差,它们的具体值是输入自适应的,这不影响变换的等价性。
在这里插入图片描述

备注2. 比较表3和表2,直接应用结构重参数化方法并未显示出优势。我们将此现象归因于LN层中的仿射变换是一个线性变换,它可以直接与我们引入的额外仿射运算符合并(如果在它们之间不添加任何非线性函数)。因此,如果两者都仅由模型的输出来监督,则附加参数的潜力可能无法被充分利用。同时,教师和学生之间的同构设计启发了我们探索适合每层模块知识传递的方法。

4.4. 模块模仿

准则3:我们提出的基于区块的知识蒸馏方法,称为模块模仿,有助于利用仿射算子的建模能力。我们之前尝试的知识蒸馏(KD)方法仅关注教师网络和学生网络之间的输出。我们提出了模块模仿(MI)方法,该方法旨在利用教师网络中标记混合器的有用信息。具体来说,我们使用预训练的PoolFormer-S12[52]作为教师网络。如图3所示,我们期望简单的仿射算子(及其前面的层归一化(LN)层)在训练过程中能够近似基本标记混合器的行为。将 f ( ⋅ ) f(\cdot) f() T ( a ) , m ∈ R N × C × H × W \mathrm{T}^{(a), m} \in \mathbb{R}^{N \times C \times H \times W} T(a),mRN×C×H×W m ∈ M m \in \mathcal{M} mM 表示为仿射算子和RIFormer中第 m m m层的输入,其中 M \mathcal{M} M是我们使用的中间层集合,而 g ( ⋅ ) g(\cdot) g() T ( t ) , m ∈ R N × C × H × W \mathrm{T}^{(t), m} \in \mathbb{R}^{N \times C \times H \times W} T(t),mRN×C×H×W m ∈ M m \in \mathcal{M} mM 分别表示教师网络的对应部分。为了简化,我们将 L N ( ⋅ , μ , σ , γ , β ) \mathrm{LN}(\cdot, \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}, \boldsymbol{\beta}) LN(,μ,σ,γ,β)简写为 L N ( ⋅ ) \mathrm{LN}(\cdot) LN()。仿射算子的LN层和标记混合器之间输入的平均平方误差(MSE)可以计算为:

L i n = α 1 ∥ L N (   T ( a ) , m ) − L N (   T ( t ) , m ) ∥ F 2 \mathcal{L}_{in}=\alpha_{1}\left\|\mathrm{LN}\left(\mathrm{~T}^{(a), m}\right)-\mathrm{LN}\left(\mathrm{~T}^{(t), m}\right)\right\|_{F}^{2} Lin=α1 LN( T(a),m)LN( T(t),m) F2

其中 α 1 = 1 / N C H W \alpha_{1}=1 / NCHW α1=1/NCHW。注意,当前层的输入特征是前一层的输出特征。因此,我们提出在实践中匹配该区块的输出特征(即下一个后续区块的输入特征),这可以看作是转换器中的隐藏状态蒸馏[16,20,46,47,57]。

L i n ′ = α 1 ∥   T ( a ) , m + 1 − T ( t ) , m + 1 ∥ F 2 \mathcal{L}_{in}^{\prime}=\alpha_{1}\left\|\mathrm{~T}^{(a), m+1}-\mathrm{T}^{(t), m+1}\right\|_{F}^{2} Lin=α1  T(a),m+1T(t),m+1 F2

然后,将基于关系矩阵的隐藏状态蒸馏[16,57]应用于输出特征:

L rel  = α 2 ∥ R (   T ( a ) , m + 1 ) − R ( T ( t ) , m + 1 ) ∥ F 2 \mathcal{L}_{\text {rel }}=\alpha_{2}\left\|\mathcal{R}\left(\mathrm{~T}^{(a), m+1}\right)-\mathcal{R}\left(\mathrm{T}^{(t), m+1}\right)\right\|_{F}^{2} Lrel =α2 R( T(a),m+1)R(T(t),m+1) F2

其中 α 2 = 1 / N H 2 W 2 \alpha_{2}=1 / NH^{2}W^{2} α2=1/NH2W2 R ( T ) = T ~ T ~ ⊤ \mathcal{R}(T)=\tilde{T} \tilde{T}^{\top} R(T)=T~T~ T ~ \tilde{T} T~表示在最后一个维度上对 T T T进行归一化。考虑仿射算子和标记混合器之间输出的MSE:

L out  = α 1 ∥ f ( L N (   T ( a ) , m ) ) − g ( L N (   T ( t ) , m ) ) ∥ F 2 \mathcal{L}_{\text {out }}=\alpha_{1}\left\|f\left(\mathrm{LN}\left(\mathrm{~T}^{(a), m}\right)\right)-g\left(\mathrm{LN}\left(\mathrm{~T}^{(t), m}\right)\right)\right\|_{F}^{2} Lout =α1 f(LN( T(a),m))g(LN( T(t),m)) F2

结合方程6、方程7和方程8,模块模仿的最终损失函数定义为:

L = L soft  + λ 1 L in  ′ + λ 2 L out  + λ 3 L rel  \mathcal{L}=\mathcal{L}_{\text {soft }}+\lambda_{1} \mathcal{L}_{\text {in }}^{\prime}+\lambda_{2} \mathcal{L}_{\text {out }}+\lambda_{3} \mathcal{L}_{\text {rel }} L=Lsoft +λ1Lin +λ2Lout +λ3Lrel 

其中 L soft  \mathcal{L}_{\text {soft }} Lsoft 是第4.2节中的软逻辑蒸馏目标, λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2 λ 3 \lambda_{3} λ3是寻求损失函数之间平衡的超参数。在表4中,Feat和Rel分别表示使用 ( L in  ′ , L out  ) \left(\mathcal{L}_{\text {in }}^{\prime}, \mathcal{L}_{\text {out }}\right) (Lin ,Lout ) L rel  \mathcal{L}_{\text {rel }} Lrel 的迭代次数,Layer表示我们使用的中间层数。结果表明,模块模仿在不同情况下对学生RIFormer有积极影响。在4层设置和使用仿射算子的情况下,我们获得了最佳结果75.13%,已经超过了表1中PoolFormer-S12的75.01%结果。从此,我们将使用此设置。
在这里插入图片描述

备注3。我们认为,该现象的一个原因可能是模块模仿使仿射算子隐式地从教师标记混合器的监督中受益,同时又不失显式合并前面LN层的便利性。此外,我们发现模块模仿可以有效地将特征分布更接近于教师网络,并显示出更大的有效感受野(ERF)。有关详细信息,请参阅第5.3节。
在这里插入图片描述

准则4:具有大感受野的教师模型有助于改进具有有限感受野的学生模型。表5比较了不同教师架构下的学生性能。虽然GFNet-H-B[34]在教师中并未表现出最高的ImageNet top-1性能,但无论是否使用模块模仿,它都是更好的选择。

备注4。这一事实可能归因于教师和学生之间的感受野差距。正如[1]所解释的那样,归纳偏差可以通过蒸馏从一个模型转移到另一个模型。根据这项研究,具有大感受野的模型(例如,在频域中具有可学习全局滤波器的GFNet)可以作为具有有限感受野的学生RIFormer的更好教师。

准则5:将学生模型(除标记混合器外)加载教师模型的预训练权重可以改善收敛性和性能。我们的方法可以归类为一种模型压缩技术,旨在去除基本块中的标记混合器以加速。受以前方法的启发,包括使用(或部分使用)预训练重网络的相应权重来初始化轻量级网络的权重的知识蒸馏[35,38]、量化[24,28]和模型加速[32],我们探索了一种合适的初始化方法。由于我们的目标是仅移除标记混合器,剩余部分的权重仍然保留并在之前的探索中未得到足够重视。我们观察到,使用对应教师网络的权重初始化RIFormer(除仿射算子外)的权重,可以将性能从75.13%进一步提升到75.36%。这为我们训练RIFormer的最终范式带来了启示。

结束语。到目前为止,我们已经完成了探索,并为训练RIFormer发现了一种合适的范式。它的大体设计与MetaFormer[52]大致相同,但不需要任何标记混合器。配备了我们提出的优化方法,RIFormer在ImageNet-1K分类任务上的性能可以超过具有标记混合器的复杂模型。这些鼓舞人心的发现促使我们在下一节中回答以下问题:1)这种极其简单的架构在我们训练范式下的扩展行为。2)该范式在不同教师模型上的泛化能力。

5. 实验

5.1 图像分类

设置。对于包含120万张训练图像和5万张验证图像的ImageNet-1K [8],我们一般遵循[52]中的训练方案,并遵循第4节中的指导原则。数据增强包括MixUp [56]、CutMix [54]、CutOut [58]和RandAugment [7]。由于我们的工作是在移除令牌混合器的基础上进行模型压缩,因此我们的首要任务是弥补移除令牌混合器带来的性能差距,而不是提出一个强大的基线。因此,我们将训练周期延长至600个周期。我们还使用384^2的输入分辨率对预训练模型进行了30个周期的微调。更多细节见附录。
在这里插入图片描述

主要结果。表6展示了RIFormer在ImageNet分类上的结果。我们主要关注吞吐量指标,因为我们的首要考虑是满足边缘设备的延迟要求。正如预期的那样,由于RIFormer在其构建块中不包含任何令牌混合器,因此与其他类型的骨干网络相比,RIFormer在速度上具有明显的优势。令人惊讶的是,在如此快速的推理速度下,RIFormer通过使用我们的训练方法成功地移除了所有令牌混合器,而没有影响性能。例如,RIFormer-M36可以每秒处理超过1185张224^2分辨率的图像,且top-1准确率为82.6%。相比之下,最近的基线PoolFormer-M36 [52](带有池化令牌混合器)可以处理相同大小的1009张图像,但准确率较低,为82.1%。我们还与高效的骨干网络GFNet [34]进行了比较。GFNet通过全局滤波器进行令牌混合,该滤波器包括FFT、逐元素乘法和IFFT,总计算复杂度为O(N log N)。GFNet-H-B的吞吐量为939,准确率为82.9%,而我们的RIFormer-M48在吞吐量相当(897)的情况下,仍能达到82.8%的准确率。同时,推理时间的RIFormer的主体仅由LN之后的1x1卷积组成,没有复杂的二维FFT或注意力机制,有利于硬件专业化。

值得注意的是,没有令牌混合器,RIFormer甚至无法在其构建块中执行基本的令牌混合操作。然而,ImageNet实验表明,在提出的训练范式下,RIFormer仍然显示出令人鼓舞的结果。我们只能认为这一事实背后的原因可能是优化策略起到了关键作用。RIFormer是探索优化驱动的高效网络设计的起点,并且随着先进的训练方案的推进,我们可以放心地期待其性能。

5.2 消融研究

模块模仿的有效性。作为额外仿射算子学习适当权重的重要方式,模块模仿基于蒸馏。因此,我们将其与隐藏状态特征蒸馏方法(带关系)进行了比较。采用第4.2节中的软蒸馏范式(无CE损失),我们得到了表7中的结果。第5.2节的更多细节见附录第4节。使用特征蒸馏时,准确率比模块模仿低0.46%,表明模块模仿在优化额外权重方面具有积极作用。
在这里插入图片描述

不同加速策略的比较。接下来,我们讨论了令牌移除是否比其他稀疏化策略更好。基于PoolFormer [52]基线,我们首先通过减少深度到9并保持约5/6的宽度(即嵌入维度)来构建slim PoolFormer-S9和PoolFormer-XS12,以获得与我们的RIFormerS12相当的推理速度。我们还遵循了第4.2节中的软蒸馏范式。表8显示了结果。直接修剪深度或宽度无法在不使用延迟敏感的令牌混合器的情况下获得比我们更好的性能。
在这里插入图片描述

对不同教师的泛化能力。为了验证所提出的训练范式是一种通用的压缩技术,我们采用了[53]中的架构修改来作为学生模型,并将教师模型更改为其他4个MetaFormer基线[53],教师令牌混合器分别为随机矩阵、池化、可分离深度卷积和注意力。表9表明,我们的方法在不同深度设置和教师情况下均具有积极作用。

5.3 模块模仿分析

模块模仿(MI)使RIFormer模型的特征分布更接近教师模型。模块模仿的效果在图5中明确显示。可以观察到,PoolFomer-S12和RIFormer-S12在第一阶段和第四阶段的特征分布上存在明显差异。在应用了提出的模块模仿后,RIFormer-S12的分布基本上向PoolFomer-S12的分布移动,这表明其有助于学生从教师那里学习有用的知识。
在这里插入图片描述

模块模仿有助于显示更大的有效感受野(ERF)。ERF [30]反映了训练后的模型可以对图像的哪个区域做出响应或捕获关于物体大小的信息。我们遵循[12,21]通过测量输入中每个像素对输出特征中心点的累积贡献来可视化ERF。由于RIFormer移除了所有令牌混合器,因此其ERF预期会比PoolFormer小得多,如图4所示。在整个区域中,只有一小块红色像素出现,远小于PoolFormer。然而,令人惊讶的是,我们可以观察到,在使用模块模仿进行训练后,红色广泛分布在所有位置。似乎尽管没有明确的结构变化,但模块模仿仍然有助于改变学习到的权重并显示更大的ERF。

6. 局限性与结论

本文研究了从视觉骨干网络的基本构建块中移除标记混合器(token mixer),这一研究的动机是它们带来了相当高的延迟成本。为了保持剩余结构的有效性,我们彻底回顾了训练范式。我们观察到,适当的优化策略可以有效地帮助一个没有标记混合器的模型从另一个模型中学习有用的知识,从而提升其性能并弥合因结构不完整而产生的差距。局限性在于,我们没有讨论更多的视觉任务,包括检测、去模糊等,这将是我们未来的工作方向。

致谢

本文部分得到了中国国家重点研发计划(编号:2022ZD0161000)、香港研究资助局(编号:17200622)一般项目、上海博士后卓越计划(编号:2022235)、中国国家自然科学基金(资助编号:61991450)和深圳市科技计划(编号:JCYJ20220818101001004)的资助。

附录

A. 第4节详细超参数

我们提供了主论文中第4节探索路线图的一些实验设置。一般来说,我们在本节中使用RIFormer-S12模型,该模型在ImageNet-1K数据集上进行了120个周期的训练和评估。在所有情况下,我们都使用AdamW[22, 29]优化器,批处理大小为512。对于第4.2节和第4.3节中的蒸馏实验,GFNet-H-B[34]作为教师模型,采用[43]中的逻辑蒸馏方法。

B. 公式4的证明

T ( a ) ∈ R N × C × H × W \mathrm{T}^{(a)} \in \mathbb{R}^{N \times C \times H \times W} T(a)RN×C×H×W T ′ ( a ) ∈ R N × C × H × W \mathrm{T}^{\prime(a)} \in \mathbb{R}^{N \times C \times H \times W} T(a)RN×C×H×W分别为主论文图2-(a)中仿射残差子块的输入和输出。在训练期间,我们有:

T ′ ( a ) = Affine ⁡ ( L N (   T ( a ) , μ , σ , γ , β ) , s , t ) − T ( a ) \mathrm{T}^{\prime(a)}=\operatorname{Affine}\left(\mathrm{LN}\left(\mathrm{~T}^{(a)}, \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}, \boldsymbol{\beta}\right), \mathrm{s}, \mathbf{t}\right)-\mathrm{T}^{(a)} T(a)=Affine(LN( T(a),μ,σ,γ,β),s,t)T(a)

其中LN是层归一化层, μ , σ , γ , β \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}, \boldsymbol{\beta} μ,σ,γ,β是LN层的均值、标准差和学习的缩放因子及偏置,Affine是仿射变换, s ∈ R C \mathrm{s} \in \mathbb{R}^{C} sRC t ∈ R C \mathbf{t} \in \mathbb{R}^{C} tRC是其可学习的缩放和位移参数。在训练期间,我们有:

T ′ ( a ) = L N (   T ( a ) , μ , σ , γ ′ , β ′ ) \mathrm{T}^{\prime(a)}=\mathrm{LN}\left(\mathrm{~T}^{(a)}, \boldsymbol{\mu}, \boldsymbol{\sigma}, \boldsymbol{\gamma}^{\prime}, \boldsymbol{\beta}^{\prime}\right) T(a)=LN( T(a),μ,σ,γ,β)

根据仿射残差子块在训练(公式10)和推理(公式11)期间结构重参数化的等价性,对于 ∀ 1 ≤ n ≤ N \forall 1 \leq n \leq N ∀1nN ∀ 1 ≤ i ≤ C \forall 1 \leq i \leq C ∀1iC ∀ 1 ≤ h ≤ H \forall 1 \leq h \leq H ∀1hH ∀ 1 ≤ w ≤ W \forall 1 \leq w \leq W ∀1wW,我们有:

( ( T n , i , h , w ( a ) − μ n , h , w ) γ i σ n , h , w + β i ) s i + t i − ( T n , i , h , w ( a ) − μ n , h , w ) γ i σ n , h , w − β i = ( T n , i , h , w ( a ) − μ n , h , w ) γ i ′ σ n , h , w + β i ′ \begin{array}{l} \left(\left(\mathrm{T}_{n, i, h, w}^{(a)}-\boldsymbol{\mu}_{n, h, w}\right) \frac{\gamma_{i}}{\boldsymbol{\sigma}_{n, h, w}}+\boldsymbol{\beta}_{i}\right) \mathrm{s}_{i}+\mathbf{t}_{i} \\ \quad-\left(\mathrm{T}_{n, i, h, w}^{(a)}-\boldsymbol{\mu}_{n, h, w}\right) \frac{\gamma_{i}}{\boldsymbol{\sigma}_{n, h, w}}-\boldsymbol{\beta}_{i} \\ \quad=\left(\mathrm{T}_{n, i, h, w}^{(a)}-\boldsymbol{\mu}_{n, h, w}\right) \frac{\boldsymbol{\gamma}_{i}^{\prime}}{\boldsymbol{\sigma}_{n, h, w}}+\boldsymbol{\beta}_{i}^{\prime} \end{array} ((Tn,i,h,w(a)μn,h,w)σn,h,wγi+βi)si+ti(Tn,i,h,w(a)μn,h,w)σn,h,wγiβi=(Tn,i,h,w(a)μn,h,w)σn,h,wγi+βi

公式12可以重新表述为:

γ i ′ = γ i ( s i − 1 ) , β i ′ = β i ( s i − 1 ) + t i \gamma_{i}^{\prime}=\gamma_{i}\left(\mathbf{s}_{i}-1\right), \quad \boldsymbol{\beta}_{i}^{\prime}=\boldsymbol{\beta}_{i}\left(\mathbf{s}_{i}-1\right)+\mathbf{t}_{i} γi=γi(si1),βi=βi(si1)+ti

然后主论文中的公式4就得到了证明。

C. PyTorch中的代码

C.1. 我们仿射算子的PyTorch风格代码

我们在与RIFormer块中的训练时模型相关联的算法1中提供了仿射变换的PyTorch风格代码。仿射变换可以通过将卷积核大小指定为1并将组数指定为输入通道数来实现为深度卷积。我们遵循[52]的做法,在实现过程中由于残差连接而添加了对输入的减法。
在这里插入图片描述

C.2. RIFormer块的PyTorch风格代码

我们提供了算法2中具有结构重参数化的RIFormer块的PyTorch风格代码。

D. 消融实验的详细超参数

我们提供了主论文第5节中消融研究的实验设置。

对于主论文表7中74.90%和75.36%的top-1准确率实验,GFNet-H-B[34]作为具有logit蒸馏的教师模型,PoolFormer-S12[52]作为采用我们提出的模块模仿策略的教师模型。对于主论文公式9中的 ( L in  ′ , L out  ) (\mathcal{L}_{\text {in }}^{\prime}, \mathcal{L}_{\text {out }}) (Lin ,Lout ) L rel  \mathcal{L}_{\text {rel }} Lrel ,使用它们的周期数分别为80和20。两者的区别如下:在74.90%的实验中,我们在公式9中将 λ 2 = λ 3 = 0 \lambda_{2}=\lambda_{3}=0 λ2=λ3=0以获得隐藏状态特征蒸馏。在75.36%的实验中,我们按照表10选择 λ 2 \lambda_{2} λ2 λ 3 \lambda_{3} λ3,并根据主论文第4.4节,使用对应的教师网络初始化RIFormer(仿射算子除外)的权重。

对于主论文表9,我们将[53]中的架构修改应用于我们的RIFormer,并分别构建了具有12层和18层的两个模型作为我们的学生模型。对于表9中的蒸馏实验,GFNet-H-B[34]作为具有logit蒸馏的教师模型。RandFormer-S12[53]、PoolFormer V2-S12[53]、ConvFormer-S18[53]、CAFormer-S18[53]作为模块模仿策略的教师网络。我们在ImageNet-1K上进行130个周期(包含10个耐心周期)的训练和评估。

E. ImageNet-1K的详细超参数

我们在表10中提供了主论文第5节中ImageNet1K分类实验的实验设置。超参数一般遵循[52]。我们使用AdamW[29]优化器,批量大小为1024,权重衰减为0.05,学习率lr=1e-3*batch size/1024。我们还采用了随机深度[19]、标签平滑[40]和层缩放[44]来正则化网络。对于主论文表6中分辨率为 22 4 2 224^{2} 2242的RIFormer结果,GFNet-H-B[34]作为具有logit蒸馏的教师模型,而具有相同参数大小的PoolFormer[52]作为采用我们提出的模块模仿策略的教师模型。对于 38 4 2 384^{2} 3842的RIFormer微调结果,我们使用ConvFormer[53]作为具有logit蒸馏的教师模型,并在该步骤中不进行模块模仿。对于吞吐量测量,我们在 22 4 2 224^{2} 2242分辨率下使用批量大小为2048(在 38 4 2 384^{2} 3842分辨率下为1024),使用一块80GB的A100 GPU,并计算30次运行的平均吞吐量以推断该批次。该过程重复三次,取中位数作为统计吞吐量。

F. 学习到的系数的可视化

为了进一步评估我们提出的模块模仿算法的效果,我们可视化了带有(黑色虚线上方)或不带(黑色虚线下方)模块模仿技术的仿射算子的权重(表示为s)的学习系数。具体来说,我们提供了浅层块(阶段1,块1)、中间块(阶段3,块6)和深层块(阶段4,块1)的学习仿射权重。如图6所示,使用模块模仿训练的仿射权重与不使用该技术的训练的仿射权重存在差异。以图6-©为例,不使用模块模仿的仿射权重相对更加一致,并且显示出更多的正值。相比之下,模块模仿帮助仿射算子学习更多样化和负值的权重,这可能对我们RIFormer的表达能力有用。同样在图6-(b)中,使用模块模仿的仿射权重具有更适中的幅度,而没有该方法的幅度更高。
在这里插入图片描述

G. 激活部分的可视化

遵循[52],我们分别使用GradCAM[36]提供了四种不同预训练主干(分别为RSB-ResNet50[17, 49]、DeiTS[43]、PoolFormer-S24[52]和我们的RIFormer-S24)的定性结果。如[52]中所观察到的,变压器模型的映射中的激活部分是分散的,而卷积神经网络(convnet)的则更加集中。有趣的是,我们还可以得出两个额外的观察结果。首先,似乎使用我们提出的模块模仿算法训练的RIFormer结合了convnet和变压器的特性。我们认为原因可能是RIFormer具有与变压器相同的一般架构,但没有任何注意力机制(即令牌混合器),因此它本质上是一个convnet。其次,RIFormer映射中的激活部分显示出与PoolFormer相似的特性,这可能是由于在知识蒸馏过程中从教师模型中隐式地融入了归纳偏差。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java项目之新闻稿件管理系统(源码+文档)

项目简介 新闻稿件管理系统实现了以下功能: 新闻稿件管理系统的主要使用者管理员功能有个人中心,用户管理,记者管理,审批员管理,新闻分类管理,新闻信息管理,系统管理等。记者发布新闻信息&…

uniapp 整合 OpenLayer3

安装openLayer插件 命令行&#xff1a;npm install ol 安装sass插件 命令行&#xff1a;npm install -D sass 使用方法&#xff1a; *** *** <style scoped lang"scss"> </style> 安装ElementPlus 命令行&#xff1a;npm install element-plus -…

汽车零部件开发流程关键阶段

目录 1、定点阶段 1.1、定点前的准备工作 1.2、定点决策过程 1.3、定点后的工作交接 2、A样阶段&#xff1a;设计验证与基本功能实现 2.1、样件制作&#xff1a;从设计图纸到实物转化 2.2、功能测试&#xff1a;初步验证与性能评估 2.3、评估与优化&#xff1a;A样阶段…

Java数据库连接jdbc

Java数据库连接jdbc 导入java包 1、根目录&#xff0c;新建一个lib目录&#xff08;Dire&#xff09; 2、将jar包放入lib目录下 3、File -> Project Structure&#xff08;项目结构&#xff09; 4、Libraries-> ->java->找到项目的lib目录 5、Apply->OK使用JD…

下载2001年版英特尔开发手册与使用网易有道词典

本专栏的任务&#xff0c;是翻译2001年版英特尔开发手册的第3卷。上一节&#xff0c;我写了开篇语。本节&#xff0c;我是打算将这个版本的英特尔开发手册的下载方式公布出来。使得大家可以将其下载回去。如果你看的块的话&#xff0c;你可以自行翻译与学习。 一. 下载英特…

数据结构const char *INSTNAME[]

代码片段解析 #include <cstring> #include <fstream> #include <sstream> #include <string>const char *INSTNAME[]{"lui", "auipc", "jal", "jalr", "beq", "bne", "blt…

从理论到实践:解锁《数字化专业知识体系》助力企业数字化转型的落地之道

全面解码数字化转型——从理论构想到实践落地 在全球数字化浪潮的推动下&#xff0c;企业正面临前所未有的变革压力。虽然数字化转型的概念已经深入人心&#xff0c;但将其从战略蓝图转化为实际成果的过程仍充满挑战。《数字化专业知识体系》&#xff08;《Towards a Digital …

双目视觉路线,为什么一直没有存在感

“在大疆之前没有人做双目&#xff0c;现在基本上主流的都是单目加多传感器融合&#xff0c;推给车企的时候就会经历一个更长的过程。”一位前大疆车载员工曾这样向雷峰网《新智驾》表示。 双目视觉方案在车载上的应用起起伏伏&#xff0c;从早期的高端车型专属&#xff0c;到…

快手B端商业化技术探索:基于LLM构建智能RAG与Agent平台

导读&#xff1a;大模型技术正以前所未有的速度与各领域融合&#xff0c;为各行各业带来变革&#xff0c;围绕快手B端商业化的业务场景&#xff0c;本文详细阐述了构建基于LLM的Agent技术平台的策略、挑战及解决方案&#xff0c;为您带来宝贵的见解与启示。 一、大模型应用建设…

一日连发两款视频大模型,火山引擎杀疯了!

9月24日&#xff0c;字节跳动旗下火山引擎在深圳举办AI创新巡展&#xff0c;并首次对外发布豆包视频生成-PixelDance、豆包视频生成-Seaweed两款AI大模型&#xff0c;并公布了多项AI大模型的全新升级&#xff0c;以一种全新的姿态迎接AI时代的到来。 雷科技此次受邀参与巡展&a…

机器学习算法与Python实战 | 三万字详解!GPT-5:你需要知道的一切(上)建议收藏!

本文来源公众号“机器学习算法与Python实战”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;三万字详解&#xff01;GPT-5&#xff1a;你需要知道的一切 作者&#xff1a;Alberto Romero &#xff08;青稞AI整理&#xff09; 原…

2024杭电多校7——1007创作乐曲

补题链接 也是好久没补题了&#xff0c;欠了好多好多,我的评价是加训 题目如下: 官方题解: 官方题解一如既往的简洁&#xff0c; 对于不会做的人要读懂真的挺难 \sout{对于不会做的人要读懂真的挺难} 对于不会做的人要读懂真的挺难 首先询问最少删除多少音符(一般人来说不…

【教学类-52-14】20240925动物数独(N宫格通用版)1图、2图、6图、有答案、无答案 组合版18套

背景需求&#xff1a; 制作了3-5宫格&#xff08;1、2、6图&#xff09;样式18组&#xff0c;它们用的都是&#xff08;1、2、6图&#xff09;的word模板&#xff0c;只是宫格数量不同&#xff0c;图片插入大小不同&#xff0c;是否可以做一个通用代码&#xff1f; 【教学类-…

C#算法(16)—获取上升沿和下降沿信号

前言 我们在上位机软件开发的时候有时候需要抓取一个信号的上升沿或者下降沿,这时候就需要我们自己编写程序来实现抓取上升沿和下降沿的功能,详细内容如下: 一个信号从“无”到“有”,然后再从“有”到“无”,经历的过程如下:无-上升沿-有-下降沿-无,这样5个过程。 1…

基于微信小程序的电影院订票选座系统ssm(lw+演示+源码+运行)

摘 要 通过移动互联网这几年的发展&#xff0c;单独的开发某些APP已经到了日暮西山的地步&#xff0c;原因不在于单个的APP功能丰富与否&#xff0c;而是因为用户生态体系的问题。使用智能手机的用户经过多年的使用习惯&#xff0c;已经越来越不喜欢安装各种的APP&#xff0c;…

mysql 05 InnoDB数据页结构

01.数据页结构的快速浏览 02.记录在页中的存储 在页的7个组成部分中&#xff0c;我们自己存储的记录会按照我们指定的 行格式 存储到 User Records 部分。但是在一开始生成页的时候&#xff0c;其实并没有 User Records 这个部分&#xff0c;每当我们插入一条记录&#xff0c…

建立队列,插入队列,删除队列

代码&#xff1a; #include<iostream> using namespace std; template<class T> class sq_Queue {private:int mm;int front;int rear;int s;T *q; public:sq_Queue(int);void prt_sq_Queue();int flag_sq_Queue();void ins_sq_Queue(T);T del_sq_Queue(); }; tem…

【线程】自旋锁和读写锁

自旋锁 以前所讲的是挂起等待锁&#xff0c;申请锁成功继续执行&#xff0c;申请失败挂起等待 挂起等待和唤醒是需要时间的&#xff0c;有没有一种锁不会挂起等待呢&#xff1f;那就是自旋锁&#xff0c;申请锁失败它不会挂起&#xff0c;他会轮询&#xff0c;一直让我们的线…

如何给文件设置密级权限查看

一、使用文件加密软件&#xff1a; 选择专业的加密软件&#xff0c;如BitLocker&#xff08;Windows内置&#xff09; 对需要设置密级的文件进行加密&#xff0c;并设置访问密码。 这样&#xff0c;只有拥有正确密码的人才能查看或访问该文件。 二、第三方加密工具&#xff…

《Detection of Tea Leaf Blight in Low-Resolution UAV Remote Sensing Images》论文阅读

学习资料 论文题目&#xff1a;Detection of Tea Leaf Blight in Low-Resolution UAV Remote Sensing Images&#xff08;低分辨率UAV遥感图像中茶叶枯萎病的检测&#xff09;论文地址&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber10345618 Abstr…