全书导航
大模型之路:从图灵、感知机到 ChatGPT · 卷 2

第 15 章:AlexNet:2012 年的惊雷

本章问题:为什么 AlexNet 被视为深度学习爆发的标志?


15.1 意大利的一个房间

2012 年秋天,意大利佛罗伦萨,ILSVRC 比赛结果的宣布。

传统视觉研究者和神经网络研究者都坐在同一个房间里。有些人在这个领域工作了十年以上——他们熟悉 SIFT、HOG 和手工特征的艺术。当冠军团队的 top-5 错误率被打在屏幕上——15.3%——整个房间安静了。

第二名用的是传统方法,错误率 26.2%。

10.9 个百分点的差距。不是一个微小的改进——是对之前最好方法的一次全面碾压。

在 ImageNet 的这个 2012 年份的测试集中,包含了像"牛羚"、"潜水鸟"、"鹤"——不是建筑设备,是一种鸟类——这些区分需要捕捉颜色强度、纹状图案、特定的身体部位形状和边缘,传统的计算机视觉技术——那些依赖手工特征工程如 SIFT 和 HOG 的技术——在这些类别上几乎丧失了区分力。

冠军作品的名字是 AlexNet。它由多伦多大学的 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 完成。它没有任何手工设计的特征。它直接从像素学到了分类。

佛罗伦萨那天之后,计算机视觉领域的每一项工作实际上都分成了"AlexNet 之前"和"AlexNet 之后"。传统视觉方法的论文在此后几乎不再被引用。

这不是一次普通的比赛结果更新——这是一个范式的更替。


15.2 AlexNet 里面有什么?

AlexNet 的架构在今天看并不十分复杂——但当它被提交的时候,它是一套设计中每一个部分都在指向"规模"的暴力美学:

八层参数可训练的权重——五个卷积层、三个全连接层。在当时,这是人们见过的最深的卷积网络之一。层数的增加不是为了"美观"——而是为了层级化地抽象信息。第一层学到的是边缘和颜色斑块;第三层学到的是纹理和局部形状;第五层学到的是物体部件和具有高度区分性的精细局部模式。

两块 GTX 580 GPU 并行训练。 AlexNet 大到了单块 GPU 装不下的地步——Krizhevsky 把网络切成两半,每块 GPU 跑一半,只在某些层之间交换数据。这个工程手法在今天的大模型分布式训练中已被反复放大,但在 2012 年,用两块 GPU 训练一个网络就已经是"太大以至于需要切分"。

ReLU 激活函数。 这是 AlexNet 最重要的工程选择之一。传统的神经网络用 sigmoid 或 tanh 作为激活函数——它们在输出极端值处趋于平坦,导致梯度在深层网络中消失。ReLU(Rectified Linear Unit:对于正输入直接通过,对于负输入输出 0)在正区域的导数永远是 1——梯度不会因为层数加深而指数级消失。AlexNet 的作者后来报告,ReLU 让他们的网络在训练中比 sigmoid 快了几倍到十几倍。

Dropout。 在训练时,随机关掉一部分神经元(比如说每次关掉 50%),然后只用剩下的神经元来预测。下次随机再关掉另一组。这强迫网络不依赖任何单个神经元来做出正确判断——每个神经元必须和其他神经元合作,而不是单点记忆数据。这有效地抑制了过拟合。

数据增强。 AlexNet 只使用了 ILSVRC 训练集的约 120 万张图片——但仍然不够吗?Krizhevsky 把每张图片做了随机裁剪、水平翻转、颜色微调——制造了更多"不算新图片但算新样本"的变体。这本质上是用 CPU 时间换样本量——在没有更多真实图片的情况下,用计算来"模拟"更多数据点。

这些组件单独看都不是全新的发明——CNN 从 1980 年代末就存在,ReLU 之前在受限玻尔兹曼机等模型中被用过,Dropout 是辛顿之前几年刚提出的。但 AlexNet 是把它们组装在一起并让它们在 GPU 上用海量数据成功跑起来的第一次。这种系统集成本身就是最大的创新。


15.3 为什么是 2012 年?

AlexNet 在 2012 年成功不是一个巧合——它是前几章讲的所有"暗中积累"汇合的结晶。

数据:ImageNet 2010 年公开,给了超大视觉训练数据的第一个稳定供给。没有 ImageNet,AlexNet 的参数会在小数据集上严重过拟合。

