第5讲 · EECS 189:最大似然估计与多元高斯

UC Berkeley EECS 189/289A《机器学习导论》2026 春季 · 课堂实录重构

本讲标题页

📷 本讲标题页
回到原视频 (00:00:06)

主讲 Jennifer Listgarten、Alex Dimakis
视频 https://www.youtube.com/watch?v=kU7a1K3PX10
课程主页 https://eecs189.org/sp26/
官方讲义/笔记(Lecture 5) Google Drive PDF
教材 Machine Learning: A First Course for Engineers and Scientists
图片来源 书中幻灯片插图为官方 PDF 高清渲染图

对应讲次:第5讲(UC Berkeley EECS 189 机器学习导论)

制作模型:deepseek-flash(coding-agent / pi;据 ~/.pi/agent/settings.json)

说明:课程材料版权归 UC Berkeley 及授课教师所有,本书仅供学习

编者说明:本讲介绍贯穿整个机器学习(包括现代深度学习和 GPT)的核心拟合原理——最大似然估计(MLE),并用单变量高斯与多项分布(掷骰子)两个例子逐步推导。这是理解「高斯混合模型 / 多元高斯」的准备课。


导言:从 K 均值的弱点出发

(参考时间: 00:00)

上一讲我们讨论了无监督学习与聚类,并介绍了 K 均值。讲师最后点出的几个问题,今天要接住:

自然的修法是让分配变「软」:一个点可以有 70% 属于 A、30% 属于 B。这正是统计建模的思路——很多时候我们不想做「非黑即白」的硬决定,而是分摊风险、保留更细腻的信息。

上一讲:K 均值及其弱点

📷 上一讲:K 均值及其弱点
回到原视频 (00:00:22)

概率模型如何修正这些问题

📷 概率模型如何修正这些问题
回到原视频 (00:01:41)

用高斯混合模型来拟合

📷 用高斯混合模型来拟合
回到原视频 (00:03:14)

估计高斯混合模型的参数

📷 估计高斯混合模型的参数
回到原视频 (00:05:29)

图中每个高斯上的「圆圈」是它的水平集(level set)——沿圆周概率相同;一圈圈同心圆对应不同的概率密度。这正是下一讲的多元高斯要讲的内容。

路线图(一)

📷 路线图(一)
回到原视频 (00:06:02)

路线图(二)

📷 路线图(二)
回到原视频 (00:07:35)


一、机器学习的抽象框架

(参考时间: 00:07)

无论是传统机器学习还是现代机器学习,几乎都有同一个「思考骨架」:

flowchart LR
    A["训练数据 D"] --> B["假设一个模型类<br/>(含参数)"]
    B --> C["写出损失函数"]
    C --> D["解优化问题<br/>(最小化损失)"]
    D --> E["得到参数估计"]
  1. 从训练数据集 $D$ 出发(监督学习是 $(x_i, y_i)$,无监督学习是 $\{x_i\}$);
  2. 假设一个模型类(model class),它具有若干参数 W / θ;
  3. 定义损失函数(loss);
  4. 通过优化求解使损失最小的参数。
机器学习的主要抽象思想(一)

📷 机器学习的主要抽象思想(一)
回到原视频 (00:07:39)

机器学习的主要抽象思想(二)

📷 机器学习的主要抽象思想(二)
回到原视频 (00:08:36)

机器学习的主要抽象思想(三)

📷 机器学习的主要抽象思想(三)
回到原视频 (00:09:37)

机器学习的主要抽象思想(四)

📷 机器学习的主要抽象思想(四)
回到原视频 (00:10:06)

举例:

机器学习的主要抽象思想(五)

📷 机器学习的主要抽象思想(五)
回到原视频 (00:10:46)

线性回归模型(一)

📷 线性回归模型(一)
回到原视频 (00:09:53)

线性回归模型(二)

📷 线性回归模型(二)
回到原视频 (00:11:21)

线性回归模型(三)

📷 线性回归模型(三)
回到原视频 (00:12:27)

编者说明:平方损失其实可以从最大似然原理推导出来——对高斯噪声假设下的线性回归做 MLE,得到的正是平方损失。今天先讲 MLE 这个「母原理」。


