跳到主要内容

摞成层 — 从一台感知器到一张网,以及人类还剩下什么

这一章讲三件事: 一个感知器不够用,该怎么办; 参数一多之后「往哪边挪」这个问题为什么会变难,以及怎么解决; 还有这本书最后一个真正的判断——机器学习铺开之后,人类还剩下什么。

它在全书链条里的位置: 这是全书的最后一章。 第 20 章那台机器只有三条线;这一章把它摞起来, 于是第 13 章那个指数爆炸最后一次现身。 需要的基础: 第 20 章的全部内容;走查续用那里那组输入。

1. 一个不够用,就摞成层

先说为什么要摞。原书的话很直接:单个感知器能做的事情还是太有限了1

于是把多个感知器组合起来,构成多层结构,以便处理更复杂的判断—— 这就叫神经网络2

它的定义只有一句:把像感知器那样有输入有输出的节点排列起来、 形成带有层次的结构3

输入 中间那一排节点 输出
x₁ ●──┐ ┌──● ──┐ ┌──● y₁
├──────────┤ ├──────────┤
x₂ ●──┼──────────┼──● ──┼──────────┼──● y₂
├──────────┤ ├──────────┤
x₃ ●──┘ └──● ──┘ └──● y₃

└── 第 1 层 ─┘ └── 第 2 层 ─┘

图说:一共三排圆圈:左边三个是输入,中间一排是节点,右边三个是输出。
圆圈之间有两组连线,每根连线上都挂着一个权重(为了不糊,图里省略没画)。
**「第 1 层」「第 2 层」数的是连线,不是圆圈的排数** —— 这正是下一节要说的坑。
这张图照原书图 A-10 重画。

「神经网络」这个名字来自生物的信息传递方式4但有一处和第 20 章不同要注意:感知器的输出是二元的(只有 0 和 1), 而神经网络中节点的输出不是二元的,是可以做微分运算的连续值5—— 这一点在第 4 节会变得很关键。

2. 「几层」有两种数法

这一节先扫掉一个会让人读岔的地方。

上面那张图,有人叫它 2 层,有人叫它 3 层6:

数法数什么上图算几层
按连线数带权重的连接有几组2 层
按节点排数输入、中间、输出一共几排3 层

原书说得很实在:不同的书、不同的论文可能有不同的计数方式7所以看到「几层网络」这个说法时,先确认对方在数什么。

不管怎么数,一件事是确定的:只要把网络一层层地连接起来, 就能得到多层神经网络8

3. 主走查续:同一组输入过两层

这一节接着第 20 章那组输入往下走,每一步的数都算出来。

还是那组输入 (1, 0, 1)(和第 20 章同一组)。 中间那排三个圆圈、右边三个输出,每个都挂着自己的三个权重 ——下面这些权重全部是我们为演示编的,不是真实数值。

第 1 步:三个输入 ──第 1 层的连线──→ 中间那排三个圆圈

h₁ 的三个权重 (0.6, −0.2, 0.5) ← 就是第 20 章那台机器的三个数
0.6 × 1 + (−0.2) × 0 + 0.5 × 1 = 1.1
h₂ 的三个权重 (0.2, 0.4, −0.3)
0.2 × 1 + 0.4 × 0 + (−0.3) × 1 = −0.1
h₃ 的三个权重 (−0.5, 0.1, 0.8)
(−0.5) × 1 + 0.1 × 0 + 0.8 × 1 = 0.3

中间那排吐出来的是 (1.1, −0.1, 0.3)。
第一行值得看一眼:它和第 20 章算出来的 1.1 一模一样 ——
那台机器就是这里的一个圆圈。

第 2 步:那三个数 ──第 2 层的连线──→ 三个输出

y₁ 的三个权重 (0.5, 0.3, −0.2)
0.5 × 1.1 + 0.3 × (−0.1) + (−0.2) × 0.3 = 0.55 − 0.03 − 0.06 = 0.46
y₂ 的三个权重 (−0.4, 0.7, 0.6)
(−0.4) × 1.1 + 0.7 × (−0.1) + 0.6 × 0.3 = −0.44 − 0.07 + 0.18 = −0.33
y₃ 的三个权重 (0.2, −0.5, 1.0)
0.2 × 1.1 + (−0.5) × (−0.1) + 1.0 × 0.3 = 0.22 + 0.05 + 0.30 = 0.57

