深度学习知识体系总结

本文档系统性地梳理深度学习各领域的核心知识点,涵盖从基础理论到前沿技术的完整知识图谱。

目录

  1. 基础概念
  2. 神经网络基础
  3. 激活函数
  4. 损失函数
  5. 优化算法
  6. 正则化与归一化
  7. 卷积神经网络 (CNN)
  8. [循环神经网络 (RNN) 及其变体](#循环神经网络 (RNN) 及其变体)
  9. [注意力机制与 Transformer](#注意力机制与 Transformer)
  10. 生成模型
  11. 图神经网络 (GNN)
  12. 深度强化学习 (DRL)
  13. 自监督学习与对比学习
  14. 模型训练技巧
  15. 模型部署与优化
  16. 前沿技术与趋势
  17. 常用框架与工具
  18. 参考文献与资源

1. 基础概念

1.1 什么是深度学习

深度学习(Deep Learning)是机器学习的一个子集,基于具有多个隐藏层的人工神经网络。其核心思想是通过多层非线性变换,自动从数据中学习层次化的特征表示。

核心特征:

  • 层次化特征学习:底层学习简单特征(边缘、颜色),高层学习抽象语义特征
  • 端到端学习:从原始输入直接映射到输出,无需手工特征工程
  • 表示学习:自动发现检测或分类所需的表示

1.2 深度学习发展简史

时期 里程碑 关键贡献
1943 MCP 神经元模型 McCulloch & Pitts 提出第一个神经元数学模型
1958 感知机 (Perceptron) Rosenblatt 提出可学习的单层神经网络
1986 反向传播算法 Rumelhart, Hinton & Williams 推广 BP 算法
1998 LeNet-5 LeCun 提出卷积神经网络用于手写数字识别
2006 深度信念网络 Hinton 提出逐层预训练方法
2012 AlexNet Krizhevsky 等在 ImageNet 上取得突破性成果
2014 GAN Goodfellow 提出生成对抗网络
2015 ResNet 何恺明提出残差网络,解决深层网络退化问题
2017 Transformer Vaswani 等提出"Attention Is All You Need"
2018 BERT / GPT 预训练语言模型时代开启
2020 GPT-3 大规模语言模型的涌现能力
2022 ChatGPT / Stable Diffusion 生成式 AI 进入大众视野
2023-2025 GPT-4, Claude, Gemini 等 多模态大模型、推理能力持续突破

1.3 核心术语

术语 英文 解释
样本 Sample 数据集中的一个数据点
特征 Feature 输入数据的属性或维度
标签 Label / Target 监督学习中的目标输出
批次 Batch 一次前向/反向传播使用的样本集合
轮次 Epoch 完整遍历一次训练数据集
迭代 Iteration 处理一个 batch 的前向+反向传播
超参数 Hyperparameter 训练前设定的参数(学习率、层数等)
参数 Parameter 模型学习的权重和偏置
嵌入 Embedding 将离散对象映射到连续向量空间
潜在空间 Latent Space 数据的压缩表示空间

2. 神经网络基础

2.1 感知机 (Perceptron)

最简单的神经网络单元,由 Frank Rosenblatt 于 1958 年提出。

数学模型:

y = f ( w T x + b ) = f ( ∑ i = 1 n w i x i + b ) y = f(\mathbf{w}^T\mathbf{x} + b) = f\left(\sum_{i=1}^{n} w_i x_i + b\right) y=f(wTx+b)=f(i=1∑nwixi+b)

其中 f f f 为激活函数(早期使用阶跃函数)。

局限性: 单层感知机无法解决 XOR 等线性不可分问题,这一发现导致了第一次 AI 寒冬。

2.2 多层感知机 (MLP)

由输入层、隐藏层、输出层组成的全连接前馈网络。

结构:

复制代码
输入层 → 隐藏层1 → 隐藏层2 → ... → 输出层

关键特性:

  • 万能逼近定理:具有至少一个隐藏层(且使用非线性激活函数)的 MLP,只要有足够多的神经元,可以以任意精度逼近任意连续函数
  • 前向传播:逐层计算,信息从输入流向输出
  • 反向传播:通过链式法则计算损失对每个参数的梯度

2.3 前向传播 (Forward Propagation)

逐层计算神经网络的输出:

a ( l ) = f ( W ( l ) a ( l − 1 ) + b ( l ) ) \mathbf{a}^{(l)} = f(\mathbf{W}^{(l)}\mathbf{a}^{(l-1)} + \mathbf{b}^{(l)}) a(l)=f(W(l)a(l−1)+b(l))

其中:

  • a ( l ) \mathbf{a}^{(l)} a(l):第 l l l 层的激活值
  • W ( l ) \mathbf{W}^{(l)} W(l):第 l l l 层的权重矩阵
  • b ( l ) \mathbf{b}^{(l)} b(l):第 l l l 层的偏置向量
  • f f f:激活函数

2.4 反向传播 (Backpropagation)

反向传播是训练神经网络的核心算法,基于链式法则高效计算梯度。

核心步骤:

  1. 前向传播:计算各层激活值和最终输出
  2. 计算输出层误差
    δ ( L ) = ∇ a L ⊙ f ′ ( z ( L ) ) \delta^{(L)} = \nabla_{\mathbf{a}} L \odot f'(\mathbf{z}^{(L)}) δ(L)=∇aL⊙f′(z(L))
  3. 反向传播误差
    δ ( l ) = ( ( W ( l + 1 ) ) T δ ( l + 1 ) ) ⊙ f ′ ( z ( l ) ) \delta^{(l)} = ((\mathbf{W}^{(l+1)})^T \delta^{(l+1)}) \odot f'(\mathbf{z}^{(l)}) δ(l)=((W(l+1))Tδ(l+1))⊙f′(z(l))
  4. 计算梯度
    ∇ W ( l ) L = δ ( l ) ( a ( l − 1 ) ) T \nabla_{\mathbf{W}^{(l)}} L = \delta^{(l)} (\mathbf{a}^{(l-1)})^T ∇W(l)L=δ(l)(a(l−1))T
    ∇ b ( l ) L = δ ( l ) \nabla_{\mathbf{b}^{(l)}} L = \delta^{(l)} ∇b(l)L=δ(l)

梯度消失/爆炸问题:

  • 梯度消失:深层网络中,梯度逐层衰减,导致浅层参数学习缓慢(Sigmoid/Tanh 尤其严重)
  • 梯度爆炸:梯度逐层放大,导致权重更新过大,训练不稳定

2.5 参数初始化

良好的初始化对训练深度网络至关重要。

方法 适用场景 公式
Xavier/Glorot Sigmoid/Tanh W ∼ U − 6 n i n + n o u t , 6 n i n + n o u t W \sim \mathcal{U}\left-\\frac{\\sqrt{6}}{\\sqrt{n_{in}+n_{out}}}, \\frac{\\sqrt{6}}{\\sqrt{n_{in}+n_{out}}}\\right W∼U−nin+nout 6 ,nin+nout 6
He/Kaiming ReLU 及其变体 W ∼ N ( 0 , 2 n i n ) W \sim \mathcal{N}\left(0, \sqrt{\frac{2}{n_{in}}}\right) W∼N(0,nin2 )
LeCun 早期 CNN W ∼ N ( 0 , 1 n i n ) W \sim \mathcal{N}\left(0, \sqrt{\frac{1}{n_{in}}}\right) W∼N(0,nin1 )
正交初始化 RNN W W W 为正交矩阵

初始化原则:

  • 保持各层激活值的方差一致(前向稳定性)
  • 保持各层梯度的方差一致(反向稳定性)
  • 打破对称性(不能用相同值初始化所有参数)
  • 偏置通常初始化为 0

3. 激活函数

激活函数为神经网络引入非线性,使其能够学习复杂的模式和表示。

3.1 常用激活函数

Sigmoid

σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1

特性 说明
输出范围 (0, 1)
优点 平滑、可导、输出可解释为概率
缺点 梯度消失(饱和区梯度≈0)、输出非零均值、计算量大
适用场景 二分类输出层、门控机制
Tanh (双曲正切)

tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+e−xex−e−x

特性 说明
输出范围 (-1, 1)
优点 零均值输出、比 Sigmoid 收敛快
缺点 仍存在梯度消失问题
适用场景 RNN 隐藏层、生成模型
ReLU (Rectified Linear Unit)

ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)

特性 说明
输出范围 [0, +∞)
优点 计算简单、缓解梯度消失、稀疏激活
缺点 "死亡 ReLU"(神经元永久失活)、输出非零均值
适用场景 CNN、MLP 的默认选择
Leaky ReLU

LeakyReLU ( x ) = max ⁡ ( α x , x ) ( α ≈ 0.01 ) \text{LeakyReLU}(x) = \max(\alpha x, x) \quad (\alpha \approx 0.01) LeakyReLU(x)=max(αx,x)(α≈0.01)

  • 解决 ReLU 的"死亡神经元"问题
  • 负半轴保留小梯度
PReLU (Parametric ReLU)

PReLU ( x ) = { x x > 0 α x x ≤ 0 \text{PReLU}(x) = \begin{cases} x & x > 0 \\ \alpha x & x \leq 0 \end{cases} PReLU(x)={xαxx>0x≤0

  • α \alpha α 是可学习参数
  • 每个通道可有独立的 α \alpha α
ELU (Exponential Linear Unit)

ELU ( x ) = { x x > 0 α ( e x − 1 ) x ≤ 0 \text{ELU}(x) = \begin{cases} x & x > 0 \\ \alpha(e^x - 1) & x \leq 0 \end{cases} ELU(x)={xα(ex−1)x>0x≤0

  • 输出均值接近零,加速收敛
  • 对噪声更鲁棒
GELU (Gaussian Error Linear Unit)

GELU ( x ) = x ⋅ Φ ( x ) ≈ 0.5 x ( 1 + tanh ⁡ 2 / π ( x + 0.044715 x 3 ) ) \text{GELU}(x) = x \cdot \Phi(x) \approx 0.5x\left(1 + \tanh\left\\sqrt{2/\\pi}(x + 0.044715x\^3)\\right\right) GELU(x)=x⋅Φ(x)≈0.5x(1+tanh2/π (x+0.044715x3))

  • Transformer 模型(BERT、GPT)中的标准激活函数
  • 比 ReLU 更平滑,性能通常更好
Swish / SiLU

Swish ( x ) = x ⋅ σ ( β x ) \text{Swish}(x) = x \cdot \sigma(\beta x) Swish(x)=x⋅σ(βx)

  • Google 提出的自门控激活函数
  • 当 β = 1 \beta = 1 β=1 时即为 SiLU
  • 在深层网络上优于 ReLU
Softmax

Softmax ( x i ) = e x i ∑ j = 1 K e x j \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{K} e^{x_j}} Softmax(xi)=∑j=1Kexjexi

  • 将任意实向量映射为概率分布
  • 多分类问题的标准输出层激活函数
Maxout

h i ( x ) = max ⁡ j ∈ 1 , k ( W i j T x + b i j ) h_i(x) = \max_{j \in 1, k} (W_{ij}^T x + b_{ij}) hi(x)=j∈1,kmax(WijTx+bij)

  • 取多个线性变换的最大值
  • 可逼近任意凸函数

3.2 激活函数选择指南

场景 推荐激活函数
CNN 隐藏层 ReLU / Leaky ReLU
Transformer / 大模型 GELU / SiLU
RNN 隐藏层 Tanh / ReLU
二分类输出 Sigmoid
多分类输出 Softmax
回归输出 线性 (Identity)
生成模型 (GAN) Leaky ReLU

4. 损失函数

4.1 回归损失

MSE (均方误差)

L M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 L_{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 LMSE=n1i=1∑n(yi−y^i)2

  • 对大误差惩罚较重(平方放大)
  • 对异常值敏感
  • 假设误差服从高斯分布时是最优的
MAE (平均绝对误差)

L M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ L_{MAE} = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i| LMAE=n1i=1∑n∣yi−y^i∣

  • 对异常值更鲁棒
  • 梯度恒定,收敛较慢
  • 假设误差服从拉普拉斯分布时是最优的
Huber Loss (Smooth L1)

L δ ( y , y ^ ) = { 1 2 ( y − y ^ ) 2 ∣ y − y ^ ∣ ≤ δ δ ∣ y − y ^ ∣ − 1 2 δ 2 ∣ y − y ^ ∣ > δ L_{\delta}(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & |y - \hat{y}| \leq \delta \\ \delta|y - \hat{y}| - \frac{1}{2}\delta^2 & |y - \hat{y}| > \delta \end{cases} Lδ(y,y^)={21(y−y^)2δ∣y−y^∣−21δ2∣y−y^∣≤δ∣y−y^∣>δ

  • 结合 MSE 和 MAE 的优点
  • 小误差用平方(可导性好),大误差用线性(鲁棒)
  • 常用于目标检测的边界框回归

4.2 分类损失

交叉熵损失 (Cross-Entropy Loss)

二分类:

L B C E = − 1 n ∑ i = 1 n y i log ⁡ ( y \^ i ) + ( 1 − y i ) log ⁡ ( 1 − y \^ i ) L_{BCE} = -\frac{1}{n}\sum_{i=1}^{n}y_i\\log(\\hat{y}_i) + (1-y_i)\\log(1-\\hat{y}_i) LBCE=−n1i=1∑nyilog(y\^i)+(1−yi)log(1−y\^i)

多分类:

L C E = − 1 n ∑ i = 1 n ∑ j = 1 C y i j log ⁡ ( y ^ i j ) L_{CE} = -\frac{1}{n}\sum_{i=1}^{n}\sum_{j=1}^{C} y_{ij}\log(\hat{y}_{ij}) LCE=−n1i=1∑nj=1∑Cyijlog(y^ij)

  • 与 Softmax/Sigmoid 配合使用
  • 对数似然最大化等价于交叉熵最小化
Focal Loss

L f o c a l = − α t ( 1 − p t ) γ log ⁡ ( p t ) L_{focal} = -\alpha_t (1 - p_t)^\gamma \log(p_t) Lfocal=−αt(1−pt)γlog(pt)

  • 解决类别不平衡问题
  • γ \gamma γ 调节简单/困难样本的权重( γ = 2 \gamma=2 γ=2 常用)
  • α t \alpha_t αt 调节正负样本权重
  • 在目标检测(RetinaNet)中效果显著
Hinge Loss

L h i n g e = max ⁡ ( 0 , 1 − y ⋅ y ^ ) L_{hinge} = \max(0, 1 - y \cdot \hat{y}) Lhinge=max(0,1−y⋅y^)

  • SVM 的损失函数
  • 鼓励正确分类的样本得分 > 1

4.3 对比损失

Triplet Loss

L t r i p l e t = max ⁡ ( 0 , d ( a , p ) − d ( a , n ) + m ) L_{triplet} = \max(0, d(a, p) - d(a, n) + m) Ltriplet=max(0,d(a,p)−d(a,n)+m)

  • 锚点 (a)、正样本 §、负样本 (n)
  • m m m 为 margin,控制正负样本距离的最小差距
  • 用于人脸识别 (FaceNet)、度量学习
Contrastive Loss

L c o n t r a s t i v e = y ⋅ d 2 + ( 1 − y ) ⋅ max ⁡ ( 0 , m − d ) 2 L_{contrastive} = y \cdot d^2 + (1-y) \cdot \max(0, m - d)^2 Lcontrastive=y⋅d2+(1−y)⋅max(0,m−d)2

  • y = 1 y=1 y=1 表示正样本对,最小化距离
  • y = 0 y=0 y=0 表示负样本对,保持距离大于 m m m
InfoNCE Loss

L I n f o N C E = − log ⁡ exp ⁡ ( q ⋅ k + / τ ) ∑ i = 0 K exp ⁡ ( q ⋅ k i / τ ) L_{InfoNCE} = -\log\frac{\exp(q \cdot k_+ / \tau)}{\sum_{i=0}^{K} \exp(q \cdot k_i / \tau)} LInfoNCE=−log∑i=0Kexp(q⋅ki/τ)exp(q⋅k+/τ)

  • 对比学习的核心损失函数(SimCLR, MoCo)
  • τ \tau τ 为温度参数,控制分布的平滑程度
  • q q q 为查询向量, k + k_+ k+ 为正样本键, k i k_i ki 为负样本键

4.4 生成模型损失

KL 散度 (Kullback-Leibler Divergence)

D K L ( P ∣ ∣ Q ) = ∑ x P ( x ) log ⁡ P ( x ) Q ( x ) D_{KL}(P||Q) = \sum_{x} P(x) \log\frac{P(x)}{Q(x)} DKL(P∣∣Q)=x∑P(x)logQ(x)P(x)

  • 衡量两个分布的不相似性
  • 非对称: D K L ( P ∣ ∣ Q ) ≠ D K L ( Q ∣ ∣ P ) D_{KL}(P||Q) \neq D_{KL}(Q||P) DKL(P∣∣Q)=DKL(Q∣∣P)
  • VAE 中用于约束潜在变量分布
JS 散度 (Jensen-Shannon Divergence)

D J S ( P ∣ ∣ Q ) = 1 2 D K L ( P ∣ ∣ M ) + 1 2 D K L ( Q ∣ ∣ M ) , M = P + Q 2 D_{JS}(P||Q) = \frac{1}{2}D_{KL}(P||M) + \frac{1}{2}D_{KL}(Q||M), \quad M = \frac{P+Q}{2} DJS(P∣∣Q)=21DKL(P∣∣M)+21DKL(Q∣∣M),M=2P+Q

  • 对称版本
  • 原始 GAN 的隐含优化目标
Wasserstein 距离 (Earth Mover's Distance)

W ( P r , P g ) = inf ⁡ γ ∈ Π ( P r , P g ) E ( x , y ) ∼ γ ∣ ∣ x − y ∣ ∣ W(P_r, P_g) = \inf_{\gamma \in \Pi(P_r, P_g)} \mathbb{E}_{(x,y)\sim\gamma}\|\|x - y\|\| W(Pr,Pg)=γ∈Π(Pr,Pg)infE(x,y)∼γ∣∣x−y∣∣

  • WGAN 的核心损失
  • 即使在分布不重叠时也提供有意义的梯度
  • 训练更稳定
感知损失 (Perceptual Loss)

L p e r c e p t u a l = ∑ l λ l ∣ ∣ ϕ l ( y ^ ) − ϕ l ( y ) ∣ ∣ 2 2 L_{perceptual} = \sum_{l} \lambda_l ||\phi_l(\hat{y}) - \phi_l(y)||_2^2 Lperceptual=l∑λl∣∣ϕl(y^)−ϕl(y)∣∣22

  • ϕ l \phi_l ϕl 为预训练网络(如 VGG)第 l l l 层的特征图
  • 用于图像风格迁移、超分辨率
  • 比像素级损失更符合人类视觉感知
对抗损失 (Adversarial Loss)

原始 GAN (Minimax):

L D = − E x ∼ p d a t a log ⁡ D ( x ) − E z ∼ p z log ⁡ ( 1 − D ( G ( z ) ) ) L_D = -\mathbb{E}{x\sim p{data}}\\log D(x) - \mathbb{E}_{z\sim p_z}\\log(1 - D(G(z))) LD=−Ex∼pdatalogD(x)−Ez∼pzlog(1−D(G(z)))

L G = − E z ∼ p z log ⁡ D ( G ( z ) ) L_G = -\mathbb{E}_{z\sim p_z}\\log D(G(z)) LG=−Ez∼pzlogD(G(z))

LSGAN (最小二乘):

L D = E ( D ( x ) − 1 ) 2 + E D ( G ( z ) ) 2 L_D = \mathbb{E}(D(x)-1)\^2 + \mathbb{E}D(G(z))\^2 LD=E(D(x)−1)2+ED(G(z))2

L G = E ( D ( G ( z ) ) − 1 ) 2 L_G = \mathbb{E}(D(G(z))-1)\^2 LG=E(D(G(z))−1)2


5. 优化算法

5.1 梯度下降变体

批量梯度下降 (BGD)

θ t + 1 = θ t − η ⋅ ∇ θ L ( θ ; X a l l ) \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta L(\theta; X_{all}) θt+1=θt−η⋅∇θL(θ;Xall)

  • 每次使用全部训练数据
  • 收敛稳定但计算开销大
  • 不适合大规模数据集
随机梯度下降 (SGD)

θ t + 1 = θ t − η ⋅ ∇ θ L ( θ ; x i , y i ) \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta L(\theta; x_i, y_i) θt+1=θt−η⋅∇θL(θ;xi,yi)

  • 每次使用一个样本
  • 更新快但方差大
小批量梯度下降 (Mini-batch SGD)

θ t + 1 = θ t − η ⋅ 1 m ∑ i = 1 m ∇ θ L ( θ ; x i , y i ) \theta_{t+1} = \theta_t - \eta \cdot \frac{1}{m}\sum_{i=1}^{m} \nabla_\theta L(\theta; x_i, y_i) θt+1=θt−η⋅m1i=1∑m∇θL(θ;xi,yi)

  • 折中方案,实际中最常用
  • Batch size 选择:通常 32/64/128/256

5.2 动量方法

Momentum (动量)

v t = γ v t − 1 + η ∇ θ L ( θ ) v_t = \gamma v_{t-1} + \eta \nabla_\theta L(\theta) vt=γvt−1+η∇θL(θ)

θ t + 1 = θ t − v t \theta_{t+1} = \theta_t - v_t θt+1=θt−vt

  • γ ≈ 0.9 \gamma \approx 0.9 γ≈0.9 控制历史梯度的衰减
  • 加速收敛,减少震荡
  • 类似物理中的惯性
Nesterov Accelerated Gradient (NAG)

v t = γ v t − 1 + η ∇ θ L ( θ − γ v t − 1 ) v_t = \gamma v_{t-1} + \eta \nabla_\theta L(\theta - \gamma v_{t-1}) vt=γvt−1+η∇θL(θ−γvt−1)

θ t + 1 = θ t − v t \theta_{t+1} = \theta_t - v_t θt+1=θt−vt

  • 在"前瞻"位置计算梯度
  • 收敛速度理论上优于标准动量

5.3 自适应学习率方法

AdaGrad

θ t + 1 = θ t − η G t + ϵ ⋅ g t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{G_t + \epsilon}} \cdot g_t θt+1=θt−Gt+ϵ η⋅gt

  • G t G_t Gt 为历史梯度平方和
  • 自适应地为每个参数分配学习率
  • 缺点:学习率单调递减,可能过早停止
RMSprop

v t = β v t − 1 + ( 1 − β ) g t 2 v_t = \beta v_{t-1} + (1-\beta)g_t^2 vt=βvt−1+(1−β)gt2

θ t + 1 = θ t − η v t + ϵ ⋅ g t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{v_t + \epsilon}} \cdot g_t θt+1=θt−vt+ϵ η⋅gt

  • 用指数移动平均代替累加和
  • 避免学习率单调递减
  • Hinton Coursera 课程中提出
Adam (Adaptive Moment Estimation)

m t = β 1 m t − 1 + ( 1 − β 1 ) g t m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t mt=β1mt−1+(1−β1)gt

v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 vt=β2vt−1+(1−β2)gt2

m ^ t = m t 1 − β 1 t , v ^ t = v t 1 − β 2 t \hat{m}_t = \frac{m_t}{1-\beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1-\beta_2^t} m^t=1−β1tmt,v^t=1−β2tvt

θ t + 1 = θ t − η v ^ t + ϵ ⋅ m ^ t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \cdot \hat{m}_t θt+1=θt−v^t +ϵη⋅m^t

  • 结合 Momentum 和 RMSprop
  • 最常用的优化器
  • 默认超参数: β 1 = 0.9 , β 2 = 0.999 , ϵ = 10 − 8 \beta_1=0.9, \beta_2=0.999, \epsilon=10^{-8} β1=0.9,β2=0.999,ϵ=10−8
AdamW

θ t + 1 = θ t − η ( m ^ t v ^ t + ϵ + λ θ t ) \theta_{t+1} = \theta_t - \eta\left(\frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_t\right) θt+1=θt−η(v^t +ϵm^t+λθt)

  • 解耦权重衰减(L2 正则化),从 Adam 的改进
  • 现代 Transformer 训练的标准优化器
  • 解决 Adam 中 L2 正则化与自适应学习率的耦合问题
AdaDelta
  • 无需手动设置学习率
  • 使用参数更新量的指数移动平均

5.4 学习率调度

策略 描述
Step Decay 每隔固定 epoch 将学习率乘以衰减因子(如 ×0.1)
Exponential Decay η t = η 0 ⋅ e − k t \eta_t = \eta_0 \cdot e^{-kt} ηt=η0⋅e−kt
Cosine Annealing η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + cos ⁡ ( t T π ) ) \eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})(1 + \cos(\frac{t}{T}\pi)) ηt=ηmin+21(ηmax−ηmin)(1+cos(Ttπ))
Warmup 训练初期逐步增大学习率到目标值
Reduce on Plateau 当验证指标不再提升时降低学习率
OneCycleLR 先升后降的单周期策略
Cosine with Warmup Warmup + Cosine 结合(Transformer 标配)

5.5 优化器选择指南

场景 推荐优化器
图像分类/检测 (CNN) SGD + Momentum / Adam
Transformer (NLP/CV) AdamW
GAN Adam (β₁=0.5, β₂=0.999)
强化学习 Adam / RMSprop
需要精细调参 SGD + Momentum
快速原型/初学者 Adam

6. 正则化与归一化

6.1 L1/L2 正则化

L2 正则化 (Ridge / 权重衰减)

L t o t a l = L o r i g i n a l + λ 2 ∑ w w 2 L_{total} = L_{original} + \frac{\lambda}{2}\sum_{w} w^2 Ltotal=Loriginal+2λw∑w2

  • 惩罚大权重,使权重分布更平滑
  • 对应权重的高斯先验
  • 实现简单,效果稳定
L1 正则化 (Lasso)

L t o t a l = L o r i g i n a l + λ ∑ w ∣ w ∣ L_{total} = L_{original} + \lambda\sum_{w} |w| Ltotal=Loriginal+λw∑∣w∣

  • 产生稀疏权重矩阵
  • 可用于特征选择
  • 对应权重的拉普拉斯先验
Elastic Net

L t o t a l = L o r i g i n a l + λ 1 ∑ ∣ w ∣ + λ 2 ∑ w 2 L_{total} = L_{original} + \lambda_1\sum|w| + \lambda_2\sum w^2 Ltotal=Loriginal+λ1∑∣w∣+λ2∑w2

  • L1 + L2 结合

6.2 Dropout

训练时以概率 p p p 随机丢弃神经元:

h ~ = h ⊙ m , m i ∼ Bernoulli ( 1 − p ) \tilde{h} = h \odot m, \quad m_i \sim \text{Bernoulli}(1-p) h~=h⊙m,mi∼Bernoulli(1−p)

  • 标准 Dropout :全连接层使用, p = 0.5 p=0.5 p=0.5
  • Spatial Dropout:按通道丢弃(CNN 常用)
  • DropConnect:随机丢弃权重连接而非激活值
  • Variational Dropout:可学习丢弃概率
  • DropBlock:按空间块丢弃(对 CNN 更有效)

测试阶段: 所有神经元保留,输出乘以 ( 1 − p ) (1-p) (1−p)(或训练时除以 1 − p 1-p 1−p 做 inverse dropout)

原理:

  • 防止神经元共适应 (co-adaptation)
  • 相当于训练多个子网络的集成
  • 隐式增加噪声,提升泛化能力

6.3 早停 (Early Stopping)

当验证集性能在连续 n n n 个 epoch 内不再提升时停止训练。

  • 选择验证集最优而非训练集最优的模型
  • patience 参数控制容忍度
  • 最简单有效的正则化方法之一

6.4 数据增强 (Data Augmentation)

通过变换训练数据来增加数据多样性:

领域 常用增强方法
图像 随机裁剪、翻转、旋转、颜色抖动、Cutout、Mixup、CutMix、RandAugment
文本 同义词替换、回译、随机插入/删除/交换、对抗扰动
语音 加噪、变速、音高变换、SpecAugment、时间掩码
通用 Mixup ( x ~ = λ x i + ( 1 − λ ) x j \tilde{x} = \lambda x_i + (1-\lambda)x_j x~=λxi+(1−λ)xj), CutMix
Mixup

x ~ = λ x i + ( 1 − λ ) x j \tilde{x} = \lambda x_i + (1-\lambda)x_j x~=λxi+(1−λ)xj

y ~ = λ y i + ( 1 − λ ) y j \tilde{y} = \lambda y_i + (1-\lambda)y_j y~=λyi+(1−λ)yj

  • λ ∼ Beta ( α , α ) \lambda \sim \text{Beta}(\alpha, \alpha) λ∼Beta(α,α),通常 α = 0.2 \alpha=0.2 α=0.2
  • 鼓励模型在样本之间线性插值,提升鲁棒性
CutMix
  • 将一张图的一块区域替换为另一张图的对应区域
  • 标签按面积比例混合
  • 比 Mixup 更符合图像的自然特性

6.5 归一化层

Batch Normalization (BN)

对每个 mini-batch,在每层归一化激活值:

x ^ i = x i − μ B σ B 2 + ϵ \hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} x^i=σB2+ϵ xi−μB

y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β

  • μ B , σ B 2 \mu_B, \sigma_B^2 μB,σB2:batch 内的均值和方差(训练时)
  • γ , β \gamma, \beta γ,β:可学习的缩放和偏移参数
  • 测试时使用训练阶段的 running mean/variance
优点 说明
加速收敛 允许使用更大的学习率
缓解梯度消失 保持激活值在激活函数的非饱和区
正则化效果 mini-batch 的噪声类似 Dropout
降低初始化的敏感性 对权重尺度不那么敏感

局限性:

  • 对小 batch size 效果差(batch < 4 时统计量不可靠)
  • 对 RNN 效果不佳
  • 训练和推理行为不一致
Layer Normalization (LN)

对每个样本的每一层,在所有特征维度上归一化:

μ i = 1 H ∑ j = 1 H x i j , σ i = 1 H ∑ j = 1 H ( x i j − μ i ) 2 \mu_i = \frac{1}{H}\sum_{j=1}^{H} x_{ij}, \quad \sigma_i = \frac{1}{H}\sum_{j=1}^{H}(x_{ij} - \mu_i)^2 μi=H1j=1∑Hxij,σi=H1j=1∑H(xij−μi)2

  • 不依赖 batch 维度
  • Transformer 架构的标准选择
  • 适用于 RNN、小 batch 场景
Instance Normalization (IN)

对每个样本的每个通道单独归一化:

  • 主要用于图像风格迁移
  • 消除实例间的对比度差异
Group Normalization (GN)

将通道分组,每组内做归一化:

  • 介于 LN 和 IN 之间
  • 对小 batch 效果好
  • 常用于检测/分割任务
RMSNorm (Root Mean Square Normalization)

a ˉ i = a i RMS ( a ) ⋅ g i , RMS ( a ) = 1 n ∑ i = 1 n a i 2 \bar{a}i = \frac{a_i}{\text{RMS}(\mathbf{a})} \cdot g_i, \quad \text{RMS}(\mathbf{a}) = \sqrt{\frac{1}{n}\sum{i=1}^{n} a_i^2} aˉi=RMS(a)ai⋅gi,RMS(a)=n1i=1∑nai2

  • 去除了均值中心化,仅做缩放
  • 计算更高效
  • LLaMA 等大模型中使用

6.6 标签平滑 (Label Smoothing)

将 One-hot 标签替换为软标签:

y i L S = ( 1 − α ) ⋅ y i + α K y_i^{LS} = (1 - \alpha) \cdot y_i + \frac{\alpha}{K} yiLS=(1−α)⋅yi+Kα

  • α \alpha α 通常取 0.1
  • 防止模型对预测过于自信
  • 提升泛化能力

7. 卷积神经网络 (CNN)

7.1 核心操作

卷积层 (Convolutional Layer)

S ( i , j ) = ( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( i + m , j + n ) K ( m , n ) S(i, j) = (I * K)(i, j) = \sum_m \sum_n I(i+m, j+n) K(m, n) S(i,j)=(I∗K)(i,j)=m∑n∑I(i+m,j+n)K(m,n)

关键参数:

参数 含义
Kernel Size 卷积核大小(如 3×3、5×5)
Stride 步长,控制输出尺寸
Padding 填充方式(valid/same)
Dilation 空洞卷积的扩张率
Groups 分组卷积的组数

1×1 卷积:

  • 改变通道数(升维/降维)
  • 融合通道间信息
  • 参数量小
  • 又称"逐点卷积"(Pointwise Convolution)

深度可分离卷积 (Depthwise Separable Convolution):

  1. Depthwise:每个通道独立做空间卷积
  2. Pointwise:1×1 卷积混合通道
  • 参数量大幅减少(MobileNet 的核心)
  • 计算量:约为标准卷积的 1 K 2 + 1 C o u t \frac{1}{K^2} + \frac{1}{C_{out}} K21+Cout1

空洞卷积 (Dilated / Atrous Convolution):

  • 在卷积核元素之间插入空洞
  • 在不增加参数的情况下扩大感受野
  • 广泛用于语义分割(DeepLab 系列)

转置卷积 (Transposed Convolution):

  • 上采样的可学习方式
  • 又称"反卷积"(Deconvolution),但并非卷积的逆运算
  • 用于语义分割、GAN 生成器
池化层 (Pooling Layer)
类型 操作 特点
Max Pooling 取窗口内最大值 保留纹理信息,平移不变性
Average Pooling 取窗口内平均值 保留背景信息
Global Average Pooling 整个特征图取平均 替代全连接层,减少参数
Adaptive Pooling 输出固定尺寸 RoIAlign 等技术中使用

7.2 经典 CNN 架构

LeNet-5 (1998)
复制代码
Input → Conv → Pool → Conv → Pool → FC → FC → Output
  • 7层网络,手写数字识别
  • 奠定了 CNN 的基本结构
AlexNet (2012)
复制代码
Conv(11×11) → Pool → Conv(5×5) → Pool → Conv(3×3)×3 → Pool → FC×3
  • 关键创新: ReLU 激活、Dropout、数据增强、GPU 训练
  • ImageNet 冠军,深度学习复兴的标志
VGG (2014)
复制代码
Conv(3×3)×N → Pool → Conv(3×3)×N → Pool → ... → FC×3
  • 统一使用 3×3 卷积核
  • 深度增加(VGG16/19)
  • 参数量大(138M),但结构规整
GoogLeNet / Inception (2014)
  • Inception 模块:并行使用不同尺寸的卷积核
  • 1×1 卷积降维减少计算
  • 辅助分类器缓解梯度消失
  • 22层,参数仅 5M

Inception 演进:

  • Inception v2/v3:卷积分解(5×5→两个3×3,n×n→1×n+n×1)
  • Inception v4:与 ResNet 结合
  • Xception:完全使用深度可分离卷积
ResNet (2015)

y = F ( x , { W i } ) + x \mathbf{y} = \mathcal{F}(\mathbf{x}, \{W_i\}) + \mathbf{x} y=F(x,{Wi})+x

  • 残差学习:学习残差映射而非直接映射
  • 跳跃连接 (Skip Connection):让梯度直接流过
  • 解决了深层网络的退化问题
  • 变体:ResNet-18/34/50/101/152

Bottleneck 块:

复制代码
1×1 降维 → 3×3 卷积 → 1×1 升维
  • 减少计算量,增加深度

ResNet 改进变体:

变体 改进点
ResNeXt 分组卷积,多分支并行(Cardinality 概念)
DenseNet 密集连接:每层与前面所有层相连
ResNeSt Split-Attention,通道分组加注意力
SENet 通道注意力机制(Squeeze-and-Excitation)
MobileNet 系列
版本 核心创新 特点
MobileNetV1 深度可分离卷积 极致轻量
MobileNetV2 倒残差结构 + Linear Bottleneck 更好的精度-速度权衡
MobileNetV3 NAS 搜索 + h-swish 平台感知的架构优化
EfficientNet
  • 使用 NAS + 复合缩放:同时调整深度、宽度、分辨率
  • EfficientNet-B0 到 B7 系列
  • 当时 ImageNet SOTA,参数效率极高
ConvNeXt
  • "现代化"ResNet:借鉴 Transformer 设计理念
  • 使用大卷积核(7×7)、LN 替代 BN、GELU 激活
  • 性能接近 Swin Transformer
RepVGG
  • 训练时多分支,推理时重参数化为单路 VGG
  • 训练效果好 + 推理速度快

7.3 感受野 (Receptive Field)

第 l l l 层特征图上一个元素能"看到"的输入图像区域大小:

R F l = R F l − 1 + ( K l − 1 ) × ∏ i = 1 l − 1 S i RF_l = RF_{l-1} + (K_l - 1) \times \prod_{i=1}^{l-1} S_i RFl=RFl−1+(Kl−1)×i=1∏l−1Si

其中 K l K_l Kl 是第 l l l 层的卷积核大小, S i S_i Si 是各层的步长。

增大感受野的方法:

  1. 堆叠更多卷积层
  2. 使用更大的卷积核
  3. 使用空洞卷积
  4. 使用池化/步长 > 1 的卷积

有效感受野 (ERF):

  • 理论感受野中不同位置的重要性不同(高斯状分布)
  • 中心区域贡献远大于边缘

8. 循环神经网络 (RNN) 及其变体

8.1 基本 RNN

h t = tanh ⁡ ( W h h h t − 1 + W x h x t + b h ) \mathbf{h}t = \tanh(\mathbf{W}{hh}\mathbf{h}{t-1} + \mathbf{W}{xh}\mathbf{x}_t + \mathbf{b}_h) ht=tanh(Whhht−1+Wxhxt+bh)

y t = W h y h t + b y \mathbf{y}t = \mathbf{W}{hy}\mathbf{h}_t + \mathbf{b}_y yt=Whyht+by

结构变体:

类型 输入→输出 应用
One-to-One 固定→固定 图像分类
One-to-Many 固定→序列 图像描述
Many-to-One 序列→固定 情感分析
Many-to-Many (同步) 序列→序列 序列标注、视频帧分类
Many-to-Many (异步) 序列→序列 机器翻译 (Encoder-Decoder)

局限性:

  • 梯度消失/爆炸(长期依赖问题)
  • 无法并行计算
  • 记忆容量有限

8.2 LSTM (长短期记忆网络)

引入门控机制和细胞状态 (Cell State):

遗忘门 (Forget Gate):

f t = σ ( W f ⋅ h t − 1 , x t + b f ) f_t = \sigma(W_f \cdot h_{t-1}, x_t + b_f) ft=σ(Wf⋅ht−1,xt+bf)

输入门 (Input Gate):

i t = σ ( W i ⋅ h t − 1 , x t + b i ) i_t = \sigma(W_i \cdot h_{t-1}, x_t + b_i) it=σ(Wi⋅ht−1,xt+bi)

C ~ t = tanh ⁡ ( W C ⋅ h t − 1 , x t + b C ) \tilde{C}_t = \tanh(W_C \cdot h_{t-1}, x_t + b_C) C~t=tanh(WC⋅ht−1,xt+bC)

细胞状态更新:

C t = f t ⊙ C t − 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct=ft⊙Ct−1+it⊙C~t

输出门 (Output Gate):

o t = σ ( W o ⋅ h t − 1 , x t + b o ) o_t = \sigma(W_o \cdot h_{t-1}, x_t + b_o) ot=σ(Wo⋅ht−1,xt+bo)

h t = o t ⊙ tanh ⁡ ( C t ) h_t = o_t \odot \tanh(C_t) ht=ot⊙tanh(Ct)

关键特性:

  • 遗忘门控制信息的保留/丢弃
  • 加法操作使梯度可以无衰减地沿时间步传播
  • 有效缓解长期依赖问题

8.3 GRU (门控循环单元)

简化的 LSTM,合并细胞状态和隐藏状态:

更新门 (Update Gate):

z t = σ ( W z ⋅ h t − 1 , x t ) z_t = \sigma(W_z \cdot h_{t-1}, x_t) zt=σ(Wz⋅ht−1,xt)

重置门 (Reset Gate):

r t = σ ( W r ⋅ h t − 1 , x t ) r_t = \sigma(W_r \cdot h_{t-1}, x_t) rt=σ(Wr⋅ht−1,xt)

候选隐藏状态:

h ~ t = tanh ⁡ ( W ⋅ r t ⊙ h t − 1 , x t ) \tilde{h}_t = \tanh(W \cdot r_t \\odot h_{t-1}, x_t) h~t=tanh(W⋅rt⊙ht−1,xt)

最终隐藏状态:

h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t ht=(1−zt)⊙ht−1+zt⊙h~t

  • 参数比 LSTM 少约 1/3
  • 在许多任务上与 LSTM 性能相当
  • 训练稍快

8.4 双向 RNN (BiRNN)

h → t = RNN ( x t , h → t − 1 ) \overrightarrow{h}t = \text{RNN}(x_t, \overrightarrow{h}{t-1}) h t=RNN(xt,h t−1)

h ← t = RNN ( x t , h ← t + 1 ) \overleftarrow{h}t = \text{RNN}(x_t, \overleftarrow{h}{t+1}) h t=RNN(xt,h t+1)

y t = f ( h → t ; h ← t ) y_t = f(\\overrightarrow{h}_t; \\overleftarrow{h}_t) yt=f(h t;h t)

  • 同时利用上下文信息
  • 需要完整序列才能计算(不适合在线场景)
  • 可与 LSTM/GRU 结合使用

8.5 深层 RNN 与 Stacked RNN

堆叠多层 RNN,每层输出作为下层输入:

  • 捕获不同时间尺度的模式
  • 通常 2-4 层效果最好
  • Dropout 放在层间(非时间步间)

8.6 序列到序列 (Seq2Seq)

Encoder-Decoder 架构:

  1. Encoder :将输入序列编码为上下文向量

    c = Encoder ( x 1 , . . . , x T ) \mathbf{c} = \text{Encoder}(x_1, ..., x_T) c=Encoder(x1,...,xT)

  2. Decoder :从上下文向量生成输出序列

    y t = Decoder ( y t − 1 , s t − 1 , c ) y_t = \text{Decoder}(y_{t-1}, \mathbf{s}_{t-1}, \mathbf{c}) yt=Decoder(yt−1,st−1,c)

Teacher Forcing:

  • 训练时使用真实的前一个 token 作为输入
  • 推理时使用模型自己生成的 token
  • 存在 exposure bias 问题

Scheduled Sampling:

  • 以一定概率在 Teacher Forcing 和自回归之间切换
  • 缓解训练/推理不一致

9. 注意力机制与 Transformer

9.1 注意力机制基础

核心思想: 让模型在处理某一部分时,能够关注输入的特定相关部分。

一般形式:

Attention ( Q , K , V ) = f ( Q , K ) V \text{Attention}(Q, K, V) = f(Q, K)V Attention(Q,K,V)=f(Q,K)V

  • Q (Query):查询向量------"我在找什么"
  • K (Key):键向量------"我有什么信息"
  • V (Value):值向量------"信息的具体内容"

9.2 注意力机制类型

Soft Attention (全局注意力)
  • 对所有输入位置分配注意力权重
  • 可微、可端到端训练
Hard Attention
  • 随机采样一个输入位置
  • 不可微,需强化学习训练
Bahdanau Attention (Additive Attention)

e i j = v a T tanh ⁡ ( W a s i − 1 + U a h j ) e_{ij} = \mathbf{v}_a^T \tanh(\mathbf{W}a \mathbf{s}{i-1} + \mathbf{U}_a \mathbf{h}_j) eij=vaTtanh(Wasi−1+Uahj)

α i j = exp ⁡ ( e i j ) ∑ k exp ⁡ ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_k \exp(e_{ik})} αij=∑kexp(eik)exp(eij)

  • 2014年首次将注意力引入 NMT
  • 使用对齐模型计算相似度
Luong Attention (Multiplicative Attention)

e i j = s i T W a h j (General) e_{ij} = \mathbf{s}_i^T \mathbf{W}_a \mathbf{h}_j \quad \text{(General)} eij=siTWahj(General)

e i j = s i T h j (Dot) e_{ij} = \mathbf{s}_i^T \mathbf{h}_j \quad \text{(Dot)} eij=siThj(Dot)

  • 比加法注意力计算更快
  • 分 Global 和 Local 两种
自注意力 (Self-Attention / Intra-Attention)

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

  • Q, K, V 来自同一输入序列
  • 捕获序列内部的依赖关系
  • 可并行计算,适合长距离依赖
多头注意力 (Multi-Head Attention)

MultiHead ( Q , K , V ) = Concat ( head 1 , . . . , head h ) W O \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O MultiHead(Q,K,V)=Concat(head1,...,headh)WO

head i = Attention ( Q W i Q , K W i K , V W i V ) \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) headi=Attention(QWiQ,KWiK,VWiV)

  • 每个"头"关注不同的表示子空间
  • 类似 CNN 中多通道的卷积核
  • 提升模型的表达能力
交叉注意力 (Cross-Attention)
  • Q 来自一个序列,K, V 来自另一个序列
  • Encoder-Decoder 架构中 Decoder 的注意力
因果注意力 (Causal / Masked Attention)
  • 在自回归生成中使用
  • 通过掩码确保位置 i i i 只能关注位置 < i < i <i
  • 保证自回归的因果性

9.3 位置编码 (Positional Encoding)

Transformer 没有位置归纳偏置,需要显式编码位置信息。

正弦位置编码 (Sinusoidal)

P E ( p o s , 2 i ) = sin ⁡ ( p o s 10000 2 i / d m o d e l ) PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i)=sin(100002i/dmodelpos)

P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 10000 2 i / d m o d e l ) PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i+1)=cos(100002i/dmodelpos)

  • 固定编码,无需学习
  • 具有一定的外推能力
  • 原始 Transformer 使用
