Transformer 模型最初由 Vaswani 等人在 2017 年提出,是一种基于自注意力机制的深度学习模型。它在自然语言处理(NLP)领域取得了巨大成功,并且也逐渐被应用到计算机视觉任务中。以下是两种在计算机视觉领域中非常重要的 Transformer 模型:Vision Transformer(ViT)和 Swin Transformer。
Vision Transformer (ViT)
Vision Transformer 是一种将 Transformer 直接应用于图像分类任务的模型,由 Dosovitskiy 等人在 2020 年提出。其主要思想是将图像分割成若干个小块(patch),然后将这些小块作为序列输入到 Transformer 模型中进行处理。
工作原理
-
图像分块:将输入图像 ( x \in \mathbb{R}^{H \times W \times C} ) 分割成若干个大小为 ( P \times P ) 的小块,每个小块被展平为一个向量。这样,每个图像被转换为一个序列 ( {x_p^1, x_p^2, …, x_p^N} ),其中 ( N = \frac{HW}{P^2} )。
-
线性投影:将每个小块通过线性层投影到固定维度的特征空间,得到 ( N ) 个特征向量。
-
位置编码:为每个特征向量添加位置信息,使用可学习的位置编码。
-
Transformer 编码器:将带有位置信息的特征向量序列输入到标准的 Transformer