【读点论文】Multiscale Vision Transformers,将多尺度信息运用到纯Transformer架构上,运用池化给transformer下采样,在多个数据集、视觉任务上表现良好

Multiscale Vision Transformers

Abstract

  • 本文提出了用于视频和图像识别的多尺度视觉transformer(MViT),通过将多尺度特征层次的开创性思想与transformer模型联系起来。多尺度transformer有几个通道分辨率尺度级。从输入分辨率和一个小的通道维度开始,阶段分层地扩展通道容量,同时降低空间分辨率。这创建了一个多尺度的特征金字塔,其中早期的层以高空间分辨率运行,以模拟简单的低层次视觉信息,而更深的层则以空间粗糙但复杂的高维特征。我们评估了这种基本的架构先验,用于为各种视频识别任务建模视觉信号的密集性质,在这些任务中,它优于依赖大规模外部预训练的并发视觉transformer,并且在计算和参数方面的成本高出5-10倍。我们进一步消除了时间维度,并将我们的模型应用于图像分类,它优于先前在视觉transformer上的工作。

  • 代码发布在:facebookresearch/SlowFast: PySlowFast: video understanding codebase from FAIR for reproducing state-of-the-art video models. (github.com)

  • 论文地址:[2104.11227] Multiscale Vision Transformers (arxiv.org)

  • MViT以及Swin都是在纯Transformer架构上应用了视觉先验知识中的多尺度分层建模(hierarchical model)方法,即随着模型变深,特征分辨率下降的同时增加通道数。MViT即Swin通过采用了多尺度分层都有效的减低了Transformer计算耗费资源的问题,MViT是pooling操作,Swin是Windows操作。

  • 视觉信号的极度密集性。前期层信道容量较轻,可以在高空间分辨率下运行,模拟简单的低级视觉信息。反过来,深层可以关注复杂的高级特征多尺度模型充分利用时间信息。在自然视频上训练的ViT在具有混洗帧的视频上测试时,不会出现性能衰减,表明这些模型没有有效地使用时间信息,而是严重依赖于外观。相比之下,当在随机帧上测试MViT模型时,有显著的精度衰减,这表明十分依赖于时间信息。本文的重点是视频识别,MViT使用数据集训练((Kinetics ,Charades , SSv2 and AVA )。MViT在没有任何外部预训练数据的情况下,相较于并发视频transformer有显著的性能提升。与其他有外部预训练的模型相比(ViT的变体:VTN , TimeSformer ,ViViT ),达到相同的准确度具有更少的浮点计算和参数。旨在将多尺度特征分层的基本概念与 transformer 模型联系起来。MViT 在降低视觉分辨率的同时分层扩展了特征的复杂性。在实证评估中,MViT 在视频和图像识别方面显示出比单尺度视觉 transformer 的根本优势

  • 由Facebook AI发表在 ICCV 2021。

Introduction

  • 本文从计算机视觉的神经网络模型的思想史开始。基于对猫和猴子视觉皮层的研究,Hubel和Wiesel开发了一种视觉通路的分层模型,V1等较低区域的神经元对定向边缘和条形等特征做出反应,而V1等较高区域的神经元对更具体的刺激做出反应。福岛提出了Neocognitron,这是一种用于模式识别的神经网络架构,明显受到Hubel和Wiesel的层次结构的启发。他的模型有简单细胞和复杂细胞的交替层,从而结合了下采样和移位不变性,从而结合了卷积结构。LeCun等进一步使用反向传播来训练该网络的权值。但是,视觉处理层次结构的主要方面已经确立:(i)随着处理层次的上升,空间分辨率降低;(ii)不同“通道”的数量增加,每个通道对应更专门的特征。

  • 在平行发展中,计算机视觉社区开发了多尺度处理,有时被称为“金字塔”策略,其中包括Rosenfeld和Thurston, Burt和Adelson bb0, Koenderink等关键论文。有两个动机:(i)通过在较低分辨率下工作来减少计算需求;(ii)在较低分辨率下更好地感知“上下文”,然后可以指导在较高分辨率下的处理(这是当今神经网络中“深度”优势的先驱)。

  • Transformer架构允许学习在集合上定义的任意功能,并且在语言理解和机器翻译等序列任务中获得了可扩展的成功。基本上,transformer使用具有两个基本操作的块。首先,是对元素间关系建模的注意操作。其次是多层感知器(MLP),它对元素内部的关系进行建模。将这些操作与规范化和残差连接交织在一起,可以使transformer推广到各种各样的任务。

  • 最近,transformer被应用于关键的计算机视觉任务,如图像分类。在架构普遍主义的精神下,视觉transformer在各种数据和计算机制下接近卷积模型的性能。视觉transformer的第一层以2D卷积的方式对输入进行“拼接”,然后是一堆transformer块,目的是在归纳偏置很小的情况下展示transformer架构的强大功能。

  • 在本文中,本文的目的是将多尺度特征层次的开创性思想与transformer模型联系起来。本文假设,分辨率和通道缩放的基本视觉原理可以在各种视觉识别任务中有益于transformer模型。本文提出了多尺度视觉transformer(MViT),一种用于图像和视频等视觉数据建模的transformer架构。考虑如下图所示的输入图像。与在整个网络中保持恒定通道容量和分辨率的传统transformer不同,多尺度transformer具有几个通道分辨率“尺度”阶段。从图像分辨率和小通道维度出发,逐级扩展通道容量,同时降低空间分辨率。这在transformer网络内部创建了一个特征激活的多尺度金字塔,有效地transformer的原理与多尺度特征层次联系起来。

  • 在这里插入图片描述

    • 多尺度视觉transformer学习从密集(空间)和简单(通道)到粗糙和复杂特征的层次结构。几个分辨率通道尺度阶段逐渐增加中间潜序列的通道容量,同时减少其长度,从而减少空间分辨率。
    • 这里需要注意的是模型基于纯Transformer架构的,所以采用了Patch操作,详情参考ViT,所以图中的1,2,3,4是patch的大小,随着模型深入,空间分辨(Patch分辨率)是降低的。
  • 我们的概念为视觉transformer模型提供了有效的设计优势。由于轻量级的通道容量,我们架构的早期层可以在高空间分辨率下运行,以模拟简单的低级视觉信息。反过来,更深层可以有效地关注空间粗糙但复杂的高级特征来建模视觉语义。我们的多尺度transformer的基本优势来自于视觉信号的极其密集的特性,这种现象在视频中捕获的时空视觉信号中更为明显。

  • 我们设计的一个值得注意的好处是视频多尺度模型中存在强烈的隐式时间偏差。我们的研究表明,在自然视频上训练的视觉transformer模型在帧被打乱的视频上测试时没有出现性能衰减。这表明这些模型没有有效地利用时间信息,而是严重依赖于外观。相比之下,当在shuffle帧上测试我们的MViT模型时,我们观察到明显的准确性下降,表明大量使用了时间信息。

  • 我们在本文中的重点是视频识别,我们为视频任务(Kinetics , Charades , SSv2和AVA)设计和评估MViT。MViT在没有任何外部预训练数据的情况下,比并发视频transformer提供了显著的性能提升。

  • 在图A.4中,我们展示了在改变MViT中使用的时间片段数量时,视频级推理的计算/精度权衡。纵轴表示在Kinetics-400上的精度,横轴表示不同模型、MViT和并发ViT视频变量(VTN、TimeSformer、ViViT)在FLOPs上的总体推理成本。为了达到与MViT相似的精度水平,这些模型需要更多的计算和参数(例如vivitl在相同精度下具有6.8倍高的FLOPs和8.5倍多的参数,在§A.1中需要更多的分析),并且需要在ImageNet-21K上进行大规模的外部预训练(其中包含比Kinetics-400多60倍的标签)。

    • 在这里插入图片描述

    • 对于每个视频中不同数量的推理剪辑,K400-val的准确性/复杂性权衡。top-1精度(纵轴)通过K- center剪辑测试获得,其中每条曲线中表示时间剪辑K∈{1,3,5,7,10}的个数。横轴衡量每个视频的全部推理成本。左边的图是线性的,右边的图是对数刻度。

  • 我们进一步将我们的架构应用于ImageNet上的图像分类任务,通过简单地去除动力学上消融实验中发现的视频模型的时间维度,并显示出比单尺度视觉变压器在图像识别方面的显着增益。

  • MViT采用的是和ViT一样的绝对位置编码,这其实忽略了一个很重要的视觉先验知识,即平移不变性(图片中的一个物体无论在图像中如何移动都不会改变这个物体的类别),绝对位置编码的问题就是物体在图片中移动之后其绝对位置发生了改变,响应的绝对位置编码也发生了变化,所以忽视了平移不变性原理

  • 在MViT中,pooling_Q只在每个stage的第一个Transformer block中计算,且步长只有(1,2,2),而K,V向量步长(1,8,8)在stage所有的Transformer block中计算,相差很多,所以可能会存在Q向量的信息不足的问题。

  • 本文提出用于视频和图像识别的多尺度视觉transformer(Multiscale Vision Transformers),它将多尺度特征层次的基本思想与变换器模型相结合。

    1. 创建了强大的Baseline,沿着2个轴提高pooling attention:使用分解的位置距离将位置信息注入Transformer块;通过池化残差连接来补偿池化步长在注意力计算中的影响。上述简单而有效的改进带来了更好的结果
    2. 将改进的MViT结构应用到一个带有特征金字塔网络(FPN)的Mask R-CNN,并将其应用于目标检测和实例分割;
    3. 在5个尺寸的增加复杂性(宽度,深度,分辨率)上实例化了架构,并报告了一个大型多尺度ViT的实践训练方案。该MViT变体以最小的改进,使其可以直接应用于图像分类、目标检测和视频分类。

Related Work

  • 卷积网络(ConvNets)。结合下采样、移位不变性和共享权值,卷积神经网络实际上是图像和视频的计算机视觉任务的标准骨干。

  • ConvNets中的自我关注。自注意机制已被用于图像理解、无监督对象识别以及视觉和语言。自注意操作和卷积网络的混合也被应用于图像理解和视频识别。

  • 视觉transformer。目前将transformer应用于视觉任务的大部分热情始于视觉transformer(vision Transformer, ViT)和检测transformer。我们直接在[ViT]的基础上构建了一个允许通道扩展和分辨率下采样的阶段模型。DeiT提出了一种数据高效的方法来训练ViT。我们的训练配方建立在相同设置下,我们将我们的图像分类模型与DeiT进行比较。

  • 一个新兴的工作线程旨在将transformer应用于视觉任务,如物体检测、语义分割、3D重建、姿态估计、生成建模、图像检索、医学图像分割、点云、视频实例分割、物体再识别、视频检索、视频对话、视频目标检测和多模态任务。另一项研究尝试用学习到的离散标记序列对视觉数据建模。

  • 高效的transformer。最近的研究降低了二次注意力复杂性,使transformer在自然语言处理应用中更有效,这是对我们方法的补充。三个并行的作品提出了一个基于vit的视频架构。然而,这些方法依赖于对大量外部数据(如ImageNet21K)的预训练,因此使用最小调整的香草ViT。相比之下,我们的MViT为transformer引入了多尺度特征层次结构,允许在没有大规模外部数据的情况下对密集视觉输入进行有效建模。

Multiscale Vision Transformer (MViT)

  • 我们的通用多尺度transformer架构建立在阶段的核心概念上。每个级由多个具有特定时空分辨率和信道尺寸的transformer块组成。多尺度transformer的主要思想是逐步扩大信道容量,同时将网络从输入到输出的分辨率集中起来。

Multi Head Pooling Attention

  • 我们首先描述了多头池注意(MHPA),这是一种自注意算子,可以在transformer块中实现灵活的分辨率建模,允许多尺度transformer在逐渐变化的时空分辨率下运行。与原始的多头注意算子(Multi - Head Attention, MHA)不同,其中通道维度和时空分辨率保持固定,MHPA将潜在张量序列池化,以减少被关注输入的序列长度(分辨率)。下图显示了概念。

    • 在这里插入图片描述

    • 注意池化是一种灵活的注意机制,它(i)允许通过查询池化, Q = P ( Q ^ ; Θ Q ) Q = P(\hat{Q};Θ_Q) Q=P(Q^;ΘQ),和/或(ii)通过池化键来计算缩短长度 ( T ^ H ^ W ^ ) (\hat{T}\hat{H}\hat{W}) (T^H^W^) 的注意力, K = P ( K ^ ; Θ K ) K = P(\hat K;Θ_K) K=P(K^;ΘK),值, V = P ( V ^ ; Θ V ) V = P(\hat V;Θ_V) V=P(V^;ΘV),序列。

    • 首先对MHPA作出解释,这是本文的核心,它使得多尺度变换器以逐渐变化的时空分辨率进行操作。与原始的多头注意力(MHA)不同,在原始的多头注意力中,通道维度和时空分辨率保持不变,MHPA将潜在张量序列合并,以减少参与输入的序列长度(分辨率)。

    • 虽然ViT在图像分类中很受欢迎,但其用于高分辨率目标检测和时空视频理解任务仍然具有挑战性。视觉信号的密度对计算和内存需求提出了严峻的挑战,因为在基于Vision Transformer的模型的Self-Attention Block中,这些信号的复杂性呈二次型。采用了两种不同的策略来解决这个问题:

        1. Window Attention:在 Window 中进行局部注意力计算用于目标检测;

        2. Pooling Attention:在 Self-Attention 之前将局部注意聚合在一起。

    • 而Pooling Attention为多尺度ViT带来了很多的启发,可以以一种简单的方式扩展ViT的架构:它不是在整个网络中具有固定的分辨率,而是具有从高分辨率到低分辨率的多个阶段的特性层次结构。MViT是为视频任务设计的。

  • 具体地说,考虑一个序列长度为L的D维输入张量X, X ∈ R L × D X∈\R^{L×D} XRL×D。在MHA之后,MHPA将输入的X通过线性运算投影到中间查询张量 ( Q ^ ∈ R L × D ) (\hat Q∈\R^{L×D}) (Q^RL×D)、键张量 ( K ^ ∈ R L × D ) (\hat K∈\R^{L×D}) (K^RL×D)和值张量 ( V ^ ∈ R L × D ) (\hat V∈\R^{L×D}) (V^RL×D)

  • 用维数D × D的权值 W Q , W K , W V W_Q, W_K, W_V WQ,WK,WV对得到的中间张量按序列长度进行池化,池化算子P如下所述。池操作符。在参与输入之前,将中间张量Q, K, V与池化算子 P ( ⋅ ; Θ ) P(·;Θ) P(⋅;Θ),这是我们的MHPA的基石,并通过扩展,我们的多尺度变压器架构。

  • 算子 P ( ⋅ ; Θ ) P(·;Θ) P(⋅;Θ) 沿着每个维度对输入张量执行池化核计算。将Θ解包为 Θ : = ( k , s , p ) Θ:= (k, s, p) Θ:=(k,s,p),算子使用维度为 k T × k H × k W k_T × k_H × k_W kT×kH×kW的池化核k、维度为 s T × s H × s W s_T × s_H × s_W sT×sH×sW的步长s和维度为 p T × p H × p W p_T × p_H × p_W pT×pH×pW的填充p,将维度为L = T × H × W的输入张量约简为 L ˉ \bar L Lˉ,即:

    • L ˉ = [ L + 2 p − k s ] + 1 \bar L =[\frac{L+2p-k}{s}]+1 Lˉ=[sL+2pk]+1

    • 用坐标方向的方程。池化张量再次被平面化,得到 P ( Y ; Θ ) ∈ R L ˉ × D P(Y;Θ)∈\R ^{\bar L×D} P(Y;Θ)RLˉ×D,序列长度减少, L ˉ = T ˉ × H ˉ × W ˉ \bar L =\bar T ×\bar H ×\bar W Lˉ=Tˉ×Hˉ×Wˉ

  • 默认情况下,我们在池化注意算子中使用带有形状保持填充p的重叠核k,因此 L ˉ \bar L Lˉ,输出张量 P ( Y ; Θ ) P (Y;Θ) P(Y;Θ),总体上减少了 s T s H s W s_Ts_Hs_W sTsHsW

  • 池的注意。池化算子 P ( ⋅ ; Θ ) P(·;Θ) P(⋅;Θ) 分别应用于所有中间张量 Q ^ , K ^ 和 V ^ \hat Q, \hat K和 \hat V Q^K^V^ ,并选择池化核_k,步幅 s 和填充 p。表示Θ产生预关注向量 Q = P ( Q ^ ; Θ Q ) , K = P ( K ^ ; Θ K ) , V = P ( V ^ ; Θ V ) Q = P(\hat Q;Θ_Q), K = P(\hat K;Θ_K), V = P(\hat V;Θ_V) Q=P(Q^;ΘQ)K=P(K^;ΘK)V=P(V^;ΘV) ,减少了序列长度。现在我们把注意力集中在这些缩短的向量上,

    • A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T / D ) V Attention(Q,K,V)=Softmax(QK^T/\sqrt{D})V Attention(Q,K,V)=Softmax(QKT/D )V

    • 自然地,该操作在池化操作符上引入了约束 s K ≡ s V s_K≡s_V sKsV。综上所述,集中注意力计算为:

    • P A ( ⋅ ) = S o f t m a x ( P ( Q ; Θ Q ) P ( K ; Θ K ) T / d ) P ( V ; Θ V ) PA(·)=Softmax(P(Q;Θ_Q)P(K;Θ_K)^T/\sqrt{d})P(V;Θ_V) PA()=Softmax(P(Q;ΘQ)P(K;ΘK)T/d )P(V;ΘV)

    • 其中√d是对内积矩阵逐行规范化。因此,在P(·)中的查询向量Q缩短后,池化注意操作的输出序列长度减少了 s T Q s H Q s W Q s^Q_T s^Q_ Hs^Q_W sTQsHQsWQ 的跨步因子。

  • Multiple heads.。如[transformer]中所述,计算可以通过考虑h个头来并行化,其中每个头在D维输入张量X的D/h通道的非重叠子集上执行池化注意力。

  • 计算分析。由于注意力计算按序列长度二次扩展,因此将键、查询和值张量池化对多尺度transformer模型的基本计算和内存需求有显著的好处。用fQ、fK和fV表示序列长度缩减因子,有: f j = s T j ⋅ s H j ⋅ s W j , j ∈ { Q , K , V } f_j=s^j_T·s^j_H·s^j_W,j\in\{Q,K,V\} fj=sTjsHjsWj,j{Q,K,V}。考虑输入张量 P ( ; Θ ) P(;Θ) P(;Θ) 的维数为D × T × H × W,则MHPA的运行时复杂度为 O ( T H W D / h ( D + T H W / f Q f K ) ) O(THWD/ h (D + T HW/f_Qf_K)) O(THWD/h(D+THW/fQfK))/头,内存复杂度为 O ( T H W h ( D / h + T H W / f Q f K ) ) O(THWh(D/ h + THW/f_Qf_K)) O(THWh(D/h+THW/fQfK))

  • 通道数量D和序列长度项 T H W / f Q f K THW/f_Qf_K THW/fQfK 之间的权衡告诉我们关于架构参数的设计选择,例如头的数量和层的宽度。

