ViT:视觉 Transformer

 


网络结构

Transformer 的优势:注意力机制相当于一个多标签检索系统,位置嵌入能知道每个单词的位置,而且适合并行。

尝试把 Transformer 迁移到视觉领域。

ViT 在 Transformer 基础上:

  • 输入:为了把图像空间序列化,引入了图片切分预处理、patch+位置嵌入
  • 主干:Transformer
  • 输出:MLP头及分类器

图片切分预处理:如输入图片大小为 224x224,将图片分为固定大小的patch(16x16),则每张图像会生成 224 ∗ 224 16 ∗ 16 = 196 个 p a t c h \frac{224 * 224}{16*16}=196个patch 1616224224=196patch ,把这些图像块摆成一行,即输入序列长度为196。


在图片块和 Transformer 之间,还有一个全连接层,对维度进行缩放。


patch+位置嵌入:给每个图像块,添加位置。


数学公式:

  • z 0 = [ x c l a s s ; x p 1 E ; x p 2 E ; ⋯   ; x p N E ] + E p o s , E ∈ R ( P 2 ⋅ C ) × D , E p o s ∈ R ( N + 1 ) × D (1) \begin{gathered} z_0 =[\mathbf{x}_{\mathrm{class}};\mathbf{x}_{p}^{1}\mathbf{E};\mathbf{x}_{p}^{2}\mathbf{E};\cdots;\mathbf{x}_{p}^{N}\mathbf{E}]+\mathbf{E}_{pos}, \mathbf{E}\in\mathbb{R}^{(P^{2}\cdot C)\times D},\mathbf{E}_{pos}\in\mathbb{R}^{(N+1)\times D} \text{(1)} \end{gathered} z0=[xclass;xp1E;xp2E;;xpNE]+Epos,ER(P2C)×D,EposR(N+1)×D(1)

z 0 z_0 z0输入图像进行编码 z 0 z_0 z0表示输入图像的嵌入向量。

x p ( 1 ) \mathbf{x}_{p}^{(1)} xp(1) 表示第一个图像块的嵌入向量, E \mathbf{E} E 是位置嵌入矩阵,用于将图像块的位置信息编码到嵌入向量中。

E pos \mathbf{E}_{\text{pos}} Epos 是位置编码矩阵,用于将位置信息添加到输入数据中。

x c l a s s \mathbf{x}_{\mathrm{class}} xclass向量用于解决图像分类问题,将整个图像的类别信息引入Transformer模型。

Transformer 编码器

计算出 z 0 z_0 z0 后,输入到 Transformer 编码器(没有用解码器):

输入部分:

  • Layer Norm:把 z 0 z_{0} z0 归一化,再 Q、K、V 分离。

  • 残差连接,减轻梯度消失、爆炸。

MSA:多头注意力,每个注意力头负责捕捉图像的不同局部信息,把图像中多个差异拿出来进行学习。

MLP 头

多层感知机(Multilayer Perceptron,MLP)是一种前馈神经网络:

MLP 分类头就是一个全连接层。

TA 的工作流程:

  • 接受编码器的输出
  • 先把 x c l a s s \mathbf{x}_{\mathrm{class}} xclass 提取出来
  • 再分类

ViT编码器的输出将是一个形状为(4, 16, 512)的张量。

  • 第一个维度4表示批次大小,即有4张输入图像。
  • 第二个维度16表示每张图像被分割为16个图像块。
  • 第三个维度512表示每个图像块的表示维度,即隐藏层的维度。

这个编码器输出可以包含输入图像的全局信息和局部信息的组合。

每个图像块的表示捕捉了该图像块的局部特征,而整个编码器输出则综合了所有图像块的信息,包括它们之间的关系,从而提供了更全局的图像信息。

CNN 和 Transformer

CNN擅长处理图像的局部特征,而ViT模型擅长处理图像的全局特征和整体类别信息。

选择CNN模型的情况:

  • 当任务关注图像的局部特征,比如纹理、形状、边缘等。
  • 当处理的图像较大,且局部特征在整体中仍然具有较大的重要性。
  • 当数据集较小,而且已经有了一些经典的CNN模型在类似任务上表现良好。

选择ViT模型的情况:

  • 当任务需要关注图像的全局特征和整体类别信息。
  • 当处理的图像相对较小,且全局结构和上下文信息对于任务很重要。
  • 当数据集较大,可以利用更强大的模型来提取全局信息和学习更复杂的特征。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值