An Image is Worth More Than 16×16 Patches: Exploring Transformers on Individual Pixels

总结

没有引入新的方法:文章并没有提出新的计算机视觉模型,而是对现有的 Vision Transformer 进行了实验和研究。

局部性归纳偏差的质疑:研究发现,通过直接将每个单独的像素作为 Transformer 的标记,而非使用 16×16 的补丁,仍能在视觉任务中获得强大的结果。这挑战了传统视觉任务需要局部性归纳偏差的假设。

Pixel Transformer (PiT):该工作提出了一种新的视觉 Transformer 变体,称为 Pixel Transformer (PiT),其主要区别在于它完全去除了局部性归纳偏差。它直接操作像素级别的数据,而不是通过补丁操作图像。

在多任务中的表现

  • 对象分类的监督学习:PiT 在 CIFAR-100 和 ImageNet 数据集上表现良好,甚至超过了传统的 Vision Transformer (ViT)。
  • 自监督学习:使用掩码自动编码器 (MAE) 进行自监督学习,PiT 展示了比 ViT 更好的扩展性。
  • 图像生成:在图像生成任务中,PiT 也表现出与扩散模型 (Diffusion Model) 相似的高质量生成结果。

局部性偏差的对比实验:通过对 ViT 架构中补丁化和位置嵌入的局部性设计进行研究,尽管去除局部性偏差会带来一些性能下降,但 Transformer 的性能在去除局部性后仍然非常强大。

效率的权衡:PiT 的计算复杂度更高,因为直接操作像素会导致更长的序列长度,这带来了计算上的挑战。虽然 PiT 证明了局部性不是模型设计的必要条件,但补丁化仍然是实用性和计算效率之间的折衷方案。


Abstract

这项工作没有引入新的方法。相反,我们提出了一个有趣的发现,质疑归纳偏差的必要性——现代计算机视觉架构中的局部性。具体来说,我们发现 vanilla Transformers 可以通过直接将每个单独的像素视为令牌并实现高性能结果来操作。这与 Vision Transformer 中流行的设计有很大不同,后者将 ConvNets 的归纳偏差维持到局部邻域(例如,将每个 16×16 补丁视为令牌)。我们主要展示了像素作为令牌在计算机视觉中三个经过充分研究的任务的有效性:对象分类的监督学习、通过掩码自动编码的自监督学习和使用扩散模型的图像生成。尽管直接对单个像素进行操作在计算上不太实用,但我们相信在为计算机视觉设计下一代神经架构时,社区必须意识到这一令人惊讶的知识。

1 Introduction

深度学习革命可以被描述为计算机视觉归纳偏差的革命。以前在学习发生在手工制作的特征之上,例如 [16, 46] 中描述的特征,这些特征编码了有关特定任务有用模式和结构的预构思概念。相比之下,现代特征的偏差不再是预先确定的,而是通过使用预定义的模型架构从数据中直接学习来塑造的。这种范式转变的优势突出了减少特征偏差以创建更通用和更强大的系统的潜力,这些系统在广泛的视觉任务中表现出色。

除了特征之外,模型架构还具有归纳偏差。减少这些偏差不仅可以跨任务促进更大的统一,还可以促进跨数据模式的统一。Transformer 架构 [62] 是一个很好的例子。最初被开发用于处理自然语言,它的有效性随后被演示为图像[22]、点云[66]、代码[8]和许多其他类型数据。值得注意的是,与它在视觉中的前任相比——ConvNet[28,42],视觉转换器(ViT)[22]携带的图像特定的归纳偏差要少得多。尽管如此,这种偏差的初始优势很快就会被更多的数据(以及具有足够存储数据模式的能力的模型)抵消,最终成为防止 ConvNets 进一步缩放的限制 [22]。

在这里插入图片描述

表 1:视觉架构中的主要归纳偏差。ConvNet [28, 42] 所有三个——空间层次结构、平移等方差和局部性——相邻像素比距离较远的像素更相关。Vision Transformer (ViT)[22]去除了空间层次结构,减少了(但仍然保留了)平移等方差和局部性。我们使用像素转换器 (PiT) 通过简单地在单个像素上应用 Transformer 来研究完全去除局部性。它的效果出奇地好,具有挑战性的主流信念,即局部性是视觉架构的必要条件。

