Advertisement

Transformer 视觉模型概述

阅读量:
  • Vision Transformer 模型

    • ViT 结构
    • ViT 特点
  • Swin Transformer 模型

    • 模型结构
      • W-MSA详解
  • 参考资料

Vision Transformer 模型

ViT:一张图片相当于十六分之一十六个单词:用于图像识别的缩放版本 是由Google团队于2020年提出的一种基于Transformer的图像分类方法。

在Transformer架构中,“ViT”的视觉模型地位与ResNet相似。因其模型结构简单且表现优异,并具有良好的扩展性(scalability),这使得其在计算机视觉领域应用中成为开创性成果。

ViT 结构

ViT 算法的整体结构如下图所示。

在这里插入图片描述

我们已知,在Transformer体系中,输入被定义为一个二维矩阵(N,D) ,其中N代表序列的长度维度而D则表示每个向量的空间+通道维度。基于此,在ViT算法框架下,首先要采用适当的方法将原始的H\times W\times C三维图像数据转换为(N,D)形式的二维输入矩阵。

ViT的具体实现如下:将输入图像划分为多个块,在这种情况下,每个图像的空间维度均为P^2\times C。因此,在分割后得到的每个区域包含了N = HW/P^2个这样的图像块。随后对分割后的图像块进行展平处理,则原始二维结构被转换为一个一维序列。这里提到的N被视为sequence序列的长度。

然而,在处理过程中发现一个问题:每个图像块的维度设定为 P^2\times C 无法满足后续所需的向量维度 D 的要求。鉴于此,我们需要对这些图像块进行嵌入操作以解决这一问题。具体而言,在嵌入操作中只需对原始的空间通道表示进行一次线性转换即可实现将维数压缩到所需的水平。

随后使用的编码器的行为与原始的Transformer架构完全一致。然而,在为了处理图像分类任务的需求下,在输入序列中加入了特定的一个token;这个特定的token对应的输出结果就是最终的分类预测。

上述对图像进行分块以及 Embedding 的具体方式如 下图红框所示。

在这里插入图片描述

ViT 特点

ViT 为了满足 Transformer 输入结构的要求而将整幅图像分割为小块,并将这些小块的编码序列输入到网络中。此外还采用类令牌方式进行分类预测。
ViT 的关键发现表明 当经过充分预训练后 其性能超越卷积神经网络 超越基于 transformer 缺少归纳偏差这一局限性 并在后续任务中展现出良好的迁移能力

Swin Transformer 模型

"Swin Transformer: 层次式视觉Transformer基于平移窗口的方法" 是微软亚洲研究院(MSRA)发布于 arXiv 上的一篇论文 [https://arxiv.org/pdf/2103.14030.pdf] ,该文中提出了一个新的Transformer架构方案即为Swin Transformer。

模型结构

在这里插入图片描述

通过观察上图可知, Swin 方法相较于 ViT 的主要区别体现在: 其模型的特征图呈现出明显的分层特性, 在特征深度逐步增加的过程中 (4 倍、8 倍和 16 倍的下采样), 其高与宽尺寸逐渐缩小。

在这里插入图片描述

右侧最后两个图展示了 Swim Transformer 的模块结构,在架构上与 ViT 相似,并对其进行了关键优化:将传统的自适应多头注意力机制(MSA)转化为扩展型多头注意力机制(W-MSA)。

左边展示的是 Swim 模型的整体流程:输入一个(H, W, 3)维度的彩色图像后首先要经历特征分割过程(Patch Partition) ,这一步骤使得特征空间降维至(W/4 × H/4 × 48)的空间;随后依次经历了四个阶段(每个阶段下面有x2、×6等子步骤),这些阶段在结构上高度相似且操作流程基本一致:宽度和高度均减半而通道数量翻倍。值得注意的是,在第一个主要阶段(Stage1)中采用了不同于传统方法的一体化线性嵌入模块(Linear Embedding)来进行数据处理

W-MSA详解

W-MSA 的全称是 Windows Multi-head Self-Attention ,相比而言 ,它增添了一个 Widnows 机制

ViT 网络中的 MSA 通过 Self-Attention 机制使每一个像素点都能与其他像素点进行内积计算以获取全局特征信息;然而由于每个像素点都需要与其他所有像素点交互导致了巨大的计算开销进而使得网络的整体运算效率明显下降

Swin-T通过将MSA分割为多个固定大小的Windows构建了W-MSA结构,在每对相邻Windows之间仅允许它们内部进行内积操作以获取信息,在这种机制下显著降低了计算复杂度并提升了网络运算效率。

全部评论 (0)

还没有任何评论哟~