跳到主要内容

这一行真正换掉的不是模型,是「谁来决定该看什么」。 这一章讲那次交接。

从「人来写规则」到「机器自己找规律」

1. 这一章讲什么

三件事: 六十年里「智能从哪来」这个问题换过哪几个答案; 为什么「人来告诉机器该看什么」这条路走到了头;以及机器自己找该看什么时,难在哪里。

它在全书链条里的位置: 这一章不教任何算法,它交代为什么后面那 34 章是这么排的。 第 05 到 09 章是「人挑特征、机器学预测」那一套的完整版本, 第 10 章之后全部在做「机器自己学表示」这件事。

只需要第 01 章。 用到的只有「一串数」和「只有一项是 1 的那种向量」。

2. 顶层全景

推理期 人写规则 ──▶ 规则写不完,遇到「说不清的事」就卡死

知识期 专家灌知识 ──▶ 知识灌不完,而且专家自己也说不清

学习期 给样例、机器找规律 ──▶ 能找了,但「该看什么」还是人定的
│ │
│ 这就是特征工程,也是瓶颈
│ ▼
│ 让机器自己学「该看什么」= 表示学习
│ ▼
│ 堆很多层来学 = 深度学习
│ │
│ 新难题:哪一层做对了?(贡献度分配)

大模型期 规模上去了 ──▶ 同一套东西,数据、参数、计算一起放大

一句话链条: 规则写不完 → 知识灌不完 → 那就给样例让机器自己找 → 可「该看什么」还是人定的 → 让机器把这一步也学了 → 学的层数一多,归因就成了新难题。

3. 六十年换过四个答案

先看现象: 同一个「让机器聪明起来」的目标,不同年代的研究者押的宝完全不同。

书里按「主要依靠什么来实现智能」把这段历史分成四段1它特意提醒:后一个阶段不是彻底替代前一个,只是侧重点变了。

推理(把人的经验归纳成规则写进程序)期:1956 年起的十几年,研究者从经验里归纳规则,写成程序2。 几何定理证明器、语言翻译器都是这时候出的。乐观到什么程度? 书里引了当年的原话:有人认为二十年内机器就能完成人能做到的一切工作。 结果是规则太简单、难度被严重低估,研究陷入低谷。

知识期(20 世纪 70 年代):承认规则不够,那就把专家的知识灌进去, 造出专家系统——书里给的定义很干脆:「知识库 + 推理机」3

学习期:不再由人给规则或知识,而是从有限的观测数据中找规律4。 这就是机器学习。第 05 章开始的所有内容都在这一段里。

大模型期(2018 年之后):模型规模、数据规模、计算量一起放大5。 书里点明这一时期的经验发现:三者同步扩大时,模型在广泛任务上的表现往往持续变好—— 这条经验叫规模法则,第 31 章会展开。

4. 为什么「说不清」的事写不出规则

先看现象: 让人认出一张手写的「7」,一岁小孩都做得到。 让人写下「什么样的笔画算 7」,谁都写不清楚。

书里在开篇就把这件事挑明了:对人来说很简单的事,对计算机反而困难6

这一条决定了整个学科的形态。 既然规则说不清,就换一种交代方式: 给一大堆例子,让机器自己去找那条说不清的规律。

这就是机器学习的定义:从有限的观测数据中学习出一般性的规律, 再用这些规律去预测没见过的数据4

注意「有限」两个字。 数据永远是有限的,而要预测的世界是无限的。 第 07 章整章都在处理这个落差。

5. 瓶颈不在模型,在「该看什么」

先看现象: 一个传统的机器学习系统分四步:预处理、特征提取、特征转换、预测。 书里给了一个反直觉的观察:不同预测模型的性能其实相差不多, 而前三步对最终准确率的影响却极其关键7

那前三步谁来做?人。 靠人的经验去挑「该看哪些量」。 这件事有个名字叫特征工程7

书里对它的评价毫不客气: 开发一个机器学习系统的主要工作量都消耗在了这三步上, 而传统机器学习的主要瓶颈之一,就是表示依赖人工设计8

这就引出了这一章真正的主角。 如果有一种算法能自动学出有效的特征, 那这种学习就叫表示学习9

