网站不备案可以登录吗,网站建设理论,福州短视频seo费用,句容做网站大家好#xff0c;这里是好评笔记#xff0c;公主号#xff1a;Goodnote#xff0c;专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》#xff0c;2021由google 提出用于视频处理的视觉 Transformer 模型#xff0c;在视频多模态领域有… 大家好这里是好评笔记公主号Goodnote专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》2021由google 提出用于视频处理的视觉 Transformer 模型在视频多模态领域有重要应用。 文章目录 论文摘要1. 引言2. 相关工作3. 视频视觉Transformer3.1 视觉TransformerViT概述3.2 嵌入视频片段均匀帧采样管块嵌入 3.3 视频的Transformer模型模型1时空注意力模型2分解编码器模型3分解自注意力模型4分解点积注意力 3.4 利用预训练模型进行初始化 4. 实验4.1 数据集4.2 实现细节4.3 结果4.4 消融研究 5. 结论 热门专栏机器学习深度学习 论文
论文名ViViT: A Video Vision Transformer 论文链接https://arxiv.org/pdf/2103.15691 代码https://github.com/google-research/scenic
作者充分借鉴了之前3D CNN因式分解等工作比如考虑到视频作为输入会产生大量的时空token处理时必须考虑这些长范围token序列的上下文关系同时要兼顾模型效率问题。
他们在空间和时间维度上分别对Transformer编码器各组件进行分解在ViT模型的基础上提出了三种用于视频分类的纯Transformer模型。
摘要
模型提出背景与构建受Transformer在图像分类领域(ViT模型) 成功启发提出基于纯Transformer的视频分类模型从输入视频提取时空标记经一系列Transformer层编码。模型优化针对视频长序列标记提出几种高效模型变体对输入空间和时间维度分解在训练中有效正则化模型利用预训练图像模型实现小数据集训练。实验成果进行全面消融研究在Kinetics 400、Kinetics 600、Epic Kitchens、Something-Something v2和Moments in Time等多个视频分类基准测试中取得领先成果超越基于深度3D卷积网络的先前方法。
1. 引言
此前基于注意力的模型在自然语言处理中的成功激发了计算机视觉领域将Transformer集成到卷积神经网络CNN中的研究以及一些完全取代卷积的尝试。直到最近的视觉TransformerViT出现基于纯Transformer的架构才在图像分类中超越了其卷积对应架构。ViT 遵循原始Transformer架构并指出其主要优势在大规模数据上才能体现出来——由于Transformer缺乏卷积的一些归纳偏差如平移等变性它们似乎需要更多数据或更强的正则化。 ViT 详细介绍参考TODO。 受ViT等的启发作者开发了几种基于Transformer的视频分类模型。目前性能最佳的模型基于深度3D卷积架构图像分类CNN的自然扩展通过在后期层中引入自注意力机制以更好地捕捉长距离依赖关系。 图1受图像分类中基于Transformer模型的成功启发我们提出了用于视频分类的纯Transformer架构。为有效处理大量时空标记我们开发了几种模型变体在空间和时间维度上对Transformer编码器的不同组件进行分解。如右图所示这些分解对应于不同的时空注意力模式。
如图1所示作者提出用于视频分类的纯 Transformer 模型主要操作是自注意力机制在从输入视频提取的时空标记上计算。并进行了优化策略如下
为处理大量时空标记提出沿空间和时间维度分解模型的方法提升效率与可扩展性。为了在小数据集训练训练过程中对模型进行了正则化并利用预训练图像模型。
卷积模型的研究和实践总多但因纯Transformer模型具有不同的特性需确定最佳设计选择。为此作者对标记化策略、模型架构和正则化方法进行全面消融分析在Kinetics 400和600、Epic Kitchens 100、Something - Something v2和Moments in Time等多个标准视频分类基准测试中取得先进成果。
2. 相关工作
这部分介绍之前的研究进展如下
视频理解架构发展 早期用手工特征编码信息AlexNet成功使2D CNN用于视频形成“双流”网络独立处理RGB帧与光流图像后融合。大数据集促进时空3D CNN训练但计算资源需求大很多架构通过跨空间和时间维度分解卷积和/或用分组卷积提高效率本文在Transformer模型下利用此方法。 NLP中Transformer进展Vaswani等人用Transformer取代卷积和循环网络获先进成果当前NLP主流架构仍基于此还提出多种变体降成本、提效率。自注意力在计算机视觉领域通常是在网络的末端或后期阶段作为一层融入或用于增强ResNet架构中的残差块。视觉领域Transformer情况Dosovitisky等人的ViT证明纯Transformer可用于图像分类但需大规模数据因其缺乏卷积的归纳偏差。ViT引发后续研究已有基于Transformer的视频模型。
在本文中作者开发了用于视频分类的纯Transformer架构。提出了几种模型变体包括通过分解输入视频的空间和时间维度来提高效率的变体还展示了如何用额外正则化和预训练模型应对视频数据集小的问题。最后在五个流行数据集上超越了当前最先进的方法。
3. 视频视觉Transformer
在3.1节中总结最近提出的视觉TransformerViT在3.2节中讨论从视频中提取标记的两种方法。在3.3和3.4节中开发几种基于Transformer的视频分类架构。
3.1 视觉TransformerViT概述
视觉TransformerViT对原始的Transformer架构进行了最小限度的调整以用于处理二维图像。具体而言ViT会提取N个不重叠的图像补丁 x i ∈ R h × w x_{i} \in \mathbb{R}^{h ×w} xi∈Rh×w 对其进行线性投影然后将它们光栅化为一维标记 z i ∈ R d z_{i} \in \mathbb{R}^{d} zi∈Rd 。输入到后续Transformer编码器的标记序列为 z [ z c l s , E x 1 , E x 2 , . . . , E x N ] p ( 1 ) z [z_{cls}, Ex_{1}, Ex_{2}, ..., Ex_{N}] p \quad(1) z[zcls,Ex1,Ex2,...,ExN]p(1)
其中E执行的投影操作等效于二维卷积。如图1所示一个可选的可学习分类标记 z c l s z_{cls} zcls被添加到这个序列的开头它在编码器最后一层的表示会作为分类层使用的最终表示。
此外一个1D可学习的位置嵌入 p ∈ R N × d p \in \mathbb{R}^{N ×d} p∈RN×d被添加到这些标记中用于保留位置信息因为Transformer后续的自注意力操作具有排列不变性。然后这些标记会通过由L个Transformer层组成的编码器。每个层 ℓ \ell ℓ由多头自注意力机制、层归一化LN和多层感知器MLP模块构成具体如下 y ℓ M S A ( L N ( z ℓ ) ) z ℓ ( 2 ) y^{\ell} MSA(LN(z^{\ell})) z^{\ell} \quad(2) yℓMSA(LN(zℓ))zℓ(2) z ℓ 1 M L P ( L N ( y ℓ ) ) y ℓ ( 3 ) z^{\ell 1} MLP(LN(y^{\ell})) y^{\ell} \quad(3) zℓ1MLP(LN(yℓ))yℓ(3) MLP由两个由高斯误差线性单元GELU非线性函数隔开的线性投影组成并且标记维度d在所有层中保持不变。
最后如果在输入中添加了 z c l s z_{cls} zcls则使用线性分类器基于 z c l s L ∈ R d z_{cls}^{L} \in \mathbb{R}^{d} zclsL∈Rd对编码后的输入进行分类否则对所有标记 z L z^{L} zL进行全局平均池化再进行分类。
由于Transformer是一个灵活的架构可以对任何输入标记序列 z ∈ R N × d z \in \mathbb{R}^{N×d} z∈RN×d进行操作接下来将描述视频标记化的策略。 ViT 详细介绍参考TODO。 3.2 嵌入视频片段
这里作者考虑两种将视频 V ∈ R T × H × W × C V \in \mathbb{R}^{T×H×W×C} V∈RT×H×W×C映射到标记序列 z ~ ∈ R n t × n h × n w × d \tilde{z} \in \mathbb{R}^{n_{t}×n_{h}×n_{w}×d} z~∈Rnt×nh×nw×d的简单方法。之后再添加位置嵌入并将其重塑为 R N × d \mathbb{R}^{N×d} RN×d以获得输入到Transformer的 z z z。 图2均匀帧采样我们简单地采样 n t n_{t} nt帧并按照ViT独立嵌入每个2D帧。 均匀帧采样
如图2所示这是一种直接的视频标记化方法。从输入视频片段中均匀采样 n t n_{t} nt帧使用与ViT相同的方法独立嵌入每个2D帧然后将所有这些标记连接在一起。 具体来说如果像ViT中那样从每个帧中提取 n h ⋅ n w n_{h} \cdot n_{w} nh⋅nw个不重叠的图像补丁那么总共 n t ⋅ n h ⋅ n w n_{t} \cdot n_{h} \cdot n_{w} nt⋅nh⋅nw个标记将被输入到Transformer编码器中。 直观地说这个过程可以看作是简单地构建一个大的2D图像然后按照ViT的方式进行标记化这是同期工作中采用的输入嵌入方法。 图3管块嵌入。我们提取并线性嵌入跨越时空输入体的不重叠管块。 管块嵌入
如图3所示这是从输入体数据中提取不重叠的时空“管块”并将其线性投影到 R d \mathbb{R}^{d} Rd。 这种方法是ViT嵌入到3D的扩展对应于3D卷积。对于维度为 t × h × w t×h×w t×h×w的管块 n t ⌊ T t ⌋ n_{t} \lfloor\frac{T}{t}\rfloor nt⌊tT⌋ n h ⌊ H h ⌋ n_{h} \lfloor\frac{H}{h}\rfloor nh⌊hH⌋ n w ⌊ W w ⌋ n_{w} \lfloor\frac{W}{w}\rfloor nw⌊wW⌋分别从时间、高度和宽度维度提取标记。 因此较小的管块尺寸会导致更多的标记从而增加计算量。直观地说这种方法在标记化过程中融合了时空信息与“均匀帧采样”不同在“均匀帧采样”中不同帧的时间信息是由Transformer融合的。
3.3 视频的Transformer模型
如图1所示作者提出了多种基于Transformer的架构。首先是直接对视觉TransformerViT进行扩展该扩展对所有时空标记之间的成对交互进行建模然后在Transformer架构的不同层次上对输入视频的空间和时间维度进行分解开发了更高效的变体。
模型1时空注意力
该模型是对 ViT 的直接扩展它简单地从视频中提取的所有时空标记 z 0 z^{0} z0输入到Transformer编码器中。 【 Is space-time attention all you need for video understanding?】论文中在其“联合时空”模型中也探索了这种方法。与CNN架构不同在CNN中感受野随着层数线性增长而每个 Transformer 层对所有时空标记之间的成对关系进行建模因此从第一层开始就可以对视频中的长距离交互进行建模。
然而由于它对所有成对交互进行建模多头自注意力MSA的计算复杂度与标记数量呈二次关系。这种复杂度在视频处理中很关键因为标记数量随着输入帧数线性增加所以作者开发了下面的更高效的架构。
模型2分解编码器 图4分解编码器模型2。该模型由两个串联的Transformer编码器组成第一个对从同一时间索引提取的标记之间的交互进行建模以生成每个时间索引的潜在表示。第二个Transformer对时间步之间的交互进行建模。因此它对应于空间和时间信息的“后期融合”。 如图4所示这个模型由两个独立的Transformer编码器组成。如下
第一个是空间编码器仅对从同一时间索引提取的标记之间的交互进行建模。经过 L s L_{s} Ls层后得到每个时间索引的表示 h i ∈ R d h_{i} \in \mathbb{R}^{d} hi∈Rd如果在输入中添加了分类标记 z c l s z_{cls} zcls公式1这就是编码后的分类标记 z c l s L s z_{cls}^{L_{s}} zclsLs否则是空间编码器输出的标记的全局平均池化结果 z L s z^{L_{s}} zLs。帧级表示 h i h_{i} hi被连接成 H ∈ R n t × d H \in \mathbb{R}^{n_{t}×d} H∈Rnt×d然后通过由 L t L_{t} Lt个Transformer层组成的时间编码器对来自不同时间索引的标记之间的交互进行建模。最后对这个编码器的输出标记进行分类。
这种架构对应于时间信息的“后期融合”并且初始的空间编码器与用于图像分类的编码器相同。因此它类似于之前工作中所采用的卷积神经网络CNN架构这些架构首先提取每帧的特征然后在对其进行分类之前将这些特征聚合为最终的表示形式。 尽管该模型的Transformer层比模型1更多因此参数也更多但它所需的浮点运算FLOPs更少因为两个独立的Transformer模块的计算复杂度为 O ( ( n h ⋅ n w ) 2 n t 2 ) O((n_{h} \cdot n_{w})^{2}n_{t}^{2}) O((nh⋅nw)2nt2)而模型1的计算复杂度为 O ( ( n t ⋅ n h ⋅ n w ) 2 ) O((n_{t} \cdot n_{h} \cdot n_{w})^{2}) O((nt⋅nh⋅nw)2) 。
模型3分解自注意力 图5分解自注意力模型3。在每个Transformer块内多头自注意力操作被分解为两个操作用条纹框表示首先仅在空间上计算自注意力然后在时间上计算。 该模型包含的Transformer层数与模型1相同。但是有如下不同 在第 ℓ \ell ℓ层这里并不像模型1那样计算所有标记对 z ℓ z^{\ell} zℓ之间的多头自注意力而是将操作进行分解如图5所示 首先仅在空间上计算自注意力即在从同一时间索引提取的所有标记之间然后在时间上计算自注意力即在从同一空间索引提取的所有标记之间。 Transformer中的每个自注意力模块都对时空交互进行建模但通过在两个较小的元素集上分解操作其效率比模型1更高从而实现了与模型2相同的计算复杂度。
通过将标记 z z z从 R 1 × n t ⋅ n h ⋅ n w ⋅ d \mathbb{R}^{1×n_t·n_h·n_w·d} R1×nt⋅nh⋅nw⋅d重塑为 R n t × n h ⋅ n w ⋅ d \mathbb{R}^{n_t×n_h·n_w·d} Rnt×nh⋅nw⋅d表示为 z s z_s zs来计算空间自注意力这样可以高效地执行此操作。类似地时间自注意力的输入 z t z_t zt被重塑为 R n h ⋅ n w × n t ⋅ d \mathbb{R}^{n_h·n_w×n_t·d} Rnh⋅nw×nt⋅d假设最前面的维度是“批量维度”。作者在此定义的分解式自注意力如下 y s ℓ M S A ( L N ( z s ℓ ) ) z s ℓ ( 4 ) y^{\ell}_{s} MSA(LN(z^{\ell}_{s})) z^{\ell}_{s} \quad(4) ysℓMSA(LN(zsℓ))zsℓ(4) y t ℓ M S A ( L N ( y s ℓ ) ) y s ℓ ( 5 ) y^{\ell}_{t} MSA(LN(y^{\ell}_{s})) y^{\ell}_{s} \quad(5) ytℓMSA(LN(ysℓ))ysℓ(5) z ℓ 1 M L P ( L N ( y t ℓ ) ) y t ℓ ( 6 ) z^{\ell 1} MLP(LN(y^{\ell}_{t})) y^{\ell}_{t} \quad(6) zℓ1MLP(LN(ytℓ))ytℓ(6)
作者指出只要按照后面3.4节中描述的方式初始化模型参数先进行空间自注意力再进行时间自注意力或者先进行时间自注意力再进行空间自注意力这两种顺序并不会产生差异。需要注意的是与模型1相比参数数量会增加因为存在一个额外的自注意力层参见公式7。在这个模型中不使用分类标记以避免在重塑操作时出现歧义。
模型4分解点积注意力 图6分解点积注意力模型4。对于一半的头我们仅在空间轴上计算点积注意力对于另一半头仅在时间轴上计算。
模型4具有与模型2和模型3相同的计算复杂度同时保持与未分解的模型1相同的参数数量。空间和时间维度的分解思路与模型3类似但分解的是多头点积注意力操作如图6所示。具体来说就是使用不同的头分别在空间和时间维度上为每个标记计算注意力权重。 首先每个头的注意力操作定义为 Attention ( Q , K , V ) Softmax ( Q K T d k ) V ( 7 ) \text{Attention}(Q, K, V) \text{Softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \quad (7) Attention(Q,K,V)Softmax(dk QKT)V(7) 在自注意力中查询 Q X W q Q XW_q QXWq键 K X W k K XW_k KXWk值 V X W v V XW_v VXWv 是输入 X X X 的线性投影其中 X , Q , K , V ∈ R N × d X, Q, K, V \in \mathbb{R}^{N \times d} X,Q,K,V∈RN×d。请注意在未分解的情况下模型1空间和时间维度合并为 N n t ⋅ n h ⋅ n w N n_t \cdot n_h \cdot n_w Nnt⋅nh⋅nw。 这里的主要思路是通过构造 空间维度的 K s , V s ∈ R n h ⋅ n w × d K_s, V_s \in \mathbb{R}^{n_h \cdot n_w \times d} Ks,Vs∈Rnh⋅nw×d 和时间维度的 K t , V t ∈ R n t × d K_t, V_t \in \mathbb{R}^{n_t \times d} Kt,Vt∈Rnt×d也就是对应这些维度的键和值来修改每个查询的键和值使其仅关注来自相同空间和时间索引的标记。 然后对于一半的注意力头通过计算 Y s Attention ( Q , K s , V s ) Y_s \text{Attention}(Q, K_s, V_s) YsAttention(Q,Ks,Vs) 来关注空间维度的标记对于另一半头我们通过计算 Y t Attention ( Q , K t , V t ) Y_t \text{Attention}(Q, K_t, V_t) YtAttention(Q,Kt,Vt) 来关注时间维度的标记。由于这里只是改变了每个查询的注意力范围所以注意力操作的维度与未分解的情况相同即 Y s , Y t ∈ R N × d Y_s, Y_t \in \mathbb{R}^{N \times d} Ys,Yt∈RN×d。 最后通过连接多个头的输出并使用线性投影来组合它们的输出即 Y Concat ( Y s , Y t ) W O Y \text{Concat}(Y_s, Y_t)W_O YConcat(Ys,Yt)WO。
3.4 利用预训练模型进行初始化
ViT需在大规模数据集上训练才有效因其缺乏卷积网络的某些归纳偏置。最大的视频数据集如Kinetics标注样本比图像数据集少几个数量级从零训练大型模型达到高精度极具挑战。为高效训练用预训练图像模型初始化视频模型但引发参数初始化问题。下面讨论几种有效的策略来初始化这些大规模视频分类模型。
位置嵌入 将位置嵌入 p p p添加到每个输入标记中公式1。由于视频模型的标记数量是预训练图像模型的 n t n_t nt倍可以通过在时间维度上“重复”位置嵌入将其从 R n w ⋅ n h × d \mathbb{R}^{n_w \cdot n_h×d} Rnw⋅nh×d扩展到 R n t ⋅ n h ⋅ n w × d \mathbb{R}^{n_t·n_h·n_w ×d} Rnt⋅nh⋅nw×d来进行初始化。所以在初始化时所有具有相同空间索引的标记都具有相同的嵌入然后再进行微调。嵌入权重 E E E 当使用“管块嵌入”标记化方法3.2节时与预训练模型中的二维张量 E i m a g e E_{image} Eimage 相比嵌入滤波器 E E E是一个三维张量。在视频分类模型中从二维滤波器预训练的图像模型出发初始化三维卷积滤波器视频模型的一种常见方法是通过在时间维度上复制滤波器并对其求平均值来“膨胀”它们其公式如下 E 1 t [ E i m a g e , … , E i m a g e , … , E i m a g e ] ( 8 ) E \frac{1}{t} [E_{image}, \ldots, E_{image}, \ldots, E_{image}] \quad (8) Et1[Eimage,…,Eimage,…,Eimage](8) 作者还考虑了另一种策略称之为“中心帧初始化”其中除了在中心位置 ⌊ t 2 ⌋ \lfloor\frac{t}{2}\rfloor ⌊2t⌋处 E E E在所有时间位置都初始化为零即 E [ 0 , … , E i m a g e , … , 0 ] ( 9 ) E [0, \ldots, E_{image}, \ldots, 0] \quad (9) E[0,…,Eimage,…,0](9) 因此在初始化时三维卷积滤波器的效果类似于“均匀帧采样”3.2节同时也使模型能够在训练过程中学习从多个帧中聚合时间信息。模型3的Transformer权重 模型3中的Transformer模块图5与预训练的ViT模型不同它包含两个多头自注意力MSA模块。在这种情况下作者使用预训练的模块来初始化空间MSA模块并将时间MSA的所有权重初始化为零这样在初始化时公式5就相当于一个残差连接。
4. 实验
在本节中作者对提出的模型进行实验评估包括在多个标准视频分类基准测试中的性能测试以及对不同组件和设计选择的消融研究。这里只做简要介绍详细内容请参考原论文
4.1 数据集
在多个流行视频分类基准测试数据集上评估模型。Kinetics 400/600含大量动作视频有400或600种动作类别视频短、来源广为模型训练与评估提供丰富数据。Epic Kitchens 100聚焦厨房场景动作动作序列复杂时空信息丰富元数据多样为动作理解评估提供更具挑战场景。Something-Something v2含诸多日常动作动作定义基于物体功能与意图需模型深入理解动作语义。Moments in Time含各类视频类别广泛涵盖事件、动作与场景要求模型具备良好的时间事件分类能力。
4.2 实现细节
基于PyTorch框架实现模型。训练时使用Adam或SGD等标准优化器采用余弦退火学习率调度器cosine learning rate schedule等学习率调度策略。运用裁剪、翻转、缩放、时间扭曲等常见图像和视频增强技术进行数据增强提升模型泛化能力。针对视频长序列依据不同实验需求使用不同帧采样策略选取合适数量的帧。对Transformer层数量、标记维度、头数量及不同分解模型参数等超参数进行调整。实验表明不同数据集的最优参数设置各异受数据集大小、类别数量和动作复杂性等因素影响。
4.3 结果
Kinetics 400/600在Kinetics 400和600数据集上纯Transformer架构模型表现出色模型3和4分解时空维度处理长视频序列优势明显捕捉时空依赖降计算复杂度提分类性能Kinetics 400上最佳模型top - 1准确率比先前最佳方法提升[X]%Kinetics 600上提升[Y]%。Epic Kitchens 100模型在该挑战性数据集上性能良好凭借强大时空建模能力捕捉动作语义与上下文信息动作分类准确率领先证明在复杂场景下有效。Something - Something v2模型在该数据集表现突出基于Transformer架构能更好处理动作功能和意图信息不依赖外观特征经不同标记化和分解模型实验特定变体在top - 1准确率上超先前方法[Z]%。Moments in Time模型在该数据集取得领先成果灵活运用不同时空注意力模式处理各类时间事件在不同类别性能平衡佳整体准确率和F1分数达新高度。
4.4 消融研究
为了解模型组件对性能的影响开展广泛消融研究。
标记化方法比较均匀帧采样和管块嵌入不同数据集二者优劣有别。简单动作、短时间序列数据集均匀帧采样表现可能更好复杂动作、长序列数据集管块嵌入融合时空信息更能捕捉动作时空演变提升性能。模型架构对比模型1至模型4。模型1虽全面交互建模时空标记但计算成本高处理长视频序列时并非最优。模型2至模型4分解时空维度各有优势模型2后期融合时空信息在部分数据集表现良好模型3和4分解自注意力或点积注意力降低计算成本捕捉时空依赖不同数据集性能提升潜力各异取决于数据集特点。预训练研究使用预训练图像模型初始化的效果实验表明预训练可显著提升模型性能尤其在数据量较小的情况下验证利用预训练归纳偏差能助模型在少量数据上更好收敛和泛化。
5. 结论
作者提出一系列基于纯Transformer的视频分类模型从输入视频提取时空标记并以不同架构处理。开发了多种高效模型变体通过分解空间和时间维度提升计算效率与性能以应对长序列标记。同时利用预训练图像模型初始化模型在较小视频数据集上进行有效训练并开展多种策略实验。经多个标准视频分类数据集的评估与消融研究模型在不同数据集上性能出色超越3D卷积网络方法达当前领先水平。
他们的工作为基于Transformer的视频理解提供新思路与方法奠定未来研究基础。未来研究方向包括优化模型架构、探索复杂时空分解方法、将模型拓展至其他视频理解任务以及更好结合预训练信息、提升不同规模数据集的数据效率。
热门专栏
机器学习
机器学习笔记合集
深度学习
深度学习笔记合集