当然,ViT并不完全没有归纳偏差。它摆脱了 ConvNet 中的空间层次结构,并在普通架构中对多个尺度进行建模。然而,对于其他归纳偏差,去除只是半路:平移等方差仍然存在于其补丁投影层和所有中间块;和局部性——相邻像素比相距很远的像素更相关的概念——仍然存在于它的“补丁化”步骤中(表示 2D 网格上具有 16×16 补丁的图像)和位置嵌入(当手动设计时)。因此,出现了一个自然的问题:我们能否完全消除其余两个归纳偏差中的任何一个或两者。我们的工作旨在回答这个问题。

令人惊讶的是,我们发现局部性确实可以被删除。我们通过直接将每个单独的像素视为 Transformer 的标记并使用从头开始学习的位置嵌入来得出这一结论。通过这种方式,我们引入了关于图像二维网格结构的零先验。有趣的是,我们不是训练发散或陡峭的性能退化,而是从生成的架构中获得更好的结果。为了便于参考,我们将此 PiT 命名为 Pixel Transformer 的缩写。请注意,我们的目标不是将 PiT 作为一种替代 ViT 的方法,而是 PiT 运行良好的事实表明,更多的信号 Transformer 可以通过将图像视为单个像素的集合来捕获,而不是 16×16 补丁。这一发现挑战了传统的信念,即“局部性是视觉任务的基本归纳偏差”(见表 1)。

在主要论文中,我们通过三种不同的案例研究展示了 PiT 的有效性:(i)对象分类的监督学习,其中 CIFAR-100 [38] 由于其 32×32 输入大小用于我们的主要实验,但观察结果也可以很好地推广到 ImageNet [19]; (ii) 通过标准掩码自动编码 (MAE) [26] 对 CIFAR-100 的自监督学习进行预训练,并对分类进行微调; (iii) 使用扩散模型生成图像,我们遵循 Diffusion Transformer (DiT) [51] 的架构,并使用 VQGAN [24] 提供的潜在令牌空间在 ImageNet 上研究其像素变体。在所有三个案例中,我们发现 PiT 表现出合理的行为,并且比配备局部归纳偏差的基线获得了更好的质量。这一观察结果进一步推广到附录中的细粒度分类和深度估计任务。

作为相关研究,我们还研究了两个局部性设计(位置嵌入和补丁化)在 ImageNet 上的标准 ViT 架构中的重要性。对于位置嵌入,我们有三个选项:sin-cos [62]、learned 和 none——sin-cos 携带局部性偏差,而其他两个则没有。为了系统地“损坏”补丁化中的局部性偏差,我们在将输入划分为 256 像素(类似于 ViT 中的 16×16 补丁)标记之前执行像素排列。排列在图像之间是固定的,由多个步骤组成,这些步骤在距离阈值内交换像素对。我们的结果表明,补丁化强加了更强的局部性先验,并且(给定 PiT)平移等方差对于网络设计仍然是必不可少的。

诚然,PiT不像ViT那样实用,因为将每个像素视为一个令牌将导致序列长度比以前采用的图像要长得多。这尤其受到限制,因为 Transformers 中的自注意力操作需要二次计算。在实践中,补丁化仍然可以说是最有效的想法,以质量换取效率,局部性仍然有用。尽管如此,我们相信我们的调查提供了一个干净、令人信服的消息,即局部性不是模型设计的必要归纳偏差。我们相信这一发现将是探索下一代处理图像时社区知识不可或缺的一部分。

2 Related Work

Locality for images(图像的局部性).据我们所知,大多数现代视觉架构[28,50],包括那些旨在简化归纳偏差[22,60]的架构,在其设计中仍然保持局部性。深度学习之前手动设计的视觉特征也是局部偏差的。例如,SIFT[46]使用局部描述符来表示兴趣点;HOG[16]在局部对梯度强度进行归一化,以考虑光照和对比度的变化。有趣的是,有了这些特征,词袋模型 [12, 41] 很受欢迎——类似于我们工作中探索的像素集。