Multiscale Transformer Networks

  • 在多头池注意力的基础上,本文描述了仅使用MHPA和MLP层进行视觉表示学习的多尺度transformer模型。首先,我们简要回顾了视觉transformer模型,它为我们的设计提供了信息。

  • 初级:视觉transformer(ViT)。首先将分辨率为T ×H×W的输入视频(其中T为帧数H为高度,W为宽度)切成大小为1×16×16的不重叠的小块,然后在平整的图像小块上逐点应用线性层,将其投影到transformer的潜在维数D中。这相当于一个相同核大小和步长1×16×16的卷积,在下表的模型定义中表示为patch1阶段。

    • 在这里插入图片描述

    • Vision transformer (ViT)基本模型从一个数据层开始,该数据层以速率 τ × 1 × 1 τ×1×1 τ×1×1 到分辨率t1对视觉输入进行采样,其中T是帧的数量H高度和W宽度。第一层patch1将形状为1×16×16的patch投影成序列,由N个transformer块(stage2)按均匀通道尺寸(D)和分辨率( T × H 16 × W 16 T ×\frac H {16}×\frac W{16} T×16H×16W)堆叠处理。

  • 接下来,对长度为L、维数为D的投影序列的每个元素加入位置嵌入 E ∈ R L × D E∈\R^{L×D} ERL×D,对位置信息进行编码,打破排列不变性。一个可学习的类嵌入被附加到投影图像补丁上。

  • 得到的长度为L + 1的序列然后由N个transformer块的堆栈依次处理,每个transfroemr块执行注意(MHA)、多层感知器(MLP)和层归一化(LN)操作。考虑X为块的输入,单个transformer块的输出,块(X)的计算公式为

    • X 1 = M H A ( L N ( X ) ) + X B l o c k ( X ) = M L P ( L N ( X 1 ) ) + X 1 X_1=MHA(LN(X))+X\\ Block(X)=MLP(LN(X_1))+X_1 X1=MHA(LN(X))+XBlock(X)=MLP(LN(X1))+X1

    • 经过N个连续块后的结果序列进行层归一化,提取类嵌入并通过线性层来预测所需的输出(例如class)。缺省情况下,MLP的隐藏维数为4D。在本文中,值得注意的是,ViT在所有块中保持恒定的信道容量和空间分辨率(见上表)。

  • 多尺度视觉transformer(MViT)。我们的关键概念是逐步增加信道分辨率(即维度),同时降低整个网络的时空分辨率(即序列长度)。通过设计,我们的MViT架构在早期层中具有良好的时空(和粗通道)分辨率,在后期层中向上/向下采样到粗时空(和细通道)分辨率。MViT如下表所示。

    • 在这里插入图片描述

    • 多尺度视觉transformer(MViT)基本模型。Layer cube,将稠密的时空立方体(形状为 c t × c y × c w c_t×c_y×c_w ct×cy×cw)投射到D通道,将时空分辨率降低到 T / s T × h / 4 × w / 4 T/s_T × h/4 × w/4 T/sT×h/4×w/4

      随后的阶段使用MHPA逐步降低该分辨率(在阶段开始时),同时在MLP层中增加通道维度(在阶段结束时)。每级由N *transformer块组成,用[括号]表示。

  • 规模阶段。尺度级被定义为一组N个transformer块,它们在相同的尺度上运行,具有跨通道和时空维度的相同分辨率D×T ×H×W。在输入(上表中的cube),我们将斑块(或立方体,如果它们具有时间范围)投影到较小的通道维度(例如比典型的ViT模型小8倍),但长序列(例如4×4 =比典型的ViT模型密度大16倍);参见表1)。

  • 在阶段转换(例如表2中的scale1到scale2到)中,处理序列的通道维度被上采样,而序列的长度被下采样。这有效地降低了底层视觉数据的时空分辨率,同时允许网络将处理后的信息吸收到更复杂的特征中。

  • 渠道扩张。当从一个阶段过渡到下一个阶段时,我们通过增加与该阶段引入的分辨率变化相关的因子来增加前一阶段中最终MLP层的输出,从而扩展通道维度。具体地说,如果我们将时空分辨率降低4倍,我们将信道维度增加2倍。例如,scale3到scale4将表2中的分辨率从 2 D × T / s T × H / 8 × T / 8 2D× T/ s_T × H/ 8 × T/ 8 2D×T/sT×H/8×T/8更改为 4 d × T / s T × H / 16 × T / 16 4d× T /s_T × H/ 16× T/ 16 4d×T/sT×H/16×T/16。这大致保留了各阶段的计算复杂度,类似于ConvNet的设计原则。

  • 查询池。池化注意操作不仅在键向量和值向量的长度上提供了灵活性,而且在查询的长度上也提供了灵活性,从而输出序列。池化查询向量P(Q;k;p;s)与核s≡(sQ T, sQ H, sQ W)导致序列减少一个因子为sQ T·sQ H·sQ W。因为我们的目的是在一个阶段的开始降低分辨率,然后在整个阶段保持这个分辨率,所以每个阶段只有第一个池化关注算子在非退化查询步长sQ > 1处操作,所有其他算子都被约束为sQ≡(1,1,1)

  • 键-值池。与查询池不同,改变键K和值V张量的序列长度不会改变输出序列长度,因此也不会改变时空分辨率。然而,它们在池化注意算子的总体计算需求中起着关键作用。

  • 我们解耦了K, V和Q池化的使用,Q池化在每个阶段的第一层使用,K, V池化在所有其他层使用。由于键张量和值张量的序列长度需要相同才能进行注意力权重计算,因此K张量和值V张量使用的池化步幅需要相同。在我们的默认设置中,我们约束所有池化参数(k;p;s)在一个阶段内是相同的,即ΘK≡ΘV,但在不同阶段间自适应地变化。

  • 跳过连接。由于通道尺寸和序列长度在残差块内发生变化,我们将跳过连接池以适应其两端尺寸不匹配的情况。MHPA通过添加查询池操作符P(·;ΘQ)到残留路径。如上图所示,我们不是直接将MHPA的输入X添加到输出中,而是将池化的输入X添加到输出中,从而匹配出席查询Q的解析

  • 为了处理阶段变化之间的通道尺寸不匹配,我们使用了一个额外的线性层,该层对MHPA操作的层归一化输出进行操作。请注意,这不同于对非标准化信号进行操作的其他(保持分辨率的)跳过连接

