解构 Visual Transformer
本文针对 arXiv 的早期版本,与最新版本会有所出入。
知识背景
Attention (Retrieval)
文中所有的公式都是从下式派生,
其中
具体解释为:
即 Query,代表 个想要检索的目标,每行是一个 维的查询关键字。例如,可以按类型将电影 embed 到一个关键字空间中,每个分量可以代表其具有的不同属性; 即 Key,代表 个被检索的候选者,每行是一个 维的查询关键字。是所有被检索的候选者在关键字空间中的表示; 即 Value,代表 个被检索的候选者,每行是一个 维的值。例如,将电影的内容记录为一个向量,是真正想要取回的内容; 即 Match,根据内积计算相似度并归一化,对于每个检索目标,相似度高的候选者将取得较高的值。
有时
此时,通常
Multi-Head
本文中没有详细介绍(但是提到使用了该技术),使用该技术可以显著减少 Attention 的计算开销。
其中,
视觉模块
Filter-Based Tokenizer (Static Tokenizer)
「利用静态的 Queries 从像素特征图检索 Tokens 信息」
由下式开始变换,
令
若取
可学习的参数为
Recurrent Tokenizer (Dynamic Tokenizer)
「利用已有的 Tokens 得到 Queries 从像素特征图检索新的 Tokens 信息」
是 Filter-based Tokenizer 的变种,此时使用的
记
可学习的参数为
Position Encoder
「利用 Tokenizer 的匹配结果,从静态的 Position Encodings 中检索位置信息」
保持 Tokenizer 的 Match 不变,令
可学习的参数为
Transformer (Self-Attention)
「Tokens 进行自源的信息检索」
对于
令
再加上残差结构,即
可学习的参数为
Projector
「利用像素特征图从 Tokens 中检索信息,从而对特种图进行了语义的增强」
对于
令
同样地再加上残差结构,即
可学习的参数为
模块总结
Name | Query | Key | Value | Result |
---|---|---|---|---|
Static Tokenizer (ST) | Static | Feature Map | Feature Map | Tokens |
Dynamic Tokenizer (DT) | Tokens | Feature Map | Feature Map | Refined Tokens |
Position Encoder (PE) | Static / Tokens | Tokens | Static | Position Encodings |
Transformer (Tr) | Tokens | Tokens | Tokens | Transformed Tokens |
Projector (Pr) | Feature Map | Tokens | Tokens | Refined Feature Map |
模型构建
- Classification: 使用 ST、Tr、DT、Tr、……、DT、Tr 结构代替了 Resnet 中的 Stage 5。
- Semantic Segmentation: 使用 ST、Tr、Pr 结构代替了 FPN 中的 Lateral Conv 和 Downsample、Down Conv。(依据原文描述,原文的示意图可能有误,标出了 downsample)