先把一个反常识的事实摆出来:让 2012 年深度学习引爆的那些核心算法,没有一个是 2012 年发明的。卷积来自 Fukushima 1980 和 LeCun 1989,反向传播来自 1970–1986,ReLU、dropout 这些技巧也都早有雏形。如果算法早就齐备,为什么 CNN 在 1990 年代读完支票之后,沉寂了将近二十年?

因为神经网络是一种对数据量算力都极度饥渴的方法。一个深层网络有几千万个参数,要把它们训练好而不过拟合,需要海量的标注样本;而在这么多样本上跑成千上万次前向-反向传播,需要巨大的计算吞吐。1990 年代两者都不具备:公开的标注数据集只有几万张小图,CPU 的算力训练一个稍大的网络要花几周。于是即便算法正确,深度网络也“训不动、喂不饱”。

转折点是这两条暗线在 2009–2012 年间几乎同时越过了临界。数据这一边,是 2009 年由李飞飞团队推动的 ImageNet——一个基于 WordNet 语义结构、规模空前的层级化标注图像数据库1。它配套的年度竞赛 ILSVRC(ImageNet 大规模视觉识别挑战赛)提供了一个公开、统一、足够难的擂台。算力这一边,是 GPU——图形处理器本为并行渲染像素而生,恰好天然适合神经网络里大量并行的矩阵乘法。当足够大的数据遇上足够快的并行算力,那些早已存在的算法,终于第一次有了施展的舞台。

2012 年,这个舞台上同时上演了两出戏。


第一出来自 Google Brain。2012 年,Quoc Le、Andrew Ng、Jeff Dean 等人发表了《用大规模无监督学习构建高层特征》2。这项工作后来因为《纽约时报》记者 John Markoff 一篇题为《要识别一只猫需要多少台计算机?16000 台》的报道而广为人知,俗称“Google 认猫”3

它的设定极端而朴素。研究者搭了一个 9 层的局部连接稀疏自编码器(locally connected sparse autoencoder),带池化和局部对比归一化,总共约 10 亿个连接2。喂给它的是从互联网上下载的 1000 万张 200×200 的图像——全部来自 YouTube 视频截帧,没有任何标签。训练用了 1000 台机器、16000 个核心,跑了三天,靠模型并行和异步随机梯度下降23

自编码器的任务很简单:把输入压缩成一个低维表示,再尽量重建回原图。重点是它完全无监督——没人告诉它什么是猫、什么是脸。训练完之后,研究者检查网络高层的单个神经元,发现了一个惊人的现象:存在某个神经元,专门对“猫脸”强烈响应;还有神经元对人脸、人体响应2。换句话说,仅仅通过“看了一千万张网络图片并试图重建它们”,网络自己涌现出了“猫”这个高层概念的检测器,而且这个检测器对平移、缩放、甚至平面外旋转都鲁棒2

这件事的意义是双重的。技术上,它证明了高层语义特征可以从纯无监督学习中浮现——不必逐张标注“这是猫”也能学出猫检测器,论文当时还用学到的特征在 ImageNet 的 2 万类识别上相对此前最佳水平取得了约 70% 的相对提升2。象征上,“机器自己从海量数据里发现了猫”这个画面,第一次让深度学习的力量进入了公众视野——它把一个技术进展变成了一个文化时刻。而它依赖的,正是那条算力暗线:16000 个核心、三天,这是 1990 年代不可想象的规模。


第二出,也是技术上更具决定性的一出,来自多伦多大学的一间卧室。

2012 年,Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 以“SuperVision”为队名,向 ILSVRC-2012 竞赛提交了一个深度卷积网络,后世称之为 AlexNet4。结果是碾压性的:它把 ImageNet 分类任务的 top-5 错误率从此前最佳的 26.2% 一举降到 15.3%——近 11 个百分点的鸿沟,在那之前每年的进步都是以零点几个百分点计的45。这个断崖式的领先,让整个计算机视觉界在几个月内集体转向深度学习。

