论文阅读笔记:Patches Are All You Need?
ICLR2022中正在openreview中的论文 https://openreview.net/pdf?id=TVHS5Y4dNvM Opensource: https://github.com/tmp-iclr/convmixer.
摘要
尽管CNN多年来一直是视觉任务的主导架构,但最近的实验表明,基于Transformer的模型,尤其是ViT,在某些环境下可能超过其性能。
然而,由于Transformer中Self-attention二次方运行时间,ViT需要使用patch将图像的一小块区域组合成单个输入特征,以便应用于较大的图像。这就提出了一个问题:ViTs的性能是由于其强大的Transformer架构,还是由于使用patch作为输入表示?
在本文中,我们为后者提供了一些证据:具体而言,我们提出了ConvMixer,这是一个极其简单的模型,类似于MLP-Mixer的思想,它直接对作为输入的patch进行操作,分离空间和通道的维度,并在整个网络中保持相同的大小和分辨率。然而,ConvMixer仅使用标准卷积来实现混合步骤。尽管它很简单,但我们发现,除了优于经典的视觉模型(如ResNet)外,ConvMixer在类似的参数量和数据集大小时优于ViT、MLP-Mixer及其一些变体。
1 简介
最近,基于Transformer模型的架构,例如ViT在许多此类任务中通常优于经典CNN架构,尤其是对于大型数据集。一个观点是,与在NLP中一样,Transformer成为CV领域的主导架构只是时间问题。然而,为了将Transformer应用于图像,必须改变表示方式:Transformer由于其二次方的复杂度不能在像素级别上天真地使用,一个折衷方案是首先将图像分割为多个“patches”,embedding它们,然后将Transformer encoder直接应用于这些patch token的集合。
一种观点认为,当数据集越来越大,CNN架构性能会陷入瓶颈,而Transformer的表示能力则能继续增强
在这项工作中,我们探讨的问题是,ViT的强大性是否更多地来自这种基于patches的表示,而不是来自transformer架构本身。我们开发了一种非常简单的卷积结构,我们称之为“ConvMixer”,因为它与最近提出的MLP-Mixer相似(Tolstikhin等人,2021年)。该体系结构在许多方面与Vision Transformer(和MLP Mixer)类似:它直接在patches上操作,在所有层中保持相同的分辨率和大小的表示,在连续层中不进行下采样,并且将“通道(channel-wise)Mixing”与“空间(spatial)Mixing”的信息分离。但与Vision Transformer和MLP Mixer不同,我们的体系结构仅通过标准卷积完成所有这些操作。
尽管它非常简单(仅需6行稠密的PyTorch代码,如上图),结果却优于“标准”计算机视觉模型,如相似参数量的ResNet和一些相应的ViT、MLP-Mix变体。这表明,至少在某种程度上,patches本身可能是“卓越”性能的最关键组件。我们相信这提供了一个强大的“Conv但基于patches”的baselines,并可以与更高级的体系结构进行比较。
2. ConvMixer
我们的模型称为ConvMixer,由一个patches的embedding层和一个完全卷积块的重复堆叠组成。我们保持了patches嵌入的空间结构,如图2所示。具有patch size
=
p
=p
=p和embedding dims
=
h
=h
=h的嵌入可以实现为与
c
i
n
c_in
ci?n个输入通道、
h
h
h个输出通道、内核kernel size
=
p
=p
=p和步长stride
=
p
=p
=p的卷积:
ConvMixer块本身由深度卷积(即分组卷积,分组数等于通道数h)和点卷积(即内核大小1×1)组成。对于深度卷积,ConvMixer在非常大的kernel size下工作得最好。每个卷积都有一个激活函数和最后的BatchNorm:
参数设计
ConvMixer的实例化取决于四个参数:(1)“宽度”或者说隐藏维度
h
h
h(即embedding的维度),(2)深度
d
d
d即ConvMixer层的重复次数,(3)控制模型内部分辨率的patch size
p
p
p,(4)卷积层的kernel size
k
k
k。我们将原始输入大小
n
n
n除以patch size
p
p
p作为内部分辨率;但是请注意,convMixer支持可变大小的输入。
动机
我们的架构基于Mixer的理念。特别地,我们选择了深度卷积来混合空间位置(spatial locations),选择了点卷积来混合通道位置(channel locations)。先前工作的一个关键思想是MLP和Self-Attention可以混合遥远的空间位置,也就是说,它们可以有任意大的感受野。因此,我们使用具有非常大的kernel size的卷积来混合遥远的空间位置。
虽然自我注意和MLP理论上更灵活,允许无限大的接受域和内容感知,但卷积非常适合视觉任务,并具有高效率的数据计算。通过使用这样一种标准操作,我们还可以窥见基于patches的表示本身带来的的增益,这与卷积网络的传统金字塔形逐步下采样设计形成了对比。
3. 相关工作
各向同性结构 ViT启发了“各向同性”架构的新范式,即在整个网络中具有相同大小和形状的架构,第一层使用面片嵌入。这些模型看起来类似于重复变压器编码器块(Vaswani等人,2017年),不同的操作取代了自我注意和MLP操作。例如,MLP混频器(Tolstikhin等人,2021年)用跨不同维度应用的MLP(即空间和通道位置混频器)取代了两者;ResMLP(Touvron等人,2021a)是这一主题的一个数据有效变体。CycleMLP(Chen et al.,2021)、gMLP(Liu et al.,2021)和vision permutator(Hou et al.,2021)用各种新操作替换一个或两个块。这些都相当出色,这通常归因于操作的新颖选择。然而,正如我们对ConvMixers的调查所表明的那样,这些工作可能会将新操作的效果与使用贴片嵌入以及由此产生的各向同性架构的效果混为一谈。
在ViT之前的一项研究调查了各向同性(或“等轴测”)移动网络,甚至用另一个名字实现了patch embedding。他们的架构只是简单地重复了一个各向同性的MobileNet v3块。他们确定了与我们的经验相匹配的补丁大小和精度之间的权衡,并训练了类似的性能模型。然而,他们的block比我们的block要复杂得多。
Patches Aren’t All You Need 有几篇论文通过用不同的干细胞替换标准贴片嵌入物来提高视觉转换器的性能:肖等人(2021年)和袁等人(2021a)使用标准卷积干细胞,而袁等人(2021b)反复结合附近的贴片嵌入物。然而,这将使用面片嵌入的e˙ect与添加卷积或类似的归纳偏差(如局部性)的e˙ect混为一谈。我们试图将重点放在补丁的使用上。
CNN meets VIT 许多实验都是为了将卷积网络的特性融入到VIT中,反之亦然。自我注意可以模拟卷积,并且可以初始化或正则化为类似卷积;其他工作只是向Transformer添加卷积运算,或包括下采样,以更像传统的金字塔形卷积网络。相反,自注意力或类似注意的操作可以补充或取代ResNet风格模型中的卷积。虽然所有这些尝试都以这样或那样的方式取得了成功,但它们与这项工作是正交的,这项工作的目的是通过以较少表现力的操作来展示大多数VIT所共有的架构的效果。
4. 结论
我们介绍了ConvMixers,这是一类非常简单的模型,它仅使用标准卷积独立混合面片嵌入的空间和通道位置。虽然我们的模型和实验都不是为了最大限度地提高精度或速度而设计的,但ConvMixer的性能优于Vision Transformer和MLP混合器,并且与ResNet、DeiTs和ResMLP具有竞争力。
我们提供的证据表明,越来越普遍的“各向同性”体系结构和简单的patch embedding干本身就是一个强大的深度学习模板。patch embedding允许同时进行所有下采样,从而立即降低内部分辨率,从而增加视觉感受野大小,从而更容易混合远距离空间信息。我们的标题虽然有些夸张,但指出了注意力并不是从语言处理到计算机视觉的唯一内容:标记化输入,即使用patch embedding,也是一个强大而重要的"外卖"。
虽然我们的模型不是最先进的,但我们发现其简单的patch-mixing设计令人信服。我们希望ConvMixer可以作为未来基于patch的体系结构的baselines。
Future work 我们乐观地认为,经过更长时间的训练、更多的正则化和超参数调整,具有更大patch 的更深层次的混频器可以在精度、参数和吞吐量之间达成理想的折衷。大内核深度卷积的低级优化可以显著提高吞吐量。类似地,对我们的体系结构进行一些小的增强,如添加瓶颈或更具表现力的分类器,可以用简单性换取性能。
|