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

第 16 章:表示学习:深度学习真正学到了什么

本章问题:模型到底学到了什么?


16.1 一个不新但被忽视的问题

AlexNet 在 2012 年炸开了一个洞,让很多人重新关注深度神经网络。但一个更深的问题随后浮现:

一个深层网络在它内部的几十层隐藏层里,到底把输入变成了什么?

不是问"它输出了什么类别"。是问——中间那些表示是什么样的。第一层有什么、第三层有什么、第八层有什么。

这个问题听起来学术,其实至关重要。因为如果不知道网络内部在做什么,你就无法理解它为什么在某些输入上正确、在某些输入上犯奇怪的错误。你也无法判断——当网络给出了一个"极其自信的错判"时,究竟是网络内部某个表示层崩了,还是整个表示系统学到了本质上错误的特征。

这个问题在手工特征时代不存在。你用 HOG 检测边缘,你清楚地知道每一维特征对应的是什么(某个格子某个方向的梯度统计量)。当你用 SIFT 描述一个关键点,你清楚描述子里的每一个分量来自哪里。这些特征是为人设计的——你必须理解你提取的每一样东西。

但 AlexNet 有 60,000,000 个参数——如果把它们拆开,没有人(包括训练它的人)能对你说"第 1,372,451 个参数代表的是猫耳朵的曲率"。它不能——没有一个参数只代表一个含义。

那么深度学习到底学到了什么?这就是表示学习的核心问题。


16.2 层级:从边缘到物体

2013 年到 2015 年间,一组经典的可视化工作开始揭示深层卷积网络里面在发生什么。最著名的一项来自马修·赛勒和罗布·弗格斯的论文《可视化和理解卷积网络》。他们把 AlexNet 各层的输出——中间表示——反投影(deconvnet)回原始像素空间,让人可以看到:这一层记住了原始图像的哪部分。

结果出来的图景非常清晰:

第一层:检出边缘、颜色斑块——和 Canny 边缘检测器很像。这是网络在最浅层自发学会的。没有任何人告诉它"先找边缘"——边缘是数据中像素突变最稳定的统计信号,任何在图像上的学习系统都会被吸引到那里。

第二层:开始组装——边缘组合成拐角、弧线、简单的几何形状——平行线、弧线簇、纹理的初始构型。边缘怎么连接在一起?这层开始回答。

第三层:纹理和形状——重复的纹理图案开始在表示中显现(格栅、斑点、条纹)。这一层甚至开始对"物体部件"做出响应——车的轮子、面孔的眼睛结构、猫的耳朵构型。

第四到第五层:物体部件及其空间排列——这是网络开始进入"语义"的地方。它不再只是检测纹理或斑点,而是对一个特定的、具有高度区分性的局部出现做出响应——一张面孔、一段文字的轮廓、一个特定物种的羽毛样式的局部。在这一层上,"表示"不再是几何的——它是语义的。

全连接层(最后两层):完成了从"物体部件"到"这是哪个类别"的最后一步。这些表示不再是分布在空间里的特征图——它们被压缩成一维向量,并且这些向量的相对距离对应着语义相似性。两只不同的猫的最终表示,在高维空间里互相靠近。一只猫和一把椅子,离得很远。

这个从边缘到语义的层级过程,就是在解释"深度学习到底学到了什么":它学到的不是某个具体的特征,而是一套把像素转化成越来越抽象表示的层级变换规则。


16.3 为什么"学来的特征"比"设计的特征"强?

现在我们可以回答一个更实在的问题了:学来的特征(通过深度网络训练产生的中间表示)和设计的特征(SIFT、HOG 等)的本质区别在哪?

设计的特征是固定的。 SIFT 的定义——局部区域的梯度统计,按主方向旋转对齐——在它被写下来的那一刻就完成了。之后它的输出会随输入而发生改变,但它的变换规则不会改变。这意味着无论你的数据是什么,SIFT 都在用同一套规则处理。它的鲁棒性——光照不变、旋转不变——在设计时被预先编入了。

学来的特征是自适应的。 CNN 的第一层在任意大量图片上训练都会变成边缘检测器——但在不同任务上,它的高层表示会显著分化。如果你训练一个网络区分 150 种狗——它的高层特征会变得对耳朵形状、毛色类型、面部比例非常敏感。如果你换一个网络去区分航空图像中的不同道路材料——同样的网络结构,学到的高层特征完全不一样。因为表示是从数据中学到的,所以你用不同任务的数据训练,表示就会特化去适应当前任务的统计结构。

这就是端到端学习的真正威力:不需要假设"什么统计量对分类有用"。让数据和任务自己去塑造表示空间。


16.4 词向量:语言世界里的"拼图块"

表示学习不只是图像的事。在自然语言处理中,一个几乎同样重要的概念叫词嵌入/词向量

传统 NLP 把每个词用一个 one-hot 向量表示——"猫"是 [0,0,0,1,0,0,...],"狗"是 [0,0,0,0,0,1,...]。这两个向量在内积空间中是正交的——意思是,"猫"和"狗"的关系,跟"猫"和"太阳"的关系一样远。这显然是人类语言的完全失真。

词向量的目标是:让意义相似的词在高维空间里互相靠近。 不是由人定义"猫和狗相似"——而是从大量文本的共现统计中学来。"猫"经常和"狗"出现在相同的上下文("在沙发上睡觉"、"喂"),所以它们的向量会被学习算法推近。"猫"和"太阳"不会出现在相同上下文中,所以它们的向量会被推远。

这个效果本身在 2013 年的 word2vec 论文中最被大众记住。但真正有趣的现象是一种被称为词类比的东西:

"国王" - "男人" + "女人" ≈ "王后"。

