Transformer 基础
Q1 [基础] 什么是自注意力机制?
Q: 请解释自注意力机制的概念及其工作原理。
A: 自注意力(Self-Attention)允许序列中的每个词元关注其他所有词元,使模型能够捕获任意距离的依赖关系。对于每个位置,该机制计算序列中所有值的加权和,权重反映了每个位置对当前位置的相关程度。
计算过程分三步。首先,每个输入嵌入被投影为三个向量:查询(Q)、键(K)和值(V)。其次,注意力分数为 Q 与所有 K 的点积,并除以键维度的平方根进行缩放,以防止 softmax 饱和(若不缩放,过大的点积会将 softmax 推入梯度接近零的区域):$\text{score} = QK^\top / \sqrt{d_k}$。第三,将分数通过 softmax 得到注意力权重,再计算值的加权和。
与循环网络相比,自注意力的核心优势在于所有位置并行处理,且模型可以以相同的计算代价直接访问序列中任意位置,非常适合捕获长距离依赖。
Q2 [基础] 自注意力中的查询、键、值分别代表什么?
Q: 注意力机制中的查询(Query)、键(Key)、值(Value)向量各代表什么含义?
A: 查询(Query)、键(Key)、值(Value)是输入嵌入的三个可学习线性投影,各自拥有独立的权重矩阵($W_Q$、$W_K$、$W_V$)。其直觉来源于信息检索:Query 代表当前位置在寻找什么,Key 代表每个位置能提供什么,Value 代表待检索的实际内容。
注意力权重通过将某一位置的 Query 与所有位置的 Key 进行比较来计算。Query 与 Key 的点积越大,说明该位置越相关,在 Value 加权和中的权重也越大,使模型能够对序列中最相关的部分进行选择性关注。
在实践中,权重矩阵通过端到端训练学习得到,无需对注意力模式进行任何显式监督,模型会自动学习对任务有用的 Query、Key 和 Value 编码方式。
Q3 [基础] 什么是多头注意力?为何使用它?
Q: 什么是多头注意力?它相比单头注意力有何优势?
A: 多头注意力(Multi-Head Attention)并行运行 $h$ 个独立的注意力操作(头),每个头都有其独立的 Q、K、V 投影,映射到较低维的子空间。所有头的输出拼接后,再通过一个最终的线性层投影回原始维度。
这样设计的动机在于:单头注意力只能表示位置间的一种关系。多头并行时,不同头可以同时关注不同方面——例如,一个头捕获句法依赖,另一个头捕获语义相似性;在视觉领域,一个头可能关注局部纹理,另一个头可能捕获全局结构。
通过将模型维度均匀分配给各个头,总计算量保持近似不变:若 $d_\text{model} = 512$、$h = 8$,则每个头在 $64$ 维子空间中运算,总参数量与单个全维度注意力相近。
Q4 [基础] 什么是位置编码?Transformer 为何需要它?
Q: Transformer 为何需要位置编码?原始论文如何实现它?
A: 自注意力具有排列不变性:若将输入词元打乱顺序,注意力权重会发生变化,但模型本身无法感知原始顺序。这与 RNN 有根本区别——RNN 顺序处理词元,通过循环结构天然编码位置信息。若缺少位置信息,Transformer 会将"猫坐在垫子上"与"垫子上坐在猫"视为等价输入。
原始 Transformer 论文(Vaswani et al., 2017)采用固定的正弦位置编码,将其与输入嵌入相加后送入第一层。对于位置 $\text{pos}$ 和维度 $i$:
$$PE(\text{pos},\, 2i) = \sin\!\left(\frac{\text{pos}}{10000^{2i/d_\text{model}}}\right)$$$$PE(\text{pos},\, 2i+1) = \cos\!\left(\frac{\text{pos}}{10000^{2i/d_\text{model}}}\right)$$不同频率的正弦/余弦函数交替使用,使模型能够通过相对位置进行注意力学习,因为 $PE(\text{pos}+k)$ 可表示为 $PE(\text{pos})$ 的线性函数。后续工作将固定编码替换为可学习位置嵌入(BERT、GPT),或引入相对位置编码(旋转位置嵌入 RoPE、ALiBi),以更好地泛化到训练时未见过的序列长度。
Q5 [基础] 原始 Transformer 的编码器与解码器有何区别?
Q: Transformer 架构中,编码器与解码器有何不同?
A: 编码器(Encoder)使用双向自注意力并行处理整个输入序列,每个位置可关注两个方向上的所有其他位置。每个编码器层由多头自注意力子层和前馈网络(FFN)子层组成,两者均包含残差连接和层归一化。编码器输出一系列包含完整上下文信息的表示。
解码器(Decoder)以自回归方式逐词生成输出序列。它包含三个子层:掩码自注意力层(阻止每个位置关注未来位置,保持自回归性质)、交叉注意力层(Query 来自解码器,Key 和 Value 来自编码器输出)、以及 FFN 层。交叉注意力使解码器在每一生成步骤中能够选择性地关注输入序列的相关部分。
现代实践中,许多架构仅使用编码器(如用于表示学习的 BERT)或仅使用解码器(如用于生成的 GPT),因为原始编解码器设计主要适用于机器翻译等序列到序列任务。
Q6 [进阶] 自注意力的计算复杂度如何?有哪些优化方法?
Q: 自注意力的时间与空间复杂度是多少?有哪些降低复杂度的方法?
A: 标准自注意力的时间复杂度为 $O(n^2 \cdot d)$,空间复杂度为 $O(n^2)$,其中 $n$ 为序列长度,$d$ 为模型维度。瓶颈在于注意力矩阵 $QK^\top$,其大小为 $n \times n$。1,000 个词元时尚可处理;10,000 个词元(常见于文档处理或高分辨率图像)时,二次方代价便难以承受。
目前已有多种方法降低此代价。稀疏注意力(Longformer、BigBird)限制每个词元仅关注部分位置——例如局部窗口加少数全局词元,将复杂度降低至 $O(n \cdot w)$($w$ 为窗口大小)。线性注意力近似(Performer、Linear Transformer)重新表达注意力计算,避免计算完整的 $n \times n$ 矩阵,达到 $O(n)$ 复杂度,代价是一定的近似误差。
FlashAttention(Dao et al., 2022)是一种硬件感知的精确注意力实现,以适合片上快速 SRAM 的分块方式计算注意力,避免反复从慢速 GPU HBM(全局内存)读写。它的时间复杂度仍为 $O(n^2)$,但内存复杂度为 $O(n)$,实际速度提升 $2$–$4\times$,已成为大多数现代框架的标准实现。对于视觉任务,Swin Transformer 通过在固定局部窗口内而非全局范围内计算注意力来解决二次方代价问题。
Q7 [进阶] Transformer 为何使用层归一化而非批归一化?
Q: Transformer 使用层归一化而非批归一化的原因是什么?
A: 批归一化(Batch Normalization)在批次维度上归一化,对每个特征计算小批次的均值和方差统计。这在计算机视觉固定尺寸输入(如图像分类)中效果良好,但在 Transformer 场景下存在两个问题:一是 NLP 中序列长度可变,难以定义一致的批次级统计量;二是在大模型训练中常见的小批次情况下,BN 统计量会变得嘈杂且不稳定。
层归一化(Layer Normalization)则在每个样本的特征维度上独立归一化,与批次大小无关。统计量按词元计算,对可变序列长度和批次大小均具有鲁棒性。归一化公式为:
$$\text{LN}(x) = \frac{x - \mu}{\sigma} \cdot \gamma + \beta$$其中 $\mu$ 和 $\sigma$ 在单个词元的 $d_\text{model}$ 个特征上计算,$\gamma$、$\beta$ 为可学习的缩放和平移参数。
一个重要的设计选择是在每个子层前还是后应用 LN(Pre-LN vs Post-LN)。原始 Transformer 使用 Post-LN(在残差相加后应用),深层网络中可能导致梯度不稳定。Pre-LN(在子层前应用,位于残差分支内部)已通过实验和理论证明能产生更稳定的梯度流,现为包括 GPT-2 在内的大多数现代 Transformer 实现的标准做法。
Q8 [进阶] 训练时 Transformer 为何比 RNN 并行度更高?
Q: 是什么架构特性使 Transformer 在训练时比 RNN 更易并行?
A: RNN 存在根本性的顺序依赖:隐藏状态 $h_t$ 由 $h_{t-1}$ 和当前输入 $x_t$ 计算得出。这意味着位置 $t$ 的计算必须等待位置 $t-1$ 完成,无论硬件如何都无法在时间步上并行。对于长度为 $n$ 的序列,无论硬件多强大,都存在 $n$ 个串行操作的关键路径。
Transformer 消除了这一依赖。在自注意力中,每个位置的输出仅取决于输入嵌入和可学习权重矩阵,而非任何之前计算的隐藏状态。这意味着所有 $n$ 个输出表示可通过矩阵乘法同时计算:
$$Q = XW_Q,\quad K = XW_K,\quad V = XW_V,\quad \text{output} = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V$$在现代 GPU 和 TPU 上,这些都是高度优化的批量矩阵运算。
需要注意的是,这种并行性仅在训练时成立。推理时,自回归 Transformer 解码器(GPT 风格)仍需逐词生成,因为每个新词元依赖所有已生成词元。投机解码(Speculative Decoding)、并行解码等技术试图在推理时恢复部分并行性;仅使用编码器的模型(如 BERT)在推理时仍完全并行。
视觉 Transformer(ViT)
Q9 [基础] ViT 中的图像块嵌入如何工作?
Q: ViT 如何将图像转换为词元序列?
A: ViT(Dosovitskiy et al., 2020)将输入图像划分为不重叠的固定大小图像块网格。对于 $224 \times 224$ 图像、块大小为 $16 \times 16$ 时,生成 $(224/16)^2 = 196$ 个图像块。每个图像块被展平为大小为 $16 \times 16 \times 3 = 768$(RGB 图像)的一维向量,再通过可学习权重矩阵线性投影到模型维度 $d_\text{model}$,此投影层即为图像块嵌入(Patch Embedding)。
可学习的一维位置嵌入被加到每个图像块嵌入上,以提供空间信息(因为 Transformer 本身具有排列不变性)。最终,196 个嵌入后的图像块序列加上预置的 [CLS] 词元,一同输入标准 Transformer 编码器。
从概念上讲,该设计将图像块视为 NLP 中单词的对应物:每个图像块是一个"词元",Transformer 通过自注意力学习图像块间的关系。块大小是关键超参数——块越小,词元越多,粒度越细,但序列长度呈二次方增长。
Q10 [基础] ViT 中 [CLS] 词元的作用是什么?
Q: [CLS] 词元在视觉 Transformer 中扮演什么角色?
A: [CLS](分类)词元是一个可学习嵌入,在图像块嵌入序列送入 Transformer 编码器前预置于序列开头,不对应任何图像块。序列经过所有 Transformer 层后,[CLS] 词元的输出表示被用作全局图像表示,送入分类头(线性层或 MLP)得到最终预测。
其设计逻辑在于:通过自注意力,[CLS] 词元可以关注所有图像块词元并聚合整幅图像的信息。由于 [CLS] 词元没有固定的空间含义,它在训练中可以自由学习如何在所有图像块中聚合与任务最相关的信息。
这一设计直接借鉴自 BERT(Devlin et al., 2019),在 BERT 中 [CLS] 词元同样用于句子级分类的信息聚合。另一种替代方案是对所有图像块词元的输出做全局平均池化,在某些设置中性能相当甚至更优,但 [CLS] 词元设计在 ViT 中保持为标准做法。
Q11 [基础] ViT 为何需要大量训练数据?
Q: 为什么 ViT 通常需要大规模数据集才能达到与 CNN 相当的性能?
A: CNN 在设计上内置了强烈的归纳偏置:卷积滤波器强制实施局部性(每个滤波器仅感知局部图像块),权重共享编码平移等变性。这些偏置与自然图像高度匹配,使 CNN 能从相对较小的数据集中学习到有效的视觉特征。
ViT 相比之下几乎没有归纳偏置。图像块嵌入是扁平且无结构的;自注意力机制平等对待所有图像块,必须从数据中学习相邻图像块通常比远距离图像块更相关——这是 CNN 架构无需学习就具备的能力。数据不足时,ViT 会过拟合,无法学到 CNN 可以免费获得的空间结构。
原始 ViT 论文清晰地展示了这一点:在 ImageNet-1k(120 万张图像)上训练的 ViT 性能不如 ResNet;但在 ImageNet-21k(1,400 万张)或 JFT-300M(3 亿张)上预训练后,ViT 达到或超过可比 CNN 的性能。这种数据依赖性是纯 ViT 模型的主要实际局限,并推动了数据高效变体(DeiT)和自监督预训练方法(MAE、DINO)的发展。
Q12 [基础] ViT 与 CNN 的核心区别是什么?
Q: ViT 与 CNN 在架构和行为上有哪些根本差异?
A: 最根本的区别在于感受野。CNN 中,早期层的每个神经元只感知一小块局部区域,感受野逐层增大。ViT 中,每个图像块词元从第一层起就能关注所有其他图像块词元——感受野从一开始就是全局的。这意味着 ViT 能捕获 CNN 只有在更深层才能建模的长距离空间依赖。
在归纳偏置方面,CNN 内置了局部性(滤波器在空间上局部化)、权重共享(同一滤波器在整幅图像上应用)和平移等变性。ViT 没有这些——它从数据中学习。这使 ViT 更灵活,但对数据的需求更大。
从实践角度看,当标注数据有限时,CNN 通常优于 ViT;而当数据规模较大(大数据集、大模型)时,ViT 变得具有竞争力甚至更优,且随模型规模的扩展更具可预测性,遵循类似语言模型的幂律缩放规律。此外,Transformer 架构更便于多模态扩展(如在统一序列中结合图像和文本词元),这使 ViT 成为现代视觉-语言模型的主流骨干网络。
Q13 [进阶] ViT 中的归纳偏置问题是什么?
Q: ViT 归纳偏置少于 CNN 意味着什么?为何重要?
A: 归纳偏置(Inductive Bias)是指架构对数据结构的假设,独立于从训练样本中学到的内容。CNN 编码了两种强烈的归纳偏置:局部性(卷积在局部空间邻域内运算,假设相邻像素更相关)和平移等变性(同一特征检测器在整幅图像上应用,假设特征无论出现在何处都有用)。
ViT 有意舍弃了这些偏置。图像块嵌入将每个图像块视为无序词元,自注意力在所有图像块对之间计算关系,不偏好空间上相邻的图像块。模型必须从数据中学习到相邻图像块通常比远距离图像块更相关——这是 CNN 架构免费提供的能力。
这带来两方面影响。负面方面,ViT 需要多得多的数据才能达到与 CNN 相同的性能,因为它无法借助架构捷径。正面方面,没有硬编码偏置意味着 ViT 更灵活:它可以学习 CNN 可能遗漏的非局部模式,同一架构只需改变词元化策略即可轻松应用于其他模态(文本、音频、点云)。混合架构——用 CNN 做早期局部特征提取、用 Transformer 做全局推理——试图兼得两者的优势。
Q14 [进阶] DeiT 如何解决 ViT 的数据依赖问题?
Q: DeiT 引入了哪些技术,使 ViT 类模型无需大型私有数据集也能高效训练?
A: DeiT(Data-efficient Image Transformers,Touvron et al., 2021)通过两大核心贡献——激进的数据增强和来自 CNN 教师的知识蒸馏——证明了 ViT 规模的模型仅凭 ImageNet-1k(无需 JFT 或 ImageNet-21k 预训练)即可具有竞争力。
在数据增强方面,DeiT 采用 RandAugment、Mixup、CutMix、随机擦除和重复增强的组合。这些技术显著扩展了有效训练分布,弥补了数据量不足的缺陷,帮助 ViT 在不过拟合的情况下学习鲁棒特征。
关键的架构创新是蒸馏词元(Distillation Token)。除 [CLS] 词元外,DeiT 在图像块序列前额外添加一个可学习蒸馏词元。训练时,该词元被监督以匹配预训练 CNN 教师(通常为 RegNet 或 EfficientNet)产生的硬标签,而 [CLS] 词元则以交叉熵损失使用真实标签进行监督。推理时,两个词元的预测被集成。蒸馏词元使学生 ViT 能够通过软监督信号隐式继承 CNN 教师的归纳偏置,无需进行明显的架构修改。
Q15 [进阶] Swin Transformer 的移位窗口注意力如何工作?
Q: Swin Transformer 解决了什么问题?其移位窗口机制如何工作?
A: Swin Transformer(Liu et al., 2021)解决了 ViT 的两个局限:全局注意力 $O(N^2)$ 的复杂度在高分辨率图像上难以承受,以及缺乏分层特征表示(ViT 产生单尺度特征图,而 CNN 产生对检测和分割任务有用的多尺度金字塔)。
Swin 将图像划分为固定大小的不重叠局部窗口(如 $7 \times 7$ 个图像块),仅在窗口内计算自注意力。若图像有 $N$ 个图像块、每个窗口有 $M$ 个图像块,复杂度从 $O(N^2)$ 降至 $O(N \cdot M)$,对于固定的 $M$,复杂度相对于图像尺寸是线性的。
“移位窗口"机制解决了固定窗口注意力无法实现跨窗口通信的问题。在交替的 Transformer 层中,Swin 将窗口划分在高度和宽度方向上各移动半个窗口大小。这使前一层的窗口在当前层跨越窗口边界,允许相邻窗口间的间接信息流。为保持效率,跨越图像边界的移位窗口通过循环移位和掩码技巧处理,而非填充。Swin 还使用图像块合并层(类似 CNN 池化),逐步降低空间分辨率并加倍通道维度,产生密集预测任务所需的分层特征图。
比较与综合
Q16 [基础] 何时选择 ViT 而非 CNN?
Q: 实践中,如何在基于 ViT 和基于 CNN 的架构之间做出选择?
A: 首要因素是数据集规模。当标注数据有限时(数万到数十万张图像),CNN 通常更受青睐,因为其归纳偏置使其能从较少样本中高效学习。ViT 模型缺乏这些偏置,在低数据场景下容易欠拟合或需要更多正则化。在 ImageNet-1k 及更小规模的数据集上,强 CNN 基线(EfficientNet、ConvNeXt)往往仍具竞争力。
当有大量标注数据或大规模预训练时,基于 ViT 的模型往往达到或超越 CNN,且扩展行为更可预测。对于需要全局上下文的任务——如推理图像中远距离区域的关系——基于 Transformer 的模型通常具有结构优势。
任务类型同样重要。对于密集预测任务(目标检测、语义分割),Swin Transformer 等分层架构通常优于纯 ViT,因为其产生的多尺度特征图正是检测和分割头所需的。对于纯图像分类或多模态任务(将图像与文本结合),ViT 往往是自然选择。在资源受限的场景下,轻量级 CNN 变体(MobileNet)在单位计算量的精度上可能仍优于紧凑 ViT 变体。
Q17 [基础] Transformer 在 NLP 与计算机视觉中的应用有何异同?
Q: Transformer 在 NLP 和 CV 中的应用有哪些关键异同?
A: 核心 Transformer 架构——多头注意力、前馈层、残差连接、层归一化——在两个领域完全相同。根本区别在于词元化方式:在 NLP 中,词元是单词或子词单元(如 BPE 或 WordPiece 分词),天然形成一维序列;在 CV 中,ViT 通过将二维图像切割为图像块、展平后线性投影来完成词元化——这种离散化方式不那么自然,会丢失部分空间结构。
位置编码在 NLP 中更为直接,因为序列天然是一维的。在 CV 中,必须编码二维位置信息,有多种方案:在展平图像块序列上使用一维可学习嵌入(原始 ViT)、二维正弦编码、或相对位置偏置(如 Swin Transformer)。选择方案会影响模型在不同图像分辨率上的泛化能力。
大规模预训练在两个领域都很重要,但模态有所不同。NLP 预训练使用掩码语言建模(BERT)或自回归下一词预测(GPT)。CV 预训练使用掩码图像建模(MAE 掩码 75% 的图像块并重建像素值)、对比学习(CLIP 对齐图像和文本表示)或自蒸馏(DINO)。NLP 中观察到的缩放规律——更多数据、更多参数、更多算力稳定提升性能——在 CV 中同样成立,尤其对 ViT 类模型。
Q18 [进阶] 混合 CNN + Transformer 架构的动机是什么?
Q: 为什么存在结合 CNN 和 Transformer 组件的混合架构?它们解决了什么问题?
A: 混合架构旨在结合 CNN 和 Transformer 的互补优势。CNN 擅长提取局部特征:卷积层以强烈的归纳偏置高效捕获边缘、纹理和形状信息,且数据效率高。Transformer 擅长建模全局关系和长距离依赖。将 CNN 用作特征提取器、Transformer 用作全局推理器,可以在两者单独使用时表现更好,尤其在训练数据有限时。
实践中,这通常意味着使用 CNN 层(或 ResNet 阶段等 CNN 块)处理原始图像并生成特征图,再在空间展平或池化的特征上应用 Transformer 层。由于 CNN 已经对图像进行了空间下采样,送入 Transformer 的序列长度大幅缩短,即使在高分辨率下也能使注意力计算可行。典型例子包括 CvT(卷积视觉 Transformer)、CoAtNet(卷积 + 注意力)和 EfficientFormer。
混合架构还能隐式继承 CNN 的归纳偏置:因为 CNN 已在其特征中学习了局部性和平移等变性,Transformer 无需从头重新发现这些规律。这使混合模型比纯 ViT 更具数据效率,同时保留了 Transformer 的全局建模能力。随着纯 ViT 模型通过更好的训练方案和更大数据集不断改进,混合与纯 Transformer 方案的差距已经缩小,但在算力和数据受限的场景下,混合架构仍具实际价值。
Q19 [进阶] 自注意力有哪些局限性?
Q: 自注意力机制的主要局限或弱点是什么?
A: 最显著的局限是计算复杂度与序列长度呈二次方关系。计算注意力矩阵需要 $O(n^2)$ 的运算量和 $O(n^2)$ 的内存,对于长序列(NLP 中的长文档、CV 中的高分辨率图像)会成为瓶颈。近似或稀疏注意力方法可以降低复杂度,但往往以精度换效率,或需要专门的硬件内核(如 FlashAttention)才能实用。
自注意力缺乏内在的局部性或空间结构。这在某种程度上是优势(从第一层起就有全局感受野),但在低数据场景中也是劣势——若有空间归纳偏置将有助于泛化。模型必须从数据中学习相邻图像块相关——而卷积层天然就能提供这一信息。
位置编码的泛化能力是另一局限。标准正弦或可学习位置嵌入不能自然泛化到训练时未见过的序列长度。对于 NLP,这意味着模型在长文档上可能性能下降;对于 CV,在 $224 \times 224$ 图像上训练的模型可能无法直接迁移到 $512 \times 512$ 推理。旋转位置嵌入(RoPE)和 ALiBi 等方案提供了更好的长度泛化能力,但增加了实现复杂度。
此外,自注意力的可解释性存在挑战。注意力权重有时被用作解释,但研究表明注意力权重并不可靠地对应特征重要性,使机制层面的可解释性分析较为困难。
Q20 [进阶] 大规模预训练如何影响 ViT 的性能?
Q: 预训练数据集规模和自监督预训练如何影响 ViT?
A: ViT 的性能随预训练数据规模强烈且可预测地提升。原始 ViT 论文表明,在 JFT-300M(3 亿张图像)上预训练的 ViT-L/16 显著优于在 ImageNet-21k(1,400 万张)上预训练的同等模型,后者又明显优于仅在 ImageNet-1k 上训练的版本。这一缩放行为比 CNN 更为显著,表明 Transformer 架构具有更强的能力来吸收和利用大规模数据集。
自监督预训练已成为 ViT 的研究重点。MAE(掩码自编码器,He et al., 2022)采用简单的预训练任务:随机遮盖 75% 的图像块,训练模型在像素级重建被遮盖的图像块。关键在于,编码器仅处理可见的 25% 图像块(大幅降低计算量),轻量级解码器重建完整图像。MAE 预训练的 ViT 模型在下游任务中迁移效果强劲,并可高效扩展至极大模型规模(参数量达 6.32 亿的 ViT-H)。
DINO(Caron et al., 2021)使用自监督知识蒸馏:训练学生 ViT 在同一图像的不同增强视图上匹配动量更新的教师 ViT 的输出,全程无需标签。DINO 特征展现出令人瞩目的特性——其生成的注意力图可以在无任何分割监督的情况下语义性地分割对象,并可有效迁移到图像检索和视频分割等任务。这些自监督方法降低了 ViT 对大型标注数据集的依赖,使得无需 JFT 规模私有标注数据即可进行 ViT 预训练。
快速参考
| # | 难度 | 主题 | 章节 |
|---|---|---|---|
| Q1 | 基础 | 自注意力机制 | Transformer 基础 |
| Q2 | 基础 | 查询、键、值 | Transformer 基础 |
| Q3 | 基础 | 多头注意力 | Transformer 基础 |
| Q4 | 基础 | 位置编码 | Transformer 基础 |
| Q5 | 基础 | 编码器与解码器 | Transformer 基础 |
| Q6 | 进阶 | 注意力复杂度与优化 | Transformer 基础 |
| Q7 | 进阶 | 层归一化与批归一化 | Transformer 基础 |
| Q8 | 进阶 | Transformer 与 RNN 的并行性 | Transformer 基础 |
| Q9 | 基础 | 图像块嵌入 | 视觉 Transformer(ViT) |
| Q10 | 基础 | [CLS] 词元 | 视觉 Transformer(ViT) |
| Q11 | 基础 | ViT 的数据需求 | 视觉 Transformer(ViT) |
| Q12 | 基础 | ViT 与 CNN 的核心区别 | 视觉 Transformer(ViT) |
| Q13 | 进阶 | ViT 中的归纳偏置 | 视觉 Transformer(ViT) |
| Q14 | 进阶 | DeiT:数据高效训练 | 视觉 Transformer(ViT) |
| Q15 | 进阶 | Swin Transformer 移位窗口 | 视觉 Transformer(ViT) |
| Q16 | 基础 | 何时选择 ViT 与 CNN | 比较与综合 |
| Q17 | 基础 | Transformer 在 NLP 与 CV 中的应用 | 比较与综合 |
| Q18 | 进阶 | 混合 CNN + Transformer | 比较与综合 |
| Q19 | 进阶 | 自注意力的局限性 | 比较与综合 |
| Q20 | 进阶 | ViT 的大规模预训练 | 比较与综合 |
参考文献
- Vaswani et al., Attention Is All You Need (2017)
- Dosovitskiy et al., An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (2020)
- Touvron et al., Training data-efficient image transformers & distillation through attention (DeiT, 2021)
- Liu et al., Swin Transformer: Hierarchical Vision Transformer using Shifted Windows (2021)
- He et al., Masked Autoencoders Are Scalable Vision Learners (MAE, 2022)
- Caron et al., Emerging Properties in Self-Supervised Vision Transformers (DINO, 2021)