跳到主要内容

三波浪潮、学习地图与数学入门

这一章讲三件事: 这波 AI 浪潮为什么跟前两波不一样;机器学习项目和普通程序的开发差在哪; 以及这门学科的第一组数学工具(向量、矩阵、微分)到底被用来干什么。 读完你会拿到全书的地图,和后面每一章都要用的三件数学工具。 不需要任何基础,遇到的生词都在当场解释。

1. 先看现象:AI 已经火过两轮了

新闻里的 AI 像是这两三年才出现的东西。其实这是第三波,前两波各烧了十余年,都以寒冬收场1

时间线摆出来看:

年份发生了什么结局
1956达特茅斯会议,「人工智能」正式立项2第一波开始
1957感知器——最简易的神经网络诞生3解不了多层网络,1969 年经费被砍,入冬
1980专家系统:把专家经验写成一条条规则不切实际、依赖昂贵大型机,被个人计算机盖过,二次入冬
2012AlexNet 在 ImageNet 影像辨识大赛把错误率降低了十几个百分比4第三波,至今未退

前两波的死因值得记牢:一次死于「算不动」(多层网络没有解法、经费被砍),一次死于「算不起」(专家系统要大型机,PC 时代一来就被比下去)

那这一波凭什么不一样?作者给了四根柱子,而且每根都能对上前两波的死因:

  1. 由下往上发展:先做影像、语音、文字辨识这种基础能力,再往上盖自动驾驶、聊天机器人——比「先画大饼再找落地」扎实5;

  2. 硬件跟上了:摩尔定律(集成电路上能塞下的晶体管数,约每 18 个月到两年翻一倍)持续了 50 年;云端按用量付费,几分钟就能租到机器;GPU 把矩阵运算提速——模型训练从「不可能」变成「等得起」6;

  3. 解封旧算法:过去因算力不足被搁置的神经网络,现在能建上百层、调上兆个参数;

  4. 数据够了:网络和手机源源不断地产数据,大公司雇人力做标注。

作者的结论是一句有立场的猜测:「第三波的热潮在短期内应该不会迈入寒冬」7。注意这是猜测,不是论证——后面第 13 章会看到作者自己的说法:文字、影像、语音这三大基石的技术成熟,正是这一波不会像前两波那样后继无力的原因之一。两处对照着读,这个赌注的底气就清楚了。

2. 学习地图:三个词不是同义词

AI、机器学习、深度学习经常被混用,但它们是三层包含关系:机器学习是人工智能的部分领域,深度学习又是机器学习的部分算法8。「深度」两个字专指多层式架构的模型9

作者把学习路线划成四段:数据科学(编程与数据分析)→ 机器学习(回归、聚类——物以类聚的自动分组——这些经典算法,即一套明确的求解步骤)→ 深度学习 → 实务专题。其中有一处区分容易踩坑:数据挖掘和机器学习算法大量重叠,差别在目标——数据挖掘找数据里隐藏的样态,机器学习要的是预测10

机器学习开发流程:十步,以及它和写普通程序差在哪

普通程序是「输入 + 写死的规则 = 输出」。机器学习反过来:规则是算出来的。作者给的流程有十步11,这里先记住三步,第 04 章写 MNIST 程序时十步会全部登场:

  • 数据切割:把数据分成训练集和测试集,测试集绝不参与训练——否则等于考生提前看过考卷,成绩再好也不算数。这一步的目的书里说得很直白:维持公正性,即 Out-of-Sample Test(样本外测试)12;
  • 模型训练:用算法和训练数据产出模型;
  • 部署与预测:模型上线后,新数据还能喂回去重新训练,让模型更「聪明」——普通程序可没有这个自我升级回路13。作者还补了一个形象说法:历史数据是建模的「饲料」14

3. 数学不是门槛,是四把钥匙

进入第 2 章,作者先回答学生最常问的问题:学 AI 一定要先搞定数学吗?答案是肯定的。他的理由值得原样记住:算法是从数据中萃取出知识的「榨汁机」,必须以数学和统计为理论基础;不了解算法背后的假设就随意套用公式,「就好像无视交通规则,在马路上任意飚车一样危险」15

但他也清楚大学四门课(线性代数、微积分、概率统计、线性规划)各要修两学期,工程师在职重修不现实。所以他给了一条快捷方式,并且公开承认代价:跳过证明,把力气花在理解假设、定义、定理,再用程序对大量个案做验证;他自己承认,忽略证明「会让学习无法彻底地融会贯通」16。这个「以程序解决统计问题」的思路(Statistical Programming)17决定了全书的写法——每个概念都配一段能跑的程序和真实执行结果,我们这份拆解也照此办理:凡是书里给出的执行数字,都拿来当走查的燃料。

