主讲:李飞飞(Fei-Fei Li)教授(历史与前沿部分)、Ehsan Adeli 教授(课程概览部分)
李飞飞教授开篇指出:如果把人工智能(Artificial Intelligence, AI)看作一个大泡泡,那么计算机视觉(Computer Vision)是其中不可或缺的组成部分。她有一句反复强调的话:
视觉不仅是智能的一部分,它更是智能的基石(cornerstone)。解开视觉智能之谜,就是解开智能本身之谜。
从技术路径上看,本课程处在几个领域的交集处:
因此本课程的定位是计算机视觉与深度学习两者的核心交集——既不覆盖整个计算机视觉,也不覆盖整个机器学习。同时,视觉本身也是一个高度交叉的领域,与自然语言处理(NLP)、语音识别、机器人学相连;整个 AI 又与数学、神经科学、计算机科学、心理学、物理学、生物学,以及医学、法律、教育、商业等应用领域交叉。李飞飞特别鼓励来自医学院、法学院、教育学院、商学院的同学把课程所学带回自己热爱的事业中。
李飞飞用相当长的篇幅讲述视觉的历史起点——这并非从人类或人类文明开始,而是 5.4 亿年前。化石研究表明,在演化史上一个仅约 1000 万年的短短时期内(对演化而言极短),动物物种出现了爆炸式的增长,这一时期被称为寒武纪生命大爆发。在此之前,地球上的生命相当"悠闲":都生活在水里,没有动物登上陆地,生物只是随波漂浮。
是什么引发了这场物种大爆发?理论有很多——气候、海水化学成分变化等,但最有说服力的理论之一是眼睛(感光能力)的出现:
如今地球上几乎所有已知动物都以视觉作为主要感官之一,而人类尤其是一种"视觉动物"——人类大脑皮层中超过一半的细胞参与视觉处理,我们拥有一套极其复杂而盘曲缠绕的视觉系统。
"眼睛的出现引发寒武纪大爆发"这一假说由 Andrew Parker 于 2003 年在《In the Blink of an Eye》中系统提出,至今在演化生物学中仍有争论,但它已成为讲述"视觉之于智能"时最流行的叙事。对深度学习学习者而言,这个故事的寓意在于:感知是智能的入口——先"看见",才谈得上"理解"与"行动"。这也正是后来"具身智能(Embodied AI)"研究方向的哲学出发点之一:智能不能脱离感知与环境的交互。
人类不满足于自己能看,还想造出能看的机器。达芬奇(Leonardo da Vinci)对万事万物充满好奇,研究过暗箱(camera obscura)的投影原理;更早的古希腊与古代中国典籍中,也有思想家探讨过物体如何通过针孔投影成像。到了现代,相机更是彻底普及。
关键论断:相机本身不等于"看见",正如眼睛本身不等于"看见"。相机和眼睛只是装置(apparatus);真正需要理解的是视觉智能是如何发生的——这正是本课程的核心命题。
1950 年代,神经科学领域发生了一系列关键实验,特别是 Hubel 和 Wiesel 对哺乳动物视觉通路的开创性研究。他们将电极插入麻醉后的活猫体内,记录初级视觉皮层(primary visual cortex,位于后脑,注意离眼睛很远)神经元的感受野(receptive field)。他们出乎意料地发现了两件重要的事:
这一"简单单元逐级组合成复杂表征"的思想,对后来视觉算法的神经网络建模产生了深远影响——它正是卷积神经网络层级结构的生物学灵感来源。约二十多年后(1981 年),Hubel 和 Wiesel 因此获得了诺贝尔生理学或医学奖。
用示意图式的方式理解"层级感受野"与 CNN 的对应关系:
视网膜/输入图像 V1 初级皮层 更高层皮层
┌─────────────┐ ┌─ 边缘 "/" ─┐ ┌─ 角落 "⌐" ─┐
│ 复杂场景 │ ──▶ ├─ 边缘 "\" ─┤ ──▶ ├─ 部件(眼睛)┤ ──▶ "猫"
│ │ ├─ 边缘 "—" ─┤ └─ 部件(耳朵)┘
└─────────────┘ └─ 边缘 "|" ─┘ (逐级组合)
对应 CNN: 像素 → [卷积层: 边缘/纹理] → [更深层: 部件] → [分类头: 物体类别]
Hubel & Wiesel 区分了"简单细胞(simple cells)"与"复杂细胞(complex cells)":简单细胞对特定位置的朝向边缘响应,复杂细胞则对边缘位置的平移具有一定不变性——这与 CNN 中"卷积层 + 池化层"的搭配惊人地相似。福岛邦彦的 Neocognitron(见下文)正是直接照这一结构手工设计的。
Larry Roberts(1963)写出了计算机视觉领域的第一篇博士论文,研究的是"形状":能否从图像中理解一个积木块形状的各个表面、拐角与特征?人类直觉上显然能做到,而整篇博士论文就 devoted 于这个问题——这被认为是计算机视觉的开端。
1966 年,MIT 的一位教授设立了一个暑期项目,雇了几名聪明的本科生,目标几乎就是"在一个夏天里解决视觉问题"。当然——正如 AI 历史上反复上演的乐观主义——视觉并没有在那个夏天被解决,反而发展成了一个如今年会超过一万人参加的庞大计算机科学领域。1960 年代(Roberts 的论文 + MIT 暑期项目)被业内视为计算机视觉领域的起点。
1970 年代,不幸英年早逝的 David Marr 写下了领域的奠基之作。他希望系统性地研究视觉,思考视觉处理是如何发生的(其中隐含大量来自神经科学与认知科学的启发)。他把视觉处理分为三个层级阶段:
| 阶段 | 名称 | 内容 |
|---|---|---|
| 1 | 初始简图(Primal Sketch) | 从输入图像中提取边缘等基本要素(呼应 Hubel & Wiesel 的发现) |
| 2 | 2.5 维简图(2½D Sketch) | 区分场景中物体的不同深度:例如球是前景,地面是背景 |
| 3 | 完整 3D 表征(3D Representation) | 恢复整个场景的完整三维结构——Marr 认为这是解决视觉的"圣杯",也是最难的部分 |
为什么 3D 恢复是视觉的根本难题?李飞飞在此特意"跑题二十秒"重点讲解:对一切动物而言,视觉本质上是一个不适定问题(ill-posed problem)。世界是三维的,但光线经小孔/晶状体投射后,落在视网膜(或三叶虫身上的某个感光小块)上的图像近似二维。从 2D 图像反推整个 3D 世界,在数学上是欠定的——无穷多个 3D 场景可以产生同一张 2D 图像。
自然界的解法是什么?演化出多只眼睛(通常是两只),用双目视差做三角测量(triangulation)。但两只眼睛还不够——大脑还必须解决左右眼图像之间的对应问题(correspondence)等诸多难题(这些内容在 Stanford 的 3D 视觉专门课程中讲授,本课程第 15 讲也会涉及)。值得注意的是,即使人类也没有把这个问题解到极端精度:我们大致知道物体的 3D 形状,却并不拥有所有形状的几何精确度量。应当体会这个问题有多难。
李飞飞还从哲学层面指出视觉与语言的一个微妙差异:
她希望大家体会语言与视觉的区别,并由此感叹自然界解决视觉问题之精妙。
1970 年代的先驱们没有数据、没有强大的计算机、也没有今天的数学工具,却已开始尝试视觉中的难题。Stanford 的开创性工作是 Rodney Brooks 与 Tom Binford 的广义圆柱(generalized cylinders)——用组合式几何基元表征物体(有趣的是,Brooks 后来成为当代最伟大的机器人学家之一,Roomba 扫地机器人的公司创始人)。附近 Palo Alto 的研究者们也在研究人体与物体的组合式模型。1980 年代,数字照片开始出现并可被数字化,边缘检测(edge detection)等领域出现了不少优秀工作,如 SIFT 特征等。
然而以今天的眼光看,这些"画个轮廓、提个边缘"的成果似乎令人失望、也走不了多远——这种失望并不冤枉:那个时代(许多同学出生之前)领域进入了 AI 寒冬(AI winter):热情与经费锐减,计算机视觉、专家系统、机器人学都没有兑现承诺。但在寒冬之下,视觉、NLP、机器人学等方向的研究仍在悄悄积累。
同一时期,认知科学与神经科学持续开花,为计算机视觉指明了值得追求的"北极星问题":
这些研究共同指向一个结论:不应只研究积木形状和图像草图,而应直面驱动视觉智能的根本问题——自然环境中的物体识别(object recognition in natural settings)。世界上存在海量物体类别,研究它就是解开视觉智能之谜的钥匙之一。
领域随后沿着这条路线逐步推进(注意此时仍在 AI 寒冬中,但研究一直在进步):
21 世纪初,互联网兴起使数据开始激增;数码相机 + 互联网的组合,第一次给计算机视觉领域提供了可用的数据。早期研究只能用数千到数万张图像研究物体识别,出现了 Pascal VOC、Caltech 101 等数据集。视觉这条主线到此暂告一段落——接下来转到并行的另一条线:深度学习。
与视觉领域并行,另一条研究线最终演化为深度学习。它起源于早期的神经网络研究:感知机(perceptron)、Rumelhart、早年 Geoffrey Hinton 等人用少量人工神经元研究信息处理与学习。Marvin Minsky 等伟大头脑也从不同侧面研究感知问题,但 Minsky 指出感知机无法学习 XOR 逻辑函数,给神经网络研究带来了一次挫折。尽管如此,进展仍在继续。
第一个拐点前最重要的工作,是日本学者福岛邦彦(Fukushima)的 Neocognitron。他手工设计了一个约五到六层的神经网络:早期层的功能简单(使用卷积类运算),后期层的功能更复杂(从卷积层汇聚信息),明显受到前述视觉通路实验(从简单感受野到复杂感受野)的启发。
Neocognitron 是一项工程壮举,也是一个鲜明的反面教材:每一个参数都是手工设计的——数百个参数被一丝不苟地拼装起来,才能让这个小网络识别数字或字母。它证明了结构可行,但"手工调参"注定无法扩展。
真正的突破是 1986 年的学习规则——反向传播(backpropagation)。Rumelhart 与 Hinton 在神经网络架构上引入了误差校正的目标函数:
即:输入已知、正确输出已知时,如何计算网络输出与正确答案之差,并把这一信息反向传播回去,从而逐层改进网络参数。其数学基础是微积分的链式法则(chain rule)。这是神经网络算法的分水岭时刻(我们将在第 4 讲详细推导)。当然,此时仍处于 AI 寒冬中,这些里程碑没有公众喝彩,但在研究世界里意义重大。
反向传播最早的落地应用之一,是 Yann LeCun 1990 年代在 Bell 实验室做出的卷积神经网络(CNN):约七层的网络,凭借卓越的工程能力做到能识别字母,实际部署于美国邮政与银行系统用于读取手写数字与字母。此后 Hinton 与 LeCun 继续改进神经网络,但进展有限、陷入停滞:数字字母的识别勉强可用,可一旦把这些系统放到神经科学家所用的自然照片上——识别猫狗、微波炉、椅子、花朵——就完全不行了。
李飞飞在此重点剖析了停滞的根源,这是她讲得最详细、最反复强调的部分之一:
缺乏数据不只是"不方便",而是一个数学问题。神经网络是高容量(high-capacity)算法,必须由大量数据驱动,才能学到可泛化的规律。泛化与过拟合背后有深刻的数学原理。而在那个年代,数据的重要性被系统性低估了——绝大多数人只盯着网络架构,没有意识到数据是机器学习和深度学习的"一等公民(first class citizen)"。
容量与数据的关系可以直观理解为:模型容量越大,能拟合的函数空间越大,也就越容易记住(而非理解)训练数据——没有足够数据约束时,模型学到的是噪声,即过拟合(overfitting);数据充足时,高容量模型才能把容量"花"在真正的规律上,实现泛化(generalization)。
这正是李飞飞团队在 2000 年代初的工作动机:他们假设整个领域低估了数据的重要性,于是着手收集一个海量数据集——ImageNet:
挑战赛成绩的走势非常有戏剧性:
| 年份 | 事件 | Top-5/错误率(老师口述) |
|---|---|---|
| 首年 | 最佳算法 | 约 26–30%,相当惨淡(人类约 3% 以下) |
| 2011 | 进展平淡 | 仍在 25% 左右 |
| 2012 | Hinton 及其学生用卷积神经网络参赛(AlexNet) | 错误率几乎减半,展现深度学习的威力 |
有趣的是:AlexNet 与 32 年前福岛的 Neocognitron 在结构上并没有那么不同。真正造成天壤之别的是两件事:
许多人把 2012 年 AlexNet 赢得 ImageNet 挑战赛视为现代 AI 的诞生(或重生)、深度学习革命的历史性时刻。此后领域进入深度学习大爆发时代:CVPR 等年会论文数量爆炸,arXiv 论文爆炸,大量新算法涌现(VGG、GoogLeNet、ResNet 等,第 6 讲将学习)。
2012 年之后的十余年间,这场革命持续深化:视觉任务从分类扩展到检测(DETR 系列)、分割(Mask R-CNN、SAM);2020 年前后视觉 Transformer(ViT)把"卷积归纳偏置"也请下了神坛;自监督(MAE、DINO)与视觉-语言预训练(CLIP)让视觉进入大模型时代;近年扩散模型(Stable Diffusion)与多模态大模型(GPT-4V、Gemini)则把视觉推向生成与交互的前沿。可以对照思考:AlexNet 的两大要素——学习规则与数据——在今天的"预训练 + 海量数据"范式中依然是最核心的变量,只是"数据"从标注图像变成了互联网规模的图文与视频。
2012 年之后,视觉能力迅速超越了"认出猫狗椅子"的层面:
李飞飞总结:计算(computation)、算法(algorithms)、数据(data)三股力量的汇聚,把领域带出了 AI 寒冬——用她的话说,"我们现在处于 AI 全球变暖(AI global warming)时期",而且无论好坏都看不到放缓的迹象。她特别提到(课堂就在 NVIDIA 捐赠的黄仁勋楼里):不能忽视硬件的作用——NVIDIA GPU 的"每美元 FLOPS"曲线,在深度学习开始驱动 GPU 设计后彻底起飞;会议参会人数、创业公司数量、企业级 AI 应用的各项曲线全面爆炸。
李飞飞在结尾郑重提醒:视觉问题远未解决,而强大的工具伴随巨大的后果——计算机视觉既能行善也能作恶:
视觉伦理在近年已成为独立研究方向:人脸识别的种族/性别偏差(如 Gender Shades 研究)、深度伪造(deepfake)检测、训练数据版权与隐私(LAION 等数据集的诉讼)、以及欧盟 AI 法案对人脸识别的监管等都是热点。李飞飞本人近年出版的回忆录《我看见的世界(The Worlds I See)》也详细讲述了 ImageNet 诞生背后的故事,值得配合本讲阅读。
Adeli 教授接棒介绍课程结构。本讲之后,课程将围绕四大模块展开。
从最基本的问题出发:什么是计算机视觉?核心是让机器看见并理解图像。最根本的任务是图像分类(image classification):输入一张猫的图片,模型输出标签"猫"。就这么简单——但这个"看似简单的任务"(deceptively simple)是自动驾驶、医疗诊断等复杂应用的基石。
怎么教会机器?最简单的切入点是线性分类(linear classification):想象数据集中每张图像是特征空间中的一个点(幻灯片画成二维以便说明),线性分类器的任务就是找一个超平面(hyperplane)把猫和狗分开。但线性模型的能力有限——当数据无法被一条直线干净分开时会束手无策。于是:
感知与理解视觉世界是一个复杂过程。课程先定义任务(task)——要解决的具体挑战/问题;再用模型(model)——模仿或解释视觉系统完成这些任务的计算与理论框架——去求解。把模型与任务对齐,就能造出看见并解读世界的系统。课程涉及的核心静态任务包括:
| 任务 | 输出形式 | 特点 |
|---|---|---|
| 图像分类 | 整图一个标签 | 最基础的任务 |
| 语义分割(semantic segmentation) | 每个像素一个类别(草/猫/树/天空) | 不区分同类的不同个体 |
| 目标检测(object detection) | 边界框 + 标签 | 不仅说"有什么",还定位"在哪里" |
| 实例分割(instance segmentation) | 每个物体实例一个掩码 | 最精细:结合检测与分割 |
这些任务要求对图像更深层的空间理解,推动模型超越"认类别"。复杂性不止于静态图像,还有时间维度:视频分类(判断视频中有人在跑、跳还是跳舞)、多模态视频理解(融合视觉与音频特征——例如要理解"有人在演奏颤音琴",必须结合画面与声音)。此外还有可视化与理解(visualization & understanding):解读模型学到了什么,例如绘制注意力图(attention map),看模型做出正确分类时关注哪里。
课程最后讨论以人为中心的应用与影响。领域贡献也获得了学术界的最高认可:
顺带一提,2024 年诺贝尔化学奖则授予了 Demis Hassabis 与 John Jumper(AlphaFold,蛋白质结构预测——同样是视觉/深度学习方法的胜利)及 David Baker。深度学习在同一年横扫物理与化学两大诺奖,标志其科学地位的确立。回顾第 1 讲的历史线:从 Hubel & Wiesel 的猫(1981 诺奖)到 Hopfield/Hinton(2024 诺奖),"神经"与"网络"的故事贯穿了整整四十余年。
节奏安排:前几周先啃深度学习基础——请耐心,这些是根基,需要先理解细节、从头构建模型;随后进入更精彩的前沿视觉专题;最后以一讲"以人为中心的 AI 与计算机视觉"收尾。下一讲内容:图像分类与线性分类器。