没改一行代码,刷脸解锁却越用越准——机器学习靠「预测—比对—调整」变准

1 机器凭什么「会猜」?先承认它只是在做一个 X→Y 的映射

刷脸解锁不是玄学,是一次映射

你的手机刷脸解锁,没改一行代码,却越用越准。听起来像玄学,但把过程拆开看,每一环都看得见:摄像头把人脸转成一组特征 X,送入一个叫 f 的模型,模型吐出一个判断 Y。在这里 Y 只有两个取值:机主,或非机主。机器学习里的「学习」,就发生在这个 X 到 Y 的通道上。

这套课件的开篇做的正是这件事:把图像分类、围棋落子、语音识别、刷脸解锁统一写成 Y=f(X)。X 是送给机器的样本或特征,f 是模型,Y 是预测。围棋落子里 X 是当前棋局、Y 是下一步落子;语音识别里 X 是声波信号、Y 是文字。四个场景共用同一张公式,差别只在输入和输出长什么样。这一表述出自课件《机器学习基础》第 3 章「The Essence of ML」一节(Li Liu,香港科技大学(广州))。

f 就是一个函数,θ 是函数内部的状态

如果你写过代码,Y=f(X) 就是你最熟悉的形状:X 是入参,f 是函数,θ 是函数内部待调的状态。课件讲到模型内部时把公式升级成 Y=f(θ,X),多出来的 θ 就是模型内部可调整的参数。刷脸解锁每一次「认识你」,改的不是函数骨架,而是 θ 这组内部旋钮。这也是「没改一行代码」的真相:f 的结构从头到尾没动过,动的是旋钮。

decision boundary:f 在特征空间里切一条线

f 是怎么把两类人分开的?课件给了一幅二维散点图的画面:一类样本挤在一边,另一类挤在另一边,f 用一条 decision boundary(决策边界)把两块区域切开。

图注:蓝色样本集中在下半部,红色样本集中在上半部的斜向带状区域,一条虚线斜线把特征空间切成两块:左上淡红对应一类,右下淡蓝对应另一类。Wikipedia

数据越难分,需要的线越复杂,f 里的参数就越多。这个直觉后面会反复用到:神经网络之所以要「深」,就是为了攒够参数去拟合复杂的边界。

输出长什么样,决定了模型在做什么

同一个映射直觉,落到输出上有三种形态。classification(分类)输出离散标签,猫、狗、鸟,或者「是不是机主」,刷脸解锁就是分类,而且分类模型还可以输出每一类的概率。regression(回归)输出连续数值,比如随时间变化的价格、温度。clustering(聚类)则在没有预设标签时按相似性自动把样本分组,比如相册自动把同一个人的照片聚到一起。课件的白话类比是:分类像做选择题,回归像预测一个数,聚类像自动整理相册。

把监督和无监督放到同一张图上,映射的两种形态一眼可见:

图注:左栏监督学习把样本分派到不同形状的组(方块与三角),对应「带答案」的映射;右栏无监督学习在无标签数据上按相似性圈出三个簇,对应「自动归堆」的映射。Wikipedia

至此,「预测」这一环立住了:机器学习就是把一个输入变成一个输出的函数,输出形态决定了它在做什么任务。真正的问题只剩一个:f 和它里面的参数,是怎么来的?这正是后面几章的主线。

2 上路前先看图例:model、learning criterion、optimization method 三要素

上一章的问题被拆成两半

「f 和参数从哪来」这个问题,课件把它拆成三个部件。先看课件原图:

图注:标题框下并排三个子框:Model(模型)、Learning Criterion(学习准则)、Optimization Method(优化方法),底部云朵注释点破关键:模型本质上是一个映射函数。

三格各回答一个问题:f 本身是什么,是 model(模型);用什么尺子衡量 f 对不对,是 learning criterion(学习准则);怎么顺着尺子把 f 调好,是 optimization method(优化方法)。上一章的 Y=f(X) 被收进「模型」这一格,剩下两格把「参数从哪来」拆成了两半。

三要素不是英文自造词,中文教材里有一套等价命名

课件用英文三件套,李航《统计学习方法》第 1.3 节用的是「模型、策略、算法」三件套。两套名字一一对应:

课件术语李航《统计学习方法》这一格回答的问题
Model模型假设空间里的一族候选映射,Y=f(X) 或 P(Y|X)
Learning Criterion策略用什么尺子衡量模型并据此挑最优
Optimization Method算法怎么把最优化问题解出来

