CS231n 的作业(Assignments)涵盖哪些内容?
CS231n 的作业按学期发布,目前网站列出 Spring 2026 的三组作业:Assignment #1 覆盖图像分类、kNN、Softmax 与全连接网络;Assignment #2 覆盖批归一化、Dropout、卷积网络、网络可视化与 RNN 图像描述;第三组涉及 Transformer、自监督学习、扩散模型以及 CLIP 和 DINO 模型,标注为 5 月 14 日发布。如果你正在判断这套作业是否适合自己练手,下面按作业和对应课程模块拆开说明。
Assignment #1:从分类器到全连接网络
这组作业对应课程 Module 1(神经网络)的基础部分,目标是把“数据驱动分类”这条线走通一遍。
- 图像分类与 kNN:数据驱动方法、k-Nearest Neighbor、train/val/test 划分、L1/L2 距离、超参数搜索与交叉验证。
- 线性分类:支持向量机(SVM)与 Softmax 的参数化方法、bias trick、hinge loss、交叉熵损失、L2 正则化。
- 全连接神经网络:网络结构搭建、激活函数、数据预处理、权重初始化、批归一化、正则化(L2/dropout)与损失函数。
- 优化与反向传播:随机梯度下降、优化地形、学习率、解析梯度与数值梯度、链式法则与梯度流模式。
适合谁:刚接触深度学习、想亲手实现分类器和反向传播的人。前提是能读写 Python 和 NumPy;网站提供 Python / NumPy 教程(含 Jupyter 和 Colab),Module 0 的软件环境搭建也在这部分之前。
Assignment #2:卷积网络与序列模型
这组作业对应 Module 2(卷积神经网络)以及循环网络部分,重点从全连接转向卷积和序列建模。
- 批归一化与 Dropout:在训练流程中实现并观察它们对训练的影响。
- 卷积网络:卷积层与池化层、空间排列、层模式与层尺寸设计,以及 AlexNet / ZFNet / VGGNet 案例。
- 网络可视化:tSNE 嵌入、deconvnet、数据梯度、fooling ConvNets,以及与人类判断的对比。
- 图像描述(RNN):用循环神经网络完成图像描述任务。
适合谁:已经能独立实现全连接网络、想理解卷积网络内部行为和可视化方法的人。Transfer Learning 与微调卷积网络的内容也在这条线上,可作为延伸。
第三组作业:Transformer、自监督与生成模型
网站列出的后续作业覆盖:
- 使用 Transformer 的图像描述
- 自监督学习
- 扩散模型
- CLIP 和 DINO 模型
这组内容标注为 5 月 14 日发布,属于较新的主题,和前面两组相比更贴近当前视觉模型的主流做法。
作业与课程模块的对应关系
| 作业 | 主要对应模块 | 核心主题 |
|---|---|---|
| Assignment #1 | Module 1:神经网络 | 图像分类、kNN、Softmax、全连接网络、反向传播、优化 |
| Assignment #2 | Module 2:卷积神经网络 + RNN | 批归一化、Dropout、卷积网络、可视化、RNN 图像描述 |
| 第三组作业 | 后续主题 | Transformer、自监督学习、扩散模型、CLIP、DINO |
怎么判断是否适合自己
- 如果你只想理解分类器和反向传播的数学与实现,Assignment #1 就够用,且不依赖卷积知识。
- 如果你想做视觉任务、理解卷积网络为什么有效,需要先完成 Assignment #1,再进入 Assignment #2。
- 如果你关注 Transformer 和自监督、扩散模型等较新方向,第三组作业更对口,但它建立在前面两组的基础之上。
- 网站还包含学生贡献的文章,例如“Taking a Course Project to Publication”,可作为把课程项目推进到发表的参考。
作业本身是实践巩固材料,和课程笔记配套使用。遇到问题或发现 bug,网站给出的渠道是直接向 git 仓库提交 pull request。