「表示」是什么? 就是输入信息被转换之后的那个形式——说到底还是第 01 章那串数, 只不过这串数由谁决定,是这一整章在争的东西。

6. 同一个东西的两种记法

这一节是全书用得最多的一个对照,后面每一章都会回来用。

以颜色为例。要在计算机里表示「琥珀色」「天蓝色」这些颜色,书里给了两条路10

6.1 一个位置为 1 的长串

把所有颜色名列成一张表,一种颜色占一个位置。表示某种颜色时, 那个位置写 1,其余全写 0——这正是第 01 章讲的 one-hot 向量。 这种记法叫局部表示10,也叫离散表示或符号表示。

它有两个明确的好处11:看得懂(每一维对应一个能说出名字的东西), 以及算得快(向量里绝大多数是 0,用在线性模型上效率很高)。

但它有两个致命的短处12:

① 维数很高,而且不能扩展 ──▶ 来了一种新颜色,就得给整张表加一维
② 任何两种颜色之间的相似度都是 0
──▶ 「红色」和「中国红」的相似度,跟「红色」和「黑色」的相似度一样,都是 0

第二条是真正的死穴。 表示里根本装不下「像不像」这件事。

6.2 几个数的短串

另一条路:用红、绿、蓝三个数来表示颜色。每种颜色是三维空间里的一个点。 这种记法叫分布式表示13,通常是一个低维的稠密(几乎处处非零)向量。

它把上面两个短处一起解决了:新颜色不用加维,而且两种颜色像不像, 直接算它们之间的距离就知道14

书里在边注里给了一个更好懂的说法:把它叫「分散式表示」也许更贴切—— 一种颜色的意思分散在几个坐标上,而不是独占一个坐标。

6.3 从长串到短串的那一跳

用一个神经网络把很高维的局部表示映射到很低维的分布式表示, 这个过程叫嵌入15

书里给的定义带一个关键要求:映射之后,意思相近的对象在向量空间里也要互相靠近15。 不满足这一条,就只是压缩,不是嵌入。

这一跳是第 27 章的全部内容,也是第 20 章之后所有模型的入口。

7. 「深度」到底指什么

问题: 深度学习的「深」,是层数吗?

书里的定义比「层数」更准确:所谓「深度」,是指原始数据进行非线性特征转换的次数16。 换个说法:把整个系统看成一张有向图,深度就是从输入到输出的最长路径

为什么强调「非线性」? 因为第 01 章已经讲过——连续几次线性变换合起来还是一次线性变换。 不带非线性的一百层,深度是 1。 第 10 章会把这件事算清楚。

于是深度学习的定义就干净了:一类以多层可学习表示为核心的机器学习方法17。 书里还给了一句分工特别清楚的话:

表示学习回答的是 「希望学到什么」
深度学习回答的是 「如何通过多层可学习结构把这些表示自动学出来」

还有一个概念上的区分要记住: 书里明说,深度学习是一种方法范式, 而神经网络是这一范式最成功、最常用的模型载体18两者密切相关,但不是一回事。

7.1 端到端:中间不许人插手

端到端学习指的是:学习过程中不分模块、不分阶段训练,直接优化总体目标19。 训练数据只有「输入—输出」对,中间过程不需要人为干预。

这正是第 5 节那个瓶颈的解法。 特征工程之所以是瓶颈, 就因为中间那几步是人分段做的;端到端把整条链交给同一个目标去优化。

8. 深度学习真正的难题

先看现象: 下完一盘围棋,结果只有输赢两个字。可这盘棋下了两百手。 到底是哪几步导致了这个结果?

书里把这个问题命名为贡献度分配问题20:系统中不同组件或其参数, 对最终输出结果的贡献该怎么分配。

这是深度学习和「浅层学习」的关键分界。 一层模型不存在这个问题, 因为只有一个组件;几百层的模型里,只有最后一个数是有反馈的, 中间几百层每一层都要问「我这一步做得对不对」。

书里还做了一个我们认为很重要的区分:

深度学习 ──▶ 内部步骤没有即时反馈,但整体有明确的监督目标
强化学习 ──▶ 面对的是环境反馈下的序列决策,连目标本身都要从回报里推