第 3 步:最终的输出 (y₁, y₂, y₃) = (0.46, −0.33, 0.57)

图说:同一组 (1, 0, 1),连着过了两次「乘上权重再加总」。
第 20 章那台机器只做了一次、吐出一个数;这里吐出三个。

现在数一数要调的数有几个(照书里那张图数出来的):

输入 3 个 ──第 1 层连线──→ 中间 3 个节点:每个节点接 3 条线 = 9 个权重
中间 3 个 ──第 2 层连线──→ 输出 3 个: 每个输出接 3 条线 = 9 个权重
合计:18 个

对照:第 20 章那台机器只有 3 个权重。
只不过多摞了一排节点,要调的数就从 3 个变成了 18 个 —— 六倍。

这就是主走查的落点:同一组输入没变,要调的数变成了原来的六倍。 而这正是下一节那个问题的来源。

4. 参数一多,「往哪边挪」就不能靠试了

这一节是这一章的核心机制。

第 20 章第 7 节挪权重的时候,我们是这么想的: 「x₂ 是 0,所以 w₂ 不用动;s 偏小,所以 w₁ 和 w₃ 往上挪。」 这种「一个个看」的办法,在 3 个权重上还行。

18 个呢?18 万个呢?

原书把这条界说得很清楚:在运用神经网络模型时,处理的数据和涉及的参数往往非常多, 在对它们的不同组合进行计算时,很容易陷入指数爆炸的境地9—— 也就是第 13 章那件事,它在这本书里最后一次现身。

解决办法叫反向传播(书里给的全名是误差反向传播法)10它的思路是两趟11:

┌── 第一趟:从左往右 ──────────────────────────────────┐
│ 把输入一层层往前算,一直算到输出,再算出「差多远」 │
│ 这一趟叫前向传播 │
└─────────────────────────────────────────────────────┘

┌── 第二趟:从右往左 ──────────────────────────────────┐
│ 从输出层往输入层倒着走,一层层看清楚 │
│ 「这个权重动一点点,输出会跟着变多少」 │
│ 再照这个结果去调权重 —— 这一趟叫反向传播 │
└─────────────────────────────────────────────────────┘

图说:关键在第二趟。它不是「一个个试」,而是把「输出对每个权重有多敏感」
从后往前一层层捎回去 —— 所以 18 个权重也好、18 万个也好,
都只要走这么一来一回。

先把这两趟的名字认下:从左往右算的那一趟叫前向传播,从右往左推的那一趟叫反向传播。

光说不算数,让它在走查上占一步带数的位置。 给 y₁ 定一个目标 1.0(这个目标是我们编的)。 上一节算出 y₁ = 0.46,照第 20 章那把尺子,差多远 = (1.0 − 0.46)² = 0.54² ≈ 0.29。

现在只问一个权重:h₁ 的第一个权重现在是 0.6,把它挪到 0.7,输出会跟着变多少?

这个权重挪了 +0.1(0.6 → 0.7)
↓ 它挂在 x₁ = 1 这条线上,所以 h₁ 也跟着 +0.1 × 1:1.1 → 1.2
↓ h₁ 要乘上第 2 层那个权重 0.5 才到 y₁,所以 y₁ 只跟着 +0.1 × 1 × 0.5:
0.46 → 0.51
差多远:(1.0 − 0.51)² = 0.49² ≈ 0.24 ← 从 0.29 降到 0.24

图说:关键是 0.05 这个数(0.1 × 1 × 0.5)。中间乘的那两个数,
一个是这条线上的输入 1,一个是右边那层的权重 0.5 ——
反向传播干的就是把这一串数从右往左依次乘回来。