Locality beyond images.(图像之外的局部性)局部性的归纳偏差在对2D图像建模之外被广泛接受。对于文本,自然语言序列通常使用“标记器”[39,57]进行预处理,后者聚合数据集统计信息,将频繁出现的相邻字符分组到子词中。在 Transformer 之前,循环神经网络 [31, 47] 是此类数据的默认架构,它利用时间连通性逐步处理序列。对于不太结构化数据(例如点云 [6, 15]),现代网络 [52, 66] 将求助于各种采样和池化策略来提高它们对局部几何布局的敏感性。在图神经网络[56]中,边的节点通常被视为局部连接,信息通过这些连接传播到更远的节点。这样的设计使它们对于分析社交网络、分子结构等特别有用。

Other notable efforts.我们以粗略的时间顺序列出了四个努力,希望它可以从多个角度为我们的工作提供历史上下文:

  • 对于 ConvNets,已经进行了相关尝试来去除局部性。值得注意的是,[4] 用 ResNet [28] 中的 1×1 过滤器替换了所有空间卷积滤波器。它提供了更多的可解释性来理解ConvNet的决策过程,但没有像素间通信,由此产生的网络的性能要差得多。相反,我们的工作使用 Transformer,它本质上建立在集合操作上,SelfAttention 机制处理全对全通信;易于理解,我们获得了更好的结果。
  • 在 ViT 越来越受欢迎之前,iGPT [7] 提出在文本方面的成功之后直接在像素上预训练 Transformer [20, 53]。回想起来,iGPT 是一个无局部性的模型,用于自我监督的下一个(或掩码)像素预测。但是,尽管演示昂贵,但与 ImageNet 线性分类的简单对比预训练 [9] 相比,它的性能仍然很短。之后,ViT [23] 将局部性(例如,通过补丁化)重新引入架构中,在许多基准测试中取得了令人印象深刻的结果,包括 ImageNet。从那时起,社区已经以 16×16 的补丁移动为图像的默认标记。即使在今天,尚不清楚更高的分辨率或局部性是否是两者之间的关键微分器。我们的工作缩小了这种理解差距,指出分辨率是 ViT 的推动者,而不是系统分析的局部性。
  • Perceiver[34,35]是另一种直接在图像像素上运行的架构。旨在与模态无关,感知器设计了具有交叉注意模块的潜在 Transformer,以解决输入高维时的效率问题。然而,这种设计不像普通 Transformer 那样被广泛采用,它始终如一地证明了跨多个域的可扩展性 [5, 22]。通过 PiT,我们展示了 Transformer 确实可以直接与像素一起工作,并且鉴于 Self-Attention 实现的快速发展以处理海量序列长度(最多一百万个)[17, 44],即使计算所有像素,效率也可能不是一个关键瓶颈。
  • 我们的工作也可以被视为探索序列长度扩展到极端。它对图像的单个像素进行建模,并为文本[36]建模单个字符。更长的序列(或更高的分辨率)通常是有益的,如 [10, 32, 51] 所示。然而,它们都未能达到完全摆脱局部性的极端情况。

在这里插入图片描述

图 1:Pixel Transformer (PiT) 概述,用于研究局部性的作用。给定一个图像,我们简单地将其视为一组像素。此外,我们还使用了随机初始化和可学习的位置嵌入,没有任何关于 2D 结构的信息,因此从以前的工作(例如 ViT [23])中删除了剩余的局部归纳偏差。然后将这些表示输入到 Transformer 中,该 Transformer 在其交错的 Self-Attention 和 MLP 块中执行集操作(为清楚起见,仅显示每个操作之一)。我们通过三个案例研究展示了 PiT 的多功能性,涵盖了判别和生成任务。

3 Inductive Bias of Locality

在本节中,我们将深入讨论主流架构中局部性(或局部性)的归纳偏差。准确地说,局部性是相邻像素比距离较远的像素更相关的归纳偏差。我们涵盖了 ConvNets 和 ViT。

3.1 Locality in ConvNets

在 ConvNet 中,局部偏差反映在网络每一层的特征的感受野中。直观地说,感受野覆盖了计算特定特征所涉及的像素,对于 ConvNets,这些领域是局部的。具体来说,ConvNets 由几个层组成,每一层都包含使用内核(例如 7×7 或 3×3)或池化操作的卷积操作——这两者都是局部有偏差的。例如,第一层的感受野通常仅对应于一个小的局部窗口。随着网络的深入,该领域逐渐扩展,但窗口仍然是局部的,并以像素的位置为中心。