AlexNet 的网络本身是一个“加大加深的 LeNet”:5 个卷积层(部分后接最大池化),3 个全连接层,最后一个 1000 路 softmax 输出,总共约 6000 万个参数、65 万个神经元4。结构上是 CNN 的延续,但有几个让它“训得动、训得好”的关键工程选择:

  • ReLU 激活:用 max(0,x)\max(0,x) 取代 sigmoid/tanh。ReLU 不饱和,正区间梯度恒为 1,大幅缓解了梯度消失,让深层网络训练快了数倍。这是 AlexNet 能在合理时间内收敛的关键之一。
  • GPU 训练:整个网络在 两块 Nvidia GTX 580 显卡上训练——这两块卡当年就架在 Krizhevsky 父母家他的卧室里4。由于单卡显存装不下整个网络,他们把网络拆到两块卡上并行,并手写了高效的 GPU 卷积运算4
  • Dropout:在全连接层随机“关掉”一半神经元,作为强力正则化,防止 6000 万参数在 120 万张图上过拟合。
  • 数据增强:对训练图做随机裁剪、翻转、颜色扰动,等效地把数据集放大很多倍。

把这些列出来就能看清 AlexNet 的本质:它不是一个算法发明,而是一次集成与规模化——把已有的卷积、反向传播、ReLU、dropout 拼到一起,用 GPU 在 ImageNet 这个足够大的数据集上推到了一个前所未有的规模,然后让结果自己说话。


为什么 GPU 这么关键,值得单独讲清楚,因为它是理解整个深度学习时代的钥匙。

神经网络的前向和反向传播,绝大部分计算是矩阵乘法:一层的输出是权重矩阵乘以输入向量(或一批输入组成的矩阵)。矩阵乘法的特点是高度并行——结果矩阵的每个元素都是一次独立的点积,互不依赖,可以同时算。

CPU 的设计哲学是“少数几个非常强的核心,擅长复杂的串行逻辑”,一般几个到几十个核。GPU 的设计哲学正相反:“成千上万个简单的核心,擅长同时做大量相同的简单运算”——因为它原本的工作是同时计算屏幕上几百万个像素的颜色。这种“大量并行的简单算术”恰好就是矩阵乘法需要的。在 GPU 上训练神经网络,相比 CPU 能快几十倍。

可以用第 02 章那个梯度下降的内循环来体会:每一步训练都要对一整批样本做前向矩阵乘、反向矩阵乘,成千上万步。CPU 一次只能算几个点积,GPU 一次能算几千个。AlexNet 在两块 GTX 580 上训练了大约六天——同样的工作放在当时的 CPU 上要花几个月甚至更久,根本不现实。GPU 把“训一个大网络”从科幻变成了一个研究生在卧室里几天能干完的事。从此,深度学习的进步速度在很大程度上被算力的增长速度所牵引,这条线一直延伸到后来的 TPU、千卡万卡集群,以及大模型时代的“scaling”。


把 AlexNet 的结构和数据流用一张图钉住,并标出“数据+算力”这条暗线如何贯穿其中:

ImageNet 1.2M 张标注图 (数据暗线: 2009 李飞飞)

        ▼  随机裁剪/翻转/颜色扰动 (数据增强 → 等效放大数据集)
   227x227x3

   ┌────┴─────────────────────────────────────────────┐
   │ conv1 11x11 ─ReLU─ maxpool ─► conv2 ─► ... ─► conv5 │  ← 5 卷积层
   │ (拆到 2 块 GTX580 上并行)  (算力暗线: 2012 GPU)      │
   └────┬─────────────────────────────────────────────┘
        ▼ flatten
   fc6 ─dropout─► fc7 ─dropout─► fc8 ─► softmax(1000类)
   (6000 万参数; dropout 防过拟合)


   top-5 error 26.2% → 15.3%   ← 引爆点

配套的 manim 动画 assets/manim/ch05_alexnet.pyFeaturePyramid Scene)把深层 CNN 的“层级特征金字塔”演出来:边缘 → 纹理 → 部件(眼、耳)→ 物体(猫),每深一层,空间分辨率缩小、语义更抽象,“猫”不是一步认出的,而是局部一层层拼成整体的;同时两根点火轴——数据(ImageNet 120 万张)× 算力(GPU)——在画面里合流,对应 2012 年的引爆。AlexNet 第一层学到的核几乎和第 03 章手设的 Sobel 核同构,只不过这些是网络从真实图片里自己学出来的——浅层确实在做和生物视觉皮层简单细胞一样的事。


把 2012 这一年放回整条主线里看,它的位置非常清楚。从感知机到反向传播,神经网络解决了“能不能学”;从 CNN 到 LSTM,它解决了“能不能把结构先验(空间、时间)编进网络”;而 2012 年解决的是“能不能在足够大的规模上把前面这些真正跑起来”——答案由数据(ImageNet)和算力(GPU)共同给出。