算力:GPU 训练不再是"技巧",而是必要条件。两块 GTX 580 并行训练花了一周——早在 2006 年,同样的训练可能要六十倍的时间,那时根本没人会尝试。

算法:ReLU 解决了深层网络中梯度在 sigmoid 区间消失的瓶颈;Dropout 解决了深层网络在大量参数下的过拟合倾向;数据增强解决了"有大数据但还不够大"的矛盾。

架构:CNN 从 LeNet(1989)以来一直在演进,但没有被正确地推到"大数据 + 大网络"的测试台上。

辛顿早在 1980 年代就开始研究神经网络了。他把反向传播带到大众视野中。他在 2000 年代带着研究生执着于受限玻尔兹曼机——当时大多数人认为那是已经被边缘化的方向。在 AlexNet 成功的 2012 年之前,他已经在这个方向上经营了超过三十年。

当其他条件成熟时,他在场。他的学生也是。


15.4 传统的终结

AlexNet 最深远的影响不是它达到的具体错误率——15.3% 这种数字很快就被更好的网络结构刷新到更低。而是它终结了一条长期被视为理所当然的路线——人工设计特征

在 AlexNet 之后,所有在 ImageNet 上有竞争力的参赛者都切换到了"端到端训练"——不写手工特征,让网络直接从像素开始学习。到这个地步,"特征工程是机器学习的核心"的信念在视觉领域首先被碾过去了。人们不再问"我们应该提取什么特征"——他们开始问"网络需要多深"、"需要多少数据"、"该用什么初始化"。

不久之后,NLP(自然语言处理)、语音识别、医疗影像——各个领域的研究者都开始回来重新审视神经网络。"端到端"这个词从一个边缘的实验性概念变成了主流的研究范式。


15.5 本章小实验:用浏览器玩 CNN

打开一个 CNN 可视化网站(比如典型的 CNN 解释器或任何可视化卷积特征图层的在线演示页面——你也可以直接打开一个简单网页:将一张你的照片拉进去)。

看一下第一层卷积输出的特征图。那些图上的亮点是什么?是边缘、颜色变化、还是你一眼认不出来的抽象纹理?

再到第三层或第五层看。特征图变少了吗?单个"亮点"区域变大还是变小了?你能看出它在追踪什么吗——可能是眼睛?轮子?还是已经完全没有可被人理解的视觉参照?

这就是 AlexNet 内部在做的事情:把"看"拆碎成一层一层的抽象,最开始是像素边缘,最后是"这是狗的零件库"。


15.6 本章地图

text
问题:为什么 AlexNet 被视为深度学习爆发的标志?方法:8 层 CNN + ReLU + Dropout + 双 GPU 训练 + 数据增强,在 120 万张 ImageNet 图片上端到端训练。突破:ILSVRC 2012 上以 15.3% top-5 错误率碾压传统方法(第二名 26.2%)。第一次在大规模公开基准上证明了"从像素直接学习"对"人工设计特征"的压倒性优势。意义:终结了以手工特征工程为核心的视觉研究范式,宣告了端到端训练路线的到来。在竞赛领域之外的学界和工业界引起了连锁反应,促使 NLP、语音等领域重新审视神经网络。今天:AlexNet 的 8 层架构在现在看来是"浅层"的——但它奠定的"CNN + GPU + 海量数据"公式被后来的 VGG、GoogLeNet、ResNet 反复放大和加深。

15.7 本章结语:一声雷

AlexNet 不是一个人突然产生的灵感。它是等了三四十年的东西终于等到了它的时刻——GPU 到位了,数据到位了,ReLU 到位了,Dropout 到位了,而一个团队正好站在所有东西到位的位置上。

2012 年的那声雷除了炸开一个数字,还有更深的余味——它炸醒了那些曾经和即将放弃神经网络的人,告诉他们:不是因为方向错了——是因为条件还没够。

从这时起,AI 研究的议程发生了系统性转变。以前是研究者在试图"把知识写进机器"。从此之后,是研究者在试图"让知识从数据中长出来"。

下一章,我们要回答一个在 AlexNet 之后自然出现的问题:一个深层网络,到底学到了什么? 它内部的表示,和人工特征有什么不同?为什么"端到端学习"不光是一个工程技巧,更是一种对智能的不同理解?

SECTION §02 · ENGAGE

Discussion

留言区 · GitHub-powered comments via Giscus