跳到主要内容

从数据里学 — 「让机器自己学」到底是哪几件事

这一章讲三件事: 「机器学习」这个听起来很玄的词,拆开之后是哪几个朴素动作; 为什么「例题太少、机器太灵」会学出毛病;以及所有任务按答案的形状分成哪三类。 它在全书的位置:这是论证链的起点,后面十一章都是这一章的放大

1. 先看一个你写不出程序的任务

假设你要做一个识别车牌的程序:拍一张照片,输出车牌上的那串字符1

你很快就会发现自己卡住了:照片是几百万个像素点的颜色值,而「车牌上写着什么」 和这几百万个数之间,没有一条你能写在纸上的换算规则。字体会变、光照会变、 车牌会歪、会有泥点。想把所有情况用「如果……就……」列全,是不可能的。

原书把这种情况说得很直白:当输入是一张在不受控制环境下拍出来、 由几百万个数组成的信号时,「想出一条解析式的配方把它和答案连起来,太复杂了」2

机器学习(machine learning)就是给这种「写不出规则」的任务准备的退路: 规则不由人来写,由机器从一堆例子里自己试出来。 用「机器」和「学习」这两个日常词 拼成的这个行话,往后指的就是这件事,不是别的。

2. 四件事:例题、机器、好坏标准、调数

这条退路具体由四个动作组成。这一节是本章的主走查,我们拿着「识别车牌」这个任务 从头走一遍3

第一件:收集例题。 既然写不出规则,就换个思路:收集一大批「照片 + 对应车牌字符」 的对子。这一批对子叫训练集(training set)——「训练」这个词接下来会出现几千次, 它的意思不是培训员工,而是「拿例题去调教机器」这整个过程。

第二件:造一台通用机器。 写一段程序,它的行为不完全写死,而是由一大堆 可以调的数决定——调法不同,同一张照片算出来的结果就不同。这样一段 「行为由一堆数调制」的程序,就叫一个模型(model)。往后这个词出现的每一处, 指的都是这样一台机器,不是「飞机模型」那种模型。那些可以调的数叫参数 (parameter),也常叫权重(weight)——这个名字是借用生物神经突触的类比4

第三件:定义什么叫「答得好」。 把「好」翻译成一个数:给这台机器当前算出的答案 打一个损失(loss)分,答得越离谱,损失越大。「好」就等于「损失小」5

第四件:调数。 所谓训练,就是在所有可能的调法里,找出让损失最小的那一组数6

训练集(照片+答案)──→ 模型(一堆可调的数)──→ 算出的答案
│ │
└── 真实答案 ──→ 损失(差多远)←──────────┘

└── 回头去调那堆数,让损失变小,再来一遍

图说:训练就是这条回路转上几百万圈。转完,那堆数里就「存」进了
没人明写过的规则。

这本书剩下的一百多页,全是这条回路的展开: 损失怎么设计(第 03 章)、 数怎么调得动(第 04 章)、机器内部用什么零件(第 06、07、08 章)、 零件怎么排成整机(第 09 章)。

3. 一个能算到底的最小例子:基函数回归

上面第四件「调数」听着抽象。原书给了一个能完全算到底的例子,值得走一遍—— 因为它是全书唯一一个不用反复逼近、一步就能算出最优调法的情形,看懂它, 后面「为什么一般情形必须一步步挪」才有对照7

场景压到最小:输入和答案都只是一个数。比如「楼高(米)→ 电梯运行到顶楼的秒数」。 你收了 5 组数据(这些数是为演示编的,不是真实测量):

楼高 x: 10 20 30 40 50
秒数 y: 3.1 4.0 4.8 5.9 6.8

做法分三步:

  1. 先人为挑几个形状当「积木」,比如一块常数、一块「正比于 x」、一块「正比于 √x」。 这些积木叫基函数——它们是固定的、不含可调数的函数;
  2. 模型 = 给每块积木配一个可调的倍数,再加起来: 预测值 = w₁×1 + w₂×x + w₃×√x。要调的就是 w₁、w₂、w₃ 这三个数;
  3. 损失 = 每个例题上「预测秒数 − 真实秒数」的平方的平均。 这个损失有个专门的名字:均方误差(mean squared error, MSE)8

