Vision Transformer(ViT)——图像识别的新篇章

Vision Transformer(ViT)——图像识别的新篇章

在这里插入图片描述

近年来,深度学习在计算机视觉领域取得了飞速发展,卷积神经网络(CNN)一直是图像识别任务的主力军。然而,CNN在捕获全局依赖关系和处理长距离特征方面存在一定局限。为了解决这些问题,研究人员将自然语言处理(NLP)领域的Transformer架构引入到计算机视觉中,提出了Vision Transformer(ViT)
本文将结合论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》,详细解析ViT的核心思想和模型结构。


一、ViT的核心思想

ViT的核心思想是将图像识别任务转化为序列建模问题。具体而言,ViT将输入图像划分为一系列固定大小的图像块(Patch),然后将这些图像块视为序列中的“词”,输入到Transformer中进行处理。这样,模型可以利用Transformer的自注意力机制,捕获图像中全局和长距离的依赖关系。


二、ViT的模型结构

在这里插入图片描述

ViT的模型结构主要包括以下几个部分:

1. 图像分块与嵌入(Patch Embedding)

  • 图像分块:将输入图像 x ∈ R H × W × C \mathbf{x} \in \mathbb{R}^{H \times W \times C} xRH×W×C 划分为 ( P × P ) (P \times P) (P×P) 的非重叠小块,共有 N = H W P 2 N = \frac{HW}{P^2} N=P2HW 个图像块。其中, H H H W W W 是图像的高度和宽度, C C C 是通道数, P P P 是每个图像块的尺寸。例如,对于 224 × 224 224 \times 224 224×224 的图像,选择 P = 16 P = 16 P=16,则得到 14 × 14 = 196 14 \times 14 = 196 14×14=196 个图像块。

  • 图像块嵌入:将每个图像块展平成一维向量,并通过一个线性投影映射到维度为 D D D 的特征空间。这个过程类似于将文本中的单词转换为词嵌入。

2. 位置编码(Positional Encoding)

由于Transformer对序列中元素的位置不敏感,为了保留图像块的位置信息,需要为每个图像块嵌入添加可学习的位置编码。位置编码 E p o s ∈ R ( N + 1 ) × D \mathbf{E}_{pos} \in \mathbb{R}^{(N+1) \times D} EposR(N+1)×D 与图像块嵌入相加,形成包含位置信息的输入序列。

3. 分类标记([CLS] Token)

在图像块序列的最前面添加一个可学习的分类标记 [\text{CLS}],其嵌入表示为 E [ CLS ] \mathbf{E}_{[\text{CLS}]} E[CLS]。这个标记用于汇总整个图像的信息,最终用于分类任务。

4. Transformer编码器

将包含 [\text{CLS}] 标记和位置编码的图像块序列输入到Transformer编码器中。Transformer编码器由 L L L 个相同的层堆叠而成,每层包含:

  • 多头自注意力机制(Multi-Head Self-Attention)

    自注意力机制通过计算序列中元素之间的相关性,捕获全局依赖关系。多头机制允许模型在不同的子空间中关注不同的特征。

  • 前馈神经网络(Feed-Forward Network)

    每个位置的表示经过两层全连接网络,增加模型的非线性表达能力。

在每个子层后面,都应用了残差连接层归一化(Layer Normalization),以稳定训练过程。

5. 输出与分类(MLP Head)

Transformer编码器的输出序列中的 [\text{CLS}] 标记的表示包含了整个图像的全局信息。将其输入到一个多层感知机(MLP)分类器中,经过非线性激活函数(如GELU)和全连接层,输出最终的分类结果。

公式及其解释在这里插入图片描述

公式 (1): 初始嵌入

z 0 = [ x class ; x p 1 E ; x p 2 E ; …   ; x p N E ] + E pos , z_0 = [x_{\text{class}}; x_p^1 \mathbf{E}; x_p^2 \mathbf{E}; \dots ; x_p^N \mathbf{E}] + \mathbf{E}_{\text{pos}}, z0=[xclass;xp1E;xp2E;;xpNE]+Epos,

  • 解释
    • ( x_{\text{class}} ) 是可学习的 分类标记,用于汇总图像块信息,并最终用于分类。
    • ( x_p^i ) 表示图像的第 (i) 个图像块,(i = 1, 2, \dots, N)。
    • ( \mathbf{E} ) 是线性投影,将每个图像块映射到维度为 (D) 的嵌入空间。
    • ( \mathbf{E}_{\text{pos}} ) 是位置编码,用于帮助模型保留图像块的空间位置信息。

