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。

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