视频多模态模型——视频版ViT

news2025/1/30 21:59:32

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》,2021由google 提出用于视频处理的视觉 Transformer 模型,在视频多模态领域有重要应用。

在这里插入图片描述

文章目录

    • 论文
    • 摘要
    • 1. 引言
    • 2. 相关工作
    • 3. 视频视觉Transformer
      • 3.1 视觉Transformer(ViT)概述
      • 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模型。

摘要

  1. 模型提出背景与构建:受Transformer在图像分类领域(ViT模型) 成功启发,提出基于纯Transformer的视频分类模型,从输入视频提取时空标记,经一系列Transformer层编码。
  2. 模型优化:针对视频长序列标记,提出几种高效模型变体,对输入空间和时间维度分解;在训练中有效正则化模型,利用预训练图像模型,实现小数据集训练
  3. 实验成果:进行全面消融研究,在Kinetics 400、Kinetics 600、Epic Kitchens、Something-Something v2和Moments in Time等多个视频分类基准测试中取得领先成果,超越基于深度3D卷积网络的先前方法。

1. 引言

此前,基于注意力的模型在自然语言处理中的成功,激发了计算机视觉领域将Transformer集成到卷积神经网络(CNN)中的研究,以及一些完全取代卷积的尝试。直到最近的视觉Transformer(ViT)出现,基于纯Transformer的架构才在图像分类中超越了其卷积对应架构。ViT 遵循原始Transformer架构,并指出其主要优势在大规模数据上才能体现出来——由于Transformer缺乏卷积的一些归纳偏差(如平移等变性),它们似乎需要更多数据或更强的正则化。

ViT 详细介绍参考:TODO。

受ViT等的启发作者开发了几种基于Transformer的视频分类模型。目前,性能最佳的模型基于深度3D卷积架构(图像分类CNN的自然扩展),通过在后期层中引入自注意力机制,以更好地捕捉长距离依赖关系

在这里插入图片描述

图1:受图像分类中基于Transformer模型的成功启发,我们提出了用于视频分类的纯Transformer架构。为有效处理大量时空标记,我们开发了几种模型变体,在空间和时间维度上对Transformer编码器的不同组件进行分解。如右图所示,这些分解对应于不同的时空注意力模式。

如图1所示,作者提出用于视频分类的纯 Transformer 模型,主要操作是自注意力机制,在从输入视频提取的时空标记上计算。并进行了优化,策略如下:

  1. 为处理大量时空标记,提出沿空间和时间维度分解模型的方法,提升效率与可扩展性。
  2. 为了在小数据集训练,训练过程中对模型进行了正则化,并利用预训练图像模型。

卷积模型的研究和实践总多,但因纯Transformer模型具有不同的特性,需确定最佳设计选择。为此,作者对标记化策略、模型架构和正则化方法进行全面消融分析:在Kinetics 400和600、Epic Kitchens 100、Something - Something v2和Moments in Time等多个标准视频分类基准测试中取得先进成果。

2. 相关工作

这部分介绍之前的研究进展,如下:

  1. 视频理解架构发展
    • 早期用手工特征编码信息,AlexNet成功使2D CNN用于视频形成“双流”网络,独立处理RGB帧与光流图像后融合。
    • 大数据集促进时空3D CNN训练,但计算资源需求大,很多架构通过跨空间和时间维度分解卷积和/或用分组卷积提高效率,本文在Transformer模型下利用此方法
  2. NLP中Transformer进展:Vaswani等人用Transformer取代卷积和循环网络获先进成果,当前NLP主流架构仍基于此,还提出多种变体降成本、提效率。自注意力在计算机视觉领域,通常是在网络的末端或后期阶段作为一层融入,或用于增强ResNet架构中的残差块。
  3. 视觉领域Transformer情况:Dosovitisky等人的ViT证明纯Transformer可用于图像分类,但需大规模数据,因其缺乏卷积的归纳偏差。ViT引发后续研究,已有基于Transformer的视频模型。

在本文中,作者开发了用于视频分类纯Transformer架构。提出了几种模型变体,包括通过分解输入视频的空间和时间维度来提高效率的变体,还展示了如何用额外正则化和预训练模型应对视频数据集小的问题。最后,在五个流行数据集上超越了当前最先进的方法。