这四门学科不是并列的装饰,它们各自对应神经网络求解流程的一环:

正向传导 ──→ 线性代数:算误差与损失
反向传导 ──→ 微积分:偏微分求梯度
找最佳解 ──→ 线性规划:优化的思路
串全场 ──→ 统计:定义损失函数与效果指标

图说:四门学科各管一段,串起来才是「训练一个模型」这件事的完整地图。

4. 第一件工具:张量、向量与矩阵

张量(Tensor)是这一族东西的总名:零维叫纯量(单个数,如 3),一维叫向量(一列数),二维叫矩阵(表格),更多维的统称张量。TensorFlow 这个名字就是「张量」+「流」——整个框架干的就是张量运算18

向量:一列数,除了长度还有方向。长度用欧几里得距离算——就是把每个元素平方加起来再开根号。两个关键性质,后面 CNN 章会原样用到:

  • 向量加减一个常数,长度和方向都变;
  • 向量乘除一个常数,长度变、方向不变(就像把一支箭拉长缩短,箭头指向没变)。

两个向量的内积(又称点积):对应元素相乘再求和。它是整个深度学习里出现频率最高的运算——第 10 章会看到,GAN 里把「画风」变成能算的数的 Gram 矩阵,本质就是特征向量两两做内积。

矩阵:二维张量。乘法有一条铁律:(m, k) 形状只能乘 (k, n) 形状,得 (m, n)。书里拿具体数字把「左上角那一格」算了一遍:

左矩阵第一行 (1,2,3) 与右矩阵第一列 (9,7,5) 对应相乘再相加:1×9 + 2×7 + 3×5 = 38,这就是结果矩阵左上角的值;同理右上是 1×8+2×6+3×4=3219

(这些数是书里的,不是编的。)另外两条矩阵性质,后面反复出场:

  • A×B ≠ B×A,矩阵乘法没有交换律——书里用程序验过20;
  • 反矩阵 A⁻¹ 只对方阵且「非奇异」的矩阵存在。「奇异」的判断书里给了具体例子:某矩阵第二列=第一列+1、第三列=第一列+2,行与行线性相关,反矩阵不存在21

解联立方程:一件小事,但它是「用矩阵解决问题」的模板

中学的消元法解 x+y=16、10x+25y=250,要乘系数、相减、回代。矩阵写法是把它整理成 AX=B,然后 X = A⁻¹B,一步出解:x=10,y=622

这件事的真正意义不在解方程,而在示范一个模式:把一堆未知数打包成一个对象,把求解变成一次矩阵运算。第 03 章训练神经网络时,「几十万个权重一次全部更新」用的就是这个模式。

5. 第二件工具:微分——变化率,以及「斜率为零」的魔力

微分衡量的是变化率:y=2x+5 里 x 每加 1,y 加 2,变化率就是 2,也叫斜率23

它为什么是深度学习的命门?书里用两条抛物线给出了最直接的演示:

  • f(x) = −10x² + 100x + 5:对它求一阶导数得 −20x + 100,令导数=0 解得 x=5,函数在此取最大值 25524;
  • f(x) = x² + 2x + 7:导数 2x + 2,x=−1 处取最小值 625

「找最优」这件事,被「令导数等于零」一步解决。 这就是微分的魔力:它把「翻遍所有点找最高点」变成「解一个方程」。

两条边界要记:

  1. 三次以上的函数,导数为零的点可能只是局部最优(附近一圈里的最值),而不是整条曲线的最值26;

  2. 整条曲线的最值,行话叫全局最优——神经网络是几百万维的复杂函数,所以第 04 章的优化器要专门对付「困在局部」的问题;

  3. 最小值附近「越走越平」的性质,直接催生了梯度下降法(下一节)。

偏微分与梯度下降:多变量的世界里怎么「往下走」

损失函数通常有几十万个变量,单一变量的「斜率」升级成多变量的「梯度」——对每个变量分别求偏导,得到一组「每个方向各倾斜多少度」的数。梯度下降法就是:沿着梯度的反方向小步走,反复迭代(每走一步算一次),逼近最低点27。书里把程序逻辑写成四步:

  1. 任意设一个起点;
  2. 算这一点的梯度;
  3. 沿梯度更新 x,步子多大由学习率控制:新的 x = 旧 x − 学习率 × 梯度;
  4. 重复,直到梯度接近 028

这个四步循环就是神经网络训练的核心,全书后面所有章节的「训练」都是在跑它。而学习率这个旋钮,书里用两次失败演示了它的脾气:

  • lr=0.9:步子太大,可能直接跳过最小值,在山谷两侧来回弹;
  • lr=0.01:步子太小,还没走到就提前停了,得靠加训练轮(完整过一遍训练数据)数补救29