Network instantiation details

  • 表3显示了视觉transformer和我们的多尺度视觉transformer基本模型的具体实例。viti - base(表3b)首先将输入投影到尺寸为D = 768、形状为1×16×16的块上,然后堆叠N = 12个transformer块。使用8×224×224输入,所有层的分辨率都固定为768×8×14×14。序列长度(时空分辨率+类标记)为8·14·14 + 1 = 1569。

  • 在这里插入图片描述

    • 表3。将viti - b与具有不同复杂性的mviti - s ©和mviti - b (b)实例进行比较。mviti - s在较低的空间分辨率下运行,并且缺乏第一高分辨率阶段。前1精度对应于K400上的5中心视图测试。flop对应于单个推理片段,内存用于4个片段的训练批次。mvitb的一般结构见表2。
  • 我们的mviti - base(表3b)由4个刻度级组成,每个级都有几个一致通道尺寸的变压器块。MViT-B最初将输入投影到通道维度D = 96,形状为3×7×7的时空立方体重叠。结果序列的长度为8∗56∗56 + 1 = 25089,每增加一个阶段减少4倍,最终序列的长度为8∗7∗7 + 1 = 393。在串联中,通道尺寸在每个阶段上采样2倍,在scale4增加到768。请注意,所有池化操作,以及因此产生的分辨率下采样,都只在数据序列上执行,而不涉及处理过的类令牌嵌入。

  • 我们在scale1阶段将MHPA头部的数量设置为h = 1,并随着通道维度增加头部的数量(每个头部D/h的通道保持一致,为96)。在每一阶段的过渡中,前一阶段的输出MLP维数增加2倍,下一阶段的输入是Q张量上sQ =(1,2,2)的MHPA池。

  • 我们在所有MHPA块中使用K, V池化,在scale1中使用ΘK≡ΘV和sQ =(1,8,8),并自适应地将该步幅w.r.t.衰减到各个阶段的尺度,以便K, V张量在所有块中具有一致的尺度。