注意 Learning Criterion 不能简单理解成「损失函数」。李航的「策略」是「损失函数 + 风险函数 + 经验风险最小化」的一整套选择准则,课件用 Learning Criterion 指代的正是这个全流程,不只是那一把尺子本身。Optimization Method 对应「算法」,专指求解最优化问题的方法:当问题有显式解析解时算法很简单;没有解析解时(神经网络的目标函数就是典型),只能用数值计算方法一步步逼近。gradient descent(梯度下降)这类方法存在的理由就在这里,第七节回来补这一格。统计学习方法

三要素是整张地图的图例:后面每一章,都是这三格中某一格的展开。学习方法之间的差异,主要就体现在这三个部件选得不同。

3 「越猜越准」由什么驱动?神经网络把预测、比对、追责、调整走成一圈

一张图把训练画成完整回路

先看课件那张训练回路图:

图注:左侧定义模型 Y=f(θ,X);中间是神经网络:输入 x₁…x₄ 经两个隐藏层流向输出层,预测 y 与真实标签 y′ 之间有比对箭头;顶部橙色箭头标 Feed-forward(前向传播),底部橙色箭头标 Back-propagation(反向传播);右上文本框写着训练目标:让预测匹配标签,用 loss function 衡量 y 与 y′ 的差距;底部思考气泡抛出问题:监督信息(真实类别标签)是机器学习的必需品吗?

这张图里藏着一整条因果链,把每个元件读出来就是训练回路:forward propagation(前向传播)让 X 从输入层流到输出层,算出预测 y;预测和真实标签 y′ 摆在一起比对;loss function(损失函数)把这段差距变成一个可比较的数;back-propagation(反向传播)再让误差沿原路送回每一层,告诉每个参数该往哪边改;改完参数回到第一步。循环往复,预测慢慢贴近真实值。

用一次调试循环读这条回路

这条回路对写过代码的人来说很眼熟:跑一遍程序拿到输出,对应前向传播;对断言看差多少,对应损失函数把失败量化;沿调用栈往回追责,对应反向传播把责任算到每个参数头上;改代码重跑,对应参数更新。四步一一对应,没有丝毫神秘。你熟悉的预训练 / SFT 回路,正是这条四步循环在大规模数据上的实例。

网络的「深」就是链长

神经网络为什么叫「网络」?因为它是多个函数复合出来的:三个函数串成一条链,就是 $f(x)=f^{(3)}(f^{(2)}(f^{(1)}(x)))$。模型的深度就是这条链的长度,deep learning 之名由此而来。教材给的层结构图长这样:Deep Learning

图注:左图是逐节点画法:输入 x₁、x₂ 交叉连到两个隐藏单元 h₁、h₂,再汇到输出 y;右图是逐层画法:输入向量 x 经权重矩阵 W 连到隐藏层 h,再经权重向量 w 连到输出 y。箭头自下而上,信息从输入流向输出。这是教材求解 XOR 示例用的双隐藏单元网络,并非通用网络示意图。Deep Learning

第 1 章说「数据越难分,f 需要的参数越多」,神经网络就是这句话的落地:f 被拆成一层层复合函数,每一层的权重都是可调参数,链越长,参数越多,能拟合的边界越复杂。

反向传播的形式化底座:computational graph

反向传播凭什么叫「往回调」?它依据的是 computational graph(计算图)。把神经网络的运算画成一张有向图:每个圆圈是一次中间计算,箭头是数据流。前向就是从左到右把图走一遍,反向就是从最右端的误差出发,往左逐节点追责。教材的计算图示例:

图注:四个计算图示例:z=x×y 的乘法、逻辑回归预测 ŷ=σ(wᵀx+b)、单个 ReLU 层、带权重衰减的线性回归。圆圈是变量节点,箭头标操作类型。反向传播要做的,就是在这张图上从终点往起点逐边计算梯度。Deep Learning

「从结果往回追责」是这一节唯一要带走的直觉,链式法则的推导不是本篇的重点。

三份数据的分工

回路跑在哪份数据上?training set(训练集)直接用来学参数;validation set(验证集)用来挑设置,比如网络的宽窄、K 值这类超参数;test set(测试集)只在最后上场,检查模型面对从未见过的数据时表现如何。

回路走到这里,课件在图上抛出一个问题:监督信息(真实标签)是必要的吗?这一章先不回答,下一章就是答案。

4 训练时能拿到什么反馈,决定学习走上哪条岔路

判别标准是反馈类型,不是数据量

上一章末的问题有了答案:监督信息不是必需品。怎么区分不同的学习方式?标准是「训练时能拿到什么反馈」,四条岔路由此分出:

学习方式训练时拿到的反馈日常类比具体例子
supervised learning(监督学习)每个样本的正确标签带答案的练习题人脸识别:每张人脸都标着「是不是机主」
unsupervised learning(无监督学习)没有标签,找隐藏结构整理书架相册自动把同一个人的照片聚在一起
semi-supervised learning(半监督学习)少量标签 + 大量无标签少数答案配大量素材手机抬腕唤醒的数据收集
reinforcement learning(强化学习)只有奖励与惩罚游戏得分智能体在环境里试错,学到让长期回报更高的策略