两者都面临延迟(反馈来得晚)归因的困难,但不等同21。第 29、30 章会正面处理后一种。

为什么深度学习用的主要是神经网络? 书里给的理由只有一条: 因为神经网络可以使用误差反向传播算法,从而比较好地解决贡献度分配问题22

记住这句话。 它意味着第 11 章那一章不是「一个技巧」, 它是这整个范式能成立的唯一理由。

9. 四种结构、三个抽象

9.1 网络按信息怎么流动分成四类

书里从「信息组织方式」这个角度把常见结构概括成四种23:

前馈(信息只朝一个方向传的网络):神经元一组一组,不回头24。第 10、13、14 章讲它。

记忆(网络自带状态、能存历史):神经元可以接收自己或别人的历史信息。第 15、16 章讲它。

注意力网络:不再固定谁连谁,而是每一步动态决定该看哪些信息。第 20、21、22 章讲它。

图网络:输入本身是一张关系图,信息沿着边传递。第 23、24 章讲它。

9.2 所有框架共享的三个抽象

书里对深度学习框架的态度很明确:重点不在记住某个具体 API(应用程序编程接口——程序调程序的入口), 而在理解它们共同依赖的几个抽象25:

张量表示 ── 第 01 章那个「下标超过 2 的数组」
计算图 ── 把一次计算拆成一张图,每个节点是一个基本操作
自动微分 ── 沿着这张图自动把梯度算出来,不用人手推公式

这三样第 02 章已经见过前两样,第 11 章会把第三样讲到能自己写一遍。 书里同时说明了为什么框架必须存在:手推公式再写代码非常低效而且容易出错25

10. 主走查:一张照片的三条处理路线

输入: 一张 100×100 的彩色照片。这个尺寸是我们为演示挑的,不是书里的例子。

第零步:它进计算机之后是什么。 100 × 100 × 3 个颜色通道 = 30000 个数

路线一:特征工程(学习期的标准做法)

第几步谁来做这一步之后剩几个数靠什么决定
预处理30000 → 10000(转灰度)人认为颜色不重要
特征提取10000 → 128(手工设计的图像描述子)人的经验
特征转换128 → 40人挑出「有用的那些」
预测机器40 → 1 个类别从数据里学

只有最后一行是机器学的,前三行全是人定的。 而书里说, 前三步对准确率的影响比最后一步更关键7——力气花在了机器帮不上忙的地方。

路线二:表示学习

第几步谁来做剩几个数
学一个映射机器30000 → 40
预测机器40 → 1 个类别

中间那 40 个数由机器自己定。 但只做了一次转换——深度是 1。

路线三:深度学习

这一层学到的大致是什么剩几个数
第 1 层边和角这类最底层的花样30000 → 4096
第 2 层边组成的局部形状4096 → 1024
第 3 层局部形状组成的部件1024 → 256
第 4 层部件组成的整体256 → 40
输出层类别40 → 1 个类别

深度 = 4(数的是非线性转换的次数,不是数表的张数)16

把三条路线并排看,差别只有一个:

路线一 人定 3 步,机器定 1 步 ──▶ 上限由人的经验决定
路线二 机器定 2 步 ──▶ 一次转换,表达能力有限
路线三 机器定 5 步 ──▶ 表达能力强,但多了一个新问题

路线三多出来的新问题就是第 8 节那个: 最后只有一个「对不对」的反馈, 中间四层怎么知道自己该往哪个方向改? 这就是贡献度分配, 而第 11 章那套办法是目前唯一实用的答案。

11. 作者的判断与证据

书里给了明确论断的:

  • 「不同预测模型的性能相差不多,而特征处理对准确率有关键作用」7 —— 这是一个经验判断,书里没给实验数据支撑,但它是整章立论的起点;
  • 「传统机器学习的主要瓶颈之一,就是表示依赖人工设计」8 —— 措辞是「主要瓶颈之一」,留了余地;
  • 「深度学习用神经网络的主要原因是它能用反向传播解决贡献度分配」22 —— 这是全书最有解释力的一句话,它把「为什么是神经网络」这个问题 从「效果好」降到了「机制上唯一可行」。

