机器学习与模式识别 第十六章 Transformers 考点压缩

📅 2026/7/5 14:39:59 👁️ 阅读次数 📝 编程学习
机器学习与模式识别 第十六章 Transformers 考点压缩

第十六章:Transformers — 知识点笔记

综合来源:Lecture 16 PDF(68页)、课堂笔记(CSDN)


占位图

16.1 从MLP到CNN到Attention

MLP的局限

  • 每像素独立参数→P2P^2P2参数量→参数爆炸
  • 固定输入大小→稍大图像需全新模型

CNN的贡献与局限

优势局限
权重共享→参数高效局部感受野→高层才有全局上下文
平移不变性归纳偏置卷积核感受野逐层增长→需很深
支持可变输入尺寸

核心需求

需要一种能高效建模所有token之间关系的架构 →Attention机制


16.2 Attention机制 ⭐⭐⭐

从平均池化到加权平均

平均池化Yn=Xn+1N∑iVi\mathbf{Y}_n = \mathbf{X}_n + \frac{1}{N}\sum_i \mathbf{V}_iYn=Xn+N1iVi

  • 问题:所有上下文同等重要→不相关token也是等权重

Attention(加权平均)
Yn=Xn+∑iαniVi,∑iαni=1,αni≥0\mathbf{Y}_n = \mathbf{X}_n + \sum_i \alpha_{ni} \mathbf{V}_i, \quad \sum_i \alpha_{ni}=1, \alpha_{ni}\geq 0Yn=Xn+iαniVi,iαni=1,αni0

  • αni\alpha_{ni}αni:token i对token n的注意力权重

16.3 QKV与自注意力 ⭐⭐⭐

三个投影矩阵

矩阵公式含义
V(Value)V=XW(V)\mathbf{V} = \mathbf{X}W^{(V)}V=XW(V)提取的"内容/上下文"
K(Key)K=XW(K)\mathbf{K} = \mathbf{X}W^{(K)}K=XW(K)"被查询"的键
Q(Query)Q=XW(Q)\mathbf{Q} = \mathbf{X}W^{(Q)}Q=XW(Q)"发起查询"的查询

为什么分开K和Q?

  • 相关性关系不对称:bank关注river,但river不一定关注bank
  • 分离KQ允许非对称查询

Scaled Dot-Product Attention ⭐

Z=QKT(内积矩阵,N×N)\mathbf{Z} = \mathbf{Q}\mathbf{K}^T \quad \text{(内积矩阵,$N\times N$)}Z=QKT(内积矩阵,N×N

α=SoftMax(ZDk)\boldsymbol{\alpha} = \text{SoftMax}\left(\frac{\mathbf{Z}}{\sqrt{D_k}}\right)α=SoftMax(DkZ)

Attention(K,Q,V)=αV\text{Attention}(\mathbf{K},\mathbf{Q},\mathbf{V}) = \boldsymbol{\alpha}\mathbf{V}Attention(K,Q,V)=αV

Scaling因子Dk\sqrt{D_k}Dk:防止内积方差过大→Softmax梯度消失

自注意力特性

  • Attention层无参数(仅依赖K,Q,V)
  • 等变性:置换输入token→输出同样置换
  • O(N2)O(N^2)O(N2)复杂度(NNN=token数)

16.4 多头注意力 ⭐⭐

Multi-Head Attention(MHA)

Hh=Attention(Kh,Qh,Vh),A=Concat[H1,…,HH]W(O)H_h = \text{Attention}(\mathbf{K}_h, \mathbf{Q}_h, \mathbf{V}_h), \quad \mathbf{A} = \text{Concat}[H_1,\ldots,H_H]W^{(O)}Hh=Attention(Kh,Qh,Vh),A=Concat[H1,,HH]W(O)

  • HHH个并行"注意力头"→不同头捕捉不同关系
  • 每头通常用更小的Dv=D/HD_v = D/HDv=D/H

变体

类型K,VQ效率
MHA每头独立每头独立最低
GQA(分组查询)每头组共享每头独立中等
MQA(多查询)全部共享每头独立最高

大多数现代模型使用GQA(效率与表达力的折中)


16.5 Transformer层 ⭐

X → [Multi-Head Self-Attention → +Residual → LayerNorm → MLP(2层) → +Residual → LayerNorm] → Output

为什么需要MLP?

  • Attention输出=αV\boldsymbol{\alpha}\mathbf{V}αV(输入的线性组合)
  • MLP引入非线性激活→增强表达能力
  • 每个token独立通过MLP→token级前馈

关键设计

  • 残差连接+++→梯度直通
  • Layer Norm:每token独立归一化→支持并行
  • 参数共享:同层token间共享,跨层不共享
  • 支持可变token数(attention无固定尺寸要求)

16.6 位置编码 ⭐⭐

为什么需要?

  • Self-Attention是置换等变的→不感知token顺序
  • 文本/图像中位置信息至关重要

两种方法

方法原理优/缺点
Learned每个位置学一个ri\mathbf{r}_iri(GPT-1)表达力强;需预设最大N;相对距离难表达
Sinusoidalsin⁡/cos⁡\sin/\cossin/cos波组合编码任意长度;可查询相对位置(旋转矩阵特性)

Sinusoidal编码

rn,i={sin⁡(n/Li/D)i evencos⁡(n/L(i−1)/D)i oddr_{n,i} = \begin{cases} \sin(n/L^{i/D}) & i\text{ even} \\ \cos(n/L^{(i-1)/D}) & i\text{ odd} \end{cases}rn,i={sin(n/Li/D)cos(n/L(i1)/D)ieveniodd

  • 类似位置的连续二进制编码
  • 存在旋转矩阵RΔ\mathbf{R}_\DeltaRΔrn−Δ=RΔrn\mathbf{r}_{n-\Delta} = \mathbf{R}_\Delta \mathbf{r}_nrnΔ=RΔrn
  • 内积随距离衰减→天然的相对位置感知

位置编码的使用

x~n=xn+rn(加法,非拼接)\tilde{\mathbf{x}}_n = \mathbf{x}_n + \mathbf{r}_n \quad \text{(加法,非拼接)}x~n=xn+rn(加法,非拼接)

  • 高维空间中xn\mathbf{x}_nxnrn\mathbf{r}_nrn近似正交→不破坏原始语义

16.7 Encoder Transformer

架构(标准视觉/语言嵌入任务)

  1. 输入→Token Embeddings + Positional Encoding
  2. 重复LLL层Transformer Block
  3. 输出→Pooling/特殊[CLS]token→下游任务

特殊Token技巧

  • 添加可学习的[CLS] token→经过所有层后→其输出=整句/图的语义表示

笔记中的图片索引

序号图片内容描述来源位置
图1MLP vs CNN vs Transformer对比Lecture 16 第7-24页
图2QKV计算示意图Lecture 16 第39-40页
图3内积矩阵Z和注意力权重αLecture 16 第43-45页
图4MHA/MQA/GQA对比Lecture 16 第50页
图5Transformer层结构Lecture 16 第51页
图6Sinusoidal位置编码热力图Lecture 16 第64页

笔记整理时间:2026年6月30日