这就是「不靠试」的确切意思: 笨办法是真把这个权重挪一次、 把整张网从头到尾重算一遍看结果,18 个权重就得重算 18 遍; 反向传播只走一来一回,就把 18 个权重各自那个数一次全算出来。

这里要回收第 1 节埋的那句话:节点的输出必须是「可以做微分运算的连续值」12因为第二趟要问的是「动一点点会变多少」, 而第 20 章那种只吐 0 和 1 的闸门,动一点点它一动不动—— 问不出答案,这条路就走不通。

原书对这件事的定位是:研究机器学习的学者开发了各种算法来避免那种爆炸, 反向传播法就是其中之一13

5. 深度学习:同一件事,层数更多

这一节给一个天天在新闻里出现的词一个准确的位置。

深度学习就是在神经网络的基础上,通过增加层数得到的更「深」的模型14

加层数是为了什么?原书的说法是:更精确地拟合复杂的关系; 就算涉及的参数个数不做大的变动,也能得到更好的模型15

但原书紧接着交了个底:至于「深」为什么在理论上更有效, 依然是现在研究的热点之一16——也就是说,书写成的时候这件事还没搞清楚。

6. 强化学习:没有标准答案的那一种

这一节讲另一条路,它和前面所有内容都不一样。

前面讲的学习,每条训练数据都带一个「目标」——那是标准答案。 而强化学习是在「无监督」的条件下进行的学习:学习过程中没有标准答案可参考17

它靠的是试错:对每一个输出,系统都会给一个反馈(奖励), 模型再根据反馈来调整参数18

原书举的例子是围棋和电子游戏19:

系统它干了什么
DQN事先不知道规则就进游戏,自己学会打电子游戏,最终成绩打破了人类最高纪录
AlphaGo学过大量棋谱之后,开始屡屡战胜人类
AlphaGo Zero不曾学习人类棋谱,仅凭规则自我训练,成为最强的程序围棋手
AlphaZero在前者基础上做了更一般化的改进,把范围扩到国际象棋和将棋,同样拿到最强

这四行是有顺序的,而顺序本身就是结论: 从「学人类的棋谱」到「不看人类棋谱、只看规则」,棋力反而更强。

7. 人类还剩下哪四件事

这一节是这本书最后一个真正的判断,原书用它收尾。

问题原书自己提了:随着机器学习技术的进步,人类就这样没用了吗20? 它给了四件仍然要人做的事21:

① 构建模型。 神经网络里怎么搭层次、选哪些函数、怎么组合, (在现阶段)还都需要人来决定22

② 确保数据的可靠性。 参数是照着训练数据调的, 训练数据里如果有错,调出来的结果也会错; 数据正不正确、可不可靠、有没有收集齐预测需要的信息,这些都要由人判断23

③ 对结果的解释。 这一条最值得读:即使预测准确、分类确切, 人还是想要更抽象的解释——「因为有了这样的趋势,所以得到那样的预测」。 可面对那一大堆参数值,很难合理地解释为什么24

原书给这件事的理由很硬:机器学习解决问题的途径和其他方法不同, 它本来就不是在验证人类提出的假设;它只是在数据的基础上算出一组让差最小的数而已。 至于得到的参数「为什么」是这个值,根本没办法说明—— 它能说明的只有「输入和输出之间存在这样的关系」25

④ 做出决策。 机器可以告诉你「未来最有可能发生什么」, 但得到预测值之后「应该做些什么」,机器无法决定26原书举的例子是:在减轻痛苦和延续生命之间二选一—— 这只能由个人的意志来决定,不可能委托给机器学习27

注意 ① 那个括号:「在现阶段」——作者自己给这条判断加了时间限定。

8. 这三章打的日期:2017 年 12 月

这一节交代边界,而它是整本书里最需要标日期的地方。

附录的落款是 2017 年 12 月(见总纲第 1 节)。 正文那九章讲的是余数、逻辑、归纳、递归——几百年不动的东西; 而附录这三章带着明确的时代印记。

原书自己也划了界:它说本附录介绍的内容仅仅是「第一步」, 特别是完全没有涉及概率统计等知识,而要想了解机器学习,这些是不可欠缺的28