关键在于:预测值对 w 是一次的(每个 w 只以乘法出现),损失对预测值是平方的, 合起来损失对 w 就是一个开口向上的二次曲面——碗状,只有一个碗底。 而碗底的位置可以靠解一个方程组直接算出来,不用试9

对上面 5 个点,解出来大约是 w₁≈2.7、w₂≈0.115、w₃≈−0.23(演示数), 意思是「底数约 2.7 秒,每米楼高约加 0.115 秒,再减掉一点开根号项 ——楼越高,每米多加的时间越少,那点固定开销被摊薄了」。

记住这个例子的特权:它一步到碗底。 第 04 章会讲,一旦模型的形状复杂一点 (比如参数要穿过好几层才影响输出),这个特权就没了,只能一步步往山下挪。

4. 机器太灵或例题太少,都会学出毛病

现在引入一个全书反复回来的概念:模型的容量(capacity),指它有多灵活、 能摆出多少种不同的形状。三个参数的「直线加一点弯」容量很小; 后面章节里几亿个参数的大模型,容量大到能拟合几乎任何东西。

容量和例题数量之间,有两种失配,各有一个名字10:

  • 容量不够:模型太死板,连训练例题都拟合不好,训练时就错得多。这叫欠拟合(underfitting);
  • 例题不够:模型太灵,它会把这几道例题特有的巧合(比如「这三张照片都偏暗」) 也当成规律学进去,训练集上表现极好,换个新照片就露馅。这叫过拟合(overfitting)。

原书配了一张很说明问题的图:数据点只有寥寥几个,而模型灵活到可以扭成任意曲线—— 它扭出来的曲线穿过了所有训练点,却和点背后的真实规律(一条平缓曲线)相去甚远11

所以应用机器学习的「手艺」集中在一件事上:让模型的结构去贴合数据本身的结构。 这个「事先做进结构里的偏好」有个行话,叫归纳偏置(inductive bias)—— 比如「图像里相邻像素关系大、远处关系小」就是一种可以预先做进结构的偏置, 第 06 章讲卷积时会看到它怎么变成具体的零件12

而这里埋着全书的一个悬念。 按这条经典经验,那些容量大到离谱的大模型 应该严重过拟合才对;可它们偏偏预测得很好。经典视角在这里失灵, 原书明说「我们 §3.6 和 §3.7 再回来讲」——这笔账我们记下了,第 05 章兑现13

5. 任务只有三种基本形状

最后一个分类,后面每一章都会用到。按「要预测的东西长什么样」, 任务分成三类14:

类型答案的形状例子训练集里要配什么
回归(regression)一个连续的量车牌框的位置坐标、明天的气温输入 + 数值答案
分类(classification)有限几个类里挑一个这张图是猫是狗;标准做法是给每个类打一个分,分最高的类当选输入 + 类别标签
密度建模(density modeling)不预测别的,就学「数据本身长什么样」学出「人脸照片」这个分布,以后能画出一张新的人脸只要输入,不需要答案

前两类训练时必须有人提供答案(通常靠人工),合称监督学习(supervised learning)。

第三类不需要答案,叫无监督学习(unsupervised learning)15

这个「要不要人提供答案」的区别,决定了成本:答案要人一个个标出来, 这个工序叫标注(labeling),又慢又贵。第 05 章会看到, 大模型之所以能用上整个互联网的数据,正是因为选了「不需要标注」的任务形状。

三类之间并不互斥,也不穷尽:分类可以看成「给类打分」的回归, 一长串数据的密度建模可以看成反复做分类——第 03 章那个「拿已经生成的接着往下生成」的做法就是这么干的16。 但拿这张表去看任何应用,都能立刻问出关键问题:「它要的答案是什么形状? 答案谁来提供?」

6. 作者的判断与证据

