网络介绍Vision Transformer文章都采用了纯Transformer的结构,一般情况下除了patch embedding外,就不会再使用卷积了,相比于卷积本有的inductive bias(weight sharing & locality),脱离卷积层的Vision Transformer可尽情享受超大数据集带来的收益,但也相当于缺失了一部分的regularization,在Imagenet1k这样的mid-size dataset上增加了过拟合的风险。为了既能利用到Transformer强大的表征能力和对nonlocal interaction的模拟能力,也为了可以避免Transformer的过拟合风险、并有效地开发局部信息,我们以ConvNet的结构为基底,将Transformer in-place嵌入进卷积网络中,形成卷积层和Transformer交替提取特征的新结构(也可以看作是Hierarchical Vision Transformer中添加了卷积层)。为了验证这个思路,我们基础模型结构采用的都是ConvNet中最普遍的设计原则,使用的Tranformer也是“Attention is All You Need”中的原始结构,没有其他的修改。即使这样ConTNet也在图片分类、目标检测和分割上取得了不错的结果。
首先看一下模型结构,整个结构非常简单,沿用了之前ConvNet的经验,图片进入网络后先过7x7的卷积和MaxPooling进行下采样。整个网络分为4个stage,每个stage包含若干个相同的block。每个block中含有两层Transformer和一层3x3卷积,卷积也会按需对feature-map进行下采样和升高维度。在网络的末尾,全局平均池化和全连接层实现图片的分类。在利用Transformer上,我们的方式跟现在流行的Hierarchical Vision Transformer的使用方法类似。首先把patch切分成(w/n)*(h/n)个大小为n*n的patch,然后令Transformer在每个patch上进行滑窗,每滑到一个patch的位置上做patch to patch的映射,即最后输出的特征图与输入有相同的空间尺寸和维度。由于切分后的patch和patch之间是non-overlapping的,相比于整个网络都固定patch大小的操作,我们将每一个block中第一个Transformer的patch尺寸设为7,第二个的patch尺寸设为14,目的是为了增大产生内部交互的区域,增强网络对相对更global信息的提取能力。为了和不同的网络大小对比,我们调整网络的深度和宽度,设计了4个不同大小的ConTNet。