简介
将 Transformer 架构加入视觉领域,ViT与ViViT是分别是将该架构加入图片分类与视频分类领域,是该方向的两篇代表作。
- ViT: AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
- ViViT: ViViT: A Video Vision Transformer
Vision Transformer(ViT)
ViT尽可能的遵循原始Transformer。
标准的 Transformer 的输入是一维序列,因此首先需要将二维的图像整形为一维的序列。将其作为整体,称作patch,输入到Transformer进行 embedding。
位置编码直接相加进path embedding。
Trandformer Encoder架构为:
数学公式总结为:
其中$C$是通道数,$D$是样本数,$p^2$是分块之后的数量,MSA是multiheaded selfattention,MLP是多层感知机,LN是 Layernorm,并且$z_0^0=x_\text{class}$
Video Vision Transformer(ViViT)
基于图像,进一步整合时空的Transformer结构。能够对视频进行有效的处理。
除了ViT提出的patch embedding,在处理时空信息上本文提出了Tubelet embedding。
其在时间信息上同样进行编码,组成一个包含部分时间与部分空间信息的embedding。这样就成功让Transformer可以输入时间与空间信息,接下来需要处理的是patch embedding 与 tubelet embedding 两部分信息如何输入进 transformer。虽然其同为编码信息,但是时间和空间的信息如何有效的耦合就是新的问题。这篇文章提出了四种架构。
Spation-temporal attendtion
直接认为两者地位等价,作为相同的token进行输入。显然则会导致输入的信息过于庞大,这是最吃资源的一种。
Factorised encoder
这种方案包含两层encoder,第一层将在同一个tubelet 附近的 patch进行encoder,然后下一步将其在时间上进行encoder。
Factorised self-attention
与第一种方案一样,同样认为等价的地位,但只进行self-attention操作。首先先处理空间,然后是时间。
Factorised dot-product attention
分别处理时间与空间上的embedding,然后拼接再作为一个整体。