深度学习

深度学习通过多层神经网络学习数据表示。真正掌握它,需要能解释前向传播、损失函数、反向传播、优化器、正则化和训练稳定性,并能独立实现训练与评估流程。

神经网络训练流程

flowchart LR
    X["输入与标签"] --> F["前向传播"]
    F --> Y["预测输出"]
    Y --> L["计算损失"]
    L --> B["反向传播求梯度"]
    B --> O["优化器更新参数"]
    O --> F
    Y --> E["验证与指标"]

核心模块

  • 感知机与 MLP:线性层、激活函数、初始化。
  • 训练机制:计算图、自动微分、反向传播、梯度裁剪。
  • 优化:SGD、Momentum、Adam/AdamW、学习率调度。
  • 泛化:Dropout、Weight Decay、数据增强、Early Stopping。
  • 架构:CNN、RNN/LSTM/GRU、Attention、Transformer。
  • 生成模型:VAE、GAN、Diffusion、自回归模型。
  • 训练工程:混合精度、梯度累积、分布式训练、checkpoint。

经典论文起点

GitHub 学习资料

实战路线

  1. 用 PyTorch 从零实现 MLP,并检查梯度数值。
  2. 用 CNN 完成 Fashion-MNIST 或 CIFAR-10 分类。
  3. 对比不同优化器、学习率、Batch Size 和正则化方式。
  4. 实现一个简化版 Attention,观察序列长度和计算量变化。
  5. 选择一篇论文,复现基线并做至少一组消融实验。

调试清单

  • 先尝试让模型在一个很小的 batch 上过拟合,以验证代码链路。
  • 检查输入/标签维度、dtype、设备和损失函数要求。
  • 观察训练损失与验证损失是否分离。
  • 检查梯度是否为 None、是否爆炸或消失。
  • 保存最佳验证 checkpoint,不要只保存最后一个 epoch。

推荐阅读

相关