《Video Mamba Suite》论文笔记(4)Mamba在时空建模中的作用

news/2024/11/16 12:00:50/

原文翻译

4.4 Mamba for Spatial-Temporal Modeling

Tasks and datasets.最后,我们评估了 Mamba 的时空建模能力。与之前的小节类似,我们在 Epic-Kitchens-100 数据集 [13] 上评估模型在zero-shot多实例检索中的性能。

Baseline and competitor.ViViT[2]TimeSformer[6]研究了ViT在空间注意转化为具有时空联合注意的模型的转换。根据这些工作,我们进一步扩展了ViM模型的空间选择扫描来合并时空选择性扫描。我们将此扩展模型称为 ViViM。我们利用在 ImageNet-1K [16] 上预训练的 ViM 模型进行初始化。ViM 模型包含一个 cls 标记,该标记插入到扁平标记序列的中间。为了将 ViM 模型转换为 ViViM,我们采用了图 6 所示的直接方法。对于由 M 帧组成的给定输入,我们在对应于每一帧的标记序列的中间插入 cls 标记。此外,我们添加了每帧初始化为零的时间位置嵌入。然后将扁平的视频序列输入到 ViViM 模型中。模型的输出是通过计算每个帧的cls令牌的平均值来实现的。

Results and analysis.我们进一步分析了ViViM在zero-shot多实例检索上的结果。表11给出了各种时空模型在zero-shot多实例检索上的性能。在比较ViT和ViM时,它们都在ImageNet-1K[16]上进行预训练,我们观察到我们的ViM优于ViT。有趣的是,尽管 ImageNet-1K 上 ViT-S [69] 和 ViM-S [96] 之间的性能差距很小(79.8 vs. 88.5),ViViM-S 在零样本多实例检索上显示出比 ViT-S 的显着改进(+2.1 mAP@Avg)。这一发现表明,我们的 ViViM 在对长序列进行建模方面非常有效,从而提高了性能。

5 Efficiency Analysis

我们比较了不同时空模型的推理速度。该测试在空间维度上修复了 196 个标记,并不断提高帧数。所有测试都是在单个 A100 GPU 上以半精度执行的。为了公平比较,所有注意块都配备了 Flash-attention [14, 15]。我们将推理速度从 4 帧测试到 8192 帧,并在图 7 和图 8 中列出测试结果。两个表都表明,Mamba 比 Transformer 系列模型提供速度优势,尤其是当帧数很大时。在图 8 中,为了公平比较,我们将 ViViM-T 与 ViT 进行比较,无论是否使用 Flash-attention [14, 15]。ViM-T 与 ViT+Flash-attention 的比较是公平的,因为这两种方法都是在考虑硬件 I/O 速度的情况下优化的。当输入帧数大于 256 时,我们的 ViViM-T 比具有闪存注意力的 ViT-T 更有效。如果没有 Flash-Attention,ViM-T 相对更有效,当帧数大于 64 时超过 ViT。对于图 7 中的 TimeMambaB,当输入超过 8192 帧时,效率开始超过 timeformer-B 的效率。由于令牌交互的形式仅在时间交互上有所不同,因此效率差异不如 ViVM 和 ViT 之间的比较那么显着。

6 Conclusion

我们在视频理解领域对 Mamba 的全面评估展示了它作为传统转换器的可行替代方案的潜力。通过Video Mamba Suite,包括14个模型/模块12个视频理解任务,我们证明了Mamba能够有效地处理复杂的时空动态,表现出优越的性能和有前途的效率-性能权衡。这些发现不仅强调了 Mamba 对视频分析任务的适用性,而且还为其在计算机视觉中的应用开辟了新的途径。未来的工作可以进一步探索 Mamba 的适应性,并将其效用扩展到更复杂、多模态视频理解挑战。


http://www.ppmy.cn/news/1456102.html

相关文章

C++ | 类和对象(上)

目录 什么是类 类的介绍 struct在两种语言中的有何区别 私有变量命名注意点 类的作用域 类的声明定义分离 类的访问限定符 封装 类的实例化 类对象的存储 this指针 一道this指针相关的王炸题: 结语 什么是类 类的介绍 我们举一个日常生活中的例子&…

【开发技巧 | 第三篇】windows端口被占用及解决方法

文章目录 3.windows端口被占用及解决方法3.1查看指定端口被占用情况3.2根据PID查看对应的进程3.3根据PID杀死对应的进程3.4小结 3.windows端口被占用及解决方法 3.1查看指定端口被占用情况 netstat -aon|findstr 7090或 netstat -aon|findstr "7090"最后一列数字为…

优雅处理返回信息状态码:Result对象在Spring Boot中的应用

前言 在开发过程中,处理返回的信息状态码是一个重要的问题,尤其是在大型项目中。为了统一处理这些状态码,我在Spring Boot中创建了一个名为Result的Java对象,用于封装返回的信息和状态码。在本文中,我将分享如何实现这…

Agent AI智能体:我们的生活即将如何改变?

你有没有想过,那个帮你设置闹钟、提醒你朋友的生日,甚至帮你订外卖的智能助手,其实就是Agent AI智能体?它们已经在我们生活中扮演了越来越重要的角色。现在,让我们一起想象一下,随着这些AI智能体变得越来越…

基于Python的LSTM网络实现单特征预测回归任务

长短期记忆网络(Long Short-Term Memory, LSTM)是一种特殊的递归神经网络(RNN),适用于处理时间序列数据和其他序列数据的预测问题。它特别适合处理具有时间依赖性和长期依赖关系的序列数据。 以下是基于Python和Keras…

Redis领航分布式:Java实现高效Session管理

在构建分布式系统时,用户的会话管理是一个至关重要的问题。传统的基于服务器的会话管理方案可能会面临单点故障和性能瓶颈等问题。 而基于 Redis 的分布式会话管理方案能够有效地解决这些问题,并提供高可用性和性能。 本文将深入探讨 Redis 实现分布式…

从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人工智能中的应用(上)

文章目录 引言第一章:感知机是什么第二章:简单逻辑电路第三章:感知机的实现3.1 简单的与门实现3.2 导入权重和偏置3.3 使用权重和偏置的实现实现与门实现与非门和或门 文章文上下两节 从简单逻辑到复杂计算:感知机的进化与其在现代…

【Java】Stream流、方法引用(Java8)

Stream流 中间方法 distinct() 使用HashSet去重 终结方法 toArray() value 表示 流中数据的个数,要跟数组的长度保持一致。 collect() 收集到map中,比较复杂。需要指定 键 和 值 的生成规则。 方法引用 01_引用静态方法 ​ 引用类方法,其实…