判别标准是反馈类型而不是数据量:给你一万张无标签照片,没有正确答案,它也变不成监督学习。四个类比各钉住一格:有答案、没答案、一半答案、只有奖惩。Sutton & Barto

强化学习那一格:反馈是一根实打实的回路

强化学习的「反馈」和前面三格不同,它是一根闭环。Sutton & Barto 教材的经典图画的就是这个:

图注:Agent(智能体)在上、Environment(环境)在下:环境把状态 S_t 和奖励 R_t 交给智能体,智能体回以动作 A_t,环境内的虚线分隔时间步 t 与 t+1,下一时刻的 R_{t+1}、S_{t+1} 再回到智能体。三根箭头构成闭环,强化学习的反馈就是这根回路本身。Sutton & Barto

一句话:智能体出动作,环境回状态和奖励,再回到智能体。顺便交代一句:经典教材通常只并列监督、无监督、强化三格,半监督是课件按同一根「反馈」轴自然补入的第四格,不是教材铁律。(想看四种学习方式与三类任务在更细维度上的展开,可以读《从任务到模型:输入输出、学习方式与三类任务》。)

岔路只是「学的方式」不同。还有一个更根本的问题没回答:有没有根本不需要学习的模型?下一章用一个极端例子把「训练回路」照出形状。

5 几乎没有训练的 KNN,恰好把「训练回路」照出形状

邻居投票:量距离、选邻居、投票

KNN(k-nearest neighbors,K 近邻)是监督学习里最直观的模型。遇到一个新样本,它不先拟合任何公式,而是量出它到每个已知样本的距离,选出最近的 K 个邻居,由邻居投票决定类别。课件的苹果与橙子例子:用重量和红度描述水果,新水果归类时,量距离、选邻居、投票、输出预测,四步走完。

看教材里的经典插图:

图注:左半:同一个黑色待分类点,K=1、3、5、7 时圈内邻居多数票不同,K=1/3 时蓝点占多数、圆圈染蓝,K=5/7 时灰点占多数、圆圈翻灰。右半:K=3 时决策边界粗糙,K=7 时边界明显更平滑,另画了一条黑色 SVM 分隔线与虚线 margin 作对照。kNN 图示

这张图最值得读的不是投票细节,而是这个事实:整张图里没有一条「参数更新」的信息流。K 从 1 变到 7,只是半径在变大、颜色在翻转,没有任何 θ 被挪动。训练数据就是模型本身,训练阶段几乎什么都没发生。

查表,而不是拟合

把 KNN 和第三章的神经网络并排放,分界立刻清楚:神经网络那张图有前向、反向、更新三条信息流,KNN 这张图一样都没有。神经网络把规律压缩进参数里再算,KNN 把训练数据当字典直接查。后者因此被称为无参数模型(parameter-free):没有可调参数,预测时当场量距离、投票。kNN 图示

把 KNN 放回第二章的三要素里看,更清楚:model=记下来的训练集,learning criterion 与 optimization method 几乎退化。三要素的名字还在,但「回路」没了。连图里那条需要学出来的 SVM 分隔线,都比 KNN 多了一点「训练」。

模型之间最根本的差别不是精度,而是有没有训练回路:KNN 几乎没有,神经网络完整。(距离度量、K 值选择和局限的细讲,可以读《KNN 与损失函数:从邻居投票到错误量尺》。)

既然要训练的网络不查表,它靠什么知道「错了多少、往哪改」?这两问就是下一章的内容。

6 「错了多少」怎么变成数?学习准则的三把尺子

loss function:把差距量化

回到三要素里的「学习准则」这一格。准则的第一步,是把「错了多少」变成一个可比较的数,这个工具叫 loss function(损失函数)。损失越小,当前模型越符合训练目标。课件明确要求只理解作用、不要求手算公式。三把尺子各有分工。

0-1 loss(0-1 损失)只区分分类预测的对错:对了记 0,错了记 1。最朴素,对错不区分程度。

squared loss(平方损失)用于连续值预测:取差距的平方。平方有两重效果:一是正负号被消掉,偏差 2 和偏差 -2 的惩罚一样;二是大误差被放大,误差从 1 变到 3(3 倍),惩罚变成 9 倍。代价是对异常值敏感。

cross-entropy(交叉熵)面向分类概率分布。one-hot 编码把正确类别写成只有一位为 1 的向量,再把模型输出的概率分布与这个真实分布作比较。课件的例子是张三、李四、王五三个人脸:模型把概率堆到「张三是机主」这一位上时,交叉熵变小;堆错了位,交叉熵变大。统计学习方法