这一章的骨架是教科书共识,但有三处是作者的取向,值得单独标出:

  • 「深度学习属于统计机器学习」是定位判断。 原书开篇就把深度学习(deep learning ——用「很多个简单变换一层套一层」的机器来做的机器学习,这本书讲的就是它) 放回「从数据学表示」这个更大的传统里。先交代一个词:映射就是一一对应的变换, 进去一个东西、出来一个东西;而「深」(deep)指的就是把映射一层套一层17
  • 「大模型让经典容量理论失灵」是作者明确点出的未决问题,他给了指向 (§3.6、§3.7 的规模化讨论),没有给出理论答案。这是书里的坦白,不是结论。
  • 成书背景来自作者自述: 这本书的动机是「深度学习的本体并不难,难在它把 线代、微积分、研究可能性大小的数学、怎么求最优、信号处理、编程、高性能计算全拼在一起」, 所以本书只取「理解少数重要模型所必需的背景」。这是选材声明,解释了它为什么薄18

7. 边界与局限

  • 这一章的「四件事」是最简形态。真实任务里,「收集例题」本身可能是最大的工程 (第 10 章目标检测一节会看到标注有多贵),本章没有展开。
  • 基函数回归的「一步到碗底」只在「各自乘一个数再相加」(这叫线性组合)+ 均方误差时成立,不要把它当成常态; 它在本章的作用是反衬。
  • 「容量」是个直觉词,原书没有给它可计算的精确定义;第 04、05 章讨论深度与规模时, 用的都是经验层面的说法。
  • 本章没讲模型内部长什么样(那是第 06–09 章),也没讲损失具体怎么设计(第 03 章)。

8. 可带走的

  1. 「机器学习」= 收例题 + 造一台由一堆可调的数决定行为的机器 + 用「损失」定义好坏 + 把数调到损失最小。四个动作,没有第五个;
  2. 那些可调的数叫参数(也叫权重);另外还有一类不由训练调的数(比如模型的层数),叫超参数,它们靠经验、惯例或机器条件的限制来定19;
  3. 均方误差 + 线性组合,是唯一能手算出最优解的组合;其余一切都要一步步反复逼近;
  4. 判断一个模型配置对不对,先问两件事:容量多大、例题多少。欠拟合加容量,过拟合加数据(或减容量);
  5. 归纳偏置 = 预先做进结构里的「我相信数据长这样」。它不是可选项,是每个模型都有的东西,区别只在合不合数据;
  6. 大模型违反「容量大必过拟合」的经典直觉——这是事实,原因本书只给方向不给答案;
  7. 拿到任何任务先分类:回归、分类,还是密度建模?答案谁提供?这一步定了后面所有选择;
  8. 「监督/无监督」的唯一含义就是「训练时要不要人提供答案」,和有没有人用这台机器无关。

9. 原文地图

主题原书章原文位置
车牌例子与「写不出解析配方」Machine Learningtext/04-fm-machine-learning.txt:20(搜「license plate」) · text/04-fm-machine-learning.txt:26(搜「analytical recipe」)
训练集/参数化模型/训练=最小化损失Machine Learningtext/04-fm-machine-learning.txt:32(搜「parametric」) · text/04-fm-machine-learning.txt:44(搜「notion of goodness」) · text/04-fm-machine-learning.txt:47(搜「minimizes」)
参数也叫权重;超参数Machine Learningtext/04-fm-machine-learning.txt:50(搜「synaptic」) · text/04-fm-machine-learning.txt:52(搜「hyper-parameters」)
基函数回归与线性系统Machine Learningtext/04-fm-machine-learning.txt:66(搜「predefined basis」) · text/04-fm-machine-learning.txt:81(搜「solving a linear system」)
欠拟合/过拟合/归纳偏置Machine Learningtext/04-fm-machine-learning.txt:88(搜「high error during training」) · text/04-fm-machine-learning.txt:92(搜「amount of data is insufficient」) · text/04-fm-machine-learning.txt:111(搜「structure corresponds」)
大模型使经典视角失灵Machine Learningtext/04-fm-machine-learning.txt:115(搜「things get confusing」)
三类任务;监督/无监督Machine Learningtext/04-fm-machine-learning.txt:125(搜「continuous-valued vector」) · text/04-fm-machine-learning.txt:144(搜「probability density function」) · text/04-fm-machine-learning.txt:148(搜「supervised」)
三类不互斥Machine Learningtext/04-fm-machine-learning.txt:155(搜「not disjoint」)
作者的选材声明Forewordtext/03-fm-foreword.txt:26(搜「bulk of deep learning is not difficult」) · text/03-fm-foreword.txt:32(搜「limited to the background necessary」)

