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

目录

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

1. 基础概念

1.1 什么是深度学习

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

核心特征:

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

1.2 深度学习发展简史

时期里程碑关键贡献
1943MCP 神经元模型McCulloch & Pitts 提出第一个神经元数学模型
1958感知机 (Perceptron)Rosenblatt 提出可学习的单层神经网络
1986反向传播算法Rumelhart, Hinton & Williams 推广 BP 算法
1998LeNet-5LeCun 提出卷积神经网络用于手写数字识别
2006深度信念网络Hinton 提出逐层预训练方法
2012AlexNetKrizhevsky 等在 ImageNet 上取得突破性成果
2014GANGoodfellow 提出生成对抗网络
2015ResNet何恺明提出残差网络,解决深层网络退化问题
2017TransformerVaswani 等提出"Attention Is All You Need"
2018BERT / GPT预训练语言模型时代开启
2020GPT-3大规模语言模型的涌现能力
2022ChatGPT / Stable Diffusion生成式 AI 进入大众视野
2023-2025GPT-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∑n​wi​xi​+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)=∇a​L⊙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/GlorotSigmoid/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/KaimingReLU 及其变体 W ∼ N ( 0 , 2 n i n ) W \sim \mathcal{N}\left(0, \sqrt{\frac{2}{n_{in}}}\right) W∼N(0,nin​2​ ​)
LeCun早期 CNN W ∼ N ( 0 , 1 n i n ) W \sim \mathcal{N}\left(0, \sqrt{\frac{1}{n_{in}}}\right) W∼N(0,nin​1​ ​)
正交初始化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αx​x>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+tanh[2/π ​(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=1K​exj​exi​​

  • 将任意实向量映射为概率分布
  • 多分类问题的标准输出层激活函数
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,k]max​(WijT​x+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​=n1​i=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​=n1​i=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​=−n1​i=1∑n​[yi​log(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​=−n1​i=1∑n​j=1∑C​yij​log(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=0K​exp(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)=21​DKL​(P∣∣M)+21​DKL​(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​)inf​E(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∼pdata​​[logD(x)]−Ez∼pz​​[log(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∼pz​​[logD(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]+E[D(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​−η⋅m1​i=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​=β1​mt−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​=β2​vt−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−β1t​mt​​,v^t​=1−β2t​vt​​
θ 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 WarmupWarmup + Cosine 结合(Transformer 标配)

5.5 优化器选择指南

场景推荐优化器
图像分类/检测 (CNN)SGD + Momentum / Adam
Transformer (NLP/CV)AdamW
GANAdam (β₁=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​=H1​j=1∑H​xij​,σi​=H1​j=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)=n1​i=1∑n​ai2​ ​

  • 去除了均值中心化,仅做缩放
  • 计算更高效
  • 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​+Cout​1​

空洞卷积 (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密集连接:每层与前面所有层相连
ResNeStSplit-Attention,通道分组加注意力
SENet通道注意力机制(Squeeze-and-Excitation)
MobileNet 系列
版本核心创新特点
MobileNetV1深度可分离卷积极致轻量
MobileNetV2倒残差结构 + Linear Bottleneck更好的精度-速度权衡
MobileNetV3NAS 搜索 + 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−1​Si​

其中 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(Whh​ht−1​+Wxh​xt​+bh​)
y t = W h y h t + b y \mathbf{y}_t = \mathbf{W}_{hy}\mathbf{h}_t + \mathbf{b}_y yt​=Why​ht​+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​=vaT​tanh(Wa​si−1​+Ua​hj​)
α i j = exp ⁡ ( e i j ) ∑ k exp ⁡ ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_k \exp(e_{ik})} αij​=∑k​exp(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​=siT​Wa​hj​(General)
e i j = s i T h j (Dot) e_{ij} = \mathbf{s}_i^T \mathbf{h}_j \quad \text{(Dot)} eij​=siT​hj​(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/dmodel​pos​)
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/dmodel​pos​)

  • 固定编码,无需学习
  • 具有一定的外推能力
  • 原始 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​=qm​eimθ,k~n​=kn​einθ

  • 通过旋转矩阵编码相对位置信息
  • 在 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段级循环 + 相对位置编码处理超长文本
ReformerLSH 注意力 + 可逆残差降低复杂度
Longformer滑动窗口 + 全局注意力长文档处理
Linformer低秩投影O(N) 复杂度
BigBird稀疏注意力 (Random + Window + Global)理论保证
PerformerFAVOR+ 正交随机特征线性注意力
FlashAttentionIO-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_tx_{<t})$
自编码语言模型MLM: 预测被屏蔽的 tokenBERT
Prefix LM前缀部分双向,其余单向GLM
Seq2SeqEncoder 双向 + 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%
QLoRALoRA + 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)))] Gmin​Dmax​V(D,G)=Ex∼pdata​​[logD(x)]+Ez∼pz​​[log(1−D(G(z)))]

GAN 训练技巧:

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

重要 GAN 变体:

模型年份核心创新
DCGAN2015CNN + GAN,稳定架构设计
CGAN2014条件生成
WGAN2017Wasserstein 距离替代 JS 散度
WGAN-GP2017梯度惩罚替代权重裁剪
Pix2Pix2017图像到图像翻译(配对数据)
CycleGAN2017无配对图像翻译(循环一致性)
StyleGAN2018风格控制、渐进生成
StyleGAN22020去除水滴伪影,更好的解耦
BigGAN2018大规模训练 + 条件批次归一化
SinGAN2019单张图像训练

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​,βt​I)

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

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
DiTTransformer 骨干替代 U-Net2023
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∏n​p(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∑K​log ​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~−21​A~D~−21​H(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∈Ni​​exp(LeakyReLU(aT[Whi​∣∣Whk​]))exp(LeakyReLU(aT[Whi​∣∣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'}\left[R(s, a) + \gamma \max_{a'} Q^*(s', a')\right] Q∗(s,a)=Es′​[R(s,a)+γa′max​Q∗(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′max​Qθ−​(s′,a′)−Qθ​(s,a))2]

DQN 改进
变体改进点
Double DQN解耦动作选择与评估,减少过高估计
Dueling DQN分离状态价值 V(s) 和优势 A(s,a)
Prioritized Experience ReplayTD-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′max​Qθ​(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∣1​a′∑​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(θ)=Et​[min(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-basedDQN, Double DQN, Rainbow离散动作空间
Policy-basedREINFORCE简单但高方差
Actor-CriticA2C, A3C连续/离散均可
On-policyPPO, TRPO需要当前策略的数据
Off-policyDQN, 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=12N​1[k=i]​exp(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​⋅Twarmup​t​
  • 原因:训练初期模型参数随机,大学习率可能导致不稳定
  • 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​⋅Tw​t​ηmin​+21​(ηmax​−ηmin​)(1+cos(T−Tw​t−Tw​​π))​t<Tw​t≥Tw​​

  • 大模型训练的标准配置

14.2 梯度累积 (Gradient Accumulation)

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

# 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​×Bbase​Bnew​​

14.7 分布式训练

数据并行 (Data Parallelism)
  • 每张 GPU 持有完整模型,处理不同数据
  • 反向传播后同步梯度(AllReduce)
  • 适用于模型能放入单卡的场景
模型并行 (Model Parallelism)
类型方式适用场景
张量并行切分层内矩阵运算单层太大
流水线并行不同层放不同设备模型太深
序列并行切分序列长度维度长序列
ZeRO (零冗余优化器)
阶段分片内容内存节省
ZeRO-1优化器状态4×
ZeRO-2优化器状态 + 梯度8×
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)

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

类型比特数精度影响
FP3232基准
FP1616几乎无损
BF1616更好范围,训练友好
INT88轻微损失
INT44中等损失
NF44分位数量化,较轻损失

量化方法:

方法描述
PTQ (Post-Training Quantization)训练后量化,无需再训练
QAT (Quantization-Aware Training)训练时模拟量化效果
动态量化推理时动态计算量化参数
GPTQ基于 Hessian 的逐层量化
AWQ激活感知的权重量化
GGUF/GPTQLLM 最常见的量化格式
剪枝 (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​=∑j​exp(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 CacheTransformer 推理缓存键值对
PagedAttention分页管理 KV Cache(vLLM 核心)
Speculative Decoding小模型快速生成,大模型验证
Continuous Batching动态添加/移除请求

15.3 LLM 推理框架

框架核心特点
vLLMPagedAttention、连续批处理、高吞吐
Text Generation Inference (TGI)HuggingFace 官方、水印、停止序列
llama.cppCPU 推理、GGUF 量化格式
Ollama易用封装、本地运行 LLM
TensorRT-LLMNVIDIA 优化、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 桥接视觉和语言
ImageBind6 种模态单一嵌入空间绑定多模态
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 协作
AutoGenMicrosoft 的多 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) IOIO 感知的分块计算
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∑n​G(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-33.8B教科书质量数据训练
Gemma2B/7BGoogle 开源
Qwen20.5B-7B多语言
SmolLM135M-1.7B极致小模型
MobileLLM125M-350M移动端优化

16.7 长上下文技术

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

17. 常用框架与工具

17.1 深度学习框架

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

17.2 常用库

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

18. 参考文献与资源

经典论文

领域论文年份
深度学习基础Deep Learning (LeCun, Bengio, Hinton) - Nature2015
CNNImageNet Classification with Deep CNNs (AlexNet)2012
ResNetDeep Residual Learning for Image Recognition2015
Batch NormBatch Normalization: Accelerating Deep Network Training2015
GANGenerative Adversarial Nets2014
TransformerAttention Is All You Need2017
BERTBERT: Pre-training of Deep Bidirectional Transformers2018
GPTImproving Language Understanding by Generative Pre-Training2018
ViTAn Image is Worth 16x16 Words2020
CLIPLearning Transferable Visual Models From Natural Language2021
DiffusionDenoising Diffusion Probabilistic Models2020
Stable DiffusionHigh-Resolution Image Synthesis with Latent Diffusion2022
LLaMALLaMA: Open and Efficient Foundation Language Models2023
GPT-4GPT-4 Technical Report2023
RLHFTraining Language Models to Follow Instructions2022
DPODirect Preference Optimization2023
LoRALoRA: Low-Rank Adaptation of Large Language Models2021
FlashAttentionFlashAttention: Fast and Memory-Efficient Exact Attention2022
ChinchillaTraining Compute-Optimal Large Language Models2022
MambaMamba: Linear-Time Sequence Modeling with SSMs2023

推荐书籍

  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月

更多推荐