如何开始学习 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 的顺序推进,并配合作业练习,效果最稳。

cs231n.github.io
Course materials and notes for Stanford class CS231n: Deep Learning for Computer Vision.