面向哲思的编程与架构
笔记哲思阅读动态搜索RSS 订阅
切换到深色模式
搜索
RSS 订阅
切换到深色模式
© 2026 Vic Chen. All rights reserved.CC BY-NC-ND 4.0
← 笔记
概率视角下的机器学习(一):为什么用概率视角看机器学习

概率视角下的机器学习(一):为什么用概率视角看机器学习

2026年1月3日4,93415分钟

Kevin Murphy《Machine Learning: A Probabilistic Perspective》精读伴读的开篇。这一篇跟着原书第 1 章的骨架走,讲清楚一件事:为什么一整本机器学习教材要用概率语言来写。监督与无监督被同一套「对未知量建概率分布」的思路统一起来;参数与非参数、过拟合、模型选择、无免费午餐这些基本概念,第一次出现时就带上概率的底色。文末给出全 20 篇的系列地图和贯穿全书的四条主线。


目录
  • TL;DR
  • 1. 一句话答案:因为学习就是在不确定中做推断
  • 2. 监督与无监督:一件事的两种写法
  • 3. 基本概念:概率底色
  • 3.1 参数模型 vs 非参数模型
  • 3.2 维度灾难
  • 3.3 过拟合与模型选择
  • 3.4 无免费午餐定理
  • 4. 一张图:全书的组织方式
  • 5. 四条主线:贯穿全书
  • 6. 系列地图:全 20 篇
  • 7. 时代注脚:2012 → 2026
目录
  • TL;DR
  • 1. 一句话答案:因为学习就是在不确定中做推断
  • 2. 监督与无监督:一件事的两种写法
  • 3. 基本概念:概率底色
  • 3.1 参数模型 vs 非参数模型
  • 3.2 维度灾难
  • 3.3 过拟合与模型选择
  • 3.4 无免费午餐定理
  • 4. 一张图:全书的组织方式
  • 5. 四条主线:贯穿全书
  • 6. 系列地图:全 20 篇
  • 7. 时代注脚:2012 → 2026
目录
  1. TL;DR
  2. 1. 一句话答案:因为学习就是在不确定中做推断
  3. 2. 监督与无监督:一件事的两种写法
  4. 3. 基本概念:概率底色
  5. 3.1 参数模型 vs 非参数模型
  6. 3.2 维度灾难
  7. 3.3 过拟合与模型选择
  8. 3.4 无免费午餐定理
  9. 4. 一张图:全书的组织方式
  10. 5. 四条主线:贯穿全书
  11. 6. 系列地图:全 20 篇
  12. 7. 时代注脚:2012 → 2026
机器学习概率MLAPP
相关文章
  • 01
    概率视角下的机器学习(三):贝叶斯概念学习与朴素贝叶斯2026/01
  • 02
    概率视角下的机器学习(二):概率论工具箱2026/01
  • 03
    从预测一个词开始(二):词怎么变成数2026/03
← 上一篇期权估值(一):Black-Scholes 模型的红与黑
下一篇 →概率视角下的机器学习(二):概率论工具箱

评论

© 2026 Vic Chen · 面向哲思的编程与架构CC BY-NC-ND 4.0

TL;DR

这是「概率视角下的机器学习」系列的第一篇。整个系列精读 Kevin Murphy 的 《Machine Learning: A Probabilistic Perspective》(Chen 注:Machine Learning: A Probabilistic Perspective,MIT Press,2012。全书 28 章、上千页,长期被当作研究生阶段机器学习的标准参考书之一。作者 Kevin Murphy 现在在 Google DeepMind,2022–2023 年又出了两卷本的续作《Probabilistic Machine Learning》。)(后续系列文章中均简称 MLAPP)。我参与了本书部分章节的中文翻译工作,中文版计划 2026 年底出版。

系列的定位不是逐章复述,那样不如直接读原书。我想做的是「伴读」:跟着原书骨架走,补三样原书容易让人卡住的东西。一是直觉,讲清楚每个做法背后「为什么是这样」;二是关键推导(Chen 注:关于公式编号:凡带编号的公式都直接引自原书、沿用原书的编号(如 $(1.1)$),方便对照原书查阅;文中自行补充的推导步骤则不带编号。),把原书跳步的地方补上;三是横向联系,同一个思想在书里散落好几章,需要有人替你串起来。另外会随手加一些 2012 → 2026 的时代注脚:十四年过去了,有些判断需要更新。

