本文档系统性地梳理深度学习各领域的核心知识点,涵盖从基础理论到前沿技术的完整知识图谱。
目录
- 基础概念
- 神经网络基础
- 激活函数
- 损失函数
- 优化算法
- 正则化与归一化
- 卷积神经网络 (CNN)
- [循环神经网络 (RNN) 及其变体](#循环神经网络 (RNN) 及其变体)
- [注意力机制与 Transformer](#注意力机制与 Transformer)
- 生成模型
- 图神经网络 (GNN)
- 深度强化学习 (DRL)
- 自监督学习与对比学习
- 模型训练技巧
- 模型部署与优化
- 前沿技术与趋势
- 常用框架与工具
- 参考文献与资源
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)
反向传播是训练神经网络的核心算法,基于链式法则高效计算梯度。
核心步骤:
- 前向传播:计算各层激活值和最终输出
- 计算输出层误差 :
δ ( L ) = ∇ a L ⊙ f ′ ( z ( L ) ) \delta^{(L)} = \nabla_{\mathbf{a}} L \odot f'(\mathbf{z}^{(L)}) δ(L)=∇aL⊙f′(z(L)) - 反向传播误差 :
δ ( 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)) - 计算梯度 :
∇ 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):
- Depthwise:每个通道独立做空间卷积
- 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 的卷积
有效感受野 (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 架构:
-
Encoder :将输入序列编码为上下文向量
c = Encoder ( x 1 , . . . , x T ) \mathbf{c} = \text{Encoder}(x_1, ..., x_T) c=Encoder(x1,...,xT)
-
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 (基于人类反馈的强化学习)
- SFT (Supervised Fine-Tuning):使用高质量人类标注数据微调
- Reward Model:训练奖励模型预测人类偏好
- PPO:用强化学习优化模型
- 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 架构
- VAE:图像 ↔ 潜在空间编码/解码
- U-Net:在潜在空间中进行扩散/去噪
- Text Encoder (CLIP):将文本提示编码为条件信号
- 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):
-
消息计算: 每个节点从邻居收集消息
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)
-
消息聚合:
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)})
-
节点更新:
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 三大创新:
- 经验回放 (Experience Replay):打破样本时间相关性
- 目标网络 (Target Network):稳定训练,定期同步
- 奖赏裁剪:限制奖励范围
训练目标:
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 自监督学习范式
不依赖人工标注,从数据本身构造监督信号进行预训练。
两大类方法:
- 生成式:重构输入(掩码语言模型、自编码器)
- 对比式:学习区分相似/不相似样本
13.2 对比学习
核心思想: 拉近正样本对,推远负样本对。
SimCLR
核心组件:
- 强数据增强(随机裁剪+颜色失真+高斯模糊)
- 非线性投影头(MLP)
- NT-Xent Loss(归一化温度缩放交叉熵损失)
- 大 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 | 优化器状态 | 4× |
| ZeRO-2 | 优化器状态 + 梯度 | 8× |
| ZeRO-3 | 优化器状态 + 梯度 + 参数 | 线性(≈ N×) |
FSDP (Fully Sharded Data Parallel)
- PyTorch 实现的 ZeRO-3 等价方案
- 训练时每个 GPU 只持有部分参数
- 前向/反向传播时按需 AllGather
14.8 过拟合诊断与对策
诊断信号:
- 训练损失持续下降,验证损失上升
- 训练/验证指标差距持续扩大
对策优先级:
- 增加数据(数据增强)
- 加强正则化(Dropout、权重衰减)
- 减小模型容量
- 早停
- 标签平滑
14.9 欠拟合诊断与对策
诊断信号:
- 训练损失仍然较高且不再下降
- 训练和验证性能都差
对策优先级:
- 增加模型容量(深度/宽度)
- 训练更久 / 调整学习率
- 减少正则化强度
- 检查是否存在数据质量问题
- 更好的特征工程
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生成回答
组件:
- Embedding 模型:将文本转为向量
- 向量数据库:存储和检索(Chroma, Pinecone, Milvus, Weaviate, FAISS)
- 检索器:Dense (向量相似度) / Sparse (BM25) / Hybrid
- 重排序器 (Reranker):精排检索结果
- 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 |
推荐书籍
- 《深度学习》(花书) - Ian Goodfellow, Yoshua Bengio, Aaron Courville
- 《动手学深度学习》(D2L) - 李沐 et al.
- 《神经网络与深度学习》 - Michael Nielsen
- 《模式识别与机器学习》(PRML) - Christopher Bishop
- 《强化学习》 - 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月