Experiments: Video Recognition

  • 数据集。我们使用Kinetics-400 (K400)(400节课约240k训练视频)和Kinetics-600。我们进一步评估了on SomethingSomething-v2、Charades和AVA的迁移学习性能。我们报告了验证集上排名前1和前5的分类准确率(%),单个空间中心裁剪片段的计算成本(以FLOPs为单位)以及使用的片段数量。

  • 训练。默认情况下,所有模型都是从Kinetics上的随机初始化(“从零开始”)开始训练的,而不使用ImageNet或其他预训练。我们的训练配方和增强方法如下[SlowFast networks for video recognition,Training data-efficient image transformers & distillation through attention]。对于Kinetics,我们训练200次,重复2次增强重复。我们报告了从ImageNet微调的ViT基线,使用了[SlowFast networks for video recognition]中训练配方的30 epoch版本。对于时域,我们从全长视频中采样一个片段,网络的输入是T帧,时间步长为τ;表示为T × τ[SlowFast networks for video recognition]。

  • 推理。本文采用以下两种测试策略:(i)在时间上,从视频中均匀采样K个片段(例如K=5),将较短的空间侧缩放到256像素并进行224×224中心裁剪;(ii)在时间上与(i)相同,但进行3次224×224裁剪以覆盖较长的空间轴。我们对所有个体预测的得分取平均值。所有实现细节都在§D中。