书里主动做了区分、值得注意的:

  • 深度学习是方法范式,神经网络是模型载体,二者不完全等同18;
  • 深度学习和强化学习都面临延迟归因,但不等同21;
  • 四个时期的划分「并不意味着后一个阶段彻底替代前一个」1

书里坦白的: 「好的表示」是一个非常主观的概念,没有一个明确的标准26。 书里只给了三条期望(表示能力强、让后续任务变简单、有一般性), 并且承认许多表示学习方法仍然基于某个具体任务来学——也就是第三条常常做不到。

12. 边界与局限

不给人工智能的定义。 书里绕开了「什么是智能」这个问题, 只从「主要依靠什么来实现智能」这个角度切入。这是有意的取舍,不是疏漏。

四种网络结构只做简要分类。 书里明说这里「只做一个简要分类」, 每一种的实际内容都推到后面的章节。

框架部分不教 API。 PyTorch 和 TensorFlow 各给了一段特点描述,不给代码。

大模型期的叙述停在现象层面。 规模法则被作为「经验现象」引入, 它为什么成立、边界在哪,这一章不碰,推到第 31 章。

没有讲数据从哪来。 数据采集、标注(人工给数据贴答案)质量、许可与偏差这些实际项目里最花时间的事, 全书都很少涉及,这一章更是一句没有。

13. 可带走的

  1. 六十年换了四个答案: 人写规则 → 专家灌知识 → 从数据找规律 → 把规模放大;
  2. 规则写不出来,是因为很多事人做得到却说不清。 机器学习是对这件事的正面回应;
  3. 传统流程的瓶颈不在模型,在「该看什么」由人定。 特征工程消耗了主要工作量;
  4. 表示学习就是「让机器自己学该看什么」,深度学习是实现它的手段;
  5. 同一个东西有两种记法: 一个位置为 1 的长串看得懂但装不下相似度,几个数的短串反过来;
  6. 嵌入是从长串到短串的那一跳,它的硬要求是「意思相近的要靠得近」;
  7. 「深度」数的是非线性转换的次数,不是层数。 不带非线性的一百层,深度是 1;
  8. 贡献度分配是深度学习真正的核心难题:只有最后一个数有反馈,中间几百层怎么归因;
  9. 神经网络之所以是主角,唯一的理由是它能用反向传播解决这个归因问题;
  10. 框架只有三个抽象要懂: 张量、计算图、自动微分。API 会变,这三样不变。

14. 原文地图