Footnotes

  1. 出处:「Machine Learning」第 20 段(text/04-fm-machine-learning.txt:20,搜「license plate」)。原书的例子就是从车牌照片预测牌上字符串。

  2. 出处:「Machine Learning」第 24–26 段(text/04-fm-machine-learning.txt:26,搜「analytical recipe」)。原文:「it is too complicated to come up with an analytical recipe that relates x and y」。

  3. 出处:「Machine Learning」第 28–47 段(text/04-fm-machine-learning.txt:32,搜「parametric」)。四件事的次序按原文:collect a training set → devise a parametric model → formalize goodness with a loss → compute w* that minimizes it。

  4. 出处:「Machine Learning」第 50 段(text/04-fm-machine-learning.txt:50,搜「synaptic」)。原文:「often called weights, by analogy with the synaptic weights of biological neural networks」。

  5. 出处:「Machine Learning」第 44 段(text/04-fm-machine-learning.txt:44,搜「notion of goodness」)。

  6. 出处:「Machine Learning」第 46–47 段(text/04-fm-machine-learning.txt:47,搜「minimizes」)。原文:「training the model consists of computing a value w* that minimizes ℒ(w*)」。

  7. 出处:「Machine Learning」§1.2,第 57–82 段(text/04-fm-machine-learning.txt:59,搜「mean squared」)。

  8. 出处:「Machine Learning」第 58–62 段(text/04-fm-machine-learning.txt:62,搜「(1.1)」)。原书公式 1.1。说明:原书 PDF 的公式在转码文本里是破碎的排版碎片,本拆解中所有公式均按原书含义用中文文字重述,不逐字搬公式行。

  9. 出处:「Machine Learning」第 72–81 段(text/04-fm-machine-learning.txt:81,搜「solving a linear system」)。原文链条:f 对 wk 线性 → 损失对 wk 二次 → 最小化归结为解线性方程组。

  10. 出处:「Machine Learning」第 84–103 段(text/04-fm-machine-learning.txt:88,搜「high error during training」;text/04-fm-machine-learning.txt:92,搜「amount of data is insufficient」)。

  11. 出处:「Machine Learning」第 96–99 段图 1.2 题注(text/04-fm-machine-learning.txt:98,搜「reflects poorly its actual fit」)。

  12. 出处:「Machine Learning」第 105–112 段(text/04-fm-machine-learning.txt:111,搜「structure corresponds」)。原文:「crafting the right inductive bias in a model, which means that its structure corresponds to the underlying structure of the data at hand」。

  13. 出处:「Machine Learning」第 114–117 段(text/04-fm-machine-learning.txt:115,搜「things get confusing」)。原文:「things get confusing with large ones that have a very large number of trainable parameters and extreme capacity yet still perform well on prediction」。

  14. 出处:「Machine Learning」§1.4,第 118–147 段(text/04-fm-machine-learning.txt:121,搜「three broad categories」)。

  15. 出处:「Machine Learning」第 148–153 段(text/04-fm-machine-learning.txt:148,搜「supervised」)。

  16. 出处:「Machine Learning」第 155–159 段(text/04-fm-machine-learning.txt:155,搜「not disjoint」)。

  17. 出处:「Machine Learning」第 3–12 段(text/04-fm-machine-learning.txt:6,搜「statistical machine」)。原文:「the "deep" qualifier highlights that models are long compositions of mappings」。

  18. 出处:「Foreword」第 26–32 段(text/03-fm-foreword.txt:26,搜「bulk of deep learning is not difficult」;text/03-fm-foreword.txt:32,搜「limited to the background necessary」)。

  19. 出处:「Machine Learning」第 52–55 段(text/04-fm-machine-learning.txt:52,搜「hyper-parameters」)。原文:超参数「set according to domain prior knowledge, best practices, or resource constraints」,且用与 w 不同的技术优化。