二、最大似然估计(MLE)

(参考时间: 00:13)

2.1 MLE 不是损失函数,而是「导出损失函数」的原理

关键澄清:

最大似然估计不是一个损失函数,而是一个可以「导出」损失函数的原理。

它说:把数据的似然(likelihood)本身当作损失函数,并最大化它。

最大似然估计(MLE)

📷 最大似然估计(MLE)
回到原视频 (00:13:20)

旁注:ChatGPT 使用 MLE

📷 旁注:ChatGPT 使用 MLE
回到原视频 (00:16:06)

这是所有模型拟合方法的共同来源。讲师强调:你之后会学到线性回归、逻辑回归、神经网络、自编码器……无论哪种,起点都是「拿到数据 → 提模型类 → 写损失函数」。而今天课程里的损失函数几乎都由 MLE 推导而来。哪怕你听过的交叉熵(cross-entropy)和 KL 散度,本质上也是等价的。

一个现代应用:ChatGPT 用的就是 MLE。虽然论文里换了名字,但其核心是在预训练阶段定义一个损失,用互联网上所有文档,对每个文档计算「给定上下文时该词出现概率」的加权和,然后花巨资优化参数 $w$。


三、概率分布复习

(参考时间: 00:20)

3.1 离散与连续随机变量

概率分布回顾

📷 概率分布回顾
回到原视频 (00:20:08)

离散分布的常见例子:

离散随机变量分布(一)

📷 离散随机变量分布(一)
回到原视频 (00:22:06)

离散随机变量分布(二)

📷 离散随机变量分布(二)
回到原视频 (00:22:29)

离散随机变量分布(三)

📷 离散随机变量分布(三)
回到原视频 (00:22:46)

连续分布:

$$ p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right), \qquad X \sim \mathcal{N}(\mu, \sigma^2) $$

连续随机变量的分布

📷 连续随机变量的分布
回到原视频 (00:23:46)

3.2 多元分布

多元分布(一)

📷 多元分布(一)
回到原视频 (00:25:41)

多元分布(二)

📷 多元分布(二)
回到原视频 (00:26:22)


四、MLE 的基本设定与性质

(参考时间: 00:27)

4.1 设定

MLE 的基本设定(一)

📷 MLE 的基本设定(一)
回到原视频 (00:27:02)

MLE 的基本设定(二)

📷 MLE 的基本设定(二)
回到原视频 (00:27:37)

MLE 的基本设定(三)

📷 MLE 的基本设定(三)
回到原视频 (00:28:00)

4.2 独立同分布(IID)

MLE 的关键技术假设是 独立同分布(Independent and Identically Distributed, IID):

这个假设让联合分布可以分解成乘积,而取对数后又能变成求和——这正是 MLE 能得到简洁损失函数的原因。

MLE 的基本设定(四):IID

📷 MLE 的基本设定(四):IID
回到原视频 (00:28:48)

MLE 的基本设定(五)

📷 MLE 的基本设定(五)
回到原视频 (00:29:20)

4.3 似然函数与最大似然估计

$$\hat{\theta}_{\text{MLE}} = \arg\max_{\theta} \; \underbrace{p(D \mid \theta)}_{\text{似然}} = \arg\max_{\theta} \prod_{i=1}^{n} p(x_i \mid \theta)$$

因为 IID,联合似然分解成乘积;取对数后变成求和(这正是我们喜欢的「逐点损失之和」形式)。

编者说明:把 $\theta \mapsto p(D\mid\theta)$ 画成曲线,横轴是参数、纵轴是概率,MLE 就是要找到这条曲线的全局最大点。这引出三个问题:能否找到全局最大?用什么方法优化?MLE 是否唯一确定参数?——最后一个的答案往往是否定的(如线性回归里存在无穷多组等价最优参数),今天先不深入。

4.4 MLE 的三个好性质

  1. 一致性(Consistency):如果数据真的来自该模型类,那么当数据量 $N \to \infty$ 时,MLE 会给出真实参数的正确估计(给 100 个点不够准,给一百万个点就会非常准)。
  2. 统计有效性(Efficiency):MLE 对数据的利用非常充分——「物超所值」。
  3. 对重参数化不变(Invariance):改变参数化方式,参数的最优值会变,但似然函数的值不变。例如把均值写成 $2+\mu$,用同样的数据做 MLE,会得到 $\mu=98$(因为 $2+98=100$),似然函数本身不变。