主题原书章原文位置
四个时期的划分第1章 绪论text/02-ch01.txt:117(搜「推理期」) · text/02-ch01.txt:180(搜「大模型期」)
推理期与知识期第1章 绪论text/02-ch01.txt:132(搜「几何定理证明器」) · text/02-ch01.txt:150(搜「专家系统」)
机器学习的定义第1章 绪论text/02-ch01.txt:286(搜「从有限的观测数据中学习」)
「对人来说很简单」第2章 机器学习概述text/03-ch02.txt:19(搜「对人来说很简单」)
特征工程与瓶颈第1章 绪论text/02-ch01.txt:345(搜「特征工程」) · text/02-ch01.txt:350(搜「表示依赖人工设计」)
表示学习第1章 绪论text/02-ch01.txt:21(搜「表示学习」)
局部表示与分布式表示第1章 绪论text/02-ch01.txt:393(搜「局部表示(Local Rep」) · text/02-ch01.txt:417(搜「这种表示方式叫作分布式表示」)
嵌入第1章 绪论text/02-ch01.txt:428(搜「也称为嵌入」)
深度的定义第1章 绪论text/02-ch01.txt:488(搜「原始数据进行非线性特征转」)
深度学习的定义第1章 绪论text/02-ch01.txt:492(搜「多层可学习表示」)
贡献度分配问题第1章 绪论text/02-ch01.txt:33(搜「贡献度分配问题」) · text/02-ch01.txt:33(搜「贡献度分配问题」)
端到端学习第1章 绪论text/02-ch01.txt:541(搜「端到端学习」)
四种网络结构第1章 绪论text/02-ch01.txt:660(搜「简要分类」) · text/02-ch01.txt:665(搜「前馈网络中各个神经元」)
框架的三个抽象第1章 绪论text/02-ch01.txt:900(搜「张量表示、计算图、自动微分」)

Footnotes

  1. 出处:「第1章 绪论」第 117 段(text/02-ch01.txt:117,搜「推理期」)。 原文强调:「这种划分并不意味着后一个阶段彻底替代前一个阶段。」 2

  2. 出处:「第1章 绪论」第 132 段(text/02-ch01.txt:132,搜「几何定理证明器」)。

  3. 出处:「第1章 绪论」第 150 段(text/02-ch01.txt:150,搜「专家系统」)。 原书给的定义:「专家系统可以简单理解为『知识库 + 推理机』。」

  4. 出处:「第1章 绪论」第 286 段(text/02-ch01.txt:286,搜「从有限的观测数据中学习」)。 2

  5. 出处:「第1章 绪论」第 181 段(text/02-ch01.txt:181,搜「以大模型」)。 原书把规模法则称为「经验现象」,并指出它后来从训练阶段扩展到了推理阶段。

  6. 出处:「第2章 机器学习概述」第 19 段(text/03-ch02.txt:19,搜「对人来说很简单」)。

  7. 出处:「第1章 绪论」第 345 段(text/02-ch01.txt:345,搜「特征工程」)。 原文:「不同预测模型的性能相差不多,而前三步中的特征处理对最终系统的准确性 有着十分关键的作用。」 2 3 4

  8. 出处:「第1章 绪论」第 350 段(text/02-ch01.txt:350,搜「表示依赖人工设计」)。 2

  9. 出处:「第1章 绪论」第 21 段(text/02-ch01.txt:21,搜「表示学习」)。

  10. 出处:「第1章 绪论」第 393 段(text/02-ch01.txt:393,搜「局部表示(Local Rep」)。 2

  11. 出处:「第1章 绪论」第 409 段(text/02-ch01.txt:409,搜「局部表示有两个优点」)。

  12. 出处:「第1章 绪论」第 413 段(text/02-ch01.txt:413,搜「不同颜色之间的相似度都为」)。

  13. 出处:「第1章 绪论」第 417 段(text/02-ch01.txt:417,搜「这种表示方式叫作分布式表示」)。 边注:「将分布式表示叫作分散式表示可能更容易理解。」

  14. 出处:「第1章 绪论」第 421 段(text/02-ch01.txt:421,搜「分布式表示的表示能力要强很多」)。

  15. 出处:「第1章 绪论」第 428 段(text/02-ch01.txt:428,搜「也称为嵌入」)。 原文要求:「同时尽可能使语义相近的对象在向量空间中也相互靠近。」 2

  16. 出处:「第1章 绪论」第 488 段(text/02-ch01.txt:488,搜「原始数据进行非线性特征转」)。 2

  17. 出处:「第1章 绪论」第 492 段(text/02-ch01.txt:492,搜「多层可学习表示」)。

  18. 出处:「第1章 绪论」第 527 段(text/02-ch01.txt:527,搜「深度学习是一种方法范式」)。 2

  19. 出处:「第1章 绪论」第 541 段(text/02-ch01.txt:541,搜「端到端学习」)。

  20. 出处:「第1章 绪论」第 33 段(text/02-ch01.txt:33,搜「贡献度分配问题」)。

  21. 出处:「第1章 绪论」第 518 段(text/02-ch01.txt:518,搜「但二者并不等同」)。 2

  22. 出处:「第1章 绪论」第 521 段(text/02-ch01.txt:521,搜「误差反向传播算法」)。 2

  23. 出处:「第1章 绪论」第 660 段(text/02-ch01.txt:660,搜「简要分类」)。

  24. 出处:「第1章 绪论」第 665 段(text/02-ch01.txt:665,搜「前馈网络中各个神经元」)。

  25. 出处:「第1章 绪论」第 900 段(text/02-ch01.txt:900,搜「张量表示、计算图、自动微分」)。 同段还说明:手工推导公式再写代码「会非常低效,并且容易出错」。 2

  26. 出处:「第1章 绪论」第 382 段(text/02-ch01.txt:382,搜「是一个非常主观的概念」)。