《RAViT: 一种用于高效自适应图像分类的分辨率感知视觉变换器》由Guidez等人撰写提出了一种新颖的、基于Vision Transformer的图像分类框架旨在解决ViT计算成本过高的问题同时保持模型精度并引入动态推理能力。以下是该论文的全面总结与概括一、研究背景与动机问题Vision Transformer在计算机视觉任务中表现出色但其核心的自注意力机制计算复杂度与输入图像块Token数量的平方成正比导致其计算成本和内存消耗远高于传统的卷积神经网络。这对于资源受限的设备如嵌入式系统、移动设备来说是一个重大挑战。目标在不显著损失精度的前提下大幅降低ViT的计算成本以FLOPs衡量并赋予模型在运行时动态调整计算量与精度之间平衡的能力。二、核心创新点RAViT框架RAViT的核心思想是“分而治之”与“由粗到细”的动态推理。主要包含两大创新模块1. 多分支、多分辨率架构工作原理框架包含多个处理分支实验中展示了2分支和3分支。每个分支处理同一张输入图像的不同分辨率版本例如原始图像、1/2尺寸、1/4尺寸。所有分支使用相同的块大小因此分辨率越低产生的图像块Token越少计算成本越低。信息传递粗到细处理从最低分辨率的分支开始。低分辨率分支产生的分类令牌会被传递给下一个较高分辨率的分支作为其初始输入。这种设计使得较粗粒度的全局信息能够指导后续更精细的计算避免了在每个分支都从头开始计算提高了效率。2. 动态早期退出机制自适应推理在模型的每个分支末端都设置了一个“早期退出头”。在处理一个样本时如果当前分支的预测置信度足够高通过计算Softmax输出的熵并与设定阈值比较模型就会在此处直接输出结果无需继续在后续更高分辨率的分支上进行计算。灵活权衡通过调整“早期退出阈值”用户可以在运行时动态控制模型的行为低阈值模型更容易提前退出计算量小速度快但可能牺牲部分精度。高阈值模型更倾向于进行完整计算精度更高但计算量大。这对于需要根据电池电量或实时性要求动态调整的设备非常有用。三、方法论细节训练策略采用多任务学习的方式总损失函数是所有分支损失的加权和。这使得每个分支的退出头都能学习进行有效的预测。计算成本分析论文详细给出了计算成本FLOPs的公式。由于早期退出的存在整体的平均计算成本取决于样本在哪个分支退出实现了计算资源的按需分配。四、实验与结果作者在三个标准数据集上进行了验证CIFAR-10、Tiny ImageNet 和 ImageNet。主要发现效率提升显著实验表明RAViT 能够在达到与经典 ViT 模型相当精度的同时仅使用其约70%的 FLOPs。例如在 ImageNet 上一个 1-1-8 的 RAViT 模型达到了 ViT-B 99.85% 的精度但计算量仅为后者的 70%。架构灵活性通过调整不同分支的层数如 1-3 模型2-0-3 模型可以在精度和计算量之间找到不同的平衡点。早期退出有效性早期退出机制进一步降低了计算成本。随着熵阈值的提高越来越多的简单样本在早期分支退出平均计算量持续下降而精度只是缓慢下降展示了良好的可控性。五、结论与讨论结论论文成功提出了 RAViT一个简单而有效的多分辨率、早期退出 ViT 框架。它证明了通过动态调整输入分辨率和引入早期退出可以显著降低 ViT 的计算成本同时保持高精度特别适合在嵌入式设备上部署。未来工作自动化设计引入神经架构搜索来自动确定每个分支的最佳层数。硬件协同将早期退出阈值与硬件参数如电池电量关联实现真正由资源驱动的动态推理。架构拓展探索更灵活的分支划分方式。总结概括RAViT 是一种面向资源受限场景的高效ViT变体。它通过多分辨率分支实现计算量的初步削减并通过跨分支的令牌传递保留了上下文信息同时引入早期退出机制使得模型能够根据样本难度实现动态、自适应的推理从而在保持与标准ViT相当的精度的前提下实现了约30%的计算量节省为ViT在边缘计算领域的应用提供了新的思路。这里是自己的论文阅读记录感兴趣的话可以参考一下如果需要阅读原文的话可以看这里如下所示摘要视觉变换器最近在计算机视觉领域取得了突破在众多应用中展现出卓越的精度性能。然而与卷积神经网络等替代方法相比它们的计算成本非常高。为了解决这个问题我们提出了一种名为 RAViT 的新型图像分类框架它基于一个多分支网络该网络对同一图像的多个不同分辨率副本进行处理以在保持整体精度的同时降低计算成本。此外我们的框架包含一个早期退出机制使我们的模型具有自适应性并允许在运行时选择合适的精度和计算成本之间的权衡。例如在一个两分支架构中首先调整原始图像的大小以降低其分辨率然后使用第一个变换器对其进行预测并将得到的预测结果与原始尺寸的图像一起重用以在第二个变换器上执行最终预测其计算量少于经典的 Vision Transformer 架构。早期退出过程允许模型在中间分支做出最终预测从而节省更多计算。我们在 CIFAR-10、Tiny ImageNet 和 ImageNet 上评估了我们的方法。我们获得了与经典 Vision Transformer 模型相当的精度而 FLOPs 仅约为 70%。关键词- Vision Transformer, 压缩, 早期退出, 计算机视觉, 分类, 自适应推理。I. 引言在资源有限的设备如嵌入式系统上使用计算机视觉时我们有兴趣降低预测的计算成本和硬件尺寸同时也降低能耗例如为了节省电池电量。最近变换器 [1] 的成功导致了一种新型架构在计算机视觉中的使用Vision Transformer (ViT) [2]。此后ViT 已成功应用于多项计算机视觉任务如分类 [2], [3]、目标检测 [4], [5] 和语义分割 [6], [7]。然而由于自注意力机制的计算复杂度随图像块数量呈平方级增长ViT 的计算成本很高导致高内存和计算资源需求。一些研究工作试图降低这种成本主要是通过应用最初为卷积神经网络提出的方法。例如令牌剪枝 [8], [9]、知识蒸馏 [10]、量化 [11], [12] 和早期退出架构 [13], [14]。此外还有其他特定于 ViT 的方法有时称为紧凑架构 [4], [5], [15]。在这些紧凑型 ViT 架构中通过改变注意力的计算方式来降低其计算成本即总成本的最大部分从而简化整体计算路径。图 1: 在 CIFAR-10 图像上的 RAViT 架构示例。追求同样的降低计算成本的目标我们提出了一种全新的方法即改变输入分辨率以减少令牌数量从而限制预测的成本。如果图像在两个维度上都缩小到原来的一半大小ViT 对其进行预测所需的浮点运算将减少约 4 倍。显然降低输入分辨率会降低精度。为了解决这个问题我们的框架在多个计算分支上对同一图像的多个不同分辨率副本进行预测并以从粗到细的方式将低分辨率变换器所做的预测传递给下一个处理更高分辨率的变换器。并非所有图像都同样难以预测 [16]这取决于与图像质量及其内容相关的众多因素。文献中提出了许多动态神经网络方法来利用这一点并节省计算资源 [17]-[21]。对于嵌入式设备这尤其有用并允许模型平均以相同的能耗进行更多预测。出于这个原因我们在框架中额外集成了一个早期退出机制在推理时它允许模型在简单图像上执行更少的计算从而使整个框架能够通过简单地更改早期退出阈值来平衡计算成本和精度该阈值定义了网络认为预测正确所需的确定性程度。例如在低资源设备上通过调整此参数我们可以轻松地在电池寿命和精度之间进行权衡反之亦然。我们通过实验证明我们提出的架构能够在降低计算成本的同时不过度牺牲精度。我们在三个图像分类数据集上测试了我们的框架CIFAR-10、TinyImageNet 和 ImageNet。对于所有数据集我们都找到了一个 RAViT 架构其达到了与经典 ViT 相似的精度但所需的 FLOPs 仅为原始模型的 70%。总而言之我们的方法依赖于两个主要贡献1一种新颖的、基于 ViT 的多分支神经架构用于图像分类该架构在不同分辨率下运行并以从粗到细的方式有效地结合中间预测2一种早期退出机制允许在运行时动态控制计算成本和精度之间的平衡。II. 相关工作本节简要概述了变换器、Vision Transformer 以及用于这些架构的压缩方法的背景。变换器。变换器架构首次由 Vaswani 等人 [1] 为机器翻译任务引入。它依赖于自注意力与前馈层的结合能够学习序列中强大的长距离依赖关系。随后它们迅速被用于其他自然语言处理任务在多个基准测试中提供了最先进的性能 [22], [23]。变换器模型的核心组件是自注意力机制它支持并行处理并有效处理长距离依赖关系。这使得变换器能够捕获整个序列中令牌之间的复杂关系使其高效且可扩展。Vision Transformer (ViT)。传统的 CNN 长期以来一直主导计算机视觉领域这主要是因为与非经典的卷积深度神经网络相比它们能够通过卷积层捕获空间层次结构。受变换器在 NLP 中成功的启发Dosotovitsky 等人 [2] 开发了用于图像识别的 ViT。与 CNN 相比ViT 通过将图像分割成固定大小的块相当于传统变换器中的令牌来执行图像分析。这些图像块被视为令牌并使用变换器进行处理。与 CNN 相比ViT 更有效地捕获全局图像上下文尤其是在长距离依赖关系至关重要的地方。然而它通常需要在非常大规模的数据集如 JFT-300M [24]上进行训练。这一要求源于缺乏 CNN 模型固有的归纳偏置 [2]。因此为了在较小的数据集上使用它们最好使用已在大型数据集上预训练的模型。ViT 的设计激发了更广泛的基于变换器的架构在视觉任务中的探索其应用超越了图像分类涵盖了目标检测 [25]、分割 [26]甚至视频理解 [27]。ViT 压缩。有两种类型的压缩方法静态和动态。静态方法专注于降低网络复杂性与输入无关。另一方面动态方法 [17] 生成的模型在执行时根据输入进行自适应。许多为 CNN 提出的压缩方法已应用于 ViT [19]。一个例子是令牌剪枝 [28]。该方法旨在抑制一些对分类无用的令牌以便仅对总令牌数的一小部分执行计算。知识蒸馏也已应用于 ViT [29]其中学生网络通过模仿一个更大的预训练网络称为教师来训练。目标是使学生网络的精度高于从头开始训练的水平。量化 [30] 旨在通过降低权重或激活的编码精度例如从 float32 到 int8来减少网络大小和计算成本。其他方法依赖于所谓的早期退出 [18]。这里的思想是将网络分成几个不同复杂度的块或分支并带有相关的侧出口。如果网络在分支末尾对预测有把握它将提前退出而不执行其余的计算。一些压缩方法是专门为 ViT 设计的例如紧凑架构 [4], [5], [15]它们旨在改变注意力块的设计以降低其计算成本。实际上这可以被视为计算瓶颈因为其复杂度随图像内块的数量呈平方级增长这是由于自注意力中的两个点积操作造成的。与我们的工作更接近的是一些现有方法提出了用于 ViT 或 CNN 模型的某种多分辨率或逐步细化策略。例如Super Vision Transformer [21] 使用令牌剪枝结合多尺度分块来降低网络的计算成本。该方法改变了应用于不同分支中图像的块大小然后对图像的每个块应用剪枝以移除无信息的令牌。CF-ViT [31] 旨在细化一些被认为信息量大的令牌以便在这些区域执行更具体的计算。图像首先被分块并执行预测。如果预测不够确定网络会识别信息量最大的令牌然后细化这些令牌。最后一些基于 CNN 的方法会改变输入分辨率 [20]网络从输入的低分辨率版本开始如果图像难以分类则分辨率逐渐增加直到原始分辨率。这种方法与我们的非常相似。然而由于使用 Transformer 而不是 CNN特征传递过程非常不同并且不依赖于每个分支架构。我们只传递分类令牌无需将特征单独传递给各个块并设计特定的传递层。还有一些非动态方法例如 Multiscale Vision Transformer (MViT) [32]这是一个多通道分辨率尺度框架。该方法使用一种称为 Multi Head Pooling Attention 的特殊注意力架构并在不降低输入分辨率的情况下降低时空分辨率即序列长度。图 2: 我们具有 3 个分支的 RAViT 架构框架。请注意分支数量可以增加或减少而无需从根本上改变架构。III. 方法我们提出的方法包括一个原则性框架用于以从粗到细的方式高效、动态地提取输入在不同分辨率下的信息其中较粗糙的特征有助于较精细特征的处理并且仅在必要时才使用后者。IV. 实验我们在三个具有不同图像尺寸的数据集上实验评估了我们的方法CIFAR-10 [33]、Tiny ImageNet [34] 和 ImageNet [35]。请注意我们的评估重点在于 RAViT 的各种变体这些变体具有不同数量的分支和每个分支中不同数量的层展示了我们方法的灵活性并清晰显示了计算的减少。因此我们的目的是提供一个概念验证而不是针对不同基准数据集优化分类精度后者需要首先在像 ImageNet 或 JFT-300M 这样的大型数据集上预训练我们的模型。这是相当耗费资源的并且可能会在研究引入一些隐藏的偏差。因此我们没有与其他 ViT 压缩方法进行比较。但我们不认为它们是竞争对手而且由于我们的方法完全不同它可以与大多数方法结合以获得更大的计算量减少。构成 CIFAR-10 数据集的图像尺寸为 32×32 像素。然而将此尺寸除以四将导致图像过小。因此对于这些图像采用了 2 分支架构其中第一个分支的图像被调整为 16×16 像素另一个分支使用原始图像。这些图像已被随机裁剪为相同尺寸填充为 4也进行了随机水平翻转并使用以下参数进行归一化均值 [0.4914, 0.4822, 0.4465]标准差 [0.2023, 0.1994, 0.2010]。如前所述使用早期退出需要设置特定的损失系数。对于 2 分支架构将此系数设置为 1/2 给我们带来了良好的结果与测试的其他任意选择相比。在训练阶段之后使用网络时我们也像 [14] 中那样将批量大小设置为 1。这在早期退出的情况下更实用以便了解每个样本使用的退出点。否则一个批次的每个样本需要被单独路由到不同的退出点这可能会引入额外的计算成本。此外如前所述我们方法的一个合适的目标应用场景是在实时嵌入式系统中这些系统将顺序处理图像流。Tiny ImageNet 包含来自 ImageNet 的 64×64 下采样图像。图 3在 CIFAR-10 上使用的不同 2 分支 RAViT 模型的性能分析。(a) CIFAR-10 上不同层数的精度。(b) CIFAR-10 上不同层数的 FLOPs 数量。V. 结果A. CIFAR-10图 3a 显示了不同架构在测试集上的精度每个分支具有不同数量的层。因此每个值对应一个具有两个分支的不同架构。图 3b 显示了这些架构中每一个的 GFLOPs 数量。这些结果表明对于一个具有特定第二分支层数的架构在第一分支上增加一层会提高精度。然而重要的是要注意增加分支 1 的层数并不总是在精度方面有益例如与在分支 2 有 3 层的情况下具有 2 或 3 个分支 1 层的模型相比1-3 模型获得了更好的精度。表 ICifar-10 上不同层数的 ViT 与我们具有几个 EE 阈值的模型的比较。我们可以看到1-3 模型很有趣因为它比 4 层分支 2 模型具有更好的精度并且仅略低于 5 层分支 2 模型的精度。该模型的计算成本约为 0.94 GFLOPs比 4 层模型减少了 19%比分支 2 具有 5 层的模型减少了 35%。同样有趣的是注意到增加分支 2 的层数可以提高精度直到某个点这里是 5 层分支 2而在第二分支上添加更多层并不会提高精度。但在第一分支上添加层可能仍会稍微改进模型例如2-7 模型的精度达到了 86.0%。B. Tiny ImageNet之前的结果没有考虑早期退出。这将在 TinyImageNet 的结果中讨论。图 6在不同模型上应用不同早期退出阈值时的精度写在每个柱状图顶部和退出分布。(a) RAViT 1-1-8 模型。(b) RAViT 1-1-10 模型。表 II 显示了 2-0-3 模型无早期退出和早期退出阈值为 0.2在 Tiny ImageNet 上与具有 3 层或 4 层的经典 ViT 相比的性能。我们获得了 29% 的计算量减少精度下降可忽略不计0.6 个百分点以及 37% 的计算量减少精度仅下降 1.9 个百分点。C. ImageNet研究了一系列 RAViT 模型以 ViT-B一个 12 层 ViT以及 8 层和 10 层 ViT 作为参考。所有模型均从头开始训练由于训练成本高我们无法测试大量超参数和数据增强。我们还需要注意我们模型的精度不如最先进的方法高。我们无法最佳地调整训练参数。尽管如此我们声称这不会改变此结果的质量。这也是我们无法将我们的方法与其他最先进的压缩技术进行比较的主要障碍这些技术要么使用预训练模型要么从头开始训练并成功达到 ViT-B 模型的 Top 1 精度。表 IIIImageNet 上不同层数的 ViT 与我们模型的比较。图 6a、6b 和表 III 中呈现的结果表明我们的方法在此特定数据集上产生了与先前在两个其他数据集上观察到的类似结果。与 ViT-B 参考模型相比1-1-8 RAViT 模型表现出 99.85% 的相对精度而计算成本仅为 70%。对 EE 的研究显示出与其他数据集观察到的类似结果。随着熵阈值的增加精度和计算复杂度都相应下降。VI. 讨论最关键的参数是定义神经架构的参数即每个分支中的分支数和层数。迄今为止确定每个分支上理想层数的简单公式仍未找到。解决此问题的一个潜在方法是将神经架构搜索算法应用于我们的框架以自动化该过程。进一步的研究方向是将早期退出阈值与硬件参数相关联并研究模型在具有不同复杂度的数据流动态下的行为。在嵌入式系统部署的背景下当电池电量百分比降低时可以增加 EE 阈值。此调整旨在节省电量并延长电池的运行寿命。也可以独立地修改每个分支的 EE 阈值或者更改分支架构。在具有三种不同分辨率的架构框架中初始分支可以包括应用于粗糙图像的层以及中间层全部或部分。此外可以将应用于原始图像的层细分为两个不同的分支。VII. 结论我们提出了 RAViT一个新颖的基于 ViT 的图像分类框架它在不同的图像分辨率上执行预测。所提出的方法在三个截然不同的图像分类数据集上产生了令人满意的结果采用的方法相对简单不需要广泛的超参数优化。已经证明获得的精度与经典网络相当而计算成本仅为经典网络的 70%。RAViT 是一种针对 ViT 的架构优化对于部署在嵌入式设备上尤其有意义因为它提供了动态调整网络在保持计算成本和精确预测之间平衡的可能性。