第 1 章是全书的导言,本身不含硬核推导,但它立下了整本书的世界观。这一篇就围绕一个问题展开:为什么一本机器学习教材,要从头到尾用概率的语言来写?


1. 一句话答案:因为学习就是在不确定中做推断

作者对机器学习的定义很朴素:一组能自动从数据里识别模式、并用这些模式去预测未来数据或在不确定条件下做决策的方法。这个定义里最关键的词是不确定(uncertainty)。

数据是有限的,世界是带噪声的,我们想推断的东西,比如对未来的观测、隐藏的类别、模型该有多复杂等等,几乎从来不能被数据唯一确定。既然处处是不确定,那就用一门专门刻画不确定性的语言来表达它,这门语言就是概率论。

所以 MLAPP 的中心思想可以浓缩成一句话:

✓
把所有你不知道的量都当作随机变量,为它建立一个概率分布,然后用概率论的规则去更新和推断。学习和预测,都归结为计算某个概率分布。

这句话听起来抽象,但它的威力在于:一旦接受了这个视角,监督学习、无监督学习、模型选择这些看似不同的任务,会落进同一个数学框架里。下面我们就看它是怎么统一起来的。


2. 监督与无监督:一件事的两种写法

原书 §1.1.1 把机器学习分成两大类。传统教材会把它们讲成两套东西,但概率视角下,它们的差别小到只是概率分布里的一个符号。

  • 监督学习[supervised learning,原书也叫预测型(predictive)]:给你一组带标签的输入/输出对,数据集写作 D={(xi,yi)}i=1N\mathcal{D} = \{(\boldsymbol{x}_i, y_i)\}_{i=1}^{N}D={(xi​,yi​)}i=1N​,目标是学出从输入 x\boldsymbol{x}x 到输出 yyy 的映射。这里 D\mathcal{D}D 叫训练集(training set),NNN 是样本数。输入 xi\boldsymbol{x}_ixi​ 通常是一个 DDD 维向量,分量叫特征(feature)、属性(attribute)或协变量(covariate);把所有输入摞成一个 N×DN \times DN×D 的矩阵,就是设计矩阵(design matrix)。输出 yiy_iyi​ 叫响应变量(response variable):当它取有限个无序类别时,任务是分类[classification,也叫模式识别(pattern recognition)];当它是实数时,任务是回归(regression);如果类别之间还带自然顺序,就是有序回归(ordinal regression)。

  • 无监督学习[unsupervised learning,原书叫描述型(descriptive)]:只给输入不给标签,数据集是 D={xi}i=1N\mathcal{D} = \{\boldsymbol{x}_i\}_{i=1}^{N}D={xi​}i=1N​,目标是发现数据里「有意思的模式」,也叫知识发现(knowledge discovery)。

那概率视角是怎么统一这两者的呢?原书在 §1.2 和 §1.3 里点破了:两者都是在对一个概率分布建模,区别只在于给谁建分布。

  • 监督学习建模的是条件分布 p(yi∣xi,θ)p(y_i \mid \boldsymbol{x}_i, \boldsymbol{\theta})p(yi​∣xi​,θ)(Chen 注:$\boldsymbol{\theta}$ 是模型的参数向量,把一个模型「长什么样」全部收进这一个符号里。比如线性回归里 $\boldsymbol{\theta}$ 就是权重和噪声方差。整本书的核心问题之一,就是怎么从数据 $\mathcal{D}$ 推断出 $\boldsymbol{\theta}$ ,这正是本篇后面「参数估计谱系」那条主线要回答的。):给定输入,预测输出。
  • 无监督学习建模的是(无条件的)联合分布 p(xi∣θ)p(\boldsymbol{x}_i \mid \boldsymbol{\theta}):直接对数据本身建模。