这不是由人编写的规则。这是向量空间在大量文本中学习了"男女"这个语义维度的方向,然后用这条方向的向量偏移来表达语义转化。

词向量证明了表示学习不止在视觉中有效——在离散符号的世界里,同样可以在一个无关人类定义规则的向量空间中捕获大量语义结构。语言模型后来做的所有事情——理解、生成、推理、翻译——全是在这个"表示空间"中发生的。


16.5 表示空间:看不见的地理

无论是视觉里的层级特征,还是语言里的词向量,它们都指向同一个核心概念:

深度神经网络的核心能力不是"输出一个分类标签",而是把原始输入映射到一个好的表示空间——在这个空间里,相似的输入彼此靠近,不相似的彼此远离,输入中的重要变异维度被拆解为空间中可加减的方向。

用一句更简单的话来说:学习不是记住答案——是重新组织世界。

你给 CNN 一张猫的图片,它识别的那些过程在它的中间层里创建了一个表示——这个表示在语义空间里落在"猫"的附近,同时从各个其他语义维度中获得了一个相对位置(大、橘、趴着的猫咪)。

在这个视角下,网络的最终输出("这是猫,置信度 85%")只是表示空间的一个局部视角。表示本身携带的信息远比最终分类标签丰富。

这也是为什么大规模预训练语言模型可以在很多下游任务中表现良好——哪怕它没有为这些任务专门训练过。因为它在海量文本预训练阶段已经学到了一个非常丰富的语言表示空间,而大多数 NLP 任务所需要的"理解"——对语义关系的感知——在它已有的表示中其实已经包含了。下游微调只是在它已有的表示上添加一个轻量的"输出接口"。

表示空间的质量,在很大程度上决定了智能系统的能力边界。


16.6 从"特征工程"到"表示学习":范式的迁移

全书卷二从统计学习讲到了特征工程,又从图像特征讲到了 GPU 和数据,最后一章停在这里——表示学习。

这不是随机的排列。这是逻辑链条:

  1. 想让机器从经验中学习 → 统计学习。但数据需要变成数字 → 引入特征。
  2. 特征需要人去定义 → 特征工程。但人只能定义自己能理解的特征,深层语义被遗漏。
  3. 不如让网络自己去学"什么特征重要" → 表示学习。但表示学习需要足够的算力和数据。
  4. 算力和数据在 2000 年代末开始到位 → GPU + 大数据
  5. 2012 年,AlexNet 验证了这个满盘公式 → 端到端学习纪元开始

这一整条逻辑链串在一起,就是人工智能从"造工具"到"建空间"的迁移。

符号主义试图用逻辑构建世界模型——那些规则是人写的,可解释、但脆弱。统计学习告诉人们别写规则了——从数据中学。特征工程帮了统计模型把手——但因为人只帮了"一部分"而成为天花板。表示学习把这层天花板也去掉——让数据决定特征,让网络自己组织表示

在这个意义上,表示学习是"从数据中找规律"这个项目的最激进版本:人不再需要说"我认为什么特征重要",只需要说"这是输入、这是输出,你从中间自己组织一切"。


16.7 本章小实验:在脑子里建一个表示空间

不看任何文字,用你的直觉做这个:

闭上眼睛。想象三个东西:沙发

在脑海里,不要使用语言——只靠"感觉"——判断这三个东西中哪两个更相似。这很简单——狗和狼。

现在,试着把你脑海里的那个"相似感"拆开:狗和狼在哪些维度上相似?毛发?体型?四条腿?尾巴?食肉?——你可以试着在心里列一下。

现在换三个东西:国王王后杯子。同样不用语言,只凭直觉——国王和王后更像。然后拆开——性别不同,但都坐在王位上、戴王冠、权威、居住宫殿。

你在刚才做的,就是用你大脑里已有的"表示空间"在衡量概念的相似性。你的大脑不是用字典文本存储"国王 = 男性、统治、王冠……",而是一个融合了大量经验和感知的混合空间——词向量和 CNN 的语义空间,模仿的正是这个东西。

表示不是定义;表示是在大量经验中积累下来的相对位置感。

如果把这个过程自动化——让机器"读"数十亿字的文本,它也能慢慢形成类似的"位置感"。大语言模型的"理解"和"推理"就在这个过程中产生。它们不是基于字典规则,是基于位置。


16.8 本章地图

text
问题:模型到底学到了什么?方法:可视化 CNN 中间层,发现其自发形成了层级表示系统:边缘→纹理→物体部件→语义空间。核心概念:表示空间——一个好的表示让相似事物在高维空间中彼此接近,不同事物彼此远离,重要变异方向表现为可操作的向量方向。从特征工程到表示学习的范式迁移:人不再设计特征,只定义输入和输出,让数据和任务自己塑造内在表示。今天:大语言模型的核心——token embedding、hidden states、attention 输出——全是表示。预训练的本质是构建一个高质量的语言表示空间,然后在这个空间中做一切下游任务。

16.9 本章结语:卷二的终点,空间的诞生

卷二用八章的篇幅,带着读者穿过了一条弧线:

从意识到规则写不完(统计学习),到人工设计特征成为新的上限(特征工程),到视觉手工特征的黄金高度(SIFT、HOG),到两次冬天里基础设施的静默积累(数据、GPU、算法),到 ImageNet 确立共同基准,到 AlexNet 点燃端到端范式,最后到"好的表示空间"成为智能系统的核心资产。

这八章可以浓缩成一句话:

人教会机器看什么 → 机器学会了自己看。

卷二结束了。卷三将进入语言模型的世界——从 RNN、LSTM、Word2Vec、Attention,到 Transformer 的诞生。那是大模型真正的发动机室。

SECTION §02 · ENGAGE

Discussion

留言区 · GitHub-powered comments via Giscus