一种面向对象分类的视觉Transformer,即ViT。该模型避免了卷积带来的归纳偏置,弥补了卷积神经网络在超长周期建模的不足。
1、DeiT(data-efficient image transformer)采用了知识蒸馏策略(将大型模型的复杂知识(包括其中的泛化能力和细节知识)传递给小型模型,使得小型模型能够在有限的数据集上达到与大型模型相当的性能),使得视觉Transformer能够学习归纳偏差(机器学习算法在学习过程中出现的不准确和不稳定的情况);
2、Swin Transformer将自注意力的计算范围限制在不重叠的局部窗口内,并通过移位窗口操作实现局部窗口间的交互。
3、DINO(DETR with imporoved denoising anchor boxes)结合自监督学习和Transformer,使得可学习的特征更具解释性(DETR指的是目标检测算法)
ViT是首个针对图像分类任务提出的纯Transformer的模型,并在超大规模数据集上取得了超越CNN的效果。
ViT的三个模块
嵌入层
嵌入层由图像块嵌入、可学习的嵌入和位置嵌入组成,旨在将输入的三维图像数据转换为Transformer要求输入的一维token序列。
- 图像块嵌入将输入的二维图像进行切分并转化为Transformer可处理的一维向量,即图像块token。
- 可学习的嵌入使用一个可学习的类别向量与图像块token通过自注意力层实现对图像特征的信息交互,用于存储学习到的分类向量,即class token。
- 位置嵌入通过位置编码添加图像块序列的位置信息,以解决Transformer因自注意力机制无法保留图像空间信息的问题。
位置编码与图像块嵌入及可学习嵌入按元素拼接得到一个完整的类别嵌入输入至Transformer编码器中
Transformer编码器
Transformer编码器负责提取输入图像的全局特征,由L(ViT中为12)个相同的层堆叠而成。每个层由多头注意力层和多层感知机两个子层组成。
将类别嵌入向量输入编码器中后,Transformer编码器通过自注意力层实现对图像特征的信息交互或聚合。并将class token送入MLP Head进行分类预测。