如何开始学习 CS231n 网站上的课程材料?
直接按“Module 0 → Module 1 → Module 2”的顺序读笔记,同时用作业检验理解,是最省力的路径。这套材料是斯坦福 CS231n(Deep Learning for Computer Vision)课程的配套笔记,面向想系统学习计算机视觉与深度学习的人。前提是你具备基础 Python 和一点线性代数、微积分知识;如果暂时没有,先补 Module 0 的 Python/Numpy 教程再往下走。
第一步:完成 Module 0 的环境准备
Module 0 是 Preparation,包含两部分:
- Software Setup:配置运行课程代码所需的环境。
- Python / Numpy Tutorial(with Jupyter and Colab):用 Jupyter 和 Colab 学习 Python 与 Numpy 基础。
这一步的预期结果是:你能在本地或 Colab 里跑通一段 Numpy 数组运算代码。常见卡点是环境依赖装不上或版本冲突,遇到时优先用 Colab 在线环境绕过本地配置。
第二步:按模块顺序读笔记
课程笔记分为两大模块,建议顺序阅读,不要跳读。
Module 1:Neural Networks(神经网络基础)
覆盖从数据驱动方法到网络训练的全过程:
- 图像分类:数据驱动方法、k-Nearest Neighbor、train/val/test 划分、L1/L2 距离、超参数搜索、交叉验证。
- 线性分类:支持向量机(SVM)、Softmax、参数化方法、bias trick、hinge loss、交叉熵损失、L2 正则化。
- 优化:随机梯度下降(SGD)、优化地形、局部搜索、学习率、解析梯度与数值梯度。
- 反向传播:链式法则解释、实值电路、梯度流模式。
- 神经网络架构(Part 1):生物神经元模型、激活函数、网络架构、表示能力。
- 数据与损失(Part 2):预处理、权重初始化、批归一化、正则化(L2/dropout)、损失函数。
- 学习与评估(Part 3):梯度检查、健全性检查、训练过程监控、momentum(含 Nesterov)、二阶方法、Adagrad/RMSprop、超参数优化、模型集成。
- 综合案例:一个最小的 2D 玩具数据神经网络案例。
Module 2:Convolutional Neural Networks(卷积网络)
- 卷积网络架构:卷积层/池化层、空间排列、层模式、层尺寸模式,以及 AlexNet/ZFNet/VGGNet 案例、计算量考量。
- 理解与可视化卷积网络:tSNE 嵌入、deconvnet、数据梯度、欺骗卷积网络(fooling ConvNets)、与人类的对比。
- 迁移学习与微调:把预训练卷积网络迁移到新任务。
- 循环神经网络(RNN):序列建模相关笔记。
- 学生贡献文章:例如“Taking a Course Project to Publication”,讲如何把课程项目推进到发表。
第三步:用作业巩固
作业与笔记主题对应,按编号做能覆盖主要知识点:
| 作业 | 覆盖主题 |
|---|---|
| Assignment #1 | 图像分类、kNN、Softmax、全连接神经网络 |
| Assignment #2 | 批归一化、Dropout、卷积网络、网络可视化、RNN 图像描述、Transformer 图像描述、自监督学习、扩散模型、CLIP 和 DINO 模型 |
其中 Assignment #2 的部分内容(Transformer 图像描述、自监督学习、扩散模型、CLIP 和 DINO)标注为 5 月 14 日发布。做作业时建议先读完对应笔记再动手,遇到梯度不收敛先回看 Part 3 的梯度检查和训练监控方法。
反馈与提问
笔记和作业有问题、疑问或 bug,官方给出的渠道是直接向 git 仓库提交 pull request,而不是在网站上留言。
一句话选择建议
如果你只想快速了解某个主题(比如只看反向传播或迁移学习),可以直接跳到对应笔记;但如果你要完整掌握这门课,按 Module 0 → Module 1 → Module 2 的顺序推进,并配合作业练习,效果最稳。