3.2 Locality in Vision Transformers

乍一看,Transformer 是无局部性的。这是因为大多数 Transformer 操作要么是全局的(例如,Self-Attention),要么是纯粹在每个单独的标记(例如 MLP)内。然而,仔细观察将揭示ViT[22]中的两个设计,这些设计仍然可以保留局部归纳偏差:补丁化和位置嵌入。

Locality in patchification.在ViT中,输入到Transformer块中的令牌是补丁,而不是像素。每个补丁由16×16像素组成,成为第一个投影层之后的基本操作单元。这意味着补丁内施加的计算量与补丁的数量有很大不同:16×16 邻域之外的信息只能通过 Self-Attention 传播,256 像素之间的信息总是联合处理为令牌。虽然在第一个 Self-Attention 块之后感受野变得全局,但在补丁化步骤中已经引入了对局部邻域的偏见。

Locality in position embedding.位置嵌入可以学习[22],或者在训练期间手动设计和固定。图像的自然选择是使用 2D sin-cos 嵌入 [10, 26],它从原始的 1D 嵌入 [62] 扩展。由于 sin-cos 函数是平滑的,它们倾向于引入嵌入空间中附近标记更相似的局部性偏差。其他设计的变体也是可能的并且已被探索 [22],但它们都可以携带有关图像 2D 网格结构的信息,这与没有对输入做出假设的学习位置嵌入不同。

当位置嵌入被插值时,局部性偏差也被利用[18,43]。通过双线性或双三次插值,使用空间接近的嵌入来生成当前位置的新嵌入,这也利用局部性作为先验。

与ConvNets相比,vit的设计对局部性的偏见要小得多。我们接下来通过完全删除这种偏差来进一步推动这一点。

4 Transformers on Pixels

我们密切遵循处理标记序列的标准 Transformer 编码器 [62]。特别是,我们将该架构直接应用于输入图像中具有可学习位置嵌入的无序像素集。这消除了 ViT [22] 中局部性的剩余归纳偏差,作为参考,我们将其命名为 Pixel Transformer(PiT,见图 1)。从概念上讲,PiT 可以看作是 ViT 的简化版本,具有 1×1 补丁而不是 16×16。

形式上,我们将输入序列表示为 X = (x1,…, xL) ∈ RL×d,其中 Li 是序列长度,d 是隐藏维度。Transformer 将输入序列 X 映射到表示序列 Z = (z1,…, zL) ∈ R L×d。架构是 N 层的堆栈,每层包含两个块:多头自注意力块和 MLP 块:

在这里插入图片描述

Pixels as tokens.计算机视觉到网络的典型输入是 RGB 值的图像,I ∈ R H×W ×3,其中 (H, W ) 是原始图像的大小。我们遵循一个简单的解决方案,并将 I 视为一组无序的像素 pl ∈ R^3。因此,PiT 只需通过线性投影层 f : R^3 → R^d 将每个像素投影到 d 维向量中,得到标记 X = (f (p1),…, f (pL))) 其中 L = H · W。我们用可学习的 [cls] 令牌 [20] 附加序列。此外,我们为每个位置学习了一个与内容无关的位置嵌入。然后将像素标记输入 Transformer 以生成表示集 Z。

在这里插入图片描述

PiT去除局部归纳偏差,在像素级是置换等变的。通过将单个像素直接视为标记,我们假设架构中没有空间关系,并让模型学习它。这与ConvNets中的卷积核设计或ViT[22]中基于补丁的标记化形成对比,后者基于像素的接近程度强制执行归纳偏差。在这方面,PiT 更通用——它可以自然地对任意大小的图像进行建模(不需要被步幅或补丁大小整除),甚至可以推广到不规则区域 [37]。

除了去除局部性外,使用每个像素作为一个单独的标记还有一个额外的好处。与将字符视为语言的标记类似,我们可以大大减少输入标记到 Transformer 的词汇量。具体来说,给定[0,255]范围内三个颜色通道的像素,词汇量最大为2553(因为像素采用离散整数值);然而,ViT中sizep×p的补丁标记可以导致高达255^3·p·p的词汇量。如果以非参数方式建模,这将严重遭受词汇表外的问题。