这也解释了一个常被误解的因果:深度学习革命常被叙述成“某个聪明算法的胜利”,但更准确的图景是一次规模的胜利。Google 认猫和 AlexNet 用的核心机制都不新,新的是它们敢于、且终于能够把网络和数据推到前所未有的规模,然后发现——在足够大的规模上,旧方法会涌现出全新的能力(无监督涌现猫神经元、监督下断崖式的精度跃迁)。“规模本身会带来质变”,这个在 2012 年初次显形的直觉,后来被 GPT 系列推到极致,并被正式写成了“scaling laws”。

但在抵达大模型与 scaling laws 之前,主线要先回到语言。图像的胜利证明了深度网络的威力,可语言有它自己的难题:词不是像素,它没有天然的数值表示;句子是变长的序列,意义依赖语序和上下文。如何把“词”变成神经网络能处理的向量,又如何把一串词映射成另一串词(比如翻译)?这两个问题的答案——word2vec 与 seq2seq——把深度学习的战火从视觉烧向了语言,并直接催生了注意力机制。那是下一章。


本质

2012 年发生的不是一次算法突破,而是一次相变。AlexNet 与“认猫”用的机制——卷积、反向传播、梯度下降——在 1990 年代就已齐备;真正改变的是规模:足够大的标注数据让网络有东西可学,足够快的并行算力让深网络第一次能在合理时间里训到收敛。当这两根轴同时到位,旧方法在新规模上涌现出旧规模下根本看不到的能力。这一章真正确立的,是此后整个领域的隐性信条——许多看似需要更聪明算法才能解决的问题,其实是规模不够;把同样的方法推到足够大,质变会自己发生。这个直觉在这里第一次显形,十年后被 GPT 系列推到极致,并被正式写成“scaling laws”。

参考文献

  1. Deng, J., Dong, W., Socher, R., Li, L.-J., Li, K., & Fei-Fei, L. (2009). ImageNet: A Large-Scale Hierarchical Image Database. IEEE CVPR 2009. 基于 WordNet 的大规模层级图像数据库。引用记录:https://www.scirp.org/reference/referencespapers?referenceid=2859779 ;Princeton 出版页:https://collaborate.princeton.edu/en/publications/imagenet-a-large-scale-hierarchical-image-database/

  2. Le, Q. V., Ranzato, M., Monga, R., Devin, M., Chen, K., Corrado, G. S., Dean, J., & Ng, A. Y. (2012). Building high-level features using large scale unsupervised learning. ICML 2012. 9 层稀疏自编码器、10 亿连接、1000 万张图、1000 机 16000 核 3 天、涌现猫脸/人脸神经元、ImageNet 2 万类相对提升 70%。arXiv:https://arxiv.org/abs/1112.6209

  3. Markoff, J. “How Many Computers to Identify a Cat? 16,000.”(《纽约时报》报道,公众认知引爆)。History of Information 收录:https://www.historyofinformation.com/detail.php?id=3913

  4. Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks. NeurIPS 2012. 6000 万参数、5 conv+3 fc、2× GTX580、ReLU/dropout/GPU 卷积。NeurIPS 论文页:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks ;原文 PDF:https://courses.csail.mit.edu/6.803/pdf/2012%20hinton.pdf

  5. AlexNet 综述与影响(top-5 26.2%→15.3%、SuperVision 队、对计算机视觉的转向)。AlexNet Wikipedia:https://en.wikipedia.org/wiki/AlexNet ;IEEE Spectrum, “How AlexNet Transformed AI and Computer Vision Forever”:https://spectrum.ieee.org/alexnet-source-code

深层 CNN 不是一步认出「猫」:从 6×6 灰度像素出发,边缘核(中心正绿·周边负红)→纹理→部件(眼耳)→物体四层自下而上点亮,越深一层亮度越高、感受野越大、语义越抽象(G3),「猫神经元」最终点到最亮。
把 2012 的引爆画成数据(绿x轴,ImageNet 120万)与算力(蓝y轴,GPU)两根轴各自从 1990s 左下角点火,两轴同时越过临界后右上角「2012」迸发——配 CPU 几个强核 vs GPU 上千弱核、前向/反向≈矩阵乘的对照,点明这是规模相变而非算法突破。