3. 视频视觉Transformer

  • 在3.1节中总结最近提出的视觉Transformer(ViT)
  • 在3.2节中讨论从视频中提取标记的两种方法。
  • 在3.3和3.4节中开发几种基于Transformer的视频分类架构。

3.1 视觉Transformer(ViT)概述

视觉Transformer(ViT)对原始的Transformer架构进行了最小限度的调整,以用于处理二维图像。具体而言,ViT会提取N个不重叠的图像补丁, x i ∈ R h × w x_{i} \in \mathbb{R}^{h ×w} xiRh×w ,对其进行线性投影,然后将它们光栅化为一维标记 z i ∈ R d z_{i} \in \mathbb{R}^{d} ziRd 。输入到后续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} pRN×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+1=MLP(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} zclsLRd对编码后的输入进行分类;否则,对所有标记 z L z^{L} zL进行全局平均池化,再进行分类。

由于Transformer是一个灵活的架构,可以对任何输入标记序列 z ∈ R N × d z \in \mathbb{R}^{N×d} zRN×d进行操作,接下来将描述视频标记化的策略

ViT 详细介绍参考:TODO。

3.2 嵌入视频片段

这里,作者考虑两种将视频 V ∈ R T × H × W × C V \in \mathbb{R}^{T×H×W×C} VRT×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} nhnw个不重叠的图像补丁,那么总共 n t ⋅ n h ⋅ n w n_{t} \cdot n_{h} \cdot n_{w} ntnhnw个标记将被输入到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的架构。首先是直接对视觉Transformer(ViT)进行扩展,该扩展对所有时空标记之间的成对交互进行建模,然后,在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编码器组成。如下:

  1. 第一个是空间编码器,仅对从同一时间索引提取的标记之间的交互进行建模。经过 L s L_{s} Ls层后,得到每个时间索引的表示 h i ∈ R d h_{i} \in \mathbb{R}^{d} hiRd:如果在输入中添加了分类标记 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
  2. 帧级表示 h i h_{i} hi被连接成 H ∈ R n t × d H \in \mathbb{R}^{n_{t}×d} HRnt×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((nhnw)2+nt2),而模型1的计算复杂度为 O ( ( n t ⋅ n h ⋅ n w ) 2 ) O((n_{t} \cdot n_{h} \cdot n_{w})^{2}) O((ntnhnw)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×ntnhnwd重塑为 R n t × n h ⋅ n w ⋅ d \mathbb{R}^{n_t×n_h·n_w·d} Rnt×nhnwd(表示为 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} Rnhnw×ntd(假设最前面的维度是“批量维度”)。作者在此定义的分解式自注意力如下:
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+1=MLP(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 Q=XWq,键 K = X W k K = XW_k K=XWk,值 V = X W v V = XW_v V=XWv 是输入 X X X 的线性投影,其中 X , Q , K , V ∈ R N × d X, Q, K, V \in \mathbb{R}^{N \times d} X,Q,K,VRN×d。请注意,在未分解的情况下(模型1),空间和时间维度合并为 N = n t ⋅ n h ⋅ n w N = n_t \cdot n_h \cdot n_w N=ntnhnw
    这里的主要思路是,通过构造 空间维度的 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,VsRnhnw×d 和时间维度的 K t , V t ∈ R n t × d K_t, V_t \in \mathbb{R}^{n_t \times d} Kt,VtRnt×d,也就是对应这些维度的键和值,来修改每个查询的键和值,使其仅关注来自相同空间和时间索引的标记。

  • 然后,对于一半的注意力头,通过计算 Y s = Attention ( Q , K s , V s ) Y_s = \text{Attention}(Q, K_s, V_s) Ys=Attention(Q,Ks,Vs) 来关注空间维度的标记,对于另一半头,我们通过计算 Y t = Attention ( Q , K t , V t ) Y_t = \text{Attention}(Q, K_t, V_t) Yt=Attention(Q,Kt,Vt) 来关注时间维度的标记。由于这里只是改变了每个查询的注意力范围,所以注意力操作的维度与未分解的情况相同,即 Y s , Y t ∈ R N × d Y_s, Y_t \in \mathbb{R}^{N \times d} Ys,YtRN×d

  • 最后,通过连接多个头的输出并使用线性投影来组合它们的输出,即 Y = Concat ( Y s , Y t ) W O Y = \text{Concat}(Y_s, Y_t)W_O Y=Concat(Ys,Yt)WO

3.4 利用预训练模型进行初始化

ViT需在大规模数据集上训练才有效,因其缺乏卷积网络的某些归纳偏置。最大的视频数据集(如Kinetics)标注样本比图像数据集少几个数量级,从零训练大型模型达到高精度极具挑战。为高效训练,用预训练图像模型初始化视频模型,但引发参数初始化问题。下面讨论几种有效的策略来初始化这些大规模视频分类模型

  1. 位置嵌入
    将位置嵌入 p p p添加到每个输入标记中(公式1)。由于视频模型的标记数量是预训练图像模型的 n t n_t nt倍,可以通过在时间维度上“重复”位置嵌入,将其从 R n w ⋅ n h × d \mathbb{R}^{n_w \cdot n_h×d} Rnwnh×d扩展到 R n t ⋅ n h ⋅ n w × d \mathbb{R}^{n_t·n_h·n_w ×d} Rntnhnw×d来进行初始化。所以,在初始化时,所有具有相同空间索引的标记都具有相同的嵌入,然后再进行微调
  2. 嵌入权重, 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) E=t1[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. 模型3的Transformer权重
    模型3中的Transformer模块(图5)与预训练的ViT模型不同,它包含两个多头自注意力(MSA)模块。在这种情况下,作者使用预训练的模块来初始化空间MSA模块,并将时间MSA的所有权重初始化为零,这样在初始化时,公式5就相当于一个残差连接。

4. 实验

在本节中,作者对提出的模型进行实验评估,包括在多个标准视频分类基准测试中的性能测试,以及对不同组件和设计选择的消融研究。这里只做简要介绍,详细内容请参考原论文:

4.1 数据集

  1. 在多个流行视频分类基准测试数据集上评估模型。
  2. Kinetics 400/600:含大量动作视频,有400或600种动作类别,视频短、来源广,为模型训练与评估提供丰富数据。
  3. Epic Kitchens 100:聚焦厨房场景动作,动作序列复杂,时空信息丰富,元数据多样,为动作理解评估提供更具挑战场景。
  4. Something-Something v2:含诸多日常动作,动作定义基于物体功能与意图,需模型深入理解动作语义。
  5. Moments in Time:含各类视频,类别广泛,涵盖事件、动作与场景,要求模型具备良好的时间事件分类能力。

4.2 实现细节

  1. 基于PyTorch框架实现模型。
  2. 训练时使用Adam或SGD等标准优化器,采用余弦退火学习率调度器(cosine learning rate schedule)等学习率调度策略。
  3. 运用裁剪、翻转、缩放、时间扭曲等常见图像和视频增强技术进行数据增强,提升模型泛化能力。
  4. 针对视频长序列,依据不同实验需求,使用不同帧采样策略选取合适数量的帧。
  5. 对Transformer层数量、标记维度、头数量及不同分解模型参数等超参数进行调整。
  6. 实验表明,不同数据集的最优参数设置各异,受数据集大小、类别数量和动作复杂性等因素影响。

4.3 结果

  1. Kinetics 400/600:在Kinetics 400和600数据集上,纯Transformer架构模型表现出色,模型3和4分解时空维度,处理长视频序列优势明显,捕捉时空依赖,降计算复杂度提分类性能,Kinetics 400上最佳模型top - 1准确率比先前最佳方法提升[X]%,Kinetics 600上提升[Y]%。
  2. Epic Kitchens 100:模型在该挑战性数据集上性能良好,凭借强大时空建模能力,捕捉动作语义与上下文信息,动作分类准确率领先,证明在复杂场景下有效。
  3. Something - Something v2:模型在该数据集表现突出,基于Transformer架构能更好处理动作功能和意图信息,不依赖外观特征,经不同标记化和分解模型实验,特定变体在top - 1准确率上超先前方法[Z]%。
  4. Moments in Time:模型在该数据集取得领先成果,灵活运用不同时空注意力模式,处理各类时间事件,在不同类别性能平衡佳,整体准确率和F1分数达新高度。

4.4 消融研究

为了解模型组件对性能的影响,开展广泛消融研究。

  1. 标记化方法:比较均匀帧采样和管块嵌入,不同数据集二者优劣有别。简单动作、短时间序列数据集,均匀帧采样表现可能更好;复杂动作、长序列数据集,管块嵌入融合时空信息,更能捕捉动作时空演变,提升性能。
  2. 模型架构:对比模型1至模型4。模型1虽全面交互建模时空标记,但计算成本高,处理长视频序列时并非最优。模型2至模型4分解时空维度各有优势,模型2后期融合时空信息,在部分数据集表现良好;模型3和4分解自注意力或点积注意力,降低计算成本,捕捉时空依赖,不同数据集性能提升潜力各异,取决于数据集特点。
  3. 预训练:研究使用预训练图像模型初始化的效果,实验表明预训练可显著提升模型性能,尤其在数据量较小的情况下,验证利用预训练归纳偏差能助模型在少量数据上更好收敛和泛化。

5. 结论

作者提出一系列基于纯Transformer的视频分类模型,从输入视频提取时空标记并以不同架构处理。开发了多种高效模型变体,通过分解空间和时间维度提升计算效率与性能,以应对长序列标记。同时,利用预训练图像模型初始化模型,在较小视频数据集上进行有效训练,并开展多种策略实验。经多个标准视频分类数据集的评估与消融研究,模型在不同数据集上性能出色,超越3D卷积网络方法,达当前领先水平。

他们的工作为基于Transformer的视频理解提供新思路与方法,奠定未来研究基础。未来研究方向包括优化模型架构、探索复杂时空分解方法、将模型拓展至其他视频理解任务,以及更好结合预训练信息、提升不同规模数据集的数据效率。

热门专栏

机器学习

机器学习笔记合集

深度学习

深度学习笔记合集

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

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

相关文章

单机伪分布Hadoop详细配置

目录 1. 引言2. 配置单机Hadoop2.1 下载并解压JDK1.8、Hadoop3.3.62.2 配置环境变量2.3 验证JDK、Hadoop配置 3. 伪分布Hadoop3.1 配置ssh免密码登录3.2 配置伪分布Hadoop3.2.1 修改hadoop-env.sh3.2.2 修改core-site.xml3.2.3 修改hdfs-site.xml3.2.4 修改yarn-site.xml3.2.5 …

Ollama windows安装

Ollama 是一个开源项目,专注于帮助用户本地化运行大型语言模型(LLMs)。它提供了一个简单易用的框架,让开发者和个人用户能够在自己的设备上部署和运行 LLMs,而无需依赖云服务或外部 API。这对于需要数据隐私、离线使用…

Van-Nav:新年,将自己学习的项目地址统一整理搭建自己的私人导航站,供自己后续查阅使用,做技术的同学应该都有一个自己网站的梦想

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Van-Nav是一个基于Vue.js开发的导航组件库,它提供了多种预设的样式和灵活的配置选项,使得开发者可以轻松地定制出符合项目需求…

网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践

引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…

渲染流程概述

渲染流程包括 CPU应用程序端渲染逻辑 和 GPU渲染管线 一、CPU应用程序端渲染逻辑 剔除操作对物体进行渲染排序打包数据调用Shader SetPassCall 和 Drawcall 1.剔除操作 视椎体剔除 (给物体一个包围盒,利用包围盒和摄像机的视椎体进行碰撞检测&#xf…

libOnvif通过组播不能发现相机

使用libOnvif库OnvifDiscoveryClient类, auto discovery new OnvifDiscoveryClient(QUrl(“soap.udp://239.255.255.250:3702”), cb.Build()); 会有错误: end of file or no input: message transfer interrupted or timed out(30 sec max recv delay)…

项目集成GateWay

文章目录 1.环境搭建1.创建sunrays-common-cloud-gateway-starter模块2.目录结构3.自动配置1.GateWayAutoConfiguration.java2.spring.factories 3.pom.xml4.注意:GateWay不能跟Web一起引入! 1.环境搭建 1.创建sunrays-common-cloud-gateway-starter模块…

2025年01月28日Github流行趋势

项目名称:maybe 项目地址url:https://github.com/maybe-finance/maybe项目语言:Ruby历史star数:37540今日star数:1004项目维护者:zachgoll, apps/dependabot, tmyracle, Shpigford, crnsh项目简介&#xff…

使用Ollama本地部署DeepSeek R1

前言 DeepSeek是一款开源的智能搜索引擎,能够通过深度学习技术提高搜索的智能化水平。如果你正在寻找一种方式来将DeepSeek部署在本地环境中,Ollama是一个非常方便的工具,它允许你在本地快速部署并管理各种基于AI的模型。 在本篇博客中&…

单片机基础模块学习——超声波传感器

一、超声波原理 左边发射超声波信号,右边接收超声波信号 左边的芯片用来处理超声波发射信号,中间的芯片用来处理接收的超声波信号 二、超声波原理图 T——transmit 发送R——Recieve 接收 U18芯片对输入的N_A1信号进行放大,然后输入给超声…

使用 OpenResty 构建高效的动态图片水印代理服务20250127

使用 OpenResty 构建高效的动态图片水印代理服务 在当今数字化的时代,图片在各种业务场景中广泛应用。为了保护版权、统一品牌形象,动态图片水印功能显得尤为重要。然而,直接在后端服务中集成水印功能,往往会带来代码复杂度增加、…

Elastic Agent 对 Kafka 的新输出:数据收集和流式传输的无限可能性

作者:来 Elastic Valerio Arvizzigno, Geetha Anne 及 Jeremy Hogan 介绍 Elastic Agent 的新功能:原生输出到 Kafka。借助这一最新功能,Elastic 用户现在可以轻松地将数据路由到 Kafka 集群,从而实现数据流和处理中无与伦比的可扩…

Elasticsearch 性能测试工具 Loadgen 之 002——命令行及参数详解

上一讲,我们讲解了 Loadgen 的极简部署方式、配置文件、快速使用从 0 到 1 方式。 本讲,我们主要解读一下 Loadgen 的丰富的命令行及参数含义。 有同学可能会说,上面不是介绍很清楚了吗?但,咱们还是有必要详细中文解读…

书生大模型实战营3

文章目录 L0——入门岛git基础Git 是什么?Git 中的一些基本概念工作区、暂存区和 Git 仓库区文件状态分支主要功能 Git 平台介绍GitHubGitLabGitee Git 下载配置验证下载 Git配置 Git验证 Git配置 Git常用操作Git简易入门四部曲Git其他指令 闯关任务任务1: 破冰活动…

【玩转全栈】----靓号管理系统实现

先赞后看,养成习惯。。。 目录 数据库设置 基本功能 路由器 靓号显示 靓号添加 靓号编辑 视图函数 额外功能 搜索功能 分页 一般逻辑 动态页码 上下页 首尾页 数据库设置 新建一个数据库(或者就用之前部门、用户管理的也行),用Dja…

【Attention】KV Cache

1 什么是KV Cache? 定义:KV Cache 即 Key-Value Cache,是用于加速 Transformer 模型推理长序列过程的一种技术。 核心原理:在 Transformer 的自注意力机制中,将历史输入 token 中的 Key 和 Value 缓存下来&#xff0c…

【Proteus仿真】【51单片机】多功能计算器系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键​ 3、加减乘除,开方运算 4、带符号运算 5、最大 999*999 二、使用步骤 基于51单片机多功能计算器 包含:程序&…

【教学类-89-01】20250127新年篇01—— 蛇年红包(WORD模版)

祈愿在2025蛇年里, 伟大的祖国风调雨顺、国泰民安、每个人齐心协力,共同经历这百年未有之大变局时代(国际政治、AI技术……) 祝福亲友同事孩子们平安健康(安全、安全、安全)、巳巳如意! 背景需…

leetcode——二叉树的最大深度(java)

给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,null,2] 输…

Java创建项目准备工作

新建项目 新建空项目 每一个空项目创建好后都要检查jdk版本 检查SDK和语言级别——Apply——OK 检查当前项目的Maven路径,如果已经配置好全局,就是正确路径不用管 修改项目字符集编码,将所有编码都调整为UTF-8 创建Spingboot工程 创建Spring…