当然,PiT 也有缺点,最大的一个在计算上是昂贵的(甚至令人望而却步)来建模长序列。然而,随着处理大型语言模型(高达百万)的大量序列长度的技术的快速发展[17,44],我们完全有可能很快,我们可以直接在所有像素上训练PiTs(例如,ImageNet“only”上的标准224×224裁剪包含50,176像素)。因此,本文的目的是以较小的规模经验验证 PiT 的有效性和潜力——我们接下来这样做,并将实际部署的工程努力留到未来。

5 Experiments for PiT

在本节中,我们通过三个案例研究验证了 PiT 的有效性:监督学习、MAE 的自监督学习 [26]、DiT [51] 的图像生成。我们使用 PiT 的四个变体:Tiny (T)、Small (S)、Base (B) 和 Large (L),规格如表 1 所示。2. 除非另有说明,否则我们使用与基线相同配置的 ViT [23] 变体。总之,我们的实验表明,PiT 确实可以学习强视觉表示,而对局部性没有归纳偏差。

在这里插入图片描述

表 3:案例研究 #1(监督学习)的结果。从头开始学习,我们比较了 PiT 和 ViT [22](补丁大小为 2×2)。我们报告了 (a) CIFAR100 [38] 的结果:使用 32×32 输入,PiT 大大优于 ViT。请注意,我们的 ViT 基线已经得到了很好的优化,例如 [58] 在使用更大的模型从头开始训练时报告了 72.6%; (b) ImageNet [19]:使用针对 ViT 高度优化的训练管道 [26, 61],我们仍然观察到 PiT 的准确度增益。由于计算约束,我们使用 28×28 的输入大小(低于 [22, 61])。

5.1 Case Study #1: Supervised Learning

在这项研究中,我们从头开始训练和评估 PiT,无需任何预训练 [10, 26]。我们的基线是补丁大小为 2×2 的 ViT。

Datasets.我们使用两个数据集:CIFAR-100 [38],包含 100 个类别和 60K 图像,ImageNet [19] 与 1K 类和 1.28M 图像用于训练,50K 用于评估。虽然CIFAR-100由于其32 × 32的固有图像大小,适合于探索PiT的有效性,但ImageNet有更多的图像,这有助于我们进一步确认我们的发现。

Evaluation metrics.对于这两个数据集,我们在训练拆分上训练模型,并在 val 拆分上报告 top-1 (Acc@1) 和 top-5 (Acc@5) 准确度。

在这里插入图片描述

图2:ImageNet上PiT与ViT的两个趋势。由于 PiT 可以被视为补丁大小为 1×1 的 ViT,因此趋势 w.r.t. 补丁大小对我们的发现至关重要。在 (a) 中,我们改变 ViT-B 补丁大小,但保持序列长度固定(最后一个数据点相当于 PiT)——因此输入大小也有所不同。虽然 Acc@1 在开始时保持不变,但信息的大小或数量很快就会成为导致退化的主要因素,PiT 是最差的。另一方面,在 (b) 中,我们在保持输入大小不变的情况下改变 ViT-S 补丁大小。趋势是相反的——减少补丁大小总是有帮助的,最后一个点 (PiT) 是最好的。这两个趋势的并列给出了输入大小、补丁大小和序列长度之间关系的更完整的图景。

5.2 Case Study #2: Self-Supervised Learning

在这里插入图片描述

表 4:案例研究 #2(自我监督学习)的结果。我们在 CIFAR-100 上使用 PiT 和 ViT [22](补丁大小 2×2)进行 MAE 预训练 [26],然后使用监督进行微调。对于 (a) Tiny 和 (b) 小尺寸变体,预训练提高了性能。PiT-S 比 ViT-S 提供了更大的差距,这表明 PiT 可以更好地扩展。

5.3 Case Study #3: Image Generation

在这里插入图片描述

图 3:案例研究 #3(图像生成)的定性结果。这些256×256样本来自在ImageNet上训练的PiT-L,遵循与DiT[51]相同的架构设计和生成协议。2 PiT代包括精细特征,质量与具有局部性[51]的DiT代相当相似。

在这里插入图片描述

