Transformer 网络
从 CNN 的局部性局限出发,理解注意力机制、词元(Token)、QKV 缩放点积注意力、自注意力与多头注意力,以及位置编码、Encoder-Decoder 架构和视觉 Transformer(ViT)。
🎯学习目标
- 理解 CNN 处理全局信息的局限,以及 Transformer 的引入动机;
- 掌握注意力机制、词元(Token)化与词元序列;
- 理解 Query-Key-Value 与缩放点积自注意力的计算;
- 掌握多头自注意力、Transformer Block(FFN + LayerNorm + 残差);
- 理解置换等变性与位置编码、因果(掩码)注意力;
- 比较 CNN 与 Transformer,了解 ViT 与大语言模型。
1CNN 的局限
CNN 的核心是局部性思想:图像不同局部区域可被安全地独立处理。但其局限是不擅长处理全局信息。
CNN 处理全局信息的两种方式:
- 方式1:增大卷积核尺寸;
- 方式2:堆叠更多层,扩大深层神经元的感受野。
2MLP / CNN / RNN 对比
| 架构 | 优点 | 缺点 |
|---|---|---|
| 全连接 MLP | 可全局信息传递 | 参数量大;无法处理变长;无平移/旋转不变性 |
| 卷积 CNN | 参数少(权值共享);平移不变;可并行 | 长程依赖建模弱(需堆叠层) |
| 循环 RNN | 处理任意长度序列;有时序记忆 | 并行化困难;长程依赖建模弱 |
3注意力机制
注意力是一种高效处理全局信息的策略:只聚焦于信号中对当前任务最显著的部分,而不是一次性接收整个场景。
在神经网络中,第 l 层的一组神经元会关注第 l−1 层的一组神经元,以决定如何响应。例如若"要求"报告图中任意汽车的颜色,它们就应把注意力导向上一层中代表汽车颜色的神经元。
4词元(Token)与词元化
词元(Token)是神经元的另一种组合形式,可视为封装的信息组,用一个列向量 t∈ℝd×1 表示(也叫代码向量)。Transformer 运行在词元阵列之上(矩阵 X 是词元的一维阵列)。
数据词元化
- 用一个 Token 代表图像中的每一个图像块(patch),整幅图对应一个词元阵列;
- 直接向量化:不涉及学习,只是数据重排(如 16×16 像素 RGB 拉成 768 维向量 x);
- 低维投影:引入可学习的嵌入矩阵 W,
z = W·x。
Transformer 对词元有两项核心操作:线性组合与逐点非线性变换(主流用 MLP,含可学习参数)。
5Query-Key-Value 注意力 ⭐
注意力层是一种特殊的词元线性组合——它是一个权重由数据动态决定的全连接层(也叫"动态池化":加权平均,权重随输入动态确定)。
- 权重矩阵 A 是输入数据的函数,告诉我们应关注(赋予较高权重)哪些词元;
- A 通常仅含非负值;A 实际确定了词元的组合权重。
QKV 三角色(点击翻转)
Query
查询 Q=WqXKey
键 K=WkXValue
值 V=WvXQKV 与缩放点积注意力
三个可学习映射矩阵把词元投影为 Query(查询)、Key(键)、Value(值)。Q 与 K 的匹配相似度决定权重,再对 V 加权求和:
Q = W_q·X , K = W_k·X , V = W_v·X
注意力权重 A = softmax( Q·Kᵀ / √dₖ ) ← 缩放点积(除以 √dₖ)
输出 = A·V ← 对 Value 加权求和
6自注意力(Self-Attention)
自注意力:Q、K、V 都来自同一组输入词元,让每个词元根据其他词元的上下文来优化自身表示。
- 词元 t₂ 关注代表"黑斑羚"其他部位的词元,借助上下文把 t₂ 优化为更抽象、捕捉"黑斑羚"标签的向量;
- 减少被关注图像块之间不共享的噪声,放大它们的共性。
7多头自注意力(Multi-Head Self-Attention)
映射矩阵 W_q、W_k、W_v 定义了一种"相似度概念"。单个自注意力层只能用一种方式衡量相似度。Transformer 使用多头自注意力:并行运行 k 个注意力层(头),各自学习不同的相似度/关注模式,再拼接。
8完整 Transformer 架构
一个 Transformer Block 由以下部分组成:
- 注意力层:跨词元混合信息;
- 前馈层(Feedforward / MLP):N 个逐位置网络,每个位置独立处理;同一层各位置权重相同,但不同层参数不同;
- 层归一化(Layer Norm)与残差连接。
整体常用 Encoder-Decoder 结构:Encoder 编码输入序列,Decoder 结合 Encoder 输出与已生成内容产生输出。
9置换等变性与位置编码 / 掩码注意力
置换等变(Permutation Equivariance)
纯注意力对词元的顺序不敏感(置换输入则输出同样置换)——这意味着它本身丢失了空间/顺序信息。
位置编码(Positional Encoding)
把一个表示位置的编码拼接到每个词元上,恢复位置信息。常用位置的周期性(正弦/余弦)表示:把坐标编码为一组不同频率正弦波在该位置的取值组成的向量。
sin(x) → 波长极短、频率极高
sin(x/Bⁱ) → 波长极长、频率很低
(多个频率组合可唯一表示每个位置)
因果(掩码)自注意力 Causal Self-Attention
用于语言模型/自回归生成:每个位置只能看到当前及之前的输入,不能看未来。
10CNN 与 Transformer 对比 · ViT
相同点
- 都做 Token 化(可写成卷积核大小与步长都等于 K 的卷积层);
- 都有 QKV / 1×1 卷积式投影(矩阵相乘 AB 可理解为 B 作为 1×1 卷积核对 A 的卷积);
- 都有逐 Token 的 MLP(线性层本质是 1×1 卷积 + 逐点非线性);
- 都用归一化、残差连接。
不同点
| 对比 | CNN | Transformer |
|---|---|---|
| 核心算子 | K×K 滤波器(相邻区域一起处理) | 尺寸为 1 的卷积 + 位置编码 + 注意力 |
| 感受野 | 固定形状、局部 | 注意力做全局操作,无视空间距离 |
| 空间信息 | 天然保留 | 靠位置编码补充(大卷积核会破坏置换不变性) |
Transformer 因上下文很长(1024 甚至 4096 词元),在条件生成、情感分类、问答、文本摘要等 NLP 任务上非常强大(许多任务可被建模为词预测,自监督并行训练)。
⭐重点例题
① 由输入 X 投影得到 Q=WqX, K=WkX, V=WvX
② 计算相似度分数 S = Q·Kᵀ / √dₖ (缩放)
③ 归一化为权重 A = softmax(S) (每行和为1,非负)
④ 加权求和输出 Output = A·V
关键点:权重 A 由数据动态决定;除以 √dₖ 防止点积过大导致 softmax 饱和、梯度消失。
🎯自测(点击展开)
CNN 在处理全局信息上的主要局限是什么?
注意力层和普通全连接层的关键区别?
QKV 各自的作用是什么?
缩放点积为什么要除以 √dₖ?
多头注意力相比单头有什么好处?
因果(掩码)注意力如何屏蔽未来?
📝强化题库
选择题点选即时判分;填空题输入后"检查"或"显示答案"。