学习型位置编码 (Learned)
  • 将位置编码作为可训练参数
  • BERT、GPT 使用
  • 受限于训练时的最大序列长度
相对位置编码
  • 编码 token 之间的相对距离而非绝对位置
  • 更好的长度外推能力
  • 代表:Transformer-XL、T5、DeBERTa
RoPE (旋转位置编码)

q ~ m = q m e i m θ , k ~ n = k n e i n θ \tilde{q}_m = q_m e^{im\theta}, \quad \tilde{k}_n = k_n e^{in\theta} q~m=qmeimθ,k~n=kneinθ

  • 通过旋转矩阵编码相对位置信息
  • 在 LLaMA、Qwen 等模型中使用
  • 良好的长度外推特性
ALiBi (Attention with Linear Biases)
  • 在注意力分数上直接加线性偏置
  • 不需要显式位置编码
  • 极好的长度外推能力

9.4 Transformer 架构

标准 Transformer (2017)

Encoder Block:

复制代码
Input → Multi-Head Self-Attention → Add & Norm → FFN → Add & Norm → Output

Decoder Block:

复制代码
Input → Masked Multi-Head Self-Attention → Add & Norm
      → Cross-Attention (with Encoder output) → Add & Norm
      → FFN → Add & Norm → Output

前馈网络 (FFN):