原书在 §1.3 的开头特意强调了两处差别,很值得记住。第一,无监督写的是 p(xi∣θ)p(\boldsymbol{x}_i \mid \boldsymbol{\theta})p(xi​∣θ) 而不是 p(yi∣xi,θ)p(y_i \mid \boldsymbol{x}_i, \boldsymbol{\theta})p(yi​∣,也就是说没有条件、没有 。第二, 是一个,所以无监督要建的是分布,而典型的监督分类里 只是单个变量,建的是一维分布。这第二点解释了为什么无监督学习通常更难:多维分布的建模天然比一维困难。

ℹ
这个「监督 = 条件分布,无监督 = 联合分布」的划分不是随口一说,它是理解后面很多章的钥匙。判别式模型(discriminative)和生成式模型(generative)的分野,就是从这里长出来的,前者直接建 p(y∣x)p(y \mid \boldsymbol{x})p(y∣x),后者先建联合 p(x,y)p(\boldsymbol{x}, y)p(x,y) 再用贝叶斯定理反推 p(y∣x)p(y \mid \boldsymbol{x})p(y∣。这个话题会在监督学习子系列里正式展开。

不管建的是哪种分布,一旦要用它做预测,都归结为同一个操作:算后验(Chen 注:后验(posterior)指「看过数据之后」对未知量的概率分布,写成$p(未知量|已知数据)$。这里就是给定新输入 $\boldsymbol{x}$ 和训练集 $\mathcal{D}$ 之后,各个类别 $c$ 的概率 $p(y=c |\boldsymbol{x}, \mathcal{D})$。之所以要算它,是因为概率视角下预测的本质不是直接吐出一个答案,而是先得到一整个分布。它同时告诉你「最可能的答案是什么」和「这个答案有多可信」,后面取众数、算期望、做决策都从它出发。)、取一个「最好的猜测」。以分类为例,给定新输入 x\boldsymbol{x}x 和训练数据 D\mathcal{D}D,我们要的是某个类别 ccc 的后验概率

p(y=c∣x,D)p(y = c \mid \boldsymbol{x}, \mathcal{D})p(y=c∣x,D)

如果非要给出一个确定的预测(而不是一整个分布),最自然的选择是取后验概率最大的那个类别:

y^=f^(x)=arg max⁡c=1C  p(y=c∣x,D)(1.1)\hat{y} = \hat{f}(\boldsymbol{x}) = \operatorname*{arg\,max}_{c=1}^{C} \; p(y = c \mid \boldsymbol{x}, \mathcal{D}) \tag{1.1}y^​=f^​(x)=

这个 y^\hat{y}y^​ 就是后验分布的众数(mode),术语上叫最大后验估计(MAP estimate,maximum a posteriori)。这里已经能看到全书第一条主线的影子:怎么从后验分布里得到一个点估计。后面会看到 MLE、MAP、完整贝叶斯后验构成一个谱系,MAP 只是其中一站。


3. 基本概念:概率底色

原书 §1.4 集中抛出了一批贯穿全书的基本概念。它们在别的教材里往往被当成孤立的「知识点」,但在 MLAPP 里,每一个都能挂回到概率框架上。这一节挑几个最关键的串讲一下。

3.1 参数模型 vs 非参数模型

两者的区别在于模型的参数个数是否固定。参数模型(parametric model)有固定数目的参数 θ\boldsymbol{\theta}θ,好处是拟合和预测都快,代价是要对数据分布的形状做较强假设。非参数模型(non-parametric model)的参数个数随数据量增长,更灵活,但数据一多就吃不消。

原书 §1.4.2 举的最简单的非参数例子是 K 最近邻(K nearest neighbor,KNN)分类器:要预测一个新点的类别,就看它最近的 KKK 个训练点里哪类占多数。它不「训练」出参数,而是把整个训练集背下来,所以又叫记忆式学习(memory-based learning)或实例学习(instance-based learning)。KNN 甚至也能写成概率的形式:新点属于类 ccc 的概率,就是它 KKK 个邻居里属于 ccc 的比例:

p(y=c∣x,D,K)=1K∑i∈NK(x,D)I(yi=c)(1.2)p(y = c \mid \boldsymbol{x}, \mathcal{D}, K) = \frac{1}{K} \sum_{i \in N_K(\boldsymbol{x}, \mathcal{D})} \mathbb{I}(y_i = c) \tag{1.2}p(y=c∣x,D,K)=K

其中 NK(x,D)N_K(\boldsymbol{x}, \mathcal{D})NK​(x,D) 是 x\boldsymbol{x}x 的 KKK 个最近邻的下标集合,I(⋅)\mathbb{I}(\cdot)I(⋅) 是指示函数(条件成立取 1,否则取 0)。由此可见,连「数邻居」这种最朴素的做法,也能被纳进「输出一个概率分布」的统一叙述里。

3.2 维度灾难

KNN 看着无敌,为什么不一直用它?因为存在维度灾难(curse of dimensionality)。直观上是这样理解的:在高维空间里,「最近的邻居」其实一点都不近。

原书 §1.4.3 给了一个很干净的示例。设数据均匀分布在 DDD 维单位立方体里,我们想圈一个小立方体,让它恰好包住某个点周围一定比例 fff 的数据。这个小立方体每条边的长度大约是

eD(f)=f1/De_D(f) = f^{1/D}eD​(f)=f1/D

代入数字后结果就很“吓人”了:在 10 维空间里,想圈住 1% 的数据(f=0.01f = 0.01f=0.01),需要 e10(0.01)=0.010.1≈0.63e_{10}(0.01) = 0.01^{0.1} \approx 0.63e10​(0.01)=0.010.1≈0.63,换言之,每条边要占满整个空间的 63%;想圈住 10% 的数据,边长要到 0.80.8。所谓「邻居」,几乎铺满了整个空间,「近邻」这个概念就失效了。这就是为什么高维下我们必须换思路:对数据的形状做参数假设,也就是转向参数模型。

ℹ
这里藏着一个贯穿全书的张力:非参数模型灵活但怕高维,参数模型省事但依赖假设。整本书很多方法,本质上都在这条光谱上找平衡点。记住这个张力,后面读到核方法、稀疏模型时会反复用到。

3.3 过拟合与模型选择

把这两个概念放一起讲,因为它们是一枚硬币的两面。

过拟合(overfitting)指模型把训练数据里的噪声也学了进去,在训练集上表现很好,一到新数据就崩。原书用多项式回归的例子说明:多项式阶数越高,越能穿过每一个训练点,但曲线也越扭曲,泛化(generalization)越差。

既然模型太简单会欠拟合、太复杂会过拟合,就需要在复杂度上做选择,这就是模型选择(model selection)。最直接的办法是看模型在没见过的数据上的表现,也就是用交叉验证(cross validation)估计泛化误差,挑误差最小的那个。原书 §1.4.7 点出一个关键量:我们真正关心的不是训练误差,而是泛化误差,即模型在未来数据上的期望误差。训练误差随复杂度单调下降,泛化误差却是先降后升的 U 形(Chen 注:复杂度低时模型抓不住真实规律,误差来自偏差(bias);复杂度高时模型把噪声也学了进去,误差来自方差(variance)。偏差随复杂度降、方差随复杂度升,相加就是先降后升的 U 形,底部是两者之和最小处。),而 U 形的底部就是我们要找的复杂度。

这个「先降后升」的 U 形,正是偏差—方差权衡(bias-variance tradeoff)的表现,也是全书反复出现的主题。它在这一章只是露个脸,正式的分解和推导,安排在贝叶斯 vs 频率派那一篇里详述。

3.4 无免费午餐定理

最后是一个偏哲学却很实在的结论:无免费午餐定理(no free lunch theorem)。它说的是,不存在一个在所有可能问题上都最优的模型。在某类问题上表现好的模型,必然在另一类问题上表现差,这是因为它的好来自它对问题结构做的假设,也就是它的归纳偏好(inductive bias)。

✓
无免费午餐定理是整本书的「免责声明」,也是它存在的理由:正因为没有万能模型,我们才需要一整箱工具,并且学会针对手头问题挑选合适的假设。读到后面每一个模型时,都可以问一句:它偷偷假设了什么?那个假设就是它的归纳偏好,也是它的适用边界。

4. 一张图:全书的组织方式

把上面的线索收拢之后便会发现,MLAPP 的所有内容几乎都能挂到「对未知量建概率分布 → 推断这个分布」这根主轴上:

图1:MLAPP 的统一视角——不同任务只是给不同的量建立概率分布,再对分布做推断

图中最下面的「推断怎么算」,其实就是全书后半部分(推断三件套)要解决的问题:当分布复杂到无法手算时,怎么近似。这也引出了贯穿全书的四条主线。


5. 四条主线:贯穿全书

这个系列会反复回指以下四个锚点。第一篇先把它们摆出来,后面每次用到都会回指回来:

  1. 参数估计谱系:从最大似然估计(MLE),到最大后验估计(MAP),再到完整的贝叶斯后验。这是「怎么从数据得到参数」的一条渐进光谱,本篇的 MAP 就是这条线上的一站。
  2. 指数族(exponential family):一个统一了正态、伯努利、泊松等一大票常见分布的框架,是原书第 9 章的核心。很多模型的推导之所以能写成同一个模板,靠的就是它。
  3. EM 算法:处理隐变量(hidden / latent variable)的通用武器,是全书的枢纽(原书第 11 章)。聚类、降维、缺失数据补全,背后往往都是它。
  4. 推断三件套:精确推断 → 变分推断 → 蒙特卡洛 / MCMC。当后验分布算不动时,这三类近似方法轮番上阵(第 20–24 章)。
ℹ
这四条主线不是并列的知识块,而是同一套概率思想在不同场景下的展开。读到任何一个具体模型时,都可以试着把它拆回这四条线上:它的参数怎么估(主线一)?它属于指数族吗(主线二)?它有隐变量、需要 EM 吗(主线三)?它的后验能精确算还是要近似(主线四)?

6. 系列地图:全 20 篇

整个系列覆盖原书全部 28 章,分成父系列本体加 5 个专题子系列,共 20 篇。父系列本体是「概率基础」,是入口和脊柱;5 个子系列各自展开一个专题。

系列篇数篇目对应章
概率基础(本系列)4为什么用概率视角(本篇)§1
概率论工具箱§2
贝叶斯概念学习与朴素贝叶斯§3
贝叶斯 vs 频率派§5、§6
监督学习4高斯模型与判别分析§4
线性回归与稀疏模型§7、§13
Logistic 回归与优化§8
指数族与广义线性模型§9
隐变量模型4混合模型与 EM 算法§11
PCA 与因子分析与 ICA§12
聚类方法§25
从主题模型到深度生成模型§27、§28
核方法与自适应模型2核方法与高斯过程§14、§15
自适应基函数:树、Boosting 与神经网络§16
图模型与时序4有向图模型§10
无向图模型§19
图上的精确推断与结构学习§20、§26
时序模型:从 HMM 到卡尔曼滤波§17、§18
近似推断2变分推断§21、§22
蒙特卡洛与 MCMC§23、§24

它们大致的依赖关系是这样的:

图2:系列阅读路径

建议顺着概率基础这条线先读,它把概率语言和世界观交代清楚了,后面每个子系列才挂得住。


7. 时代注脚:2012 → 2026

MLAPP 成书于 2012 年,深度学习刚起步,书里神经网络只占很小篇幅。今天回看,它对「概率视角」的坚持反而更显价值:变分自编码器、扩散模型、贝叶斯深度学习,全都是这套概率语言的直接延续。原书讲的推断三件套(尤其变分推断和 MCMC),正是理解今天生成模型的地基。

作者后来的两卷本续作(Chen 注:Kevin Murphy 在 2022 和 2023 年出版了两卷本的《Probabilistic Machine Learning: An Introduction》与《Advanced Topics》,可以看作 MLAPP 的现代化续作,补上了深度学习时代的内容。本系列遇到原书过时或缺失的部分,会用这两卷来补。)把这些新进展补齐了。所以这个系列的定位是:以 MLAPP 为骨架读懂概率机器学习的基本盘,遇到时代造成的缺口,用续作和这些年的发展来填。

概率视角最大的好处,是它给了你一副能一直戴着的眼镜。模型会过时,框架会换代,但「把不确定的东西建成分布,再对分布做推断」这套思路,从 2012 到 2026 一直没变,未来大概也不会变。带着这副眼镜,我们下一篇正式进入概率论工具箱。

p
(
xi​
∣
θ)
xi​
,
θ
)
yyy
xi\boldsymbol{x}_ixi​
向量
多维
yiy_iyi​
x
)
c=1argmaxC
​
p
(
y
=
c∣
x,D)
(1.1)
1
​
i∈NK​(x,D)∑​
I
(
yi​
=
c)
(1.2)
0.8