CS231n:面向视觉识别的卷积神经网络
CS231n: Convolutional Neural Networks for Visual Recognition|斯坦福公开课(李飞飞、Karpathy 等人先后主讲)
Ilya 为什么选它
这份书单里的其他篇目几乎全是论文,唯一一门课程就是它。这个安排本身就在传递一个判断:论文给你最尖端的成果,课程给你最完整的地基。想把卷积网络学扎实,最短路径不是再多读十篇论文,而是把这门课从头到尾认真过一遍——地基打牢了,后来读每一篇论文都会事半功倍。
它出现在书单的这个位置也很有讲究。上一篇 AlexNet 一战引爆了深度学习,此后几年新技巧井喷,却散落在各处论文里,东一鳞西一爪。CS231n 做的正是系统化的整理:把散落的真金炼成一本循序渐进的教材,让后来者不必重走弯路。可以说,它是 AlexNet 之后 CNN 技术的「官方教科书」。
还有一条很实际:课程公开免费。一门顶尖大学的花了多年打磨的课,任何人都能上网完整听到——这种学习资源的杠杆率,在整个人类教育史上都罕见。
从生活说起
想象你在一面巨大的海报墙上找某种花纹。不用眼睛一次看全墙,而是拿一枚刻着小图案的印章,从左上角开始,从左到右、从上到下,一格一格盖过去:哪一格盖上去图案对得上,就在那里做个记号。把整面墙盖完,花纹出现在哪些位置就一目了然。这基本就是卷积在做的事——拿一个小模板在图上滑动,逐格比对局部花纹,哪里匹配哪里得高分。
再看第二个场景。一所学校有 100 个班,如果每个班各自印一套教材,成本高得离谱;全校统一一套教材,每个班都用同一本,又省钱又好管理。卷积网络里也是同样的账:同一个小模板在整张图的每个位置重复使用,这就是参数共享(Parameter Sharing)——要学的东西从「每处一套」变成「全图一套」,省下的开销可以拿去学更多种花纹。
这两个直觉合起来,就是课程要教给你的核心画面:卷积网络不是什么神秘的黑箱,而是一群小印章在图上分工合作——有的认线条,有的认纹理,有的认部件,层层汇总,最后报出答案。
核心思想拆解
课程的主线是一条四级台阶:线性分类器 → 反向传播 → 卷积网络 → 训练技巧。台阶顺序不能乱,因为每一级都踩在前一级之上。
第一级线性分类器(Linear Classifier):最朴素的打分器。给图片的每个像素配一个「重要度权重」,把所有像素加权求和,得到每个类别的得分,得分最高的就是答案。像给学生算综合测评:各项表现按比重加权,总分定名次。它简单,却让「学习」这件事第一次变得看得见摸得着——所谓学习,就是不断调整权重。
第二级反向传播(Backpropagation):网络答错了,怎么知道该调哪个权重?办法是把「错在哪」逐层反馈回去,让每个参数都收到自己的纠错方向。像考卷发还:每个学生按自己的失分点订正,而不是全班一起盲目重考。有了它,深网络的训练才成为可能。第三级卷积网络(CNN):也就是前面说的「小印章逐格盖图」。课程会讲清卷积为什么特别适合图像,理由有三:局部相关——图像的语义集中在相邻像素之间,隔了半张图的两个像素基本无关;平移不变——猫挪个位置还是猫,小印章滑到哪里就查到哪里,不挑位置;参数共享——同一套印章全图通用,省参数又防死记。
第四级训练技巧:学习率怎么定、怎么防止过拟合、数据怎么准备。这些是决定「学得会」与「学得好」之间差距的工匠手艺。四级台阶走完,AlexNet 之后 CNN 技术的骨架就完整装进了脑子里。
动手算一算
先算参数共享这笔账。一张 100×100 的图,一共 10000 个位置。如果每个位置都单独学一套 3×3 的小模板,需要学 9 × 10000 = 90000 个数;如果全图共享一套模板,只需要 9 个数——相差整整 10000 倍。省下来的空间,可以换成更多种类的模板、更深的网络。
再算计算量这笔账。一套 3×3 模板在一个位置要做 9 次乘法再相加,扫完整张图就是约 90000 次乘法;模板换十套,就是近百万次。这种「同一款运算重复成千上万次」的活,正是 GPU 最擅长打包处理的——这也解释了为什么课程反复强调与硬件的配合。
最后算课程编排这笔账:为什么非要从线性分类器学起?因为卷积网络本质上就是「带花纹模板的打分器」一层层堆出来的:卷积层负责找局部花纹,打分汇总的逻辑与线性分类器一脉相承。地基与高楼用的是同一种砖,只是砌法越来越巧——先把最简单的砌法练熟,后面的巧劲才接得住。
它改变了什么
对个人学习者,它把「入门卷积网络」从一份漫长的论文清单变成了一条有护栏的山道:先立地基,再上高峰。无数工程师和研究者是顺着这门课走进深度学习行业的,说它是最短路径并不夸张。
对整个领域,它把论文里东散西落的技巧系统化成了可教、可学、可考的体系。知识一旦成体系,扩散速度就完全不同:深度学习从少数实验室的独门绝技,变成了全球课堂里的公共课。它整理的起点,正是 i06 AlexNet 引爆的那批技术。
沿着书单往下走,学完课程之后自然的下一站,是回答「网络能做多深」的 i08 ResNet——课程给了你地基,ResNet 会带你见识地基之上能盖多高的楼。
术语小词典
- 卷积核 / 滤波器(Kernel / Filter)
- 在图上滑动扫描的小模板,也叫「小印章」。
- 卷积(Convolution)
- 小模板逐格滑动、比对局部花纹并给出匹配分的运算。
- 反向传播(Backpropagation)
- 把误差逐层反馈、让每个参数按自己失分点订正的训练方法。
- 线性分类器(Linear Classifier)
- 把各像素加权求和后打分分类的最朴素模型。
- 参数共享(Parameter Sharing)
- 同一套模板在图的每个位置重复使用,省参数又防死记。
- 平移不变(Translation Invariance)
- 物体在图中挪动位置,模板滑过去照样能认出来。
原文与代码
提示:书单只给了课程官网这一个地址;按官网的公开入口按部就班学即可,不必另行收集资料。