FFN ( x ) = GELU ( x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \text{GELU}(xW_1 + b_1)W_2 + b_2 FFN(x)=GELU(xW1+b1)W2+b2

通常中间层维度为输入维度的 4 倍。

Encoder-Only (BERT 系列)
  • 双向注意力
  • 适合理解任务:分类、序列标注、抽取式 QA
  • 代表:BERT、RoBERTa、DeBERTa、ALBERT
Decoder-Only (GPT 系列)
  • 因果(单向)注意力
  • 适合生成任务
  • 代表:GPT-2/3/4、LLaMA、Claude、Gemma
Encoder-Decoder (T5 系列)
  • 同时有 Encoder 和 Decoder
  • 适合 Seq2Seq 任务
  • 代表:T5、BART、mT5

9.5 Transformer 变体与改进

变体 核心改进 特点
Transformer-XL 段级循环 + 相对位置编码 处理超长文本
Reformer LSH 注意力 + 可逆残差 降低复杂度
Longformer 滑动窗口 + 全局注意力 长文档处理
Linformer 低秩投影 O(N) 复杂度
BigBird 稀疏注意力 (Random + Window + Global) 理论保证
Performer FAVOR+ 正交随机特征 线性注意力
FlashAttention IO-aware 分块计算 加速训练推理
注意力复杂度对比
机制 时间复杂度 空间复杂度
标准 Self-Attention O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2)
Sparse Attention O ( n n ) O(n\sqrt{n}) O(nn ) ~ O ( n log ⁡ n ) O(n \log n) O(nlogn) 取决于模式
Linear Attention O ( n ) O(n) O(n) O ( n ) O(n) O(n)
FlashAttention O ( n 2 ) O(n^2) O(n2) 计算 / O ( n ) O(n) O(n) IO O ( n ) O(n) O(n)

