AI 入门到精通 04 · 深度学习基础
深度学习 = 用神经网络做 ML,外加一套独特的训练 trick。 你看到的所有 SOTA(GPT、Sora、AlphaFold)都建立在本章的基础上。
一、神经网络的"黑盒"打开
- 神经元 = 线性变换 + 非线性激活:
y = σ(Wx + b)。 - 多层感知机 (MLP) = 多个神经元堆叠 → 能逼近任何函数(万能近似定理)。
- 训练 = 用梯度下降最小化 loss → 反向传播 (Backprop) 是链式法则的高效实现。
- 核心 trick:随机初始化、激活函数选择、批归一化、Dropout、残差连接。
二、知识地图
2.1 基础组件
- 激活函数:sigmoid / tanh / ReLU / GELU / SiLU / Swish;为什么 ReLU 取代 sigmoid。
- 损失函数:MSE / MAE(回归);交叉熵 / Focal Loss / Label Smoothing(分类);CTC / Triplet(特殊任务)。
- 初始化:Xavier / He;为什么不能全零初始化。
- 正则化:L1 / L2 weight decay、Dropout、数据增强、Mixup / CutMix、Label Smoothing。
- 归一化:BatchNorm / LayerNorm / GroupNorm / RMSNorm;不同任务用不同的。
- 优化器:SGD+Momentum / Adam / AdamW / Lion / Adafactor;学习率 warmup + cosine decay。
- 梯度问题:梯度消失 / 爆炸;残差连接 (Residual)、梯度裁剪、归一化的作用。
2.2 经典架构
| 架构 | 适用 | 必看代表作 |
|---|---|---|
| MLP | 表格 / 简单分类 | LeNet 之前的所有 |
| CNN | 图像 / 局部模式 | LeNet → AlexNet → VGG → ResNet → EfficientNet → ConvNeXt |
| RNN / LSTM / GRU | 序列(已被 Transformer 替代但要懂) | Seq2Seq、Attention 早期 |
| Transformer | 几乎所有现代 SOTA | Attention is All You Need (2017) |
| GNN | 图数据 | GCN / GAT / GraphSAGE |
| Autoencoder / VAE | 表征学习 / 生成 | VAE 原论文 |
| GAN | 生成(已被 Diffusion 部分替代) | DCGAN / StyleGAN |
| Diffusion | 生成(图像 / 视频 / 音频 SOTA) | DDPM (2020) → Stable Diffusion |
2.3 Transformer 重点剖析(接 chap 05)
这是当前 AI 最重要的一篇论文,必须吃透:
- Self-Attention:QKV 推导、scaled dot-product、为什么除以 √d。
- Multi-Head Attention:多头的几何意义。
- Position Encoding:sinusoidal、Learned、RoPE、ALiBi。
- Feed-Forward Network、LayerNorm 位置(pre-LN vs post-LN)。
- Encoder-Decoder vs Decoder-Only vs Encoder-Only。
- 复杂度:O(n²d) 与现代解决方案(Flash Attention、Linear Attention、Sparse Attention)。
2.4 训练技巧
- 学习率搜索:LR Range Test。
- 混合精度训练:fp16 / bf16;GradScaler。
- 梯度累积:小显存模拟大 batch。
- Checkpoint / Resume;EMA (Exponential Moving Average) 权重。
- 分布式训练:DP → DDP → ZeRO / FSDP / Pipeline / Tensor Parallel(详见 chap 06)。
- 调试:先在小数据上过拟合(任何模型都该能在 16 个样本上过拟合,过不了拟合就是 bug)。
三、参考资料
课程
- 《动手学深度学习》(d2l.ai) —— 中英文免费,所有概念配代码。首选。
- Andrej Karpathy 《Neural Networks: Zero to Hero》 —— 从零实现 backprop / MLP / Transformer / GPT。必看。
- Stanford CS231n Fei-Fei Li / Andrej Karpathy / Justin Johnson —— 计算机视觉经典。
- Stanford CS224n Christopher Manning —— NLP 经典,从词向量讲到 Transformer。
- MIT 6.S191 Introduction to Deep Learning —— 短小精悍。
- DeepMind x UCL Reinforcement Learning Lecture Series —— RL 经典。
- 李宏毅《机器学习》 —— 中文版深度学习课,幽默易懂。
教材
- 《Deep Learning》(花书) Ian Goodfellow / Yoshua Bengio —— 圣经,第二部分必读。
- 《Dive into Deep Learning》 d2l 配套书。
- 《Understanding Deep Learning》 Simon Prince —— 现代写法,免费 PDF,强烈推荐。
论文阅读路线(必读)
按时间顺序,读完你就理解了「为什么 Transformer 能赢」:
- AlexNet (2012) — 深度学习起飞。
- VGG (2014) / GoogLeNet (2014) — 深 / 宽的探索。
- ResNet (2015) — 残差连接,当代 NN 的基石。
- Seq2Seq (2014) + Attention (Bahdanau, 2014)。
- Attention is All You Need (2017) — Transformer。
- BERT (2018) — 预训练范式起飞。
- GPT-2 (2019) / GPT-3 (2020) — Scaling 起飞(chap 05)。
- ViT (2020) — Transformer 进图像。
- CLIP (2021) — 多模态对比学习(chap 09)。
- DDPM (2020) / Stable Diffusion (2022) — 扩散生成(chap 09)。
代码仓库
- PyTorch 官方 examples。
- labmlai/annotated_deep_learning_paper_implementations —— 论文逐行注释代码。
- karpathy/nanoGPT —— 300 行 GPT 训练代码。
- karpathy/llm.c —— C 语言实现 GPT 训练。
四、动手实践
- 复现 Karpathy Zero to Hero 全部 6 集:从 micrograd 到 GPT。这一步比读 10 本书都管用。
- CIFAR-10 全家桶:用 ResNet-18 在 CIFAR-10 上训到 95%+。再用各种 trick(cosine LR / EMA / AutoAugment / Mixup)继续往上拉。
- 从零实现一个 Transformer:在小数据集(莎士比亚 / 中文古诗)上训练一个 character-level 语言模型。
- 复现一个经典论文:自选 ResNet / BERT / ViT 之一,用 PyTorch 从零写出训练代码(不抄 transformers 库)。
- 用 nanoGPT 训练自己的 GPT:在 OpenWebText / 自己整理的中文数据上训一个 50M-200M 参数的 GPT。
- 图像分类比赛:参加 Kaggle 上一个图像比赛,用 ResNet / EfficientNet / ViT 做对比。
- 写一篇博客:解释 Self-Attention 的 QKV 是什么、为什么是这样设计的。
五、通关标志
- 能在白板上不查资料推导 Self-Attention 的公式。
- 能从零写一个 Transformer 训练 loop(不抄)。
- 训练一个深度模型,遇到 loss 不下降,能给出 5 个以上排查方向。
- 看 ResNet / BERT / GPT 论文,能讲清主要 contribution。
- 你的 GitHub 上有至少一个能跑通的端到端深度学习项目。
下一站:05. 大语言模型