现实提醒:现实中我们并不知道真实分布。虽然偶尔能用中心极限定理论证某变量近似服从高斯,但一般来说这只是近似;此时 MLE 仍可用,只是一致性、有效性不再有保证。这也是为什么常常需要「做出合理的假设,然后检查结果是否合理」。

MLE 的若干性质

📷 MLE 的若干性质
回到原视频 (00:35:18)


五、单变量高斯的 MLE(完整推导)

(参考时间: 00:40)

我们用身高做例子。为什么身高近似服从高斯?因为身高是许多(数百个)遗传效应的总和——由中心极限定理,独立随机变量之和趋近正态。这类性状被称为数量性状(quantitative traits)。

中心极限定理(CLT):把大量独立的随机变量相加,其和趋于服从正态分布。

MLE 用于单变量高斯(一)

📷 MLE 用于单变量高斯(一)
回到原视频 (00:40:58)

5.1 写似然

设 $X \sim \mathcal{N}(\mu, \sigma^2)$,数据 $x_1,\dots,x_n$ IID。似然为

$$ L(\mu,\sigma^2) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\!\left(-\frac{(x_i-\mu)^2}{2\sigma^2}\right) $$

因为 IID,联合概率 = 各点概率之积。为了把乘积变成求和(也更便于优化),取对数:

$$ \ell(\mu,\sigma^2) = \sum_{i=1}^{n} \log p(x_i \mid \mu, \sigma^2) $$

为什么可以取对数? 因为对数单调递增——最大化对数似然与最大化似然得到相同的参数。

MLE 用于单变量高斯(二)

📷 MLE 用于单变量高斯(二)
回到原视频 (00:41:47)

MLE 用于单变量高斯(三)

📷 MLE 用于单变量高斯(三)
回到原视频 (00:42:40)

MLE 用于单变量高斯(四)

📷 MLE 用于单变量高斯(四)
回到原视频 (00:43:52)

MLE 用于单变量高斯(五)

📷 MLE 用于单变量高斯(五)
回到原视频 (00:45:33)

5.2 对均值求导

对 $\mu$ 求偏导并令其为零(把导数移进求和),可得

$$ \frac{\partial \ell}{\partial \mu} = \frac{1}{\sigma^2}\sum_{i=1}^{n}(x_i - \mu) = 0 \;\Longrightarrow\; \hat{\mu} = \frac{1}{n}\sum_{i=1}^{n} x_i $$

即:均值的 MLE 就是数据的经验均值。为确认它是最大值(而非最小值),再求二阶导:

$$ \frac{\partial^2 \ell}{\partial \mu^2} = -\frac{n}{\sigma^2} < 0 $$

二阶导为负,说明这是最大值。

MLE 用于单变量高斯(六)

📷 MLE 用于单变量高斯(六)
回到原视频 (00:47:00)

MLE 用于单变量高斯(七)

📷 MLE 用于单变量高斯(七)
回到原视频 (00:49:21)

编者说明:讲师指出,这些参数可以分别估计——求 $\mu$ 的驻点时并不需要知道 $\sigma$。

5.3 对方差求导

把 $\sigma^2$ 当作一个普通变量处理,对 $\sigma^2$ 求偏导、令其为零,可分离出

$$ \hat{\sigma}^2 = \frac{1}{n}\sum_{i=1}^{n}(x_i - \hat{\mu})^2 $$

即数据的经验方差。

编者说明:统计学家常写 $\frac{1}{n-1}$(无偏估计),但我们用大 $N$、不在乎 $n$ 还是 $n-1$。直觉上:我已经用数据估了一个自由度(均值),所以「可用」的数据点少了一个。

MLE 用于单变量高斯(八)

📷 MLE 用于单变量高斯(八)
回到原视频 (00:50:28)

MLE 求方差

📷 MLE 求方差
回到原视频 (00:52:37)


六、点估计与贝叶斯视角

(参考时间: 01:00)