补充(不在书里):附录落款前半年,2017 年 6 月 12 日, 一篇题为《Attention Is All You Need》的论文提交到了预印本网站 arXiv, 作者是 Ashish Vaswani 等八人29

这篇论文提出的结构,后来成了另一支的地基——那一支叫大语言模型, 也就是今天大多数人接触到的那类会写文章、会答问题的程序 (这后半句属于通用背景知识,不是那篇论文本身的内容)。

所以这三章该怎么读:

这一部分今天还成不成立
感知器、加权和、闸门成立,今天入门仍然从这里学起
「看差多远、再往差得少一点的方向挪」成立,这条路子没有被替换
前向 + 反向两趟成立
「机器学习现在主要在做什么」过期了——书里举的例子停在图像识别与围棋
「深为什么有效还是研究热点」部分过期,但这个问题至今没有干净的答案

9. 我们的判断

说法书里给了什么
神经网络的定义与层数的两种数法给了定义和图,并明说计数方式不统一
参数一多会爆炸明确回指了第 7 章,不是含糊带过
反向传播给了两趟的思路,没有给公式
深度学习为什么有效老实写了「依然是现在研究的热点」
人类还剩四件事是作者的主张,并给第一条加了「在现阶段」这个限定
结果无法解释给了理由(它本来就不是在验证假设)

判断(我们的,不是书里的):这三章最经得起时间的,是第 7 节那四件事, 而不是任何一项技术。 八年过去,搭什么结构、用什么函数确实有一大半被自动化了(① 缩水了); 但 ②(数据可不可靠)、③(结果怎么解释)、④(拿到预测之后做什么决定) 这三条,今天只会比 2017 年更吃紧。 如果错,会错在: ③ 那一条正在被侵蚀——现在已经有办法让模型 输出一段像模像样的解释;但「像模像样的解释」和「真实的原因」是两回事, 而这一层区分正是原书那句「它只能说明输入和输出之间存在这样的关系」的价值。 判据是:当模型给出的解释和事实冲突时,人是相信解释,还是回头查数据。

这一章的边界:

  • 反向传播只给了思路,没有给做法——真要写代码还得另找资料;
  • 「梯度」一词书里始终没有解释(第 20 章交代过);
  • 强化学习只有一段,没有讲奖励怎么设计、为什么会有效;
  • 深度学习只有一段,没有讲那些具体的网络结构;
  • 附录的参考文献停在 2018 年以前(原书列了五条,包括 Bishop 那本 《Pattern Recognition and Machine Learning》)30;
  • 这一章第 8 节那条 2017 年 6 月的补充是我们加的,原书不可能有。

10. 可带走的

  1. 一个感知器不够用,就把它们排成一层、一层接一层——这就是神经网络;
  2. 「几层」有两种数法:按连线数或按节点排数;看到这个词先确认对方在数什么;
  3. 神经网络里节点的输出不是 0/1,是连续值——这一条是反向传播能成立的前提;
  4. 同一组输入 (1, 0, 1) 多摞一层,要调的数就从 3 个变成 18 个;
  5. 参数一多就不能一个个试,那是第 13 章那种爆炸;
  6. 办法是两趟:先从左往右算到输出和「差多远」(前向传播), 再从右往左把「谁该动多少」一层层捎回去(反向传播);
  7. 深度学习就是层数更多的神经网络;为什么更深更有效,书写成时还是研究热点;
  8. 强化学习没有标准答案,靠试错和奖励;AlphaGo Zero 不看人类棋谱反而更强;
  9. 人类还剩四件事:搭模型、保数据可靠、解释结果、做决定;
  10. 机器学习不验证假设,它只是在算一组让差最小的数——所以「为什么是这个值」它答不了;
  11. 附录写于 2017 年 12 月:机制部分今天仍然成立,「现在主要在做什么」那一层已经过期。

11. 原文地图