这个公式描述了初始输入序列如何形成,包含了分类标记和图像块嵌入及其对应的位置信息。


公式 (2): 自注意力机制

z ℓ ′ = MSA ( LN ( z ℓ − 1 ) ) + z ℓ − 1 , ℓ = 1 , … , L , z'_\ell = \text{MSA}(\text{LN}(z_{\ell-1})) + z_{\ell-1}, \quad \ell = 1, \dots, L, z=MSA(LN(z1))+z1,=1,,L,

  • 解释
    • ( \text{MSA} ) 是 多头自注意力机制,它允许每个图像块(以及分类标记)通过计算注意力权重与其他所有图像块交互。
    • ( \text{LN} ) 是 层归一化,在自注意力机制之前应用,以稳定和加速模型训练。
    • ( z_{\ell-1} ) 是前一层的输出,作为当前层的输入。

这个公式描述了在每个Transformer层中,如何通过自注意力机制计算图像块间的关系,并通过残差连接更新输出。


公式 (3): 前馈神经网络

z ℓ = MLP ( LN ( z ℓ ′ ) ) + z ℓ ′ , ℓ = 1 , … , L , z_\ell = \text{MLP}(\text{LN}(z'_\ell)) + z'_\ell, \quad \ell = 1, \dots, L, z=MLP(LN(z))+z,=1,,L,

  • 解释
    • ( \text{MLP} ) 是 多层感知机,它由两层全连接网络组成,并使用非线性激活函数(GELU)对输入进行处理。
    • ( z’_\ell ) 是自注意力机制的输出,作为 MLP 的输入。

这个公式描述了在自注意力机制之后,如何通过多层感知机进一步处理嵌入,并通过残差连接来增强模型的学习能力。


公式 (4): 最终输出

y = LN ( z L 0 ) , y = \text{LN}(z_L^0), y=LN(zL0),

  • 解释
    • ( z_L^0 ) 是经过所有 Transformer 层后得到的分类标记的最终表示。
    • 最后的 层归一化 被应用于最终输出,准备用于分类任务。

这个公式描述了如何从分类标记中提取出最终的分类结果。


附加信息:
  • ( \mathbf{E} \in \mathbb{R}{(P2 \cdot C) \times D} ):表示图像块的嵌入矩阵,其中 (P) 是图像块的大小,(C) 是通道数,(D) 是嵌入维度。
  • ( \mathbf{E}_{\text{pos}} \in \mathbb{R}^{(N+1) \times D} ):表示所有图像块和分类标记的位置信息编码。

三、ViT的优势与特点

  • 全局依赖关系的建模

    ViT利用自注意力机制,可以直接捕获图像中任意位置之间的关系,而不受限于卷积核的感受野。

  • 参数高效性

    与同等规模的CNN相比,ViT的参数量更少,因为它省去了大量的卷积层。

  • 更好的可扩展性

    ViT在大规模数据集上训练时,性能提升显著,证明了其在处理海量数据时的优势。


四、实验结果

在这里插入图片描述

论文中,作者在ImageNet、ImageNet-21k和谷歌的JFT-300M等大规模数据集上对ViT进行了训练和评估。结果显示:

  • ViT在图像分类任务中达到了与最先进的CNN模型(如ResNet、EfficientNet)相媲美的性能。
  • 在大规模数据集上预训练,然后在较小的数据集上微调,可以显著提升模型的性能。
  • ViT在参数量和计算量相似的情况下,表现优于传统的CNN模型。

五、ViT的挑战与未来方向

  • 数据依赖性

    ViT在小规模数据集上直接训练时,性能不如CNN。这是因为Transformer缺乏CNN的归纳偏置,如平移不变性和局部连接。因此,ViT需要大量的数据进行预训练。

  • 模型改进

    为了在小数据集上取得更好的性能,未来的研究可以探索结合CNN和Transformer的混合模型,或者引入更强的归纳偏置。

  • 应用扩展

    ViT的成功为Transformer在计算机视觉中的应用打开了大门。未来,可以将其扩展到目标检测、语义分割、视频分析等任务中。


六、总结

Vision Transformer通过创新性地将Transformer架构应用于图像识别任务,突破了传统CNN的限制。在大规模数据集和强大的计算资源支持下,ViT展示了卓越的性能。尽管仍面临一些挑战,但ViT的出现为计算机视觉领域带来了新的思路和可能性。


七、参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值