MLE 给出的是参数的点估计(point estimate)——单一的最佳猜测(如「均值 = 100」)。

但这也正是它的隐患:它没有表达不确定性。如果模型参数太多(例如 100 个数据点配 100 个参数),MLE 可能只是找到一个恰好穿过所有数据的「异常尖峰」,把噪声也拟合进去——这不是一个好模型。

贝叶斯(Bayesian)视角不同:它给出的是参数所有可能取值的分布(后验分布)。贝叶斯不会说「均值是 100」,而会说「我对均值的信念大多集中在 100 附近,98、99、101、102 都很有可能,越远离越不可能」。

两者都重要;本课后面讲到线性回归时会看到从 MLE 走向贝叶斯的一串过渡。

MLE 给出的是点估计(一)

📷 MLE 给出的是点估计(一)
回到原视频 (01:00:08)

MLE 给出的是点估计(二)

📷 MLE 给出的是点估计(二)
回到原视频 (01:00:53)

MLE 给出的是点估计(三)

📷 MLE 给出的是点估计(三)
回到原视频 (01:01:37)


七、多项分布的 MLE(掷骰子)

(参考时间: 01:06)

最后,讲师给出多项分布(multinomial)的 MLE。与高斯不同,它有两个新特点:

  1. 这是离散分布;
  2. 参数需要满足约束——每个概率在 $[0,1]$ 之间,且六面之和为 1。因此要用到带约束的优化(拉格朗日乘子法,在概率/微积分课上学过)。

设定:一枚六面骰子,掷 $n$ 次,想知道每一面出现的概率 $\theta = (\theta_1,\dots,\theta_6)$。似然为「给定 $\theta$ 时观测到这份点面序列的概率」——即挑出每一次对应的那个参数(用指示函数 $1[x_i=k]$ 记账,只有命中的那一面为 1、其余为 0)。

MLE 用于多项分布(一)

📷 MLE 用于多项分布(一)
回到原视频 (01:06:06)

MLE 用于多项分布(二)

📷 MLE 用于多项分布(二)
回到原视频 (01:06:56)

MLE 用于多项分布(三)

📷 MLE 用于多项分布(三)
回到原视频 (01:06:58)

MLE 用于多项分布(四)

📷 MLE 用于多项分布(四)
回到原视频 (01:07:00)

把连乘整理后,似然可写成「每一面的参数,取其出现次数的幂」之积:

$$ L(\theta) = \prod_{k=1}^{6} \theta_k^{\,n_k}, \qquad n_k = \#\{i : x_i = k\} $$

(其中 $n_k$ 是第 $k$ 面出现的次数。)

MLE 用于多项分布(五)

📷 MLE 用于多项分布(五)
回到原视频 (01:07:04)

MLE 用于多项分布(四)

📷 MLE 用于多项分布(四)
回到原视频 (01:07:51)

MLE 用于多项分布(五)

📷 MLE 用于多项分布(五)
回到原视频 (01:08:55)

MLE 用于多项分布(六)

📷 MLE 用于多项分布(六)
回到原视频 (01:09:40)

MLE 用于多项分布(七)

📷 MLE 用于多项分布(七)
回到原视频 (01:10:04)

编者说明:时间在此用尽,讲师说这个例子下节课继续(届时用拉格朗日乘子求 $\hat{\theta}_k = n_k / n$)。


总结(Takeaways)


附录:课堂未展示的幻灯片

进行 MLE 需要优化

🖼️ 进行 MLE 需要优化


附:官方参考与延伸阅读

主题 链接 / 说明
课程主页 https://eecs189.org/sp26/
官方讲义/笔记(Lecture 5) Google Drive PDF
上一讲(Lecture 4:聚类、概率复习) 本书姊妹篇;K 均值与概率基础
教材 Machine Learning: A First Course for Engineers and Scientists 关于 MLE、多元高斯、混合高斯的章节 · https://doi.org/10.1017/9781108919371

版权说明:本讲视频、幻灯片与课程材料版权归 UC Berkeley EECS 189/289A 课程团队(Jennifer Listgarten、Alex Dimakis)所有。本书为课堂内容的学习性中文重构,仅供学习交流。