2025-08-30?
这篇有大量 powered by gemini,正在考虑手写一份上传 xhs。【finished】
自由度
\(n\) 个数据点 \(x_1\dots x_n\) 的均值已知,那么知道其中 \(n-1\) 个就能知道最后一个。类似矩阵的 rank 概念,我们可以定义自由度。
一个老生常谈的话题:样本方差对总体方差的无偏估计。Bessel 修正的系数 \(\frac{n}{n-1}\) 一个的理解是,直接根据表达式对统计量估计 \(\times\dfrac{\texttt{样本总数}}{\texttt{自由度}}\) 可以得到无偏估计。
没仔细看 bessel 修正,这段是我随便理解的。
极大似然估计
powered by gemini
- 似然(Likelihood): 指的是在给定参数下,观测到当前这组样本数据的概率。
- 极大似然(Maximum Likelihood): 我们要去寻找一个参数值,使得这个“似然”达到最大。
极大似然估计的计算过程,本质上是一个寻找函数最大值的最优化问题。通常分为以下四步:
第一步:写出似然函数 (Likelihood Function)
假设我们有一组独立同分布的样本数据 \(X = \{x_1, x_2, ..., x_n\}\),并且我们假设这些数据服从某个概率密度函数(或概率质量函数)\(f(x; \theta)\),其中 \(\theta\) 是我们要估计的未知参数。
由于样本是独立同分布的,所有样本同时发生的概率就是每个样本发生概率的乘积。这个乘积就是似然函数:
第二步:取对数似然函数 (Log-Likelihood Function)
连乘运算在求导时非常复杂,而对数函数是单调递增的,最大化 \(L(\theta)\) 等价于最大化 \(\ln L(\theta)\)。因此,我们通常对似然函数取对数,将连乘变为连加,大大简化计算:
第三步:求导并令导数为零
为了找到使对数似然函数最大的参数 \(\theta\),我们使用微积分的方法:对 \(\theta\) 求偏导数,并让导数等于零。
第四步:求解方程
解出上一步的方程,得到的解 \(\hat{\theta}\) 就是极大似然估计量(Maximum Likelihood Estimator, MLE)。
如果模型有多个参数,则需要对每个参数分别求偏导,组成一个方程组来求解。
三、 一个完整的数学实例:估计正态分布的均值
假设我们有一组样本数据 \(X = \{x_1, x_2, ..., x_n\}\),我们知道这些数据来自一个正态分布 \(N(\mu, \sigma^2)\),其中方差 \(\sigma^2\) 已知,但均值 \(\mu\) 未知。我们的目标是用极大似然估计来求解 \(\mu\)。
1. 写出似然函数
正态分布的概率密度函数为:
\(f(x_i; \mu) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right)\)
似然函数是所有样本概率的乘积:
\(L(\mu) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right)\)
2. 取对数似然函数
\(\ln L(\mu) = \sum_{i=1}^{n} \ln \left[ \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right) \right]\)
\(\ln L(\mu) = \sum_{i=1}^{n} \left[ \ln\left(\frac{1}{\sqrt{2\pi}\sigma}\right) - \frac{(x_i - \mu)^2}{2\sigma^2} \right]\)
\(\ln L(\mu) = -n \ln(\sqrt{2\pi}\sigma) - \frac{1}{2\sigma^2} \sum_{i=1}^{n} (x_i - \mu)^2\)
3. 对参数 \(\mu\) 求导,并令其为零
我们只关心 \(\mu\),所以第一项 \(-n \ln(\sqrt{2\pi}\sigma)\) 是常数,求导后为0。
\(\frac{d}{d\mu} \ln L(\mu) = -\frac{1}{2\sigma^2} \sum_{i=1}^{n} 2(x_i - \mu)(-1) = \frac{1}{\sigma^2} \sum_{i=1}^{n} (x_i - \mu)\)
令导数为零:
\(\frac{1}{\sigma^2} \sum_{i=1}^{n} (x_i - \mu) = 0\)
4. 求解 \(\mu\)
\(\sum_{i=1}^{n} (x_i - \mu) = 0\)
\(\sum x_i - \sum \mu = 0\)
\(\sum x_i - n\mu = 0\)
\(n\mu = \sum x_i\)
\(\hat{\mu} = \frac{1}{n} \sum_{i=1}^{n} x_i\)
结论:
我们得到的估计值 \(\hat{\mu}\) 就是样本的算术平均值。这个结果非常符合我们的直觉:用样本的均值来估计总体的均值是最合理的。极大似然估计为这种直觉提供了坚实的数学证明。
EM 算法
好的,我们来详细讲解期望最大化(EM)算法的数学证明。这个证明的核心是巧妙地利用了琴生不等式(Jensen's Inequality) 来构造对数似然函数的一个下界,并通过迭代地最大化这个下界来保证对数似然函数单调不减,从而最终收敛到局部最优解或鞍点。
1. 问题设定和符号定义
在概率模型中,我们通常有观测数据 \(X\) 和模型参数 \(\theta\)。我们的目标是找到一个 \(\theta\) 来最大化观测数据 \(X\) 的(对数)似然函数:
然而,在很多情况下,模型中还包含我们无法观测到的隐变量(Latent Variables) \(Z\)。如果我们知道了 \(Z\),\(X\) 和 \(Z\) 放在一起称为完整数据(Complete Data)。直接最大化 \(L(\theta)\) 会很困难,因为需要对 \(Z\) 进行积分或求和:
对数里面有求和(或积分)项,这使得求导和优化变得非常复杂。EM 算法就是为了解决这个问题而生的。
符号定义:
- \(X\): 观测数据
- \(Z\): 隐变量
- \((X, Z)\): 完整数据
- \(\theta\): 模型参数
- \(\theta^{(t)}\): 第 \(t\) 次迭代的参数估计值
2. 核心思想:构造对数似然的下界
EM 算法并不直接最大化 \(L(\theta)\),而是通过最大化它的一个下界(Lower Bound)来间接最大化 \(L(\theta)\)。
我们引入一个关于隐变量 \(Z\) 的任意概率分布 \(q(Z)\),其中 \(\sum_Z q(Z) = 1, q(Z) \ge 0\)。现在我们来推导这个下界:
这里,\(\frac{p(X, Z | \theta)}{q(Z)}\) 可以看作是一个随机变量,其概率分布为 \(q(Z)\)。由于对数函数 \(\log(\cdot)\) 是一个凹函数(Concave Function),我们可以应用琴生不等式。
琴生不等式 (Jensen's Inequality): 对于一个凹函数 \(f(x)\),有 \(E[f(x)] \le f(E[x])\)。
具体到这里,我们有 \(\sum_i q_i f(x_i) \le f(\sum_i q_i x_i)\)。
应用琴生不等式,我们得到:
我们把右边的部分定义为下界函数 \(\mathcal{L}(q, \theta)\):
因此,我们证明了对于任意的分布 \(q(Z)\),都有 \(L(\theta) \ge \mathcal{L}(q, \theta)\)。\(\mathcal{L}(q, \theta)\) 就是我们希望最大化的证据下界(Evidence Lower Bound, ELBO)。
3. EM 算法的两个步骤
EM 算法通过迭代的方式,交替优化 \(q(Z)\) 和 \(\theta\) 来最大化下界 \(\mathcal{L}(q, \theta)\)。
E-Step:固定 \(\theta\),优化 \(q(Z)\)
在第 \(t\) 次迭代,我们已经有了一个参数估计值 \(\theta^{(t)}\)。我们的目标是选择一个 \(q(Z)\) 来最大化当前的下界 \(\mathcal{L}(q, \theta^{(t)})\)。这样做是为了让下界尽可能地逼近真实的对数似然函数 \(L(\theta^{(t)})\)。
我们来看一下 \(L(\theta)\) 和 \(\mathcal{L}(q, \theta)\) 之间的差距:
其中 \(D_{KL}(\cdot || \cdot)\) 是KL 散度(Kullback-Leibler Divergence)。我们得到了一个非常重要的恒等式:
KL 散度衡量了两个概率分布的差异性,并且恒有 \(D_{KL} \ge 0\)。
在 E-step,我们固定参数为 \(\theta^{(t)}\)。为了让下界 \(\mathcal{L}(q, \theta^{(t)})\) 最大,我们需要让 KL 散度 \(D_{KL}(q(Z) || p(Z | X, \theta^{(t)}))\) 最小。KL 散度的最小值为 0,当且仅当两个分布完全相同时取得。
因此,我们选择:
这就是 E-step 的核心:计算在当前参数 \(\theta^{(t)}\) 下,隐变量 \(Z\) 的后验概率分布。
当 \(q(Z) = p(Z | X, \theta^{(t)})\) 时,下界函数等于真实的对数似然函数:
\(L(\theta^{(t)}) = \mathcal{L}(p(Z|X,\theta^{(t)}), \theta^{(t)})\).
M-Step:固定 \(q(Z)\),优化 \(\theta\)
在 E-step 之后,我们得到了最优的 \(q(Z) = p(Z | X, \theta^{(t)})\)。现在,我们需要固定这个 \(q(Z)\),然后去寻找一个新的参数 \(\theta\) 来最大化下界 \(\mathcal{L}(q, \theta)\)。我们把新的参数记为 \(\theta^{(t+1)}\)。
注意到上式中,第二项与 \(\theta\) 无关,是一个常数。因此,最大化 \(\mathcal{L}\) 等价于最大化第一项。我们定义这个第一项为 \(Q\) 函数:
\(Q(\theta | \theta^{(t)})\) 的物理意义是:在给定观测数据 \(X\) 和当前参数 \(\theta^{(t)}\) 的条件下,完整数据对数似然函数 \(\log p(X, Z | \theta)\) 关于隐变量后验分布的期望。这就是E-step(期望) 这个名字的由来。
所以 M-step 的任务就是:
这就是M-step(最大化) 这个名字的由来。
4. 收敛性证明
我们已经有了 EM 算法的两个步骤,现在需要证明这个迭代过程能够保证观测数据的对数似然函数 \(L(\theta)\) 单调不减,即 \(L(\theta^{(t+1)}) \ge L(\theta^{(t)})\)。
证明过程如下:
-
从 E-step 我们知道,通过选择 \(q(Z) = p(Z|X, \theta^{(t)})\),我们使得在 \(\theta = \theta^{(t)}\) 这个点,下界函数与真实的对数似然函数相等:
\[L(\theta^{(t)}) = \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t)}) \] -
在 M-step,我们找到了一个新的 \(\theta^{(t+1)}\) 来最大化这个下界函数。因此,对于新的参数 \(\theta^{(t+1)}\),下界的值一定会比旧参数 \(\theta^{(t)}\) 时的值要大(或相等):
\[\mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) \ge \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t)}) \] -
将 (1) 和 (2) 结合起来,我们得到:
\[\mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) \ge L(\theta^{(t)}) \] -
现在我们来看一下新的对数似然值 \(L(\theta^{(t+1)})\)。根据我们之前推导的恒等式 \(L(\theta) = \mathcal{L}(q, \theta) + D_{KL}(q || p)\),我们可以写出:
\[L(\theta^{(t+1)}) = \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) + D_{KL}(p(Z|X, \theta^{(t)}) || p(Z | X, \theta^{(t+1)})) \] -
因为 KL 散度恒大于等于 0,所以:
\[L(\theta^{(t+1)}) \ge \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) \] -
最后,将 (3) 和 (5) 串联起来,我们就得到了最终的结论:
\[L(\theta^{(t+1)}) \ge \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) \ge L(\theta^{(t)}) \]
这就证明了 EM 算法的每一次迭代都会使观测数据的对数似然函数单调不减。
由于 \(L(\theta)\) 通常是有上界的(例如,对于高斯混合模型),一个单调不减且有上界的序列必然会收敛。因此,EM 算法保证收敛到一个稳定点(通常是局部最大值或鞍点)。
总结
EM 算法的数学证明可以概括为以下逻辑链:
- 目标: 最大化难以优化的对数似然 \(L(\theta) = \log p(X|\theta)\)。
- 构造: 利用琴生不等式,为 \(L(\theta)\) 构造了一个下界 \(\mathcal{L}(q, \theta)\)。
- 关系: 证明了 \(L(\theta)\) 和 \(\mathcal{L}(q, \theta)\) 之间的差值是一个 KL 散度: \(L(\theta) = \mathcal{L}(q, \theta) + D_{KL}\)。
- E-Step: 通过令 \(q(Z) = p(Z|X, \theta^{(t)})\),使 KL 散度为 0,从而让下界在 \(\theta^{(t)}\) 点处与真实似然函数相等,即 \(L(\theta^{(t)}) = \mathcal{L}(\dots, \theta^{(t)})\)。
- M-Step: 最大化这个紧贴的下界,找到一个新的参数 \(\theta^{(t+1)}\),保证 \(\mathcal{L}(\dots, \theta^{(t+1)}) \ge \mathcal{L}(\dots, \theta^{(t)})\)。
- 收敛: 结合以上步骤,推导出 \(L(\theta^{(t+1)}) \ge \mathcal{L}(\dots, \theta^{(t+1)}) \ge \mathcal{L}(\dots, \theta^{(t)}) = L(\theta^{(t)})\),从而证明了算法的单调收敛性。
ELBO
上面已经写了。