主题原书章原文位置
一个感知器不够用附录 迈向机器学习的第一步text/15-apx.txt:610(搜「单个感知器能做的事情还是太有限了」)
神经网络的定义附录 迈向机器学习的第一步text/15-apx.txt:615(搜「神经网络是指」) · :616(搜「来源于生物的信息传递方式」) · :617(搜「而神经网络中的节点输出的就不是二元」)
层数的两种数法附录 迈向机器学习的第一步text/15-apx.txt:633(搜「不同的书或论文中可能有不同的计数方式」) · :636(搜「就能得到多层神经网络」)
参数一多会爆炸附录 迈向机器学习的第一步text/15-apx.txt:681(搜「很容易陷入「指数爆炸」的境地」)
误差反向传播法附录 迈向机器学习的第一步text/15-apx.txt:660(搜「误差反向传播法」) · :662(搜「误差反向传播法的基本思路是」)
深度学习附录 迈向机器学习的第一步text/15-apx.txt:688(搜「深度学习是在神经网络的基础上」) · :690(搜「依然是现在研究的热点之一」)
强化学习与 AlphaGo附录 迈向机器学习的第一步text/15-apx.txt:691(搜「强化学习是在」) · :693(搜「DQN」) · :698(搜「AlphaGo Zero」)
人类还剩四件事附录 迈向机器学习的第一步text/15-apx.txt:709(搜「构建模型」) · :716(搜「确保数据的可靠性」) · :721(搜「对结果的解释」) · :741(搜「做出决策」)
附录的边界附录 迈向机器学习的第一步text/15-apx.txt:760(搜「仅仅是「第一步」」) · :765(搜「Pattern Recognition and Machine Learning」)