Main Results

  • 动力学- 400。下表比较了之前的工作。从上到下,它有四个部分,我们依次讨论它们。

    • 在这里插入图片描述

    • 与之前的《Kinetics-400》相比。我们报告了单个“视图”(具有空间裁剪的时间剪辑)×视图数的推理成本(FLOPs×viewspace×viewtime)。FLOPs的数量级是千兆( 1 0 9 10^9 109),Param的数量级是兆( 1 0 6 10^6 106)。用外部数据训练的模型的准确性不被重视。

    • 第一分显示了使用卷积神经网络的现有技术。

    • 第二部分展示了使用Vision transformer进行视频分类的并行工作。这两种方法都依赖于ImageNet预训练的基础模型。ViT-BVTN达到了75.6%的top-1准确率,仅通过将预训练从ImageNet-1K改为ImageNet-21K,将其提高了3%,达到78.6%。ViT-B-TimeSformer在VTN的基础上又增加了2.1%的增益,成本更高,为7140GFLOPs和121.4M参数。ViViT通过更大的ViT-L模型进一步提高了准确性。

    • 第三部分显示了我们的ViT基线。我们首先列出我们的vitb,同样在ImageNet-21K上进行预训练,达到79.3%,因此比vitb - btimesformer低1.4%,但FLOPs减少4.4倍,参数减少1.4倍。这一结果表明,简单地微调来自ImageNet-21K的现成ViT-B模型[25]提供了一个强大的动力学基线。然而,用同样的微调配方从头开始训练这个模型将产生34.3%的结果。使用我们的“从头开始训练”配方将产生68.5%的ViT-B模型,使用相同的1×5,空间×时间视图进行视频级推理。

    • 最后一部分列出了我们的MViT结果。我们所有的模型都是使用这个配方从头开始训练的,没有任何外部预训练。我们的小型模型,MViT-S产生76.0%,而相对轻量级,有261m参数和32.9×5=164.5G FLOPs,在相同的列车/val设置下,计算量减少5.5倍,性能优于ViT-B +7.5%。

  • 我们的基本模型,MViT-B提供78.4%,在相同的设置下,精度比ViT-B提高了+9.9%,同时具有2.6×/2.4×fewer FLOPs/参数。当将帧采样从16×4改为32×3时,性能提高到80.2%。最后,在插值时间位置嵌入后,我们采用该模型并对其进行5个epoch的微调,使用更长64帧输入,使用3个空间视图和3个时间视图进行推理,达到81.2%的top-1(如果剪辑有更多帧,则使用更少的时间视图进行测试就足够了)。进一步的定量和定性结果见§A。

  • 《Kinetics-600》是《Kinetics》的放大版。结果如下表所示。我们从头开始训练MViT,没有任何预训练。mvitb, 16×4达到82.1%的top-1精度。我们进一步训练了一个更深的24层模型,MViT-B-24, 32×3,在这个更大的数据集上研究模型尺度。MViT在5个剪辑中心裁剪测试中达到了83.4%的最先进水平,而与依赖于大规模ImageNet-21K预训练的viti - l - vivit[1]相比,FLOPs减少了56.0倍,参数减少了8.4倍。

    • 在这里插入图片描述
  • Something-Something-v2(SSv2)是一个包含对象交互视频的数据集,这被称为“时间建模”任务。下表将我们的方法与最先进的方法进行比较。我们首先报告一个使用ImageNet-21K预训练的简单的ViT-B(我们的基线)。我们的16帧MViT-B具有64.7%的top-1精度,优于使用相同设置(K400预训练和3×1视图测试)的SlowFast R101。使用以上的K600预训练模型,在输入帧数较多的情况下,我们的MViT-B达到67.7%,更深的MViT-B-24达到68.7%。总的来说,表6验证了MViT的时态建模能力。

    • 在这里插入图片描述
  • Charades是一个具有较长距离活动的数据集。我们在下表中验证我们的模型。在FLOPs和参数相似的情况下,我们的MViT-B 16×4取得了比SlowFast R50更好的结果(+2.0 mAP)。如表所示,通过增加输入帧数和mvitb层数,并使用K600预训练模型,mvitb的性能得到进一步提高。

    • 在这里插入图片描述
  • AVA是一个用于人类行为时空定位的数据集。我们在此检测任务上验证MViT。关于MViT检测架构的详细信息可以在§D.2中找到。下表显示了我们的MViT模型与SlowFast和X3D的对比结果。我们观察到,使用相同的预训练和测试策略,mvitb可以与SlowFast和X3D竞争。

    • 在这里插入图片描述

Ablations on Kinetics

  • 我们使用5clip center 224×224作物测试对Kinetics-400 (K400)进行消融。我们展示了top-1的精度(Acc),以及在空间大小为 22 4 2 224^2 2242的单个剪辑输入的GFLOPs中测量的计算复杂性。推断计算成本与使用固定数量的5个片段成正比(用T ×τ=16×4采样大致覆盖推断视频)。我们还报告了M( 1 0 6 10^6 106)中的参数和G( 1 0 9 10^9 109)中批量大小为4的训练GPU内存。默认情况下,所有MViT消融都是MViT- b, T ×τ=16×4和MHSA的max-pooling。

  • 帧shuffle。下表显示了测试时随机变换输入帧的结果。所有的模型都是在没有任何洗牌和时间嵌入的情况下训练的。我们注意到我们的MViT-B架构在变换推理帧时的准确率显著下降了-7.1%(77.2→70.1)。相比之下,ViT-B在改变输入的时间顺序方面出奇地稳健。

    • 在这里插入图片描述
  • 这表明naïve将ViT应用于视频并没有建模时间信息,并且ViT- b中的时间位置嵌入似乎被完全忽略了。我们还用表4中79.3%的ImageNet-21K预训练的ViT-B验证了这一点,它对shuffle测试帧具有相同的79.3%的准确率,这表明它隐式地执行了Kinetics中的帧袋视频分类

  • ViT有两阶。我们提供了一个简单的实验,验证了比例阶段设计在vitb上的有效性。为此,我们在vitb模型中添加了单个比例阶段。为了隔离在ViT中具有不同尺度的影响,我们不改变本实验的通道维度。我们通过在6个Transformer块之后使用sQ≡(1,2,2)执行q池来实现这一点(参见表3)。下表显示了结果。在ViT-B基线上添加单个缩放级可将精度提高1.5%,同时将flop和内存成本分别降低38%和41%。池化Key-V值张量可以减少计算和内存成本,同时略微提高准确性。

    • 在这里插入图片描述
  • 在MViT中分离空间和时间嵌入。在下表中,我们使用(i)无,(ii)只有空间,(iii)联合时空,(iv)单独的空间和时间(我们的默认值),位置嵌入来删除。我们观察到,没有嵌入(i)比仅使用空间嵌入(ii)的精度衰减-0.9%,这大致相当于联合时空嵌入(iii)。我们的单独时空嵌入(iv)是最好的,并且比联合时空嵌入的参数少2.1M。

    • 在这里插入图片描述
  • 输入采样率。下表显示了不同立方化核大小c和采样步幅s的结果(参见表2)。我们观察到,cT = 1的采样块比cT > 1的采样立方体表现更差。此外,采样两倍的帧数,T = 16,用两倍的立方体跨距,sT = 2,保持成本不变,但提高性能+1.3%(75.9%→77.2%)。此外,采样重叠的输入立方体s < c允许更好的信息流并有利于性能。虽然cT > 1有帮助,但非常大的时间内核大小(cT = 7)并不能进一步提高性能。

    • 在这里插入图片描述
  • 阶段分布。表13中的烧蚀显示了在每个单独规模阶段分配transformer块数的结果。transformer总块数N=16一致。我们观察到,在早期阶段有更多的块会增加内存,在后期阶段有更多的块会增加体系结构的参数。将大部分块移到scale4阶段(下表中的V变体V5和V6)可以实现最佳折衷。

    • 在这里插入图片描述
  • 键-值池。下表中的消融分析了池化步幅s = sT × sH × sW,用于池化K和V张量。在这里,我们比较了使用步幅w.r.t.阶段分辨率并在所有阶段保持K、V分辨率固定的“自适应”池与在每个块上使用相同步幅的非自适应版本。首先,我们将不使用K, V池的基线与所有阶段中固定步长2×4×4的非自适应池进行比较:这将准确性从77.6%降至74.8(并将FLOPs和内存减少50%以上)。在scale1阶段使用1×8×8, scale2阶段使用1×4×4, scale3阶段使用1×2×2的自适应步幅,可以获得77.2%的最佳精度,同时仍然保留了flop和内存中的大部分效率增益。

    • 在这里插入图片描述
  • 池功能。下表中的消融着眼于内核大小k、步长s和池化函数(max/average/conv)。首先,我们看到,拥有相同的内核和步幅k=s提供76.1%,将内核大小增加到k=2s+1会衰减到75.5%,但是使用k=s+1的内核会带来77.2%的明显好处。这表明重叠池是有效的,但是太大的重叠(2s+1)会造成伤害。其次,我们研究平均池而不是最大池,并观察到准确率从77.2%下降到75.4%。第三,我们通过一个可学习的、有通道的卷积来使用卷积池,然后是LN。此变体比最大池化有+1.2%,并用于§4.1和§5中的所有实验。

    • 在这里插入图片描述
  • -准确率权衡法则。在下表中,我们分析了MViT模型的速度/精度权衡,以及相应的视觉transformer(ViT)和ConvNets (SlowFast 8×8 R50, SlowFast 8×8 R101,和X3D-L)。我们测量训练吞吐量为每秒在单个M40 GPU上的视频剪辑数量。

    • 在这里插入图片描述

    • 我们观察到,mviti - s和mviti - b模型不仅比viti - b基线模型和卷积模型更准确,而且速度更快。具体来说,mviti - s的吞吐速度(clips/s)比viti - b高3.4倍,准确度(Acc)提高+5.8%,参数(Param)比viti - b少3.3倍。在MHSA中使用conv代替maxpooling,我们观察到卷积和附加参数更新的训练速度降低了约20%。

