论文标题:
Incorporating Convolution Designs into Visual Transformers
将卷积设计融入 Vision Transformer
论文链接:https://arxiv.org/abs/2103.11816
论文代码:https://github.com/rishikksh20/CeiT-pytorch
发表时间:2021年4月
创新点
- 一种新的卷积增强图像变换器 CeiT
- 一个 Image-to-Tokens 模块
- 局部增强前馈(LeFF)层
- 分类 Tokens 注意力层 Layer-wise Class token Attention (LCA)
Abstract
受自然语言处理 (NLP) 任务中 Transformers 成功的推动,出现了一些尝试(例如 ViT 和 DeiT)将 Transformers 应用于视觉领域。然而,纯粹的 Transformer 架构通常需要大量的训练数据或额外的监督才能获得与卷积神经网络 (CNN) 相当的性能。为了克服这些限制,我们分析了直接从 NLP 借用 Transformer 架构时的潜在缺点。然后我们提出了一种新的卷积增强图像变换器(CeiT),它结合了 CNN 在提取低级特征、加强局部性方面的优势以及 Transformer 在建立远程依赖关系方面的优势。
对原始 Transformer 进行了三处修改:
1)我们设计了一个从生成的低级特征中提取补丁的 Image-to-Tokens(I2T)模块,而不是直接从原始输入图像进行标记化;
2)每个编码器块中的前馈网络被替换为局部增强前馈(LeFF)层,该层促进了空间维度上相邻令牌之间的相关性;
3)一个 Layer-wise Class token Attention(LCA)附加在使用多级表示的 Transformer 的顶部。
Method
Image-to-Tokens(I2T)模块
上图部分:是原始 ViT 进行 split 的方法,明显的人的图像失去了空间信息,“首尾”分家
下图部分:卷积提取信息后,在进行 split
注释:
- 本质就是利用了 CNN 增加了低级特征信息提取能力
- 从而缩小了块的大小,减少了运算参数,并且包含了空间信息和低级特征
Locally Enhanced Feed-forward(LeFF)层
该层的作用很好理解,最终目的就是降低参数量
I2T 模块输出的 Tokens中,class token 不改变
将 patch tokens 进行线性投影——空间补齐——深度卷积——扁平化——线性投影——output
Layer-wise Class token Attention(LCA)层
LCA 的输入是一个 class token 序列(图中表示都是⚪)
该层的作用是,加强了不同层之间的特征的注意力,并且它只计算第 L 个 class token 和其他 class token 之间的单向相似性,从而大大降低了计算注意力的复杂性
注释:
- 寻找不同特征层之间的联系
- 仅计算单向相似性,从而降低计算复杂度
Experiments
实验目标:CeiT 与 DeiT 模型进行对比
实验结果:CeiT 模型表现出比纯 Transformer 模型更好的收敛性,训练迭代次数减少了 3 倍,显着降低训练成本
实验目标:CeiT 的不同尺寸架构
实验目标:在 NVIDIA Tesla V100 GPU 上进行,我们在 DeiT 中采用相同的训练策略。在下表中列出了训练、微调和迁移学习的详细设置
实验目标:使用的视觉数据集的详细信息
实验目标:CeiT 模型的有效性
实验结果:CeiT 具有优势明显
实验目标:I2T 的消融实验
实验结果:Max-pooling 和 BatchNorm 层都有利于训练