表 5:案例研究 #3(图像生成)的结果。我们使用来自 [21] 的原始评估套件的参考批次,并报告 5 个比较局部偏置 DiT-L/2 和 PiT-L 的指标。除了最后两行外,我们在生成过程(250 步)期间使用无分类器指导 [30](尺度 1.5)。最后一行来自 [51],而我们的基线明显更强(具有 DiT-L 的 8.90 FID [29],与 DiT-XL 和更长的训练相比为 10.67)。总体而言,我们的发现可以很好地推广到这个具有不同架构和不同输入表示的新任务。

6 Locality Designs in ViT

最后,我们通过重新审视 ViT 架构来完成我们调查的循环,并检查其两个与局部相关的设计的重要性:(i)位置嵌入和(ii)补丁化。

Experimental setup.我们使用VIT-B进行ImageNet监督分类。我们从 [26] 从头开始的训练配方中采用了完全相同的超参数、增强和其他训练细节。值得注意的是,图像被裁剪和调整大小为224×224,分为16×16个不重叠的补丁。

Position embedding.与 [10] 中的调查类似,我们从三个候选者中进行选择:sin-cos [62]、learned 和 none。第一个选项将局部性引入模型中,而其他两个则没有。结果总结如下:

在这里插入图片描述

我们的结论类似于 [10] 为自监督表示评估得出的结论:可学习的位置嵌入与固定的 sin-cos 嵌入不一致。令人失望的是,即使根本没有位置嵌入,我们观察到性能仅略有下降——与 sin-cos 相比,“无”仅差 1.5%。请注意,在没有位置嵌入的情况下,分类模型是完全排列不变的w.r.t.补丁,尽管不是w.r.t.像素)将接下来显示证据。

Patchification.接下来,我们使用可学习的位置嵌入和研究补丁化。为了系统地减少补丁化的局部性,我们的关键见解是相邻像素不应该长在同一个补丁中绑定。为此,我们在将结果序列深入到单独的标记之前执行像素级排列。每个令牌包含 256 个像素,与 16×16 补丁中的像素数量相同。排列是共享的,即对所有图像保持不变——包括用于测试的图像。

在这里插入图片描述

图 4:像素排列来研究 ViT 中补丁化的影响。我们在 δ 的汉明距离内交换像素并执行这个 T 次(δ = inf 表示没有距离约束)。说明是一个8×8图像,分为2×2补丁。在这里,我们展示了 T = 4 像素交换的排列(4 个双头箭头)。

排列在 T 步中执行,每个步骤将在距离阈值 δ ∈ [2, inf ] 内交换像素对(2×2 邻域内 2 表示,inf 表示可以交换任何像素对)。我们在 2D 图像网格上使用汉明距离。T 和 δ 控制图像的“损坏”程度——较大的 T 或 δ 表示对局部邻域的损坏更多,因此采取了更多的局部性偏差。图 4 说明了四种这样的排列。

图 5 说明了我们获得的结果。在表(左)中,我们在没有距离约束的情况下改变 T(即 δ = inf)。随着我们增加混洗像素对的数量,性能在开始时会缓慢退化(最多 10K)。然后我们随着我们进一步增加 T 而迅速恶化。在 T = 25K 时,Acc@1 下降到 57.2%,完整图像减少了 25.2%。请注意,总共有 224 × 224/2 = 25, 088 像素对,因此 T = 25K 表示几乎所有像素都远离其原始位置。图 5(右)显示了给定固定 T(10K 或 20K)的 δ 的影响。我们可以看到,当允许更远的像素交换(δ越大)时,性能就会受到更多伤害。当交换更多的像素对时,趋势更为显着(T = 20K)。

在这里插入图片描述

图 5:ImageNet 上 ViT-B 的像素排列结果。我们改变像素交换的数量 T(左)和像素交换的最大距离 δ(右)。当位置嵌入完全删除时,像素排列可以将准确率降低 25.2%(当交换 25K 对时),而相对较小的下降 (1.6%)。这些结果表明,与交换位置嵌入相比,像素排列对性能的影响要大得多。

总体而言,与改变位置嵌入相比,像素排列对 Acc@1 产生了更显着的影响,这表明补丁化对 ViT 的整体设计更为关键,并强调了我们完全删除补丁化的工作的价值。

