Patches Are All You Need?
探究Patch Embedding在ViT上的作用,CNN是否可用该操作提升性能?
论文链接:https://openreview.net/pdf?id=TVHS5Y4dNvM
代码链接:https://github.com/tmp-iclr/convmixer
1、摘要
ViT的性能是由于Transformer架构本身的固有优势,还是至少部分归因于使用patch作为输入表示?文中提出了一些证据支持后者:具体来说,提出了ConvMixer,这是一种极其简单的模型,其本质类似于ViT和更基础的MLP-Mixer,它直接处理patch作为输入,分离空间和通道维度的混合,并在整个网络中保持相同大小和分辨率。然而,ConvMixer仅使用标准卷积来实现混合步骤。尽管其简单,实验展示了ConvMixer在相似参数量和数据集大小下,优于ViT、MLP-Mixer及其变体,并且在性能上超过了经典的视觉模型,如ResNet。
目录
2、关键问题
- 由于Transformer中使用的自注意力层的计算成本会随着图像中像素数量的平方增长,如果直接在像素级别应用,代价会过高,因此通常会将图像分割成多个“patch”,线性嵌入,然后直接对这些patch应用Transformer。
- 视觉Transformer的强大性能是否更多地源于patch-based表示,而非Transformer架构本身?
3、原理
A Simple Model: ConvMixer
提出的模型,称为ConvMixer,由一个patch嵌入层,随后是简单全卷积块的重复应用。如图2所示,保持patch嵌入的二维空间结构。使用patch大小为
p
p
p和嵌入维度为
h
h
h的patch嵌入,可以通过
c
c
c个输入通道的卷积实现,输出通道为
h
h
h,卷积核大小为
p
p
p,步长为
p
p
p:
KaTeX parse error: Expected 'EOF', got '_' at position 98: …p, \text{kernel_̲size}=p)}) + z_…
ConvMixer块本身包含深度卷积DWConv(即组卷积,组数等于通道数
h
h
h)随后是point-wise卷积(即
1
×
1
1 \times 1
1×1卷积)。在第3节将解释,ConvMixer在深度卷积中使用异常大的卷积核尺寸时效果最佳。每个卷积操作后都跟着激活函数和后激活的批归一化:
z
l
′
=
BN
(
σ
ConvDepthwise
(
z
l
−
1
)
)
+
z
l
−
1
(
2
)
z^{'}_{l} = \text{BN}(\sigma{\text{ConvDepthwise}(z_{l-1})}) + z_{l-1} \ (2)
zl′=BN(σConvDepthwise(zl−1))+zl−1 (2)
z l + 1 = BN ( σ ConvPointwise ( z l ) ) ( 3 ) z_{l+1} = \text{BN}(\sigma{\text{ConvPointwise}(z_l)}) \ (3) zl+1=BN(σConvPointwise(zl)) (3)
经过多次这样的块应用后,进行全局池化,得到一个大小为
h
h
h的特征向量,然后将其传递给softmax分类器。如图 3 所示,这是在 PyTorch 中实现 ConvMixer 的示例。
Design parameters. \ ConvMixer的实例化依赖于四个参数:
(1) "宽度"或隐藏维度 h h h(即嵌入块的维度);
(2) 深度 d d d,或 ConvMixer 层的重复次数;
(3) 控制模型内部分辨率的 p a t c h patch patch大小 p p p;
(4) 深度卷积层的内核大小 k k k。
根据隐藏维度 h h h和深度 d d d来命名ConvMixer,例如 C o n v M i x e r − h / d ConvMixer-h/d ConvMixer−h/d。文中将原始输入大小 n n n除以 p a t c h patch patch大小 p p p称为内部分辨率;然而,ConvMixer支持可变大小的输入。
Motivation. 架构基于Tolstikhin 等人(2021)提出的混合思想。具体来说,选择深度卷积来混合空间位置,点卷积来混合通道位置,以此分离通道和空间的混合。先前工作的关键点是,MLP和自注意力可以混合远处的空间位置,即它们可以具有任意大的感受野。因此,使用了具有异常大内核大小的卷积来混合远处的空间位置。虽然自注意力和MLP在理论上更灵活,能够实现大感受野和内容感知行为,但卷积的先验偏置非常适合视觉任务,且数据效率高。通过使用这种标准操作,还可以观察到patch表示本身与卷积网络中金字塔形、逐层下采样的传统设计相比的影响。
4、实验
Training setup.
主要在ImageNet-1k分类上评估ConvMixers,无需任何预训练或其他数据。将 ConvMixer 添加到 timm 框架中(Wightman,2019 年),并使用接近标准的设置对其进行训练:除了默认的timm增强之外,实验还使用了 RandAugment(Cubuk 等人,2020 年)、mixup(Zhang 等人,2017 年)、CutMix(Yun 等人,2019 年)、随机擦除(Zhong 等人,2020 年)和梯度范数剪裁。实验使用了AdamW(Loshchilov&Hutter,2018)优化器和一个简单的triangular learning rate策略。由于计算能力有限,在 ImageNet 上完全没有进行超参数调整,并且训练的epoch比竞争对手少。因此,所提模型可能过度或欠正则化,文章报告的精度可能低估了模型的能力。
Results.
具有 52M 参数的 ConvMixer-1536/20 在 ImageNet 上可以达到 81.4% 的Top-1准确率,而具有 21M 参数的 ConvMixer-768/32 可以达到 80.2%(见表 1)。更宽的 ConvMixer 似乎收敛在更少的 epoch 中,但对内存和计算都很依赖。它们也适用于大内核大小:当内核大小从
k
=
9
k = 9
k=9减小到
k
=
3
k = 3
k=3时,ConvMixer-1536/20的准确率损失了
≈
1
≈1%
≈1(我们在附录A和B中详细讨论了内核大小)。在实验中,具有较小patch的ConvMixers要好得多,类似于Sandler等人(2019);作者认为更大的补丁需要更深的 ConvMixer。除了将补丁大小从 7 个增加到 14 个之外,其他条件都保持不变,ConvMixer-1536/20 实现了 78.9% 的Top-1准确率,但速度提高了约 $4 \times $。实验用ReLU训练了一个模型,以证明在最近的各向同性模型中流行的GELU(Hendrycks&Gimpel,2016)是不必要的。
Comparisons.
所提模型和仅 ImageNet1k 的训练设置与最近的基于patch的模型(如 DeiT)非常相似(Touvron 等人,2020 年)。由于 ConvMixer 的简单性,作者专注于仅比较适用于 ImageNet-1k 设置的最基本的各向同性基于patch的架构,即 DeiT 和 ResMLP。为了与标准基线进行公平的比较,作者使用与 ConvMixer 完全相同的参数训练了 ResNets;虽然这种参数选择是次优的(Wightman 等人,2021 年),但对于 ConvMixer 来说也可能是次优的,因为作者没有进行超参数调整。
从表1和图1可以看出,ConvMixer在给定的参数下实现了具有竞争力的精度:ConvMixer-1536/20的性能优于ResNet-152和ResMLP-B24,尽管参数要少得多,并且可与DeiT-B竞争。ConvMixer-768/32 仅使用了 ResNet-152 的三分之一参数,但同样准确。请注意,与 ConvMixer 不同,DeiT 和 ResMLP 结果涉及超参数调优,当大量资源专门用于调优 ResNets 时,包括训练两倍的 epoch,它们的性能仅比同等大小的 ConvMixer 约高出 0.2%(Wightman 等人,2021 年)。然而,ConvMixer 的推理速度比竞争对手慢得多,这可能是因为它们的patch大小较小;超参数调整和优化可以缩小这一差距。有关更多讨论和比较,请参阅表 2 和附录 A.
CIFAR-10 Experiments.
作者还在 CIFAR-10 上进行了小规模的实验,其中 ConvMixers 以低至 0.7M 的参数实现了超过 96% 的准确度,证明了卷积归纳偏置的数据效率。这些实验的细节见附录B。
5、相关工作
Isotropic architectures. 视觉Transformer激发了一种新的“同质化”架构理念,即网络中各层的大小和形状保持一致,首层使用patch嵌入。这些模型类似于重复的Transformer编码器块(Vaswani et al., 2017),其中自注意力和MLP操作被不同的操作所替换。例如,MLP-Mixer(Tolstikhin et al., 2021)用跨不同维度(即空间和通道位置混合)的MLP替换两者;ResMLP(Touvron et al., 2021a)则是这一主题的数据效率变体。CycleMLP(Chen et al., 2021)、gMLP(Liu et al., 2021a)和视觉置换器(Hou et al., 2021)则用各种新颖操作替换一个或两个块。这些模型表现出色,通常归功于新颖操作的选择。相反,Melas-Kyriazi(2021)提出了基于MLP的同质化视觉模型,并推测patch嵌入可能是其性能的关键。ResMLP尝试用(小内核)卷积替换其线性交互层,表现出良好性能,但保留了基于MLP的跨通道层,并未进一步探索卷积。正如我们对ConvMixers的研究所示,这些工作可能混淆了新操作(如自注意力和MLP)的效果与patch嵌入使用以及由此产生的同质化架构的影响。
在视觉Transformer出现之前,已有研究探讨了同质化(或“等距”)的MobileNets(Sandler et al., 2019),甚至以另一种方式实现了patch嵌入。他们的架构简单地重复同质化的MobileNetv3块。他们发现了patch大小与准确性的权衡,这与我们的经验相符,并训练出了性能相近的模型(见附录A,表2)。然而,他们的块远比我们的复杂;我们的工作在于简洁性和动机。
Patches aren’t all you need. 一些论文通过替换标准patch嵌入以提高视觉Transformer的性能,如Xiao et al. (2021)和Yuan et al. (2021a)使用标准卷积茎,而Yuan et al. (2021b)则重复组合附近的patch嵌入。然而,这将patch嵌入的使用效果与添加卷积或类似归纳偏置(如局部性)的效果混为一谈。我们试图关注patch嵌入的使用。
CNNs meet ViTs. 许多努力试图将卷积网络的特性融入视觉Transformer,反之亦然。自注意力可以模拟卷积(Cordonnier et al., 2019),并可以初始化或正则化以类似卷积;其他工作则直接在Transformer中添加卷积操作(Dai et al., 2021;Guo et al., 2021),或包括下采样以更接近传统的金字塔形卷积网络(Wang et al., 2021)。相反,自注意力或类似注意力的操作可以补充或替代ResNet风格模型中的卷积(Bello et al., 2019;Ramachandran et al., 2019;Bello, 2021)。尽管这些尝试在某种程度上都取得了成功,但它们与我们的工作是独立的,我们的目标是强调大多数ViT共有的架构影响,通过展示它与表达能力较低的操作。
6、总结
文中介绍了ConvMixers,这是一种极其简单的模型,仅使用标准卷积就独立地对嵌入的patch的空间和通道位置进行混合。受ViT和MLP-Mixer大感受野的启发,使用大卷积核尺寸能显著提升性能。ConvMixers超越了Vision Transformer和MLP-Mixer,并与ResNets、DeiT和ResMLPs相当。
文中提供了证据,表明日益普遍的“同质化”架构,即简单的patch嵌入基础,本身就是深度学习的强大模板。patch嵌入允许所有下采样一次性完成,立即降低内部分辨率,从而增加有效感受野,使得混合远处空间信息更加容易。文中指出,注意力并非语言处理向计算机视觉的唯一输出:使用patch嵌入,即token化输入,同样是一种强大且重要的启示。
7、附录:可视化
在图4和图5中,分别可视化了
p
=
14
p = 14
p=14的 ConvMixer-1536/20 和
p
=
7
p = 7
p=7 的 ConvMixer-768/32 的patch embedding层的(完整)权重。与Sandler等人(2019)非常相似,该层由类似Gabor的过滤器以及“彩色球体”或粗糙边缘探测器组成。 过滤器似乎比 MLP-Mixer 学习的过滤器更有结构(Tolstikhin 等人,2021 年);与 MLP-Mixer 不同的是,从
p
=
14
p = 14
p=14 到
p
=
7
p = 7
p=7 的权重看起来大致相同:后者看起来只是前者的缩减采样版本。因此,目前尚不清楚为什么看到较大补丁的准确性会下降。然而,一些滤波器本质上看起来像噪声,可能表明需要更多的正则化或更长的训练,甚至需要更多的数据。归根结底,作者不能过多地解读这里所学的表征。图 6 绘制了 ConvMixer 连续层的隐藏卷积核。最初,内核似乎相对较小,但在后面的层中利用了它们允许的全尺寸;有一个清晰的特征层次结构,正如人们所期望的那样 标准卷积架构.有趣的是,Touvron 等人 (2021a) 对 ResMLP 看到了类似的效果,其中早期层看起来像小核卷积,而后期层则更加分散,尽管这些层由无约束矩阵乘法而不是卷积表示。