0%

ViT and ViViT

简介

将 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

ViT structure

标准的 Transformer 的输入是一维序列,因此首先需要将二维的图像整形为一维的序列。将其作为整体,称作patch,输入到Transformer进行 embedding。

位置编码直接相加进path embedding。

Trandformer Encoder架构为:

Trandformer Encoder

数学公式总结为: $$\begin{align} z_0 &= [x_\text{class}; x_p^1 E;x_p^2 E;\cdots ;x_p^N E]+E_\text{pos}\quad E\in \mathcal R^{(p^2\cdot C)\times D},E_{pos}\in \mathcal R^{(N+1)\times D} \\ z'_l &= MSA(LN(z_{l-1}))+z_{l-1} \quad l=1\cdots L \\ z_l &= MLP(LN(z'_l))+z'_l \quad l=1\cdots L \\ y &= LN(z_L^0) \end{align}$$

其中C是通道数,D是样本数,p2是分块之后的数量,MSA是multiheaded selfattention,MLP是多层感知机,LN是 Layernorm,并且z00 = xclass

Video Vision Transformer(ViViT)

基于图像,进一步整合时空的Transformer结构。能够对视频进行有效的处理。

ViViT

除了ViT提出的patch embedding,在处理时空信息上本文提出了Tubelet embedding。

Tubelet embedding

其在时间信息上同样进行编码,组成一个包含部分时间与部分空间信息的embedding。这样就成功让Transformer可以输入时间与空间信息,接下来需要处理的是patch embedding 与 tubelet embedding 两部分信息如何输入进 transformer。虽然其同为编码信息,但是时间和空间的信息如何有效的耦合就是新的问题。这篇文章提出了四种架构。

Spation-temporal attendtion

直接认为两者地位等价,作为相同的token进行输入。显然则会导致输入的信息过于庞大,这是最吃资源的一种。

Factorised encoder

Factorised

这种方案包含两层encoder,第一层将在同一个tubelet 附近的 patch进行encoder,然后下一步将其在时间上进行encoder。

Factorised self-attention

Factorised self-attention

与第一种方案一样,同样认为等价的地位,但只进行self-attention操作。首先先处理空间,然后是时间。

Factorised dot-product attention

Factorised dot-product attention

分别处理时间与空间上的embedding,然后拼接再作为一个整体。