squared loss 对大误差更敏感:看图

「大误差被放大」用图看最直观。这是回归任务常见的几种损失:

图注:横轴是误差、纵轴是损失,四条曲线都过原点、关于 y 轴对称。MAE 近似 V 形直线上升、最陡;log-cosh 最低,Huber 与 SMAE 居中。Wikipedia

平方损失是抛物线、绝对损失(MAE)是直线:同一个大误差,抛物线量出来的惩罚远大于直线。这也是说平方损失「对异常值敏感」的由来。

损失不是单一概念,而是一族工具

同一坐标系里画下几种分类损失,会发现它们形态各异:

图注:六条不同颜色的曲线都在横轴零点附近取最小值、沿两侧上升,形态各不相同。图中没有内嵌图例,按原图说明,灰、绿、橙、紫、棕、蓝分别对应 0-1、Savage、Logistic、Exponential、Tangent、Square 几种损失。没有哪一条「最优」,选哪把尺子由任务决定。Wikipedia

既然损失是一族工具,那以什么为准?李航给出的准则只有一句:empirical risk minimization(经验风险最小化),也就是让损失在训练集上的平均尽可能小。尺子选哪把,决定了模型会被改向哪个方向。

既然误差变成了数,下一个问题就是:这个数怎么变成参数的改动?这正是闭环的最后一环。

7 最后一环:沿着误差变小的方向改参数,整条因果链在此收口

损失面、梯度、反方向走

optimization method(优化方法)接过 loss 给的分,目标是找到让总损失尽可能小的参数。课件给的是纯几何画面:把损失想成一片山坡,参数值是球在山坡上的位置。gradient(梯度)指向上升最快的方向,所以球的下一步要沿反方向走。不断重复,球就滚向低谷,参数收敛到损失较小的位置。

为什么需要这种走法?因为以神经网络的目标函数为代表,很多优化问题没有解析解,只能靠数值方法一步步逼近,这正是 gradient descent 这类方法存在的理由。本篇只给这个方向感:梯度=上坡方向,更新=反着走一步,重复。学习率、批量大小这些旋钮的后果,是更细的内容。

想看回路真正跑起来:NeuroViz

前面的图都是静态的。2026 年发表的教学工具 NeuroViz 把整条回路做成了同步动画:前向是绿色脉冲沿连接从输入层流向输出层,反向是红色脉冲从输出层流回输入层,连线粗细随权重幅值变化,旁边是实时更新的训练曲线。NeuroViz

图注:四子图从左到右:前向传播(绿色脉冲沿连接从输入流到输出)、反向传播(红色脉冲反向流动)、权重演化(边厚度随权重幅值变化)、训练进度(loss 与 accuracy 曲线)。这是 NeuroViz 在 Iris 数据集上的可视化示例,把训练回路四件事按真实顺序同步演了一遍。NeuroViz

想看回路真正跑起来,可以去 neuroviz.org 亲自玩一下。

收口:越猜越准的来源

把全篇的因果链拼成一张图:

回顾一下整篇的阅读顺序:前五章认识问题与模型(映射、三要素、任务分岔、KNN 对照),第六章观察误差(损失三把尺子),本章理解参数更新(梯度反方向走)。把三段拼起来,就是完整的答案:模型先预测,学习准则比对,优化方法调整,反复更新。机器不是神秘地自己变聪明,它只是把「预测→比对→调整」这条回路一圈圈转下去,这就是「越猜越准」的来源。KNN 几乎不走这条回路,神经网络走完整圈。

(学习率、批量模式、反向传播推导等更深的展开,可以读《梯度下降与反向传播:算方向、追责任、更新参数》。)

参考文献

本专题引用的核心资料如下,建议深入学习时阅读原文:

  1. The Essence of Machine Learning(CMU 课程讲义,2017-10,原 PDF 链接已失效,内容以本教程转述为准)
  2. 《统计学习方法》(李航,清华大学出版社) — http://www.tup.tsinghua.edu.cn/booksCenter/book_02536702.html
  3. Deep Learning(Goodfellow, Bengio & Courville, 2016)第 6 章 — https://www.deeplearningbook.org/contents/mlp.html
  4. Reinforcement Learning: An Introduction(Sutton & Barto, 2nd ed., 2018) — http://incompleteideas.net/book/the-book-2nd.html
  5. NeuroViz: Real-time Interactive Visualization of Forward and Backward Passes in Neural Network Training — arXiv:2605.02044
  6. Bzdok, Krzywinski & Altman, "Machine learning: supervised methods," Nat Methods 15, 5–6 (2018) — https://www.nature.com/articles/nmeth.4551/figures/3
没改一行代码,刷脸解锁却越用越准——机器学习靠“预测—比对—调整”变准