Experiments: Image Recognition

  • 我们通过在ImageNet-1K上使用单帧T = 1的视频模型将我们的视频模型应用于静态图像识别。训练。我们的配方与DeiT相同,并在补充材料中进行了总结。训练周期为300次,训练时间越长,训练效果越好。

Main Results

  • 在这个实验中,我们采用我们的模型是由消融研究设计的,用于动力学视频分类,并简单地去除时间维度。然后我们在ImageNet上训练和验证它们(“从零开始”)。下表显示了与以前工作的比较。从上到下,表中包含RegNet和effentnet作为ConvNet示例,以及DeiT,其中DeiT- b与ViT-B相同,但使用[DeiT]中的改进配方进行训练。因此,这就是我们感兴趣的视觉transformer的对应版本。

    • 在这里插入图片描述
  • 下表的底部部分显示了我们的多尺度视觉transformer(MViT)模型的结果。我们展示了不同深度的模型,MViT-B-Depth,(16,24和32),其中MViT-B-16是我们的基础模型,而更深的变体只是通过重复每个尺度阶段的块数N *来创建的(参见表3b)。“wide”表示更大的通道尺寸D = 112。我们所有的模型都使用与DeiT相同的配方进行训练。

  • 我们做了以下观察:(i)我们的轻量级mviti - b -16达到了82.5%的top-1精度,只有7.8 GFLOPs,比DeiT-B同类产品高出0.7%,计算成本更低(2.3×fewer FLOPs和参数)。如果我们使用conv而不是max-pooling,这个数字将增加0.5%,达到83.0%。(ii)我们的深层模型MViT-B-24,在计算量略有增加的情况下提供了+0.6%的精度增益。(iii)一个更大的模型,mvitb -24-wide,输入分辨率3202,达到84.3%,相当于+1.2%的增益,在1.7×fewer FLOPs,比DeiT-B↑3842。使用卷积而不是最大池化将其提升到84.8%。这些结果表明,与视觉transformer相比,多尺度视觉transformer具有架构优势。

Conclusion

  • 我们提出了多尺度视觉transformer,旨在将多尺度特征层次的基本概念与transformer模型联系起来。MViT分层地扩展了特征复杂性,同时降低了视觉分辨率。在经验评估中,MViT在视频和图像识别方面比单尺度视觉transformer具有根本优势。我们希望我们的方法能促进视觉识别的进一步研究。

Appendix

A. Additional Results

A.1. Ablations: Kinetics Action Classification
  • 推理的成本。本着[X3d: Expanding architectures for efficient video recognition]的精神,我们的目标是为使用更少的测试片段进行高效视频级推理的效果提供进一步的优化。在图a .4中,我们分析了在改变所用时间剪辑的数量时,对视频的完整推断的权衡。纵轴表示K400-val上的top-1精度,横轴表示不同模型族(MViT, X3D , SlowFast,以及在ImageNet-21K上预训练的并发ViT模型,VTN ,ViT- b - timesformer , ViT- l - vivit)在FLOPs上的总体推理成本。

  • 我们首先将MViT与图A.4左图中基于并发变压器的方法进行比较。所有这些方法,VTN , TimeSformer和ViViT,在ImageNet-21K上进行预训练,并使用ViT模型,并在其基础上进行修改。与性能相当的MViT模型相比,这些方法的推理FLOPs在5-10×higher左右;例如,viti - l - vivit使用4个1446G FLOPs(即5.78 TFLOPs)的夹片,每个夹片可以达到80.3%的精度,而mviti - b 32×3使用5个170G FLOPs(即0.85 TFLOPs)的夹片,可以达到80.2%的精度。因此,与并发vivitl相比,mvitl在低6.8倍FLOPs(参数低8.5倍)的情况下也能提供类似的精度[1]。更重要的是,MViT结果是在没有外部数据的情况下获得的。所有基于并发Transformer的工作[78,6,1]都需要大规模的ImageNet-21K才能具有竞争力,并且性能会显著下降(-3%的精度,参见图A.4中in - 1k的VTN)。这些作品进一步报告了没有ImageNet初始化的训练失败。

    • 在这里插入图片描述

    • 对于每个视频中不同数量的推理剪辑,K400-val的准确性/复杂性权衡。top-1精度(纵轴)通过K- center剪辑测试获得,其中每条曲线中表示时间剪辑K∈{1,3,5,7,10}的个数。横轴衡量每个视频的全部推理成本。左边的图是线性的,右边的图是对数刻度。

  • 图a .4右图显示了将对数尺度应用于FLOPs轴的相同图。使用这种缩放可以更清楚地观察到,较小的模型卷积模型(X3D-S和X3D-M)仍然可以提供更有效的乘法加运算推理,mvitb的计算/精度权衡与X3D-XL类似

  • 跳过连接的消融。回想一下,在MViT的每个尺度阶段转换中,我们通过增加前阶段MLP层的输出维度来扩展通道维度;因此,不可能直接应用原始的跳过连接设计,因为输入通道尺寸(Din)与输出通道尺寸(Dout)不同。为此,我们提出了三个策略:

    • (a)首先用层归一化对输入进行归一化,然后用线性层扩展其通道维度,使其与输出维度匹配(图a .5a);这是我们的默认值。

    • (b)通过使用线性层来匹配维度,直接扩展输入的通道维度(图a .5b)。

    • ©过渡阶段无跳接(图A.5c)。

    • 在这里插入图片描述

    • 阶段转换时的跳过连接。扩展信道维度的三种跳跃连接变体:(a)首先用层归一化(Norm)对输入进行归一化,然后扩展其信道维度;(b)直接扩展输入的通道维度;©在阶段转换时没有跳过连接。

  • 表A.1显示了所有3个变体的Kinetics-400消融。我们默认使用标准化的跳过连接(a)获得了77.2%的top-1精度的最佳结果,而在通道扩展后使用非标准化的跳过连接(b)显著下降到74.6%,并且在所有阶段转换©中不使用跳过连接具有类似的结果。我们假设,为了扩大通道维度,对信号进行归一化对于促进优化至关重要,并在所有其他实验中使用此设计作为默认值。

    • 在这里插入图片描述

    • K400上阶段转换时的跳过连接。我们使用我们的基本模型,mvitb 16×4。对信道扩展时的跳过连接进行规范化是获得良好性能的必要条件。

  • slowfast与MViT配方。为了研究我们的训练配方是否可以使ConvNet模型受益,我们将表A.2中与MViT相同的增强和训练配方应用于SlowFast。结果表明,SlowFast模型并没有直接从MViT配方中受益,需要更多的研究来了解将我们的从头开始训练配方应用于ConvNets的效果,因为在使用我们的配方时,似乎更高容量的ConvNets (R101)表现更差。

    • 在这里插入图片描述

    • slowfast模型与MViT配方在Kinetics-400。默认的配方是使用原始论文中的配方。准确性在10×3视图上进行评估。