判断(我们的,不是书里的): 学习率没有「正确值」只有「合适量级」,它是所有超参数(训练开始前人工设定的旋钮)里第一个该试的。书里这两次失败实验,比任何调参口诀都更能建立手感——大则震荡、小则磨蹭。 如果错,会错在: 如果某类优化器(如后面第 04 章的 Adam)内部已经自动调步长,那手工调学习率的重要性会下降;但初始值仍决定它从哪个量级开始调。

6. 可带走的

  1. AI 三波浪潮,前两波死于算力和钱;这一波靠硬件、算法、数据、由下往上的路线四根柱子,作者赌它短期不会寒冬——这是猜测,与第 13 章「三大基石」的说法互为印证;
  2. AI ⊃ 机器学习 ⊃ 深度学习,「深度」=多层架构;
  3. 机器学习与普通程序的根本差异:规则是算出来的,测试数据绝不参与训练,新数据可回馈再训练;
  4. 作者的快捷方式:跳过证明,用程序验证代替——代价是他自己承认的「无法彻底融会贯通」;
  5. 张量是总名:向量一维、矩阵二维;内积=对应相乘再求和;矩阵乘法无交换律,反矩阵要求「非奇异」;
  6. AX=B → X=A⁻¹B:把未知数打包、把求解变成矩阵运算,这是第 03 章「一次更新全部权重」的模板;
  7. 微分的魔力:令导数=0 直接找到最值点(x=5 处最大值 255;x=−1 处最小值 6);三次以上函数导数零点可能只是局部最优;
  8. 梯度下降四步:起点→算梯度→x−=学习率×梯度→重复;学习率大则跳过最小值、小则提前停——它是全书所有「训练」的内核。

7. 原文地图

主题原书章原文位置
三波浪潮时间线第1章 深度学习导论text/06-ch01.txt:13(搜「达特茅斯」) · text/06-ch01.txt:15(搜「感知器」) · text/06-ch01.txt:21(搜「十几个百分比」)
第三波不会寒冬(作者猜测)第1章 深度学习导论text/06-ch01.txt:49(搜「短期内应该不会迈入寒冬」)
四根柱子第1章 深度学习导论text/06-ch01.txt:27(搜「由下往上」) · text/06-ch01.txt:33(搜「每隔18个月」) · text/06-ch01.txt:35(搜「Pay as you go」)
AI⊃ML⊃DL、数据挖掘之别1-2 AI的学习地图text/07-ch01-1-2-ai.txt:5(搜「机器学习是人工智能的部分领域」) · text/07-ch01-1-2-ai.txt:21(搜「隐藏样态」) · text/07-ch01-1-2-ai.txt:23(搜「多层式架构」)
十步流程、与一般系统的差异1-4 机器学习开发流程text/09-ch01-1-4.txt:19(搜「Out-of-Sample」) · text/09-ch01-1-4.txt:37(搜「饲料」)
为什么要数学、「飚车」之诫第2章 神经网络原理(2-1)text/11-ch02.txt:9(搜「飚车」) · text/11-ch02.txt:35(搜「以程序解决统计问题」)
张量的定义2-2 线性代数text/12-ch02-2-2.txt:5(搜「张量(Tensor)是描述向量空间」)
矩阵乘法算到 38、无交换律2-2 线性代数text/12-ch02-2-2.txt:103(搜「38」) · text/12-ch02-2-2.txt:113(搜「不等于」)
奇异矩阵、反矩阵不存在2-2 线性代数text/12-ch02-2-2.txt:159(搜「第二列=第一列」)
AX=B 的解 x=10,y=62-2 线性代数text/12-ch02-2-2.txt:223(搜「x=10,y=6」)
微分定义、最大值 255、最小值 62-3 微积分text/13-ch02-2-3.txt:41(搜「每一点的斜率均相同」) · text/13-ch02-2-3.txt:59(搜「当x=5时」) · text/13-ch02-2-3.txt:69(搜「当x=-1时」)
局部最优2-3 微积分text/13-ch02-2-3.txt:71(搜「区域的最佳解」)
梯度下降四步、学习率两种失败2-3 微积分text/13-ch02-2-3.txt:175(搜「梯度下降法(Gradient Descent)」) · text/13-ch02-2-3.txt:207(搜「任意设定一起始点」) · text/13-ch02-2-3.txt:211(搜「学习率控制」) · text/13-ch02-2-3.txt:229(搜「跳过最小值」) · text/13-ch02-2-3.txt:233(搜「提早停止」)

