论文阅读:Is Space-Time Attention All You Need for Video Understanding?

简介

我们提出了一种无卷积的视频分类方法,该方法完全基于空间和时间上的自注意力。通过直接从一系列帧级别的补丁中学习时空特征,使标准的Transformer架构适用于视频。我们的实验研究比较了不同的自注意力机制,并提出"分割注意力",即在每个块内分别使用时间注意力和空间注意力。

CNN存在的局限性:

1)卷积操作存在归纳偏置(inductive biases)。归纳偏置是指问题建模时采用的先验假设所造成的偏差/局限。例如,在进行卷积模型设计时,假设局部性和平移不变性对于建模有利,这在相对小的数据的情况下很受用。但在数据量特别充足的情况下,却可能对模型的表达能力造成限制。而Transformer没有那么强的假设条件,因此归纳偏置相对少,在模型表达能力上有更多的可能性。

(2)卷积核只能捕捉short-range的关系,无法获取感受野以外的long-range信息。尽管也有一些解决办法,比如加深网络或non-local,但这类解法并不理想。而Transformer的self-attention机制会直接地比较所有时空位置上的特征,更容易捕捉到长程依赖。

(3)对于视频,CNN很耗时,在高分辨率、长视频的情况下则特为尤甚。而近期在图片上的探索证明,transformer效率会更高。

因此,本文将transformer用到视频上,一来可以捕捉时序上的long-range依赖,更好地表示上下文信息,二来也可以避免卷积操作的种种局限。

方法

对于输入的处理:

输入裁剪:TimeSformer将X \epsilon \mathbb{R}^{H\times W\times 3\times F}作为输入,它由从原始视频中采样的大小为H × W的F个RGB帧组成。

分解为patch:将每一帧分解为N个大小为P × P的不重叠的patch,使得N个patch涵盖整个帧,即N=H\times W/P^2。将patch展开为向量x_{p,t}\epsilon \mathbb{R}^{3P^{2}}

位置编码:借助可学习的矩阵E,将每个patch线性地映射成嵌入向量z 

对于Transformer:

使用transformer的encoder部分。假定这个encoder里有L个block,每个block是多头注意力的,有A个头。那么对于block l的头a,先将该block的输入自己异化成Query, Key, Value,接着用点乘注意力的方式,用当前patch的q和其他patch k分别做计算(共NF+1次),即可得到该patch相对于其他各个patch的attention值α。

Query-Key-Value值:

自注意力值: 

用该attention值和相应的value加权求和,就可以得到某一个头上的更新值s。

接着,拼接多个头上的更新值,并加上残差连接,就可以得到多头的更新值z'。再经过LayerNormalize层、MLP层、残差连接等操作,就可以获得每个patch最终在block l上更新后的新特征。

encoding: 

分类嵌入向量:  

(如果后续进行的是视频级别的分类任务,只需要拿出代表整个序列的classification token的特征,接上LayerNorm,MLP等操作,即可直接获得prediction)

对于一个视频里的NF+1个patches,self-attention的开销是巨大的。下式可见,若在时空上均进行两两计算,需要(NF+1)*(NF+1)次匹配。而如果单单在时间上或者空间上做,则可以降低不少。

本文进行了5种self-attention策略设计,它们所进行的patch匹配次数各不相同。经实验,Divided Space-Time Attention的策略能有效降低模型计算量,同时效果更好。蓝色的是当前用作query的patch,其他有颜色的是用来和蓝色patch计算attention的patch(key)。

 实验结果

数据集Kinetics为十秒左右的trimmed video,空间信息比较重要。SSV2和Diving-48则较为需要时序推理,动作粒度更细。Howto是一个新出的网络教学视频数据集,视频较长,平均约7分钟/个,包含100w个视频,23000种类别,如cooking, reparing, making arts。实验里是取了一个它的子集(120k videos spanning 1059 task categories)

 

五种自注意策略的比较。

 

数据规模的影响 

可视化效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值