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
  1. 似然(Likelihood): 指的是在给定参数下,观测到当前这组样本数据的概率。
  2. 极大似然(Maximum Likelihood): 我们要去寻找一个参数值,使得这个“似然”达到最大。

极大似然估计的计算过程,本质上是一个寻找函数最大值的最优化问题。通常分为以下四步:

第一步:写出似然函数 (Likelihood Function)

假设我们有一组独立同分布的样本数据 \(X = \{x_1, x_2, ..., x_n\}\),并且我们假设这些数据服从某个概率密度函数(或概率质量函数)\(f(x; \theta)\),其中 \(\theta\) 是我们要估计的未知参数。

由于样本是独立同分布的,所有样本同时发生的概率就是每个样本发生概率的乘积。这个乘积就是似然函数:

\[L(\theta | X) = P(x_1, x_2, ..., x_n | \theta) = \prod_{i=1}^{n} P(x_i | \theta) \]

第二步:取对数似然函数 (Log-Likelihood Function)

连乘运算在求导时非常复杂,而对数函数是单调递增的,最大化 \(L(\theta)\) 等价于最大化 \(\ln L(\theta)\)。因此,我们通常对似然函数取对数,将连乘变为连加,大大简化计算:

\[\ln L(\theta) = \ln \left( \prod_{i=1}^{n} P(x_i | \theta) \right) = \sum_{i=1}^{n} \ln P(x_i | \theta) \]

第三步:求导并令导数为零

为了找到使对数似然函数最大的参数 \(\theta\),我们使用微积分的方法:对 \(\theta\) 求偏导数,并让导数等于零。

\[\frac{d}{d\theta} \ln L(\theta) = 0 \]

第四步:求解方程

解出上一步的方程,得到的解 \(\hat{\theta}\) 就是极大似然估计量(Maximum Likelihood Estimator, MLE)。

\[\hat{\theta}_{MLE} = \text{argmax}_{\theta} L(\theta | X) \]

如果模型有多个参数,则需要对每个参数分别求偏导,组成一个方程组来求解。

三、 一个完整的数学实例:估计正态分布的均值

假设我们有一组样本数据 \(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\) 的(对数)似然函数:

\[L(\theta) = \log p(X | \theta) \]

然而,在很多情况下,模型中还包含我们无法观测到的隐变量(Latent Variables) \(Z\)。如果我们知道了 \(Z\)\(X\)\(Z\) 放在一起称为完整数据(Complete Data)。直接最大化 \(L(\theta)\) 会很困难,因为需要对 \(Z\) 进行积分或求和:

\[L(\theta) = \log p(X | \theta) = \log \sum_Z p(X, Z | \theta) \]

对数里面有求和(或积分)项,这使得求导和优化变得非常复杂。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\)。现在我们来推导这个下界:

\[\begin{aligned} L(\theta) = \log p(X | \theta) &= \log \sum_Z p(X, Z | \theta) \\ &= \log \sum_Z q(Z) \frac{p(X, Z | \theta)}{q(Z)} \quad\quad \text{(引入 } q(Z) \text{)} \end{aligned} \]

这里,\(\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)\)

应用琴生不等式,我们得到:

\[\begin{aligned} L(\theta) = \log \sum_Z q(Z) \frac{p(X, Z | \theta)}{q(Z)} &\ge \sum_Z q(Z) \log \frac{p(X, Z | \theta)}{q(Z)} \\ \end{aligned} \]

我们把右边的部分定义为下界函数 \(\mathcal{L}(q, \theta)\)

\[\mathcal{L}(q, \theta) = \sum_Z q(Z) \log \frac{p(X, Z | \theta)}{q(Z)} \]

因此,我们证明了对于任意的分布 \(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)\) 之间的差距:

\[\begin{aligned} L(\theta) - \mathcal{L}(q, \theta) &= \log p(X | \theta) - \sum_Z q(Z) \log \frac{p(X, Z | \theta)}{q(Z)} \\ &= \log p(X | \theta) - \sum_Z q(Z) \log \frac{p(Z | X, \theta) p(X | \theta)}{q(Z)} \\ &= \log p(X | \theta) - \sum_Z q(Z) [\log p(Z | X, \theta) + \log p(X | \theta) - \log q(Z)] \\ &= \log p(X | \theta) - \sum_Z q(Z) \log p(Z | X, \theta) - \log p(X | \theta) \sum_Z q(Z) + \sum_Z q(Z) \log q(Z) \\ &= -\sum_Z q(Z) \log \frac{p(Z | X, \theta)}{q(Z)} \\ &= D_{KL}(q(Z) || p(Z | X, \theta)) \end{aligned} \]

