本篇内容来自论文:《Is Space-Time Attention All You Need for Video Understanding?》,在编辑过程中减少了一些本人的了解,不免了解不周或者书写有错,欢送在评论区指出,谢谢!
TimeSformer 能做什么?
近日,Facebook AI 提出了一种称为 TimeSformer(Time-Space transformer)的视频了解新架构,这个构造齐全基于 Transformer。自 Transformer 提出以来,在 NLP 畛域失去了十分宽泛的应用,是机器翻译以及语言了解中最罕用的办法。
TimeSformer 在多个有挑战的行为辨认数据集上达到了 SOTA 的后果,论文中应用的数据集包含 Kinetics-400,Kinetics-600、Something-Something-v2、Diving-48 和 HowTo100M 数据集。相比于古代的 3D 卷积神经网络,TimeSformer 训练要快 3 倍,推理的工夫为它的十分之一。
除此之外,TimeSformer 的可扩展性,使得能够在更长的视频片段上训练更大的模型,以后的 3D CNN 最多只可能解决几秒钟的片段,应用 TimeSformer,甚至能够在数分钟的片段上进行训练。它为未来的 AI 零碎了解更简单的人类行为铺好了路。
相比于卷积,Transformer 有什么区别,又好在哪里?
传统的视频分类模型应用 3D 卷积核来提取特色,而 TimeSformer 基于 Transformer 中的自注意力机制,使得它可能捕捉到整段视频中的时空依赖性。这个模型将输出的视频看做是从各个帧中提取的图像块(patch)的时空序列,以将 Transformer 利用于视频。这个应用的形式与 NLP 中的用法十分类似。NLP Transformer 是通过将每个词与句子中的所有词进行比拟,来推断每个词的含意,这种办法叫做自注意力机制。该模型通过将每个图像块的语义与视频中的其它图像块进行比拟,来获取每个图像块的语义,从而能够同时捕捉到邻近的图像块之间的部分依赖关系,以及远距离图像块的全局依赖性。
家喻户晓,Transformer 的训练十分耗费资源,为了缓解这一问题,TimeSformer 通过两个形式来缩小计算量:
- 将视频拆解为不相交的图像块序列的子集;
- 应用一种独特的自注意力形式,来防止所有的图像块序列之间进行简单计算。文中把这项技术叫做 离开的时空注意力机制(divided space-time attention)。在工夫 attention 中,每个图像块仅和其余帧在对应地位提取出的图像块进行 attention。在空间 attention 中,这个图像块仅和同一帧的提取出的图像块进行 attention。作者还发现,离开的时空注意力机制,成果要好于独特应用的时空注意力机制。
在 CV 畛域,卷积和 Transformer 相比,有以下的缺点:
- 卷积有很强的演绎偏见(例如部分连接性和平移不变性),尽管对于一些比拟小的训练集来说,这毫无疑问是无效的,然而当咱们有了十分短缺的数据集时,这些会限度模型的表达能力。与 CNN 相比,Transformer 的演绎偏见更少,这使得他们可能表白的范畴更广,从而更加实用于十分大的数据集。
- 卷积核是专门设计用来捕获部分的时空信息,它们不可能对感触野之外的依赖性进行建模。尽管将卷积进行重叠,加深网络会扩充感触野,然而这些策略通过汇集很短范畴内的信息的形式,依然会限度长期以来的建模。与之相同,自注意力机制通过间接比拟在所有时空地位上的特色,能够被用来捕获部分和全局的长范畴内的依赖。
- 当利用于高清的长视频时,训练深度 CNN 网络十分消耗计算资源。目前有钻研发现,在静止图像的畛域中,Transformer 训练和推导要比 CNN 更快。使得可能应用雷同的计算资源来训练拟合能力更强的网络。
具体如何实现的?
这项工作基于图像模型 Vision Transformer(ViT),将自注意力机制从图像空间扩大到时空的 3D 空间。
视频自注意力模块
在下图中能够分明看到,注意力机制是如何运作的:
不同注意力施加形式
图中,蓝色的图像块是 query 的图像块,其余色彩的图像块,是每个自注意力策略应用到的图像块,没有色彩的图像块没有被应用到。策略中,有多种色彩的图像块,代表注意力机制是离开进行的,比方 T+S,就是先 T,后 S,L + G 也是同理。这里图中只展现了三帧,然而作用时是作用在整个序列上的。
通过对输出图像进行分块,论文中一共钻研了五种不同的注意力机制:
- 空间注意力机制(S):只取同一帧内的图像块进行自注意力机制
- 时空独特注意力机制(ST):取所有帧中的所有图像块进行注意力机制
- 离开的时空注意力机制(T+S):先对同一帧中的所有图像块进行自注意力机制,而后对不同帧中对应地位的图像块进行注意力机制
- 稠密部分全局注意力机制(L+G):先利用所有帧中,相邻的 H/2 和 W/2 的图像块计算部分的注意力,而后在空间上,应用 2 个图像块的步长,在整个序列中计算自注意力机制,这个能够看做全局的时空注意力更快的近似
- 轴向的注意力机制(T+W+H):先在工夫维度上进行自注意力机制,而后在纵坐标雷同的图像块上进行自注意力机制,最初在横坐标雷同的图像块上进行自注意力机制
置信大家都曾经对于 Transformer 的具体作用形式(q、k 和 v)曾经很理解了,这里的话换了一下自注意力中的输出信息,所以就不展现公式了。感兴趣的能够浏览原文。
试验局部
自注意力机制的剖析
在 K400 和 SSv2 数据集上钻研了所提的五个自注意力策略,表中汇报的是视频级别的分类准确率。其中离开的时空注意力成果最好。
从表中能够看出,对于 K400 数据集,仅应用空间信息曾经可能分类比拟好了,这些后面的研究者也发现了,然而,对于 SSv2 数据集来说,仅仅应用空间信息的成果十分差。这阐明了对工夫建模的重要性。
图像大小和视频长度的影响
当每一个图像块的大小不变时,图像越大,图像块的个数越多。同时,帧数越多,输出注意力机制的数据也越多。作者也钻研了这些对于最终性能的影响,后果是随着输出信息更加丰盛,带来的成果晋升是非常明显的。
这里因为显存的限度,没有方法测试 96 帧以上的视频片段。作者说,这曾经是一个很大的晋升了,因为目前的卷积模型,输出个别都被限度在 8-32 帧。
预训练和数据集规模的重要性
因为这个模型须要十分大的数据才可能训练,作者有尝试本人从头训练,然而都失败了,因而在论文中报告的所有后果,都应用了 ImageNet 进行预训练。
为了钻研数据集的规模的影响,应用了两个数据集,试验中,分四组,别离应用 25%,50%,75% 和 100% 的数据。后果是 TimeSformer 当数据比拟少的时候体现不太好,数据多的时候体现好。
与 SOTA 比拟
在本节中应用了三个模型的变种:
- TimeSformer:输出 8224224,8 为帧数
- TimeSformer-HR:空间清晰度比拟高,输出为 16448448
- TimeSformer-L:工夫范畴比拟广,输出为 96224224
在 K400 数据集上视频分类的后果,达到了 SOTA。
K600 数据集上的后果,达到了 SOTA。
SSv2 和 Diving48 上的后果,SSv2 并没有达到最好的后果,作者提到说所提办法采纳了齐全不同的构造,对于这么有挑战性的数据集来说曾经是比拟好的了,有进一步倒退的空间。
视频中的长期建模
作者还验证了所提模型相比于 CNN 来说,对于长期视频建模的劣势。这一步应用了 HowTo100M 数据集。
其中,# Input Frames 代表输出模型的帧数,Single Clip Coverage 代表输出的一段视频笼罩了多久的视频,# Test Clips 代表预测阶段,须要将输出视频裁剪几段能力输出进网络。能够看到,当 TimeSformer 输出 96 帧时,可能无效利用视频中长期依赖的信息,达到了最好的成果。
参考资料
- ViT(Vision Transformer):https://arxiv.org/abs/2010.11929
- 这篇原始论文链接:https://arxiv.org/pdf/2102.05095.pdf
- 代码:https://github.com/lucidrains/TimeSformer-pytorch
写在最初:如果感觉这篇文章对您有帮忙,欢送点赞珍藏评论反对我,谢谢!也欢送关注我的公众号:算法小哥克里斯。
举荐浏览:Chris:将注意力机制引入 ResNet,视觉畛域涨点技巧来了!附应用办法