A.2. Ablations: ImageNet Image Classification
  • 我们使用16层的mvitb -16模型在ImageNet上进行了清洗,并显示了top-1精度(Acc)以及以GFLOPs(浮点运算)测量的计算复杂性。我们还报告了M( 1 0 6 10^6 106)中的参数和G( 1 0 9 10^9 109)中批量大小为512的训练GPU内存。

  • 用于图像分类的键值池。表A.3中的消融分析了池化步幅 s = s H × s W s = s_H × s_W s=sH×sW,用于池化K和V张量。在这里,我们使用默认的“自适应”池,它使用步幅w.r.t.阶段分辨率,并在所有阶段保持K, V分辨率固定。

  • 首先,我们将使用固定步长4×4的池化基线与步长8×8的模型进行比较:这将准确性从82.5%降低到81.6%,并减少了0.6G和2.9G的FLOPs和内存。其次,我们将步长减少到2×2,这将显著增加FLOPs和内存,但性能比默认步长4×4差0.7%。

  • 第三,我们完全删除了K, V池,这将使FLOPs增加33%,内存消耗增加45%,同时提供比默认值更低的准确性。

  • 总体而言,结果表明我们的K, V池是一种有效的技术,可以提高图像分类的准确性和降低成本(FLOPs/内存)。

B. Qualitative Experiments: Kinetics

  • 在图A.6中,我们绘制了Multiscale Transformer模型及其Vision Transformer对应模型的所有层中所有头部的平均注意距离,在初始化时使用随机权重,并在训练后收敛。每个头像代表图中的一个点(vitb有更多的头像)。两种模型使用完全相同的权值初始化方案,注意特征的差异纯粹源于MViT的多尺度骨架。我们观察到,MViT模型的注意距离动态范围比初始化时的ViT大4倍左右(A.6a vs. A.6b)。这表明MViT的多尺度设计产生了强烈的感应偏置。还需要注意的是,在初始化时,ViT中的每一层都具有大致相同的平均注意距离,而MViT层具有显著不同的平均注意签名,表明对全局和局部特征的不同偏好。

    • 在这里插入图片描述

    • 图A.6。视觉transformer(a)/©和多尺度视觉transformer(b)/(d)初始化/收敛时各层的平均注意距离。每个点表示一层中每个头部的标准化平均注意距离(由注意分数加权,1.0为最大可能距离)。MViT在整个网络层次结构中关注近和远的特征。

  • 图a .6的下一行显示了融合视觉transformer(a .6c)和多尺度视觉transformer(a .6d)模型的相同图。我们注意到训练后两个模型之间的趋势非常不同。虽然ViT模型(a .6c)在各层之间的注意距离一致增加,但MViT模型(a .6d)根本不是单调的。此外,在ViT模型中,头部内的变化随着深度的饱和而减小,而对于MViT,不同的头部即使在更高的层中仍然关注不同的特征。这表明ViT模型中的一些容量可能确实被冗余计算浪费了,而精益MViT头更明智地利用了它们的计算。值得注意的是,与MViT的位置分布相比,ViT模型中整体注意距离特征的增量更大(图a .6a中的初始化与图a .6c中的收敛之间)。

C. Computational Analysis

  • 由于注意力在计算和内存复杂度上是二次的,因此池化键、查询和值向量对池化算子的基本计算和内存需求有直接的好处,进而对完整的Multiscale Transformer模型有直接的好处。考虑一个维度为T × H × W的输入张量,对应的序列长度为L = T·H·W。进一步,假设键、查询和值分别为 s K , s Q , s V s^K,s^Q,s^V sK,sQ,sV。如主论文第3.1节所述,每个矢量都将经历其相应步长因子的空间-时间分辨率下采样。等价地,查询向量、键向量和值向量的序列长度将分别减少 f q , f k , f v f^q,f^k,f^v fq,fk,fv,其中: f j = s T j ⋅ s H j ⋅ s W j , j ∈ { Q , K , V } f^j=s^j_T·s^j_H·s^j_W,j\in\{Q,K,V\} fj=sTjsHjsWj,j{Q,K,V}

  • 计算的复杂性。使用这些较短的序列可以相应减少池化注意操作符的空间和运行时复杂性。考虑到池化后键、查询和值向量的序列长度分别为L/fk、L/fq和L/fv,计算键、查询和值嵌入的总体运行时复杂度为 O ( T H W D 2 / h ) O(T HW D^2/h) O(THWD2/h) /头,其中h为MHPA中的头数。此外,计算全注意力矩阵和减少序列长度的值向量加权和的运行时复杂度为 O ( T 2 H 2 W 2 D / f q f h h ) O(T^2H^2W^2D/f_qf_hh) O(T2H2W2D/fqfhh)/头。池化的计算复杂度为

    • 在这里插入图片描述
  • 这与注意力计算的二次复杂度相比是可以忽略的,因此可以在渐近符号中忽略。因此,MHPA最终的运行时复杂度为0 (T HW D(D + T HW/fqfk))。

  • 记忆的复杂性。存储序列本身和其他相似大小的张量的空间复杂度为O(T HW D),存储整个注意矩阵的空间复杂度为O(T 2H2W 2h/fqfk)。因此,MHPA的总空间复杂度为O(THWh(D/h + THW /fqfk))。

  • 设计选择。请注意通道数D和序列长度项T HW/fqfk在空间和运行时复杂度方面的权衡。这种多头池注意力的权衡决定了多尺度transformer架构的两个关键设计选择。

  • 首先,由于thw /fqfk的减小,有效的时空分辨率随层而降低,信道容量增加以保持每一级的计算时间(FLOPs)大致相同。其次,对于固定的通道维度D,由于(D + h∗T HW/fqfk)项,较高的磁头数量h会导致内存需求过高。因此,多尺度变压器从少量磁头开始,随着分辨率因子T HW/fqfk的降低而增加,以保持(D + h∗T HW/fqfk)的效果大致恒定。

D. Additional Implementation Details

