总述:
本文认为ViT之所以无法直接用中等数量数据集训练取得较好效果,是因为ViT对图像进行分patch拼接成序列的处理方法太简单了,模型无法学习到图像的结构信息,并且文中通过比较ViT和CNN中间每层输出的表示也印证了这一点。因此本文提出了新的Tokenize方法,将每一层的输出再还原成一个图像,然后在图像上进行soft split。Soft split指的是有重叠的进行patch划分,这样就建立起了上一层不同patch之间的关系。通过这种方法也使得网络输入序列的长度逐层减小。
摘要
作者开篇首先指出了ViT的不足:在中小型数据集上的效果不如CNNs,并分析原因:
1. 输入图像通过硬分割的简单词语切分未能对相邻像素之间的边缘和线条等重要局部结构进行建模,导致训练样本效率低;
2. ViT的冗余注意力主干设计导致固定计算预算和有限训练样本的特征丰富度有限。
基于此,作者提出了他的模型 -- Tokens-To-Token Vi-sion Transformer (T2T-ViT)可以直接在imgNET上有比resNet更好的效果,主要变换如下:
1. 分层的 Tokens-to-Token (T2T) 转换,通过递归地将相邻的 Tokens 聚合到一个Token(Tokens-to-Token),可以对周围token表示的局部结构进行建模,减少token长度;
2. 经过实证研究后,受CNN架构设计的启发,一种用于ViT的具有深度窄结构的高效骨干网。
介绍
token指的是ViT中将原始图像或特征图切割的patches
作者通过实验,可视化了resNet和ViT的过程特征图,发现:
ResNet 的特征从底层 (conv1) 到中间层 (conv25) 逐步捕获所需的局部结构(边缘、线条、纹理等)。然而,ViT 的特征完全不同:结构信息建模不佳,而全局关系(例如,整只狗)被所有注意力块捕获。
这些观察表明,vanilla ViT 在直接将图像拆分为具有固定长度的token时忽略了局部结构。此外,我们发现 ViT 中的许多通道具有零值(在图中以红色突出显示),这意味着 ViT 的主干不如 ResNet 高效,并且在训练样本不足时提供有限的特征丰富度。
基于此研究,作者提出了他的改进策略:
1. 提出了一种渐进式词语切分(tokenization)模块用于替代ViT中简单词语切分,它将相邻的tokens聚合到一个token,即tokens to token(注意复数和单数变化),它可以对周围tokens的局部结构信息进行建模并减少迭代的token长度。<