9.6 大语言模型 (LLM) 核心知识

预训练目标
方法 描述 代表模型
自回归语言模型 $P(x_t x_{<t})$
自编码语言模型 MLM: 预测被屏蔽的 token BERT
Prefix LM 前缀部分双向,其余单向 GLM
Seq2Seq Encoder 双向 + Decoder 单向 T5, BART
缩放法则 (Scaling Laws)
  • Kaplan 定律 (OpenAI 2020):模型性能随参数量、数据量、计算量的幂律提升
  • Chinchilla 定律 (DeepMind 2022):最优训练下,tokens 数量 ≈ 参数量的 20 倍
  • 但实际中,小模型用更多数据训练也效果很好(LLaMA 策略)
涌现能力 (Emergent Abilities)
  • 当模型规模超过某个阈值,突然出现的能力
  • 如:思维链推理、上下文学习、指令跟随
  • 这些能力在小模型上不存在或很弱
上下文学习 (In-Context Learning)
  • 通过 prompt 中的示例让模型学习任务
  • 无需参数更新
  • Few-shot / One-shot / Zero-shot
思维链 (Chain-of-Thought, CoT)
  • 引导模型逐步推理而非直接给出答案
  • 显著提升复杂推理任务性能
  • 变体:Self-Consistency、Tree-of-Thought、Graph-of-Thought