D.1. Details: Kinetics Action Classification

  • 模型细节。在原始ViT,我们使用残差连接和归一化层(LN)在pre-normalization配置,适用于初LN残差函数,和我们大多数mlp由两个线性层GELU激活,在第一层扩展到4 D的维度,和第二个恢复输入维D,除了最后一个scalestage,我们增加这个通道尺寸相匹配的输入下一个规模阶段。在这样的阶段转换中,我们的跳过连接接收一个额外的线性层,该层将层归一化信号作为输入,该信号也被馈送到MLP中。在规模级转换的q池情况下,我们相应地将跳过连接信号池化。

  • 优化细节。我们使用截断正态分布初始化,并按照[95,30]中的配方在128个gpu上采用同步AdamW训练。对于Kinetics,我们训练200次,重复2次增强重复。mini_batch大小为每个GPU 4个clips(因此总体批大小为512)。

  • 我们采用学习率衰减的半周期余弦调度[75]:第n次迭代的学习率为η·0.5[cos(n/ nmax π) + 1],其中nmax为最大训练迭代数,基本学习率η设为1.6·10−3。我们将基本学习率按整体批大小线性缩放,η = 1.6·10−3批大小512,并在前30个epoch使用线性预热策略。当最终学习率达到1.6·10−5时,余弦调度完成。我们在最后一个阶段之后提取类标记,并将其用作最终线性层的输入,以预测输出类。Kinetics-600的所有超参数与K400相同。

  • 正则化的细节。我们使用5·10-2的权重衰减,最终分类器前的dropout为0.5,标签平滑为0.1,并使用随机深度(即。drop-connect),速率为0.2。

  • 我们的数据增强是通过在所有帧之间应用相同的转换来对输入clips执行的。对于每个clips,我们应用随机水平翻转,对一批clips中的一半应用α = 0.8的Mixup,对另一半应用CutMix,随机擦除的概率为0.25,Rand增强的概率为0.5,最大幅度为7。

  • 对于时域,我们从全长视频中随机抽取一个片段,网络的输入是T帧,时间步长为τ;表示为T × τ。对于空间域,我们使用Inception-style裁剪,在进行H × W = 224×224裁剪之前,在[min, max],[0.08, 1.00]的比例和3/4到4/3之间的抖动宽高比之间随机调整输入区域的大小。

  • 从ImageNet进行微调。为了微调我们的vitb基线,我们将其扩展为以T = 8帧的视频片段作为输入,并初始化在ImageNet-21K数据集上预训练的vitb模型的模型权重。位置嵌入对每一帧都是重复的。我们使用中的配方对SGD模型进行了30个epoch的微调。小批量大小为每个GPU 2个clip,并使用半周期余弦学习率衰减。我们线性缩放基本学习率w.r.t.整体批大小,η = 10−3批大小16。权重衰减设为10−4

D.2. Details: A V A Action Detection

  • 数据集。AVA数据集具有边界框注释,用于(可能是多个)人类行为的时空定位。它有211k训练和57k验证视频片段。我们在AVA v2.2上遵循标准协议报告60个类的平均平均精度(mAP)。

  • 检测体系结构。我们遵循[30]中的检测架构,允许将MViT与作为骨干的慢速网络进行直接比较。

  • 首先,我们根据相应的时空位置将MViT的transformer时空立方体输出重新解释为时空特征图。其次,我们采用了类似于Faster RCNN的检测器,并对视频进行了最小的修改。感兴趣区域(RoI)特征是从MViT生成的特征图中提取的,方法类似于之前的工作,通过沿时间轴复制将帧处的2D提议扩展为3D RoI,然后应用逐帧RoIAlign和时间全局平均池化。然后对RoI特征进行最大池化,并将其提供给每个类的sigmoid分类器进行预测。

  • 训练。我们从Kinetics模型中初始化网络权值,并在64个gpu上采用同步SGD训练。我们使用每个GPU 8个片段作为小批量大小和学习率衰减的半周期余弦计划。基本学习率设为0.6。我们训练了30个epoch,前5个epoch使用线性热身,并使用10−8的权重衰减和随机深度,速率为0.4。以Ground-truth box和与Ground-truth box重叠IoU > 0.9的提案作为训练样本。区域建议与[30]中使用的建议相同。

  • 推理。我们对单个片段进行推理,其中T帧采样,步幅τ以待评估的帧为中心。

D.3. Details: Charades Action Classification

  • 数据集。字谜游戏[86]在多标签分类设置下的157个类中有~ 9.8k训练视频和1.8k验证视频,这些多标签分类设置的活动平均跨度为~ 30秒。性能以平均精度(mAP)来衡量。

  • 训练。我们根据动力学模型对MViT模型进行微调。每个类的sigmoid输出用于说明多类的性质。我们在32个GPU上使用SGD进行200次训练,每个GPU使用8个clip。基本学习率设置为0.6,半周期余弦衰减。我们使用10-7的权重衰减和随机深度,速率为0.45。我们执行与§D.1中Kinetics相同的数据增强方案。使用Mixup除外。

  • 推理。为了推断单个视频的动作,我们在测试中从多个片段中提取时空最大池预测分数。

D.4. Details: Something-Something V2 (SSv2)
  • 数据集。Something-Something V2数据集包含169k个训练视频和25k个验证视频。这些视频将人与物之间的互动分为174类。我们报告验证集的准确性。

  • 训练。我们对预训练的动力学模型进行微调。我们使用64个GPU,每个GPU 8个clip,训练100个epoch,使用半周期余弦衰减的基本学习率为0.02。权重衰减设为10−4,随机深度率为0.4。我们的训练增强与§D.1相同。但由于SSv2需要区分方向,我们在训练中禁用随机翻转。我们使用基于片段的输入帧采样,将每个视频分成多个片段,并从每个片段中采样一帧以形成一个片段。

  • 推理。在测试中,我们采用带有3个空间作物的单个剪辑来形成对单个视频的预测。

D.5. Details: ImageNet

  • 数据集。对于图像分类实验,我们在ImageNet-1K数据集上进行实验,该数据集在1000个类别中有~ 1.28M张图像。我们在训练集上训练模型,并在val集上报告前1和前5的分类准确率(%)。如果没有特别提到输入分辨率,则从分辨率为224*224的单个中心裁剪测量推断成本(以FLOPs为单位)。

  • 训练。为了完整起见,我们使用DeiT的训练配方,在此进行总结。我们使用64个gpu的批处理大小为4096个,使用3次重复增强次重复训练100个epoch(总计算等于300个epoch)。我们使用截断的正态分布初始化,并采用同步的AdamW优化,其基本学习率为每512个批大小0.0005,预热并衰减为半周期余弦。我们使用的权重衰减为0.05,标签平滑为0.1。对于深度为16的模型(MViT-B-16),也使用随机深度(即drop-connect),速率为0.1,对于深度更深的模型(MViT-B-24),速率为0.3。Mixup的α = 0.8到批处理中一半的剪辑,CutMix的α = 0.8到另一半剪辑,Random erase的概率为0.25,Rand Augment的最大幅度为9,概率为0.5,适用于4层(用于最大池化)或6层(用于反池化)。
    *224的单个中心裁剪测量推断成本(以FLOPs为单位)。

  • 训练。为了完整起见,我们使用DeiT的训练配方,在此进行总结。我们使用64个gpu的批处理大小为4096个,使用3次重复增强次重复训练100个epoch(总计算等于300个epoch)。我们使用截断的正态分布初始化,并采用同步的AdamW优化,其基本学习率为每512个批大小0.0005,预热并衰减为半周期余弦。我们使用的权重衰减为0.05,标签平滑为0.1。对于深度为16的模型(MViT-B-16),也使用随机深度(即drop-connect),速率为0.1,对于深度更深的模型(MViT-B-24),速率为0.3。Mixup的α = 0.8到批处理中一半的剪辑,CutMix的α = 0.8到另一半剪辑,Random erase的概率为0.25,Rand Augment的最大幅度为9,概率为0.5,适用于4层(用于最大池化)或6层(用于反池化)。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值