Footnotes

  1. 出处:「第1章 深度学习导论」第 9 段(text/06-ch01.txt:9,搜「第三波热潮」)。原文:AI 目前已是第三波热潮,前两波都经历十余年迈入寒冬。

  2. 出处:「第1章 深度学习导论」第 13 段(text/06-ch01.txt:13,搜「达特茅斯」)。

  3. 出处:「第1章 深度学习导论」第 15 段(text/06-ch01.txt:15,搜「感知器」)。原文指出多层问题直到 1980 年代才有解法。

  4. 出处:「第1章 深度学习导论」第 21 段(text/06-ch01.txt:21,搜「十几个百分比」)。

  5. 出处:「第1章 深度学习导论」第 29 段(text/06-ch01.txt:29,搜「由下往上」)。

  6. 出处:「第1章 深度学习导论」第 33 段(text/06-ch01.txt:33,搜「每隔18个月」)与第 35 段(text/06-ch01.txt:35,搜「Pay as you go」)。

  7. 出处:「第1章 深度学习导论」第 49 段(text/06-ch01.txt:49,搜「短期内应该不会迈入寒冬」)。原文用语是「笔者猜测」。

  8. 出处:「1-2 AI的学习地图」第 5 段(text/07-ch01-1-2-ai.txt:5,搜「机器学习是人工智能的部分领域」)。

  9. 出处:「1-2 AI的学习地图」第 23 段(text/07-ch01-1-2-ai.txt:23,搜「多层式架构」)。

  10. 出处:「1-2 AI的学习地图」第 21 段(text/07-ch01-1-2-ai.txt:21,搜「隐藏样态」)。

  11. 出处:「1-4 机器学习开发流程」第 11 段(text/09-ch01-1-4.txt:11,搜「十个步骤」)。原文列全十步,本章只展开其中三步。

  12. 出处:「1-4 机器学习开发流程」第 19 段(text/09-ch01-1-4.txt:19,搜「Out-of-Sample」)。

  13. 出处:「1-4 机器学习开发流程」第 39 段(text/09-ch01-1-4.txt:39,搜「自我学习」)。原文:新产生的数据可回馈入模型中,重新训练。

  14. 出处:「1-4 机器学习开发流程」第 37 段(text/09-ch01-1-4.txt:37,搜「饲料」)。

  15. 出处:「第2章 神经网络原理」第 9 段(text/11-ch02.txt:9,搜「飚车」)。「榨汁机」比喻亦出自同段。

  16. 出处:「第2章 神经网络原理」第 45 段(text/11-ch02.txt:45,搜「融会贯通」)。作者原话承认忽略证明的代价。

  17. 出处:「第2章 神经网络原理」第 35 段(text/11-ch02.txt:35,搜「以程序解决统计问题」)。

  18. 出处:「2-2 线性代数」第 5 段(text/12-ch02-2-2.txt:5,搜「张量(Tensor)是描述向量空间」)。「TensorFlow 名字」的解释是我们的补充(不在书里,来自通用知识):Tensor=张量,Flow=数据流过运算图。

  19. 出处:「2-2 线性代数」第 103 段(text/12-ch02-2-2.txt:103,搜「38」)。左上 38、右上 32 都是书中原始计算。

  20. 出处:「2-2 线性代数」第 113 段(text/12-ch02-2-2.txt:113,搜「不等于」)。

  21. 出处:「2-2 线性代数」第 159 段(text/12-ch02-2-2.txt:159,搜「第二列=第一列」)。第二列=第一列+1、第三列=第一列+2,故 A@A⁻¹ 不等于单位矩阵。

  22. 出处:「2-2 线性代数」第 223 段(text/12-ch02-2-2.txt:223,搜「x=10,y=6」)。

  23. 出处:「2-3 微积分」第 5 段(text/13-ch02-2-3.txt:5,搜「变化率」)。

  24. 出处:「2-3 微积分」第 59 段(text/13-ch02-2-3.txt:59,搜「当x=5时」)。

  25. 出处:「2-3 微积分」第 69 段(text/13-ch02-2-3.txt:69,搜「当x=-1时」)。

  26. 出处:「2-3 微积分」第 71 段(text/13-ch02-2-3.txt:71,搜「区域的最佳解」)。

  27. 出处:「2-3 微积分」第 175 段(text/13-ch02-2-3.txt:175,搜「梯度下降法(Gradient Descent)」)。

  28. 出处:「2-3 微积分」第 207 段(text/13-ch02-2-3.txt:207,搜「任意设定一起始点」)与第 211 段(text/13-ch02-2-3.txt:211,搜「学习率控制」)。

  29. 出处:「2-3 微积分」第 229 段(text/13-ch02-2-3.txt:229,搜「跳过最小值」)与第 233 段(text/13-ch02-2-3.txt:233,搜「提早停止」)。