RLHF (基于人类反馈的强化学习)
  1. SFT (Supervised Fine-Tuning):使用高质量人类标注数据微调
  2. Reward Model:训练奖励模型预测人类偏好
  3. PPO:用强化学习优化模型
  4. DPO (Direct Preference Optimization):直接优化偏好数据,无需显式奖励模型
高效微调方法
方法 核心思想 可训练参数量
Full Fine-Tuning 全部参数更新 100%
Adapter 在层间插入小型模块 ~2-5%
Prefix Tuning 在输入前添加可学习的连续前缀 <1%
Prompt Tuning 学习软提示向量 <0.01%
LoRA 低秩分解权重更新矩阵 <1%
QLoRA LoRA + 4-bit 量化 <1%
IA³ 可学习的缩放向量 <0.01%
LoRA (Low-Rank Adaptation)

W = W 0 + Δ W = W 0 + B A W = W_0 + \Delta W = W_0 + BA W=W0+ΔW=W0+BA

  • W 0 ∈ R d × k W_0 \in \mathbb{R}^{d \times k} W0∈Rd×k(冻结的原始权重)
  • B ∈ R d × r , A ∈ R r × k B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times k} B∈Rd×r,A∈Rr×k(可训练的低秩矩阵)
  • r ≪ min ⁡ ( d , k ) r \ll \min(d, k) r≪min(d,k),通常 r = 8 ∼ 64 r = 8 \sim 64 r=8∼64
  • 推理时可将 Δ W \Delta W ΔW 合并到 W 0 W_0 W0,无额外延迟

10. 生成模型

10.1 生成模型概述

类型 原理 优点 缺点
VAE 变分推断 稳定训练、有隐空间 生成质量较低(模糊)
GAN 对抗训练 高质量生成 训练不稳定、模式坍塌
Flow-based 可逆变换 精确似然、可逆 参数量大
Diffusion 逐步去噪 高质量、稳定训练 推理慢
Autoregressive 逐元素生成 可控、灵活 串行速度慢

10.2 变分自编码器 (VAE)

核心思想: 学习数据的潜在表示并从中采样生成新数据。

ELBO (证据下界):

log ⁡ p ( x ) ≥ E q ϕ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) − D K L ( q ϕ ( z ∣ x ) ∣ ∣ p ( z ) ) \log p(x) \geq \mathbb{E}{q\phi(z|x)}\\log p_\\theta(x\|z) - D_{KL}(q_\phi(z|x) || p(z)) logp(x)≥Eqϕ(z∣x)logpθ(x∣z)−DKL(qϕ(z∣x)∣∣p(z))

  • 重构损失 : E q ϕ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) \mathbb{E}{q\phi(z|x)}\\log p_\\theta(x\|z) Eqϕ(z∣x)logpθ(x∣z)
  • KL 正则项 : D K L ( q ϕ ( z ∣ x ) ∣ ∣ p ( z ) ) D_{KL}(q_\phi(z|x) || p(z)) DKL(qϕ(z∣x)∣∣p(z))

重参数化技巧:

z = μ + σ ⊙ ϵ , ϵ ∼ N ( 0 , I ) z = \mu + \sigma \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) z=μ+σ⊙ϵ,ϵ∼N(0,I)

使采样操作可微,允许梯度反向传播。

VAE 变体:

变体 改进
β-VAE 加权 KL 项,促进解耦表示
VQ-VAE 向量量化,离散潜在编码
Conditional VAE 条件生成

10.3 生成对抗网络 (GAN)

核心思想: Generator 和 Discriminator 进行二人零和博弈。

训练目标:

min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p d a t a log ⁡ D ( x ) + E z ∼ p z log ⁡ ( 1 − D ( G ( z ) ) ) \min_G \max_D V(D, G) = \mathbb{E}{x \sim p{data}}\\log D(x) + \mathbb{E}_{z \sim p_z}\\log(1 - D(G(z))) GminDmaxV(D,G)=Ex∼pdatalogD(x)+Ez∼pzlog(1−D(G(z)))

GAN 训练技巧:

  • 交替更新 G 和 D(通常 D 更新 1-5 次后 G 更新 1 次)
  • 使用标签平滑(真实标签用 0.9 而非 1)
  • 在 D 输入添加噪声
  • 使用 Spectral Normalization 稳定 D
  • Gradient Penalty (WGAN-GP)

重要 GAN 变体:

模型 年份 核心创新
DCGAN 2015 CNN + GAN,稳定架构设计
CGAN 2014 条件生成
WGAN 2017 Wasserstein 距离替代 JS 散度
WGAN-GP 2017 梯度惩罚替代权重裁剪
Pix2Pix 2017 图像到图像翻译(配对数据)
CycleGAN 2017 无配对图像翻译(循环一致性)
StyleGAN 2018 风格控制、渐进生成
StyleGAN2 2020 去除水滴伪影,更好的解耦
BigGAN 2018 大规模训练 + 条件批次归一化
SinGAN 2019 单张图像训练

10.4 扩散模型 (Diffusion Models)

核心思想: 学习逆转一个逐步加噪的扩散过程。

前向扩散过程

q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I) q(xt∣xt−1)=N(xt;1−βt xt−1,βtI)

  • 逐步向数据添加高斯噪声
  • 经过足够多步后,数据变为纯噪声
反向去噪过程

p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))

  • 学习预测并去除噪声
  • 从噪声逐步恢复数据
DDPM (Denoising Diffusion Probabilistic Models)
  • 训练目标简化为预测噪声:
    L s i m p l e = E t , x 0 , ϵ ∣ ∣ ϵ − ϵ θ ( x t , t ) ∣ ∣ 2 L_{simple} = \mathbb{E}_{t, x_0, \epsilon}\|\|\\epsilon - \\epsilon_\\theta(x_t, t)\|\|\^2 Lsimple=Et,x0,ϵ∣∣ϵ−ϵθ(xt,t)∣∣2
关键改进
技术 改进 代表
DDIM 确定性采样,加速推理 2021
Classifier Guidance 用分类器引导生成 ADM-G
Classifier-Free Guidance 无需外部分类器的引导 主流方法
Latent Diffusion 在潜在空间做扩散 Stable Diffusion
DiT Transformer 骨干替代 U-Net 2023
Stable Diffusion 架构
  1. VAE:图像 ↔ 潜在空间编码/解码
  2. U-Net:在潜在空间中进行扩散/去噪
  3. Text Encoder (CLIP):将文本提示编码为条件信号
  4. Cross-Attention:文本条件注入 U-Net
扩散模型加速采样
方法 核心思想
DDIM 去随机化,确定性跳步
DPM-Solver 常微分方程求解器
LCM (Latent Consistency Model) 一致性模型蒸馏
SDXL Turbo / SD Turbo 对抗扩散蒸馏,1-4 步生成

10.5 自回归生成模型

逐元素(像素/token)生成,当前输出依赖之前生成的所有元素:

p ( x ) = ∏ i = 1 n p ( x i ∣ x 1 , . . . , x i − 1 ) p(x) = \prod_{i=1}^{n} p(x_i | x_1, ..., x_{i-1}) p(x)=i=1∏np(xi∣x1,...,xi−1)

代表模型:

模型 领域 特点
PixelCNN 图像 逐像素生成
WaveNet 音频 因果空洞卷积
GPT 系列 文本 Transformer Decoder
DALL-E 文本→图像 VQ-VAE + Transformer
Parti 文本→图像 ViT-VQGAN + 自回归

10.6 流模型 (Flow-based Models)

x = f ( z ) , z = f − 1 ( x ) x = f(z), \quad z = f^{-1}(x) x=f(z),z=f−1(x)

  • f f f 是一系列可逆变换
  • 可精确计算似然:
    log ⁡ p X ( x ) = log ⁡ p Z ( z ) + ∑ i = 1 K log ⁡ ∣ det ⁡ ( ∂ f i ∂ h i − 1 ) ∣ \log p_X(x) = \log p_Z(z) + \sum_{i=1}^{K} \log\left|\det\left(\frac{\partial f_i}{\partial h_{i-1}}\right)\right| logpX(x)=logpZ(z)+i=1∑Klog det(∂hi−1∂fi)

代表模型:

  • NICE / RealNVP:耦合层设计
  • Glow:引入 1×1 可逆卷积
  • 在图像生成、超分辨率上表现良好

11. 图神经网络 (GNN)

11.1 基础概念

GNN 处理非欧几里得结构的图数据,图中节点通过边连接。

核心操作------消息传递 (Message Passing):

  1. 消息计算: 每个节点从邻居收集消息

    m v ( t ) = ∑ u ∈ N ( v ) M t ( h v ( t − 1 ) , h u ( t − 1 ) , e u v ) m_v^{(t)} = \sum_{u \in \mathcal{N}(v)} M_t(h_v^{(t-1)}, h_u^{(t-1)}, e_{uv}) mv(t)=u∈N(v)∑Mt(hv(t−1),hu(t−1),euv)

  2. 消息聚合:

    a v ( t ) = AGG ( t ) ( { m u ( t ) : u ∈ N ( v ) } ) a_v^{(t)} = \text{AGG}^{(t)}(\{m_u^{(t)} : u \in \mathcal{N}(v)\}) av(t)=AGG(t)({mu(t):u∈N(v)})

  3. 节点更新:

    h v ( t ) = U t ( h v ( t − 1 ) , a v ( t ) ) h_v^{(t)} = U_t(h_v^{(t-1)}, a_v^{(t)}) hv(t)=Ut(hv(t−1),av(t))

11.2 GNN 主要模型

GCN (Graph Convolutional Network)

H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma\left(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right) H(l+1)=σ(D~−21A~D~−21H(l)W(l))

  • A ~ = A + I \tilde{A} = A + I A~=A+I:添加自环的邻接矩阵
  • 谱域方法的简化版本
  • 最经典的 GNN 模型
GraphSAGE
  • 采样固定数量的邻居(适应大规模图)
  • 多种聚合函数:Mean, LSTM, Pooling
  • 归纳式学习(可泛化到未见节点)
GAT (Graph Attention Network)

α i j = exp ⁡ ( LeakyReLU ( a T W h i ∣ ∣ W h j ) ) ∑ k ∈ N i exp ⁡ ( LeakyReLU ( a T W h i ∣ ∣ W h k ) ) \alpha_{ij} = \frac{\exp(\text{LeakyReLU}(\mathbf{a}^T W h_i \|\| W h_j))}{\sum_{k \in \mathcal{N}_i} \exp(\text{LeakyReLU}(\mathbf{a}^T W h_i \|\| W h_k))} αij=∑k∈Niexp(LeakyReLU(aTWhi∣∣Whk))exp(LeakyReLU(aTWhi∣∣Whj))

  • 使用注意力机制为邻居分配不同权重
  • 多头注意力提升稳定性
GIN (Graph Isomorphism Network)

h v ( k ) = MLP ( k ) ( ( 1 + ϵ ( k ) ) ⋅ h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) ) h_v^{(k)} = \text{MLP}^{(k)}\left((1 + \epsilon^{(k)}) \cdot h_v^{(k-1)} + \sum_{u \in \mathcal{N}(v)} h_u^{(k-1)}\right) hv(k)=MLP(k) (1+ϵ(k))⋅hv(k−1)+u∈N(v)∑hu(k−1)

  • 理论上证明具有最大区分能力(与 WL test 等价)
其他重要 GNN 变体
模型 特点
ChebNet 切比雪夫多项式近似滤波器
GraphSAGE 邻居采样,归纳式学习
GatedGCN 门控机制 + 边特征
MPNN 通用消息传递框架
DeepGCN 加深 GNN 层数(残差连接)

11.3 GNN 训练挑战

挑战 说明 解决方案
过平滑 (Over-smoothing) 深 GNN 中节点表示趋于一致 残差连接、DropEdge
过压缩 (Over-squashing) 信息瓶颈 图重连、长距离边
异质性 邻居节点特征不同 特殊架构设计
可扩展性 大图训练 采样、分布式训练

11.4 GNN 应用场景

领域 应用
社交网络 节点分类、社区发现、链接预测
推荐系统 用户-物品二部图上的协同过滤
药物发现 分子性质预测、蛋白质结构预测
知识图谱 关系推理、实体链接、知识补全
计算机视觉 场景图、点云处理
交通预测 路网流量预测

12. 深度强化学习 (DRL)

12.1 强化学习基础

核心要素:

  • 智能体 (Agent):做决策的实体
  • 环境 (Environment):Agent 交互的世界
  • 状态 (State s s s):环境的当前描述
  • 动作 (Action a a a):Agent 可以执行的操作
  • 奖励 (Reward r r r):环境对动作的反馈信号
  • 策略 (Policy π \pi π):状态到动作的映射
  • 价值函数 (Value Function V V V):从某个状态开始的期望累积奖励

MDP (马尔可夫决策过程):

( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ)

  • S S S:状态空间
  • A A A:动作空间
  • P ( s ′ ∣ s , a ) P(s'|s, a) P(s′∣s,a):状态转移概率
  • R ( s , a ) R(s, a) R(s,a):奖励函数
  • γ ∈ [ 0 , 1 ) \gamma \in [0, 1) γ∈[0,1):折扣因子

目标: 最大化期望累积奖励

J = E τ ∼ π ∑ t = 0 ∞ γ t R ( s t , a t ) J = \mathbb{E}_{\tau \sim \pi}\left\\sum_{t=0}\^{\\infty} \\gamma\^t R(s_t, a_t)\\right J=Eτ∼πt=0∑∞γtR(st,at)

12.2 基于值的方法 (Value-based)

DQN (Deep Q-Network)

Q ∗ ( s , a ) = E s ′ R ( s , a ) + γ max ⁡ a ′ Q ∗ ( s ′ , a ′ ) Q^*(s, a) = \mathbb{E}_{s'}\leftR(s, a) + \\gamma \\max_{a'} Q\^\*(s', a')\\right Q∗(s,a)=Es′R(s,a)+γa′maxQ∗(s′,a′)

DQN 三大创新:

  1. 经验回放 (Experience Replay):打破样本时间相关性
  2. 目标网络 (Target Network):稳定训练,定期同步
  3. 奖赏裁剪:限制奖励范围

训练目标:

L = E ( s , a , r , s ′ ) ∼ D ( r + γ max ⁡ a ′ Q θ − ( s ′ , a ′ ) − Q θ ( s , a ) ) 2 L = \mathbb{E}_{(s,a,r,s')\sim D}\left(r + \\gamma \\max_{a'} Q_{\\theta\^-}(s', a') - Q_\\theta(s, a))\^2\\right L=E(s,a,r,s′)∼D(r+γa′maxQθ−(s′,a′)−Qθ(s,a))2

DQN 改进
变体 改进点
Double DQN 解耦动作选择与评估,减少过高估计
Dueling DQN 分离状态价值 V(s) 和优势 A(s,a)
Prioritized Experience Replay TD-error 大的样本优先采样
Noisy DQN 参数化噪声替代 ε-greedy 探索
Rainbow 整合六种 DQN 改进
Double DQN

y = r + γ Q θ − ( s ′ , arg ⁡ max ⁡ a ′ Q θ ( s ′ , a ′ ) ) y = r + \gamma Q_{\theta^-}(s', \arg\max_{a'} Q_\theta(s', a')) y=r+γQθ−(s′,arga′maxQθ(s′,a′))

  • 用当前网络选动作,目标网络评估
  • 减轻 Q 值过高估计
Dueling DQN

Q ( s , a ) = V ( s ) + A ( s , a ) − 1 ∣ A ∣ ∑ a ′ A ( s , a ′ ) Q(s, a) = V(s) + A(s, a) - \frac{1}{|\mathcal{A}|}\sum_{a'} A(s, a') Q(s,a)=V(s)+A(s,a)−∣A∣1a′∑A(s,a′)

  • V(s):状态本身的价值
  • A(s,a):动作相对优势
  • 学习更高效(很多状态下动作选择不重要)

12.3 基于策略的方法 (Policy-based)

REINFORCE

∇ θ J = E τ ∼ π θ ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) G t \nabla_\theta J = \mathbb{E}{\tau \sim \pi\theta}\left\\sum_{t=0}\^{T} \\nabla_\\theta \\log \\pi_\\theta(a_t \| s_t) G_t\\right ∇θJ=Eτ∼πθt=0∑T∇θlogπθ(at∣st)Gt

  • 蒙特卡洛策略梯度
  • 高方差、无偏
Actor-Critic

结合值方法和策略方法:

  • Actor (策略网络):决定做什么
  • Critic (价值网络):评估做得好不好

优势函数 (Advantage Function):

A ( s , a ) = Q ( s , a ) − V ( s ) A(s, a) = Q(s, a) - V(s) A(s,a)=Q(s,a)−V(s)

减小策略梯度的方差。

A2C / A3C
  • A2C:同步 Advantage Actor-Critic
  • A3C:异步版本,多个 worker 并行探索
  • 使用优势函数减小方差
PPO (Proximal Policy Optimization)

PPO-Clip:

L C L I P ( θ ) = E t min ⁡ ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) L^{CLIP}(\theta) = \mathbb{E}_t\left\\min\\left(r_t(\\theta)A_t, \\text{clip}(r_t(\\theta), 1-\\epsilon, 1+\\epsilon)A_t\\right)\\right LCLIP(θ)=Etmin(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)

其中 r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt(θ)=πθold(at∣st)πθ(at∣st)

  • 限制策略更新幅度
  • 实现简单、效果好
  • OpenAI 默认 RL 算法
TRPO (Trust Region Policy Optimization)
  • 约束新旧策略之间的 KL 散度
  • 比 PPO 理论更严格,但实现更复杂
SAC (Soft Actor-Critic)

J ( π ) = ∑ t E ( s t , a t ) ∼ ρ π r ( s t , a t ) + α H ( π ( ⋅ ∣ s t ) ) J(\pi) = \sum_t \mathbb{E}{(s_t, a_t) \sim \rho\pi}r(s_t, a_t) + \\alpha \\mathcal{H}(\\pi(\\cdot\|s_t)) J(π)=t∑E(st,at)∼ρπr(st,at)+αH(π(⋅∣st))

  • 最大化奖励 + 策略熵
  • 自动权衡探索与利用
  • 目前最先进的 off-policy 算法之一