其中 \(D_{KL}(\cdot || \cdot)\)KL 散度(Kullback-Leibler Divergence)。我们得到了一个非常重要的恒等式:

\[L(\theta) = \mathcal{L}(q, \theta) + D_{KL}(q(Z) || p(Z | X, \theta)) \]

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,当且仅当两个分布完全相同时取得。

因此,我们选择:

\[q(Z) = p(Z | X, \theta^{(t)}) \]

这就是 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)}\)

\[\begin{aligned} \theta^{(t+1)} &= \arg\max_{\theta} \mathcal{L}(p(Z|X, \theta^{(t)}), \theta) \\ &= \arg\max_{\theta} \sum_Z p(Z | X, \theta^{(t)}) \log \frac{p(X, Z | \theta)}{p(Z | X, \theta^{(t)})} \\ &= \arg\max_{\theta} \left( \sum_Z p(Z | X, \theta^{(t)}) \log p(X, Z | \theta) - \sum_Z p(Z | X, \theta^{(t)}) \log p(Z | X, \theta^{(t)}) \right) \end{aligned} \]

注意到上式中,第二项与 \(\theta\) 无关,是一个常数。因此,最大化 \(\mathcal{L}\) 等价于最大化第一项。我们定义这个第一项为 \(Q\) 函数:

\[Q(\theta | \theta^{(t)}) = \sum_Z p(Z | X, \theta^{(t)}) \log p(X, Z | \theta) = E_{Z|X, \theta^{(t)}}[\log p(X, Z | \theta)] \]

\(Q(\theta | \theta^{(t)})\) 的物理意义是:在给定观测数据 \(X\) 和当前参数 \(\theta^{(t)}\) 的条件下,完整数据对数似然函数 \(\log p(X, Z | \theta)\) 关于隐变量后验分布的期望。这就是E-step(期望) 这个名字的由来。

所以 M-step 的任务就是:

\[\theta^{(t+1)} = \arg\max_{\theta} Q(\theta | \theta^{(t)}) \]

这就是M-step(最大化) 这个名字的由来。

4. 收敛性证明

我们已经有了 EM 算法的两个步骤,现在需要证明这个迭代过程能够保证观测数据的对数似然函数 \(L(\theta)\) 单调不减,即 \(L(\theta^{(t+1)}) \ge L(\theta^{(t)})\)

证明过程如下:

  1. 从 E-step 我们知道,通过选择 \(q(Z) = p(Z|X, \theta^{(t)})\),我们使得在 \(\theta = \theta^{(t)}\) 这个点,下界函数与真实的对数似然函数相等:

    \[L(\theta^{(t)}) = \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t)}) \]

  2. 在 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)}) \]

  3. 将 (1) 和 (2) 结合起来,我们得到:

    \[\mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) \ge L(\theta^{(t)}) \]

  4. 现在我们来看一下新的对数似然值 \(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)})) \]

  5. 因为 KL 散度恒大于等于 0,所以:

    \[L(\theta^{(t+1)}) \ge \mathcal{L}(p(Z|X, \theta^{(t)}), \theta^{(t+1)}) \]

  6. 最后,将 (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 算法的数学证明可以概括为以下逻辑链:

  1. 目标: 最大化难以优化的对数似然 \(L(\theta) = \log p(X|\theta)\)
  2. 构造: 利用琴生不等式,为 \(L(\theta)\) 构造了一个下界 \(\mathcal{L}(q, \theta)\)
  3. 关系: 证明了 \(L(\theta)\)\(\mathcal{L}(q, \theta)\) 之间的差值是一个 KL 散度: \(L(\theta) = \mathcal{L}(q, \theta) + D_{KL}\)
  4. E-Step: 通过令 \(q(Z) = p(Z|X, \theta^{(t)})\),使 KL 散度为 0,从而让下界在 \(\theta^{(t)}\) 点处与真实似然函数相等,即 \(L(\theta^{(t)}) = \mathcal{L}(\dots, \theta^{(t)})\)
  5. M-Step: 最大化这个紧贴的下界,找到一个新的参数 \(\theta^{(t+1)}\),保证 \(\mathcal{L}(\dots, \theta^{(t+1)}) \ge \mathcal{L}(\dots, \theta^{(t)})\)
  6. 收敛: 结合以上步骤,推导出 \(L(\theta^{(t+1)}) \ge \mathcal{L}(\dots, \theta^{(t+1)}) \ge \mathcal{L}(\dots, \theta^{(t)}) = L(\theta^{(t)})\),从而证明了算法的单调收敛性。

ELBO

上面已经写了。

posted @ 2025-08-25 20:50  没学完四大礼包不改名  阅读(44)  评论(2)    收藏  举报