Footnotes

  1. 出处:「附录 迈向机器学习的第一步」第 610 段(text/15-apx.txt:610,搜「单个感知器能做的事情还是太有限了」)。

  2. 出处:「附录 迈向机器学习的第一步」第 611 段(text/15-apx.txt:611,搜「以便能够处理更加复杂的判断问题的神经网络」)。

  3. 出处:「附录 迈向机器学习的第一步」第 615 段(text/15-apx.txt:615,搜「神经网络是指」)。原文的原话是:把像感知器一样有输入和输出的节点排列起来形成的带有层次的结构。

  4. 出处:「附录 迈向机器学习的第一步」第 616 段(text/15-apx.txt:616,搜「来源于生物的信息传递方式」)。

  5. 出处:「附录 迈向机器学习的第一步」第 617 段(text/15-apx.txt:617,搜「而神经网络中的节点输出的就不是二元」)。原文的原话是:可以进行微分运算的连续值。

  6. 出处:「附录 迈向机器学习的第一步」第 633 段(text/15-apx.txt:633,搜「不同的书或论文中可能有不同的计数方式」)。原文说:因为带有权重参数的连接一共有 2 层,所以称为 2 层神经网络;如果按照节点的层数计算,则是 3 层。

  7. 出处:「附录 迈向机器学习的第一步」第 633 段(text/15-apx.txt:633,搜「关于层数」)。

  8. 出处:「附录 迈向机器学习的第一步」第 636 段(text/15-apx.txt:636,搜「就能得到多层神经网络」)。

  9. 出处:「附录 迈向机器学习的第一步」第 681 段(text/15-apx.txt:681,搜「很容易陷入「指数爆炸」的境地」)。原文明确写了「参见第 7 章」——也就是我们的第 13 章。

  10. 出处:「附录 迈向机器学习的第一步」第 660 段(text/15-apx.txt:660,搜「误差反向传播法」)。原书给的英文是 error back-propagation,脚注说常简称反向传播法、缩写为 BP。

  11. 出处:「附录 迈向机器学习的第一步」第 662 段(text/15-apx.txt:662,搜「误差反向传播法的基本思路是」)。原文的两趟是:先从输入层向输出层走、算出损失函数的值;然后从输出层向输入层反向前进,利用微分计算查看随着权重参数的变化输出结果会发生什么变化,再据此调整权重。图里那两个名字(前向传播、反向传播)出自原书图 A-12 的标注(第 668 段)。

  12. 出处:「附录 迈向机器学习的第一步」第 617 段(text/15-apx.txt:617,搜「可以进行微」)。「所以只吐 0 和 1 的闸门问不出答案」这句解释是我们补的——原书把这两件事分别写在两处,没有把它们连起来。

  13. 出处:「附录 迈向机器学习的第一步」第 682 段(text/15-apx.txt:682,搜「者开发了各种算法以避免这种不利的情况发生」)。

  14. 出处:「附录 迈向机器学习的第一步」第 688 段(text/15-apx.txt:688,搜「深度学习是在神经网络的基础上」)。

  15. 出处:「附录 迈向机器学习的第一步」第 689 段(text/15-apx.txt:689,搜「数是为了更加精确地拟合复杂函数」)。

  16. 出处:「附录 迈向机器学习的第一步」第 690 段(text/15-apx.txt:690,搜「依然是现在研究的热点之一」)。

  17. 出处:「附录 迈向机器学习的第一步」第 691 段(text/15-apx.txt:691,搜「强化学习是在」)。原文的原话是:在学习过程中没有标准答案可供参考。

  18. 出处:「附录 迈向机器学习的第一步」第 692 段(text/15-apx.txt:692,搜「强化学习通过试错来寻找最优输出」)。

  19. 出处:「附录 迈向机器学习的第一步」第 693 段(text/15-apx.txt:693,搜「DQN」)与第 698 段(text/15-apx.txt:698,搜「AlphaGo Zero」)。原书还给了 AlphaGo 的官方页面作为脚注。

  20. 出处:「附录 迈向机器学习的第一步」第 33 段(text/15-apx.txt:33,搜「人类就这样没用了吗」)。原文说,这里不是要谈感情,而是要思考「作为人类,我们剩下的工作是什么」。

  21. 出处:「附录 迈向机器学习的第一步」第 709 段(text/15-apx.txt:709,搜「构建模型」)起的四小节。

  22. 出处:「附录 迈向机器学习的第一步」第 711 段(text/15-apx.txt:711,搜「还都需要人类来」)。「(在现阶段)」这个限定是原书自己加的括号。

  23. 出处:「附录 迈向机器学习的第一步」第 717 段(text/15-apx.txt:717,搜「训练数据中如果」)。

  24. 出处:「附录 迈向机器学习的第一步」第 727 段(text/15-apx.txt:727,搜「人类还是想要追寻更加抽象化的解释」)与第 730 段(text/15-apx.txt:730,搜「很难合理地解释为什么预测是准确的」)。

  25. 出处:「附录 迈向机器学习的第一步」第 734 段(text/15-apx.txt:734,搜「它本来就不是在验证人类提出的假设」)与第 735 段(text/15-apx.txt:735,搜「至于得到的参数」)。原文最后还留了一句:说不定随着科研的进步,机器自己也能「进化」出解说能力。

  26. 出处:「附录 迈向机器学习的第一步」第 742 段(text/15-apx.txt:742,搜「机器学习会根据输入的数据预测未来」)与第 744 段(text/15-apx.txt:744,搜「它们无法进行决策」)。

  27. 出处:「附录 迈向机器学习的第一步」第 747 段(text/15-apx.txt:747,搜「就不是技术问题,而是伦理问题了」)。

  28. 出处:「附录 迈向机器学习的第一步」第 760 段(text/15-apx.txt:760,搜「仅仅是「第一步」」)与第 761 段(text/15-apx.txt:761,搜「涉及概率统计等知识」)。

  29. 补充(不在书里):论文题为《Attention Is All You Need》,作者为 Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Lukasz Kaiser、Illia Polosukhin,于 2017 年 6 月 12 日提交。来源:arXiv https://arxiv.org/abs/1706.03762(查阅于 2026-08-25)。「它后来成了大语言模型那一支的地基」这半句属于通用背景知识,不是那篇论文本身的内容,也不在这本书里。

  30. 出处:「附录 迈向机器学习的第一步」第 765 段(text/15-apx.txt:765,搜「Pattern Recognition and Machine Learning」)。原书一共列了五条参考文献,其中两条是没有中文版的日文书。