Discussion.作为去除局部性的另一种方式,像素排列是高度破坏性的。另一方面,PiT 通过将单个像素视为标记,成功地消除了局部性。我们假设这是因为排列像素不仅会损害局部性偏差,而且还会损害其他归纳偏差——平移等方差。在 PiT 中,虽然局部性被完全删除,但 Transformer 权重仍然共享以保持平移等方差;但是通过混洗,这种归纳偏差也在很大程度上被删除。差异表明翻译等方差仍然很重要,不应被忽视,尤其是在局部性已经受到损害之后。

Translation equivariance 是一种归纳偏差(inductive bias),通常出现在卷积神经网络(CNN)中。它的含义是:如果输入的数据发生平移(translation),网络的输出会相应地平移,但不会发生其他变化。

在卷积神经网络中,卷积操作具有这种平移等变性。这意味着,如果你对输入图片进行平移,卷积层的输出会相应地平移,而输出特征的结构保持不变。这种特性使得 CNN 在处理图像数据时能够有效地捕捉局部特征,无论这些特征在图像中的具体位置如何。

这种归纳偏差非常适合于图像处理任务,因为在很多图像分类问题中,物体的类别不受其具体位置的影响,而是依赖于其局部特征。CNN 利用这一偏差,减少了模型学习的复杂度,使其不需要为每种可能的位置单独学习特征表示。

7 Conclusion and Limitations

通过我们的探索,我们已经证明 Transformer 可以直接将单个像素用作标记。这令人惊讶,因为它允许干净的、潜在的可扩展的架构,没有局部性——归纳偏差可能是视觉模型的基础。鉴于深度学习的精神,旨在通过数据驱动的可学习替代方案手动插入的先验替换,我们相信我们的发现对社区有很大的价值,尤其是在为 2D 图像领域设计下一代模型时,等等。

然而,我们目前演示的实用性和覆盖范围仍然有限。鉴于二次计算复杂度,PiT 更像是一种调查方法,而对于应用则较少。即使使用附录 C 中的附加任务,研究仍然不是全面的。尽管如此,我们相信这项工作已经发布了一个清晰、未经过滤的消息,即局部性不是基本的,并且补丁化只是一个有用的启发式方法,可以权衡效率和准确性。

论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》由谷歌团队发表于ICLR 2021,主要介绍了Vision Transformer (ViT) 的设计与性能。以下是关于该论文的一些重要引用: ### 关键概念概述 - **图像分割为Patch序列**:为了使Transformer能够处理图像数据,论文提出将图像划分为固定大小的块(patches)。这些块被线性映射为向量,并附加位置编码以保留空间信息[^2]。 - **减少归纳偏差**:相比于传统卷积神经网络(CNN),ViT通过直接处理图像patch序列的方式显著减少了图像特定的归纳偏差。这意味着模型更加灵活,能够在不同类型的图像任务中表现出更强的泛化能力[^3]。 - **预训练的重要性**:研究发现,在大规模数据集上进行预训练对于提升ViT的表现至关重要。即使是在较小的数据集上微调时,经过充分预训练的ViT也能达到甚至超过现有最佳卷积网络的效果[^4]。 - **计算效率高**:尽管Transformer架构通常被认为计算成本较高,但实验表明,当应用于适当规模的任务时,ViT所需的计算资源实际上低于许多先进的CNN模型。 ### 技术细节说明 下面是一段简单的Python代码实现如何将一张图片转换成适合输入给ViT模型的形式: ```python import numpy as np def split_image_into_patches(image, patch_size=16): height, width, channels = image.shape patches = [] for y in range(0, height, patch_size): for x in range(0, width, patch_size): patch = image[y:y+patch_size, x:x+patch_size] if patch.shape[:2] == (patch_size, patch_size): # Ensure full-sized patches only. patches.append(patch.flatten()) return np.array(patches) # Example usage with a dummy RGB image of size 224x224 pixels and 3 color channels. dummy_image = np.random.rand(224, 224, 3) image_patches = split_image_into_patches(dummy_image) print(f"Number of Patches Generated: {len(image_patches)}") ``` 此函数会把任意尺寸的RGB图像切割成一系列形状相同的补丁,准备作为后续嵌入层的输入源材料之一。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值