TD3 (Twin Delayed DDPG)
  • 双重 Q 网络(取最小值)
  • 延迟策略更新
  • 目标策略平滑正则化

12.4 算法分类与选择

类型 算法 特点
Value-based DQN, Double DQN, Rainbow 离散动作空间
Policy-based REINFORCE 简单但高方差
Actor-Critic A2C, A3C 连续/离散均可
On-policy PPO, TRPO 需要当前策略的数据
Off-policy DQN, SAC, TD3 可使用历史数据
最大熵 SAC 鲁棒性好

12.5 深度强化学习的挑战

挑战 说明
样本效率 需要大量交互数据
奖励稀疏 很多任务缺乏密集的奖励信号
探索-利用权衡 如何平衡探索新策略 vs 利用已知
稳定性 训练过程不稳定,收敛困难
泛化 训练环境到测试环境的迁移
奖励设计 塑造合适的奖励函数
Sim-to-Real 模拟到现实的迁移差距

13. 自监督学习与对比学习

13.1 自监督学习范式

不依赖人工标注,从数据本身构造监督信号进行预训练。

两大类方法:

  1. 生成式:重构输入(掩码语言模型、自编码器)
  2. 对比式:学习区分相似/不相似样本

13.2 对比学习

核心思想: 拉近正样本对,推远负样本对。

SimCLR

核心组件:

  1. 强数据增强(随机裁剪+颜色失真+高斯模糊)
  2. 非线性投影头(MLP)
  3. NT-Xent Loss(归一化温度缩放交叉熵损失)
  4. 大 batch size

损失函数:

L i , j = − log ⁡ exp ⁡ ( sim ( z i , z j ) / τ ) ∑ k = 1 2 N 1 k ≠ i exp ⁡ ( sim ( z i , z k ) / τ ) L_{i,j} = -\log\frac{\exp(\text{sim}(z_i, z_j) / \tau)}{\sum_{k=1}^{2N} \mathbb{1}_{k \\neq i} \exp(\text{sim}(z_i, z_k) / \tau)} Li,j=−log∑k=12N1k=iexp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)

其中 sim ( u , v ) = u T v ∣ ∣ u ∣ ∣ ∣ ∣ v ∣ ∣ \text{sim}(u, v) = \frac{u^T v}{||u|| ||v||} sim(u,v)=∣∣u∣∣∣∣v∣∣uTv 为余弦相似度。

关键发现:

  • 数据增强组合至关重要
  • 大 batch size 提供更多负样本
  • 投影头在 downstream 任务中移除
MoCo (Momentum Contrast)
  • 动态队列:维护大量负样本
  • 动量编码器 : θ k ← m θ k + ( 1 − m ) θ q \theta_k \leftarrow m\theta_k + (1-m)\theta_q θk←mθk+(1−m)θq
  • 解耦 batch size 和负样本数量

MoCo v3: 引入 ViT 骨干的自监督训练。

BYOL (Bootstrap Your Own Latent)
  • 无负样本的对比学习
  • 使用动量编码器 + 预测器
  • 防止坍缩:不对称架构 + 动量更新
SimSiam
  • 进一步简化:去掉动量编码器
  • 仅靠 stop-gradient 防止坍缩
  • 表明负样本和动量都不是必需的
Barlow Twins
  • 最大化交叉相关矩阵的对角元素
  • 最小化非对角元素
  • 信息论视角的对比学习
DINO
  • 自蒸馏,无标签
  • Teacher(动量更新)+ Student
  • 学习到的注意力图可做语义分割
CLIP (Contrastive Language-Image Pre-training)
  • 图像和文本的对比学习
  • 拉近匹配的图文对,推远不匹配的
  • 强大的零样本能力
  • 成为多模态模型的基础

13.3 掩码自编码 (Masked Autoencoding)

BERT (NLP)
  • 随机 mask 15% 的 token
  • 80% MASK,10% 随机替换,10% 保持不变
  • 预测被 mask 的原始 token
MAE (Masked Autoencoder, CV)
  • 随机 mask 75% 的图像 patch
  • Encoder 只处理未 mask 的 patch
  • Decoder 重建完整图像
  • 高效(Encoder 仅处理 25% 的输入)
BEiT (CV)
  • 类似 BERT 的图像预训练
  • 使用 DALL-E 的 tokenizer 将图像转为离散 token
  • 预测被 mask 区域的视觉 token

14. 模型训练技巧

14.1 学习率调度

Warmup

训练初期逐步增大学习率:

  • Linear Warmup : η t = η m a x ⋅ t T w a r m u p \eta_t = \eta_{max} \cdot \frac{t}{T_{warmup}} ηt=ηmax⋅Twarmupt
  • 原因:训练初期模型参数随机,大学习率可能导致不稳定
  • Transformer 训练标配(通常 4000 steps)
Cosine Annealing with Warmup

η t = { η m a x ⋅ t T w t < T w η m i n + 1 2 ( η m a x − η m i n ) ( 1 + cos ⁡ ( t − T w T − T w π ) ) t ≥ T w \eta_t = \begin{cases} \eta_{max} \cdot \frac{t}{T_w} & t < T_w \\ \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})(1 + \cos(\frac{t - T_w}{T - T_w}\pi)) & t \geq T_w \end{cases} ηt={ηmax⋅Twtηmin+21(ηmax−ηmin)(1+cos(T−Twt−Twπ))t<Twt≥Tw

  • 大模型训练的标准配置

14.2 梯度累积 (Gradient Accumulation)

模拟大 batch size 训练而不增加内存:

python 复制代码
# batch_size=32, accumulation_steps=4 → effective_batch_size=128
for i, batch in enumerate(dataloader):
    loss = model(batch) / accumulation_steps
    loss.backward()
    if (i + 1) % accumulation_steps == 0:
        optimizer.step()
        optimizer.zero_grad()

14.3 混合精度训练 (Mixed Precision / AMP)

同时使用 FP16 和 FP32 来加速训练:

  • FP16:前向传播(速度快、内存减半)
  • FP32:权重副本(保持精度)
  • 损失缩放 (Loss Scaling):防止小梯度在 FP16 下下溢

典型加速比: 1.5-3×,内存节省 30-50%

14.4 梯度裁剪 (Gradient Clipping)

防止梯度爆炸:

g ← min ⁡ ( 1 , max_norm ∣ ∣ g ∣ ∣ ) ⋅ g \mathbf{g} \leftarrow \min\left(1, \frac{\text{max\_norm}}{||\mathbf{g}||}\right) \cdot \mathbf{g} g←min(1,∣∣g∣∣max_norm)⋅g

  • RNN/Transformer 训练中的标准操作
  • 典型阈值:1.0 ~ 5.0

14.5 标签平滑

在交叉熵中使用软标签:

y ′ = y ⋅ ( 1 − α ) + α / K y' = y \cdot (1 - \alpha) + \alpha / K y′=y⋅(1−α)+α/K

  • 防止模型对预测过度自信
  • 提升泛化能力和模型校准
  • α = 0.1 \alpha = 0.1 α=0.1 常用

14.6 批量大小选择

Batch Size 优点 缺点
小 (< 64) 泛化性好、隐含噪声正则化、内存需求低 训练慢、梯度估计方差大
中 (64-256) 平衡之选 -
大 (> 1024) 训练快、梯度估计准确 可能降低泛化性、内存需求大

学习率与 batch size 的线性缩放规则:

η n e w = η b a s e × B n e w B b a s e \eta_{new} = \eta_{base} \times \frac{B_{new}}{B_{base}} ηnew=ηbase×BbaseBnew

14.7 分布式训练

数据并行 (Data Parallelism)
  • 每张 GPU 持有完整模型,处理不同数据
  • 反向传播后同步梯度(AllReduce)
  • 适用于模型能放入单卡的场景
模型并行 (Model Parallelism)
类型 方式 适用场景
张量并行 切分层内矩阵运算 单层太大
流水线并行 不同层放不同设备 模型太深
序列并行 切分序列长度维度 长序列
ZeRO (零冗余优化器)
阶段 分片内容 内存节省
ZeRO-1 优化器状态
ZeRO-2 优化器状态 + 梯度
ZeRO-3 优化器状态 + 梯度 + 参数 线性(≈ N×)
FSDP (Fully Sharded Data Parallel)
  • PyTorch 实现的 ZeRO-3 等价方案
  • 训练时每个 GPU 只持有部分参数
  • 前向/反向传播时按需 AllGather

14.8 过拟合诊断与对策

诊断信号:

  • 训练损失持续下降,验证损失上升
  • 训练/验证指标差距持续扩大

对策优先级:

  1. 增加数据(数据增强)
  2. 加强正则化(Dropout、权重衰减)
  3. 减小模型容量
  4. 早停
  5. 标签平滑

14.9 欠拟合诊断与对策

诊断信号:

  • 训练损失仍然较高且不再下降
  • 训练和验证性能都差

对策优先级:

  1. 增加模型容量(深度/宽度)
  2. 训练更久 / 调整学习率
  3. 减少正则化强度
  4. 检查是否存在数据质量问题
  5. 更好的特征工程

15. 模型部署与优化

15.1 模型压缩

量化 (Quantization)

将浮点参数和激活值映射到低比特表示:

类型 比特数 精度影响
FP32 32 基准
FP16 16 几乎无损
BF16 16 更好范围,训练友好
INT8 8 轻微损失
INT4 4 中等损失
NF4 4 分位数量化,较轻损失

量化方法:

方法 描述
PTQ (Post-Training Quantization) 训练后量化,无需再训练
QAT (Quantization-Aware Training) 训练时模拟量化效果
动态量化 推理时动态计算量化参数
GPTQ 基于 Hessian 的逐层量化
AWQ 激活感知的权重量化
GGUF/GPTQ LLM 最常见的量化格式
剪枝 (Pruning)

移除不重要的参数或结构:

类型 方法 效果
非结构化剪枝 移除单个权重(设为 0) 稀疏矩阵,需要特殊硬件/库支持
结构化剪枝 移除整个通道/层/注意力头 直接减少模型尺寸,通用加速
全局剪枝 全局层面重要性排序 更好的精度-稀疏度权衡
迭代剪枝 多次剪枝+微调循环 逐步恢复精度
Lottery Ticket Hypothesis 找到"中奖彩票"子网络 从初始化就能训练的子网络
知识蒸馏 (Knowledge Distillation)

用大模型(Teacher)指导小模型(Student)训练:

L = L C E ( y t r u e , y s t u d e n t ) + λ ⋅ D K L ( p t e a c h e r ∣ ∣ p s t u d e n t ) L = L_{CE}(y_{true}, y_{student}) + \lambda \cdot D_{KL}(p_{teacher} || p_{student}) L=LCE(ytrue,ystudent)+λ⋅DKL(pteacher∣∣pstudent)

类型:

类型 Teacher 输出 特点
Logit-based 软标签(温度缩放后的 logits) 最经典
Feature-based 中间层特征图 更多监督信息
Relation-based 样本间关系 结构信息迁移
Self-Distillation 模型自己做 Teacher 无额外模型

温度参数 T:

p i = exp ⁡ ( z i / T ) ∑ j exp ⁡ ( z j / T ) p_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} pi=∑jexp(zj/T)exp(zi/T)

  • T > 1 T > 1 T>1 使软标签分布更平滑
  • 提供类间相似性信息
低秩分解 (Low-Rank Factorization)
  • 将大权重矩阵分解为两个低秩矩阵的乘积
  • 如 SVD 分解 + 微调
  • LoRA 是其在微调中的变体应用

15.2 推理优化

