视觉Transformer (四) ViT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

论文来源

paper: https://arxiv.org/abs/2010.11929
code: https://github.com/google-research/vision_transformer

Motivation

虽然Transformer架构已经成为自然语言处理任务的标准,但它在计算机视觉方面的应用仍然有限。
在视觉中,注意力要么与卷积网络一起应用,要么用于替换卷积网络的某些组件,同时保持它们的整体结构。
作者证明了这种对cnn的依赖是不必要的,直接应用于图像patch序列的纯transformer可以很好地执行图像分类任务。
当对大量数据进行预训练并转移到多个中型或小型图像基准(ImageNet, CIFAR-100, VTAB等)识别时,视觉Transformer(Vision Transformer, ViT)与先进的卷积网络相比获得了优异的结果,同时需要的计算资源大大减少。

方法

在这里插入图片描述

Vision Transformer (ViT)

对于输入2D图像 x ∈ R H × W × C x \in \mathbb R^{H \times W \times C} xRH×W×C H , W H, W H,W代表2D图像的分辨率, C C C代表通道个数。

(1) 首先将 x x x变换为一系列2Dpatch,并将这些patch 扁平化为向量,即 x p ∈ R N × ( P 2 ⋅ C ) \mathbf x_p \in \mathbb R^{N \times (P^2 \cdot C)} xpRN×(P2C),其中 ( P , P ) (P,P) (P,P)代表每个图像patch的分辨率, N = H W / P 2 N=HW/P^2 N=HW/P2代表 x x x划分为patch的个数,也充当了transformer输入的序列长度。

(2) 由于transfomer使用了固定长度为D的向量作为输入,故作者扁平化(flatten)了patch块并且利用了一个可训练的线性投影将其映射为D维向量。将投影的结果作为patch embedding。 E p o s \mathbf E_{pos} Epos代表postion embedding。作者采用了标准的1D position embedding,因为作者观察到采用2D的postion embedding 没有明显的性能提升。
此外,作者预先定义了可学习的embedding,将其嵌入到embedding patch中,即下述公式的 x c l a s s = z 0 0 \mathbf x_{class}=\mathbf z_0^0 xclass=z00
在这里插入图片描述
(3) 将 z 0 \mathbf z_0 z0向量序列通道Transfomer encoder,该encoder由多个multi-head self-attention和MLP block构成,每个block后面都采用了LayerNorm操作,并且每个block后面都添加了跨层连接操作。MLP由2层FC实现,并且带有一个GeLU激活函数。最后将其输出结果 z L 0 \mathbf z_L^0 zL0作为图像的表征 y \mathbf y y
在这里插入图片描述
MSN代表mult-head self-attention;L代表block个数。

(4) z L 0 \mathbf z_L^0 zL0紧接着通过分类head完成分类操作,该head有带有一个隐藏层的MLP实现。该MLP在pre-training时具有一个隐藏层,但是在fine-tuning时没有隐藏层。

A. 作者注意到Vision Transformer有较少的image-specific indctive bias,相比CNN的话;
B. transformer输入的图像序列可以是原始图像信息,也可以是经过CNN后的特征图信息。紧接着,将这些序列信息作用与patch embedding projection E \mathbf E E
C. 在应用transformer时,可能会存在fine-tuning图像和预训练图像空间分辨率不同的情况,这时候划分的图像patch个数必然不同,导致之前预训练的postion embedding失效。为此,作者首先在预训练的postion embedding上通过他们在原图上的位置进行2D插值,使其和现在fine-tuning图像数据对应上。
(Note that this resolution adjustment and patch extraction are the only points at which an inductive bias about the 2D structure of the images is manually injected into the Vision Transformer.)
问题:只用了transformer encoder,没有用到decoder吗?

结论

作者将transfomer应用到图像分类上,实验论证了数据量足够大时,该方法会产生比ResNet更高的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值