图优化 (Graph Optimization)
技术 描述
算子融合 Conv + BN + ReLU 合并为一个算子
常量折叠 预先计算不变的子图
死代码消除 删除不需要的计算路径
ONNX (Open Neural Network Exchange)
  • 统一的模型表示格式
  • 跨框架互操作性
  • ONNX Runtime 提供高效推理
TensorRT
  • NVIDIA 的推理优化引擎
  • 精度校准(FP16/INT8)
  • 内核自动调优
  • 显著加速 GPU 推理(常有 2-5× 提升)
其他推理优化技术
技术 说明
算子融合 减少内存访问和 kernel 启动开销
内存规划 预分配内存,减少动态分配
批处理 合并多个请求一起推理
KV Cache Transformer 推理缓存键值对
PagedAttention 分页管理 KV Cache(vLLM 核心)
Speculative Decoding 小模型快速生成,大模型验证
Continuous Batching 动态添加/移除请求

15.3 LLM 推理框架

框架 核心特点
vLLM PagedAttention、连续批处理、高吞吐
Text Generation Inference (TGI) HuggingFace 官方、水印、停止序列
llama.cpp CPU 推理、GGUF 量化格式
Ollama 易用封装、本地运行 LLM
TensorRT-LLM NVIDIA 优化、fp8/int4、inflight batching
SGLang 结构化生成、RadixAttention
MLC LLM 跨平台(移动端、Web)
ExLlamaV2 极致的 GPU 量化推理性能
LightLLM 高性能分布式推理

15.4 模型评估指标

任务 常用指标
分类 Accuracy, Precision, Recall, F1-Score, AUC-ROC
目标检测 mAP@0.5, mAP@0.5:0.95
语义分割 mIoU, Pixel Accuracy
图像生成 FID, IS (Inception Score), CLIP Score
机器翻译 BLEU, METEOR, COMET
文本摘要 ROUGE-1/2/L, BERTScore
对话/生成 Perplexity, BLEU, Human Eval
LLM 基准 MMLU, HumanEval, GSM8K, HellaSwag, TruthfulQA

16. 前沿技术与趋势

16.1 多模态学习

核心架构
模型 模态 架构特点
CLIP 文本+图像 双塔对比学习
DALL-E 2/3 文本→图像 CLIP + Diffusion
Stable Diffusion 文本→图像 Latent Diffusion
Flamingo 文本+图像+视频 Perceiver + 交叉注意力
GPT-4V / GPT-4o 文本+图像+音频 统一的多模态 Transformer
Gemini 全模态 原生多模态设计
LLaVA 文本+图像 视觉编码器 → 投影 → LLM
BLIP-2 文本+图像 Q-Former 桥接视觉和语言
ImageBind 6 种模态 单一嵌入空间绑定多模态
Sora 文本→视频 Diffusion Transformer (DiT)
多模态融合策略
策略 方式 特点
早期融合 输入层拼接各模态特征 模态间交互充分
中期融合 分别编码后在中间层交叉注意力 灵活
晚期融合 各模态独立处理,最后合并 模态独立
Q-Former 可学习的查询与视觉特征交互 BLIP-2 提出

16.2 检索增强生成 (RAG)

核心流程:

复制代码
用户查询 → 检索相关文档 → 拼接提示 → LLM生成回答

组件:

  1. Embedding 模型:将文本转为向量
  2. 向量数据库:存储和检索(Chroma, Pinecone, Milvus, Weaviate, FAISS)
  3. 检索器:Dense (向量相似度) / Sparse (BM25) / Hybrid
  4. 重排序器 (Reranker):精排检索结果
  5. LLM Generator:基于检索内容生成

高级 RAG 技术:

技术 描述
Self-RAG 自反思检索
Corrective RAG 评估并修正检索质量
Graph RAG 基于知识图谱的检索
Agentic RAG 多步推理+工具调用
HyDE 假设文档嵌入
Multi-query Retrieval 多角度查询检索

16.3 AI Agent (智能体)

核心能力:

  • 推理:分析任务、制定计划
  • 工具调用:使用函数/API/外部工具
  • 记忆:短期(上下文)、长期(向量存储)
  • 多步规划:ReAct、Plan-and-Execute
  • 自我反思:评估并修正输出

主流框架:

框架 特点
LangChain 最全面的 LLM 应用框架
LangGraph 基于状态图的 Agent 编排
AutoGPT 自主任务分解与执行
CrewAI 多 Agent 协作
AutoGen Microsoft 的多 Agent 对话框架
DSPy 用编程方式优化 prompt

16.4 高效注意力机制

随着序列长度增加,标准注意力的 O ( n 2 ) O(n^2) O(n2) 成为瓶颈。

方法 复杂度 核心思想
Sparse Attention O ( n n ) O(n\sqrt{n}) O(nn ) 只关注部分位置
Linear Attention O ( n ) O(n) O(n) 用核函数替代 Softmax
FlashAttention O ( n 2 ) O(n^2) O(n2) 计算 / O ( n ) O(n) O(n) IO IO 感知的分块计算
Ring Attention 分布式 O ( n 2 / N ) O(n^2/N) O(n2/N) 环状通信,分布式长序列
Mamba (SSM) O ( n ) O(n) O(n) 状态空间模型,无注意力
RWKV O ( n ) O(n) O(n) RNN 式的线性 Transformer
RetNet O ( n ) O(n) O(n) 多尺度保留机制
Infini-Attention O ( n ) O(n) O(n) 压缩记忆 + 局部注意力

16.5 模型架构创新

Mixture of Experts (MoE)

y = ∑ i = 1 n G ( x ) i ⋅ E i ( x ) y = \sum_{i=1}^{n} G(x)_i \cdot E_i(x) y=i=1∑nG(x)i⋅Ei(x)

  • G ( x ) G(x) G(x):门控网络,选择激活哪些 Expert
  • E i ( x ) E_i(x) Ei(x):第 i i i 个 Expert(通常是一个 FFN)
  • 每次只激活部分 Expert,保持计算量不变的同时增大参数量

Top-K 路由:

G ( x ) = Softmax ( TopK ( x ⋅ W g ) ) G(x) = \text{Softmax}(\text{TopK}(x \cdot W_g)) G(x)=Softmax(TopK(x⋅Wg))

代表模型: Mixtral 8×7B、GPT-4 (传闻)、Switch Transformer、GLaM

Mamba (状态空间模型)
  • 基于结构化状态空间序列模型 (S4)
  • 输入依赖的选择性机制
  • 硬件感知的并行算法
  • 线性复杂度处理序列
RWKV (Receptance Weighted Key Value)
  • 结合 RNN 和 Transformer 优点
  • 训练可并行(类似 Transformer)
  • 推理 O ( 1 ) O(1) O(1) 复杂度(类似 RNN)
Retentive Network (RetNet)
  • 多尺度保持 (Multi-Scale Retention)
  • 三种计算范式:并行、循环、分块循环
  • 训练并行 + 推理高效
Kolmogorov-Arnold Networks (KAN)
  • 受 K-A 表示定理启发
  • 在边上而非节点上放置可学习激活函数
  • 更少参数可能达到更好效果
BitNet / 1-bit LLMs
  • 使用三元权重 (-1, 0, 1)
  • 大幅减少内存和计算
  • 可能成为边缘部署的解决方案

16.6 小模型 (Small Language Models)

高质量小数据训练的小模型,挑战"越大越好"的范式:

模型 参数量 特点
Phi-3 3.8B 教科书质量数据训练
Gemma 2B/7B Google 开源
Qwen2 0.5B-7B 多语言
SmolLM 135M-1.7B 极致小模型
MobileLLM 125M-350M 移动端优化

16.7 长上下文技术

技术 方法
位置插值 将新长度插值到训练长度范围内
NTK-Aware 缩放 调整 RoPE 的频率基数
YaRN 结合插值和 NTK 缩放
Self-Extend 分组注意力

17. 常用框架与工具

17.1 深度学习框架

框架 语言 特点 适用场景
PyTorch Python/C++ 动态图、研究友好、生态丰富 研究、原型开发(主流)
TensorFlow Python/C++ 静态图、生产部署、Keras API 工业部署
JAX Python 函数式、自动微分、XLA 编译 高性能研究
PaddlePaddle Python 百度出品、中文生态好 工业应用
MindSpore Python 华为出品、端-边-云协同 华为生态

17.2 常用库

用途
Transformers (HuggingFace) 预训练模型加载、微调、推理
Diffusers (HuggingFace) 扩散模型训练和推理
Datasets (HuggingFace) 数据集加载和处理
PEFT 参数高效微调 (LoRA, Adapter 等)
Accelerate 简化分布式训练
DeepSpeed 大规模分布式训练优化
Megatron-LM NVIDIA 的大模型训练框架
vLLM LLM 高效推理
LangChain LLM 应用开发框架
LlamaIndex 数据索引和 RAG 框架
Weights & Biases 实验追踪和可视化
TensorBoard 训练过程可视化
Triton GPU 编程语言(编写高效 kernel)
OpenCV 计算机视觉
Albumentations 图像数据增强
NLTK / spaCy 自然语言处理
FAISS 向量相似度搜索
ONNX Runtime 跨平台模型推理

18. 参考文献与资源

经典论文

领域 论文 年份
深度学习基础 Deep Learning (LeCun, Bengio, Hinton) - Nature 2015
CNN ImageNet Classification with Deep CNNs (AlexNet) 2012
ResNet Deep Residual Learning for Image Recognition 2015
Batch Norm Batch Normalization: Accelerating Deep Network Training 2015
GAN Generative Adversarial Nets 2014
Transformer Attention Is All You Need 2017
BERT BERT: Pre-training of Deep Bidirectional Transformers 2018
GPT Improving Language Understanding by Generative Pre-Training 2018
ViT An Image is Worth 16x16 Words 2020
CLIP Learning Transferable Visual Models From Natural Language 2021
Diffusion Denoising Diffusion Probabilistic Models 2020
Stable Diffusion High-Resolution Image Synthesis with Latent Diffusion 2022
LLaMA LLaMA: Open and Efficient Foundation Language Models 2023
GPT-4 GPT-4 Technical Report 2023
RLHF Training Language Models to Follow Instructions 2022
DPO Direct Preference Optimization 2023
LoRA LoRA: Low-Rank Adaptation of Large Language Models 2021
FlashAttention FlashAttention: Fast and Memory-Efficient Exact Attention 2022
Chinchilla Training Compute-Optimal Large Language Models 2022
Mamba Mamba: Linear-Time Sequence Modeling with SSMs 2023

推荐书籍

  1. 《深度学习》(花书) - Ian Goodfellow, Yoshua Bengio, Aaron Courville
  2. 《动手学深度学习》(D2L) - 李沐 et al.
  3. 《神经网络与深度学习》 - Michael Nielsen
  4. 《模式识别与机器学习》(PRML) - Christopher Bishop
  5. 《强化学习》 - Richard Sutton & Andrew Barto

在线资源

  • 课程: CS231n (CV), CS224n (NLP), CS224w (GNN), CS285 (RL)
  • 平台: Papers With Code, HuggingFace, arXiv, GitHub, Kaggle
  • 社区: r/MachineLearning, Twitter/X AI Community, HuggingFace Discord
  • 博客: Lil'Log, Jay Alammar, Distill.pub, Sebastian Raschka

本文档持续更新中。 深度学习领域发展迅速,建议定期关注顶会论文(NeurIPS, ICML, ICLR, CVPR, ACL, EMNLP)和预印本 (arXiv) 以跟踪最新进展。

最后更新:2026年6月