• 目标
  • 示例:未知的 $\boldsymbol{\mu}$
  • 首页
  • 文章
  • 笔记
  • 书架
  • 作者
🇺🇸 en 🇫🇷 fr 🇮🇳 ml

Nathaniel Thomas

最大似然估计

2024年11月24日

目标

我们有一个数据集 D,其中包含特征向量 xk​ 和类别标签 ωk​。将 Di​ 表示为类别 ωi​ 的特征集合。我们做出以下假设:

  1. 给定类别标签 ωj​,属于该类别的特征分布服从均值为 μj​、协方差为 Σj​ 的高斯分布,即 p(x∣ωj​)∼N(μj​,Σj​)。
  2. 样本 x∈Di​ 是*独立同分布(i.i.d.)*的,且服从上述假设的高斯分布。

MLE(最大似然估计)要解决的问题是,在给定数据的情况下,找到最可能的参数集 μj​,Σj​。我们记

θ=(μ,Σ)

其中包含每个类别的均值和协方差。 θ 的似然函数为

l(θ)=p(D∣θ),

而 θ 的 MLE 估计 θ^ 为

θ^=argθmax​l(θ).

在实际计算中,我们使用对数似然函数以简化计算:

l(θ)=logp(D∣θ),

因为最大化对数似然等价于最大化似然。换句话说,似然函数告诉我们,如果每个数据点都是从 θ 定义的分布中独立抽取的,生成我们数据集的概率是多少。最大化这个概率的 θ^ 定义了 D 实际被抽取的分布。

我们可以尝试通过将 l(θ) 的梯度设为 0 来找到 θ^,并验证解是否为最大值。然而,这并不能保证找到全局最大值。

示例:未知的 $\boldsymbol{\mu}$

假设我们的数据集 D 中的每个元素 xk​ 都是从已知协方差 Σ 但未知均值 μ 的多元高斯分布中抽取的。 μ 的最大似然估计(MLE)是什么?

μ^​=argμmax​p(D∣μ).

为了找到 μ 的 MLE,我们需要最大化似然函数。对于多元高斯分布:

p(xk​∣μ)=(2π)d/2∣Σ∣1/21​exp(−21​(xk​−μ)⊤Σ−1(xk​−μ)),

其中 d 是 xk​ 的维度。

由于我们假设样本是独立的,数据集 D 的似然是每个 xk​ 的似然的乘积。在对数空间中,这变为求和:

logp(D∣μ)​=k=1∑n​logp(xk​∣μ)=−2nd​log(2π)−2n​log∣Σ∣−21​k=1∑n​(xk​−μ)⊤Σ−1(xk​−μ).​

对梯度求导并设为零:

∇μ​logp(D∣μ^​)=k=1∑n​Σ−1(xk​−μ^​)=0.
梯度推导

考虑二次型,其中 x∈Rd×1, Σ∈Rd×d:

f(x)=x⊤Σx=i=1∑d​j=1∑d​xi​Σij​xj​.

计算梯度:

∂xk​∂f​=j=1∑d​Σkj​xj​+i=1∑d​xi​Σik​.

其中第一项来自 i=k,第二项来自 j=k。我们注意到:

∂xk​∂f​=(Σx)k​+(Σ⊤x)k​

因此,

∇x​(x⊤Σx)=(Σ+Σ⊤)x.

在我们的情况下,我们对 μ 求导,代入时会带来一个负号。利用 Σ−1 是对称的(因为它是协方差矩阵)以及上述结果:

∇μ​((xk​−μ^​)⊤Σ−1(xk​−μ^​))=−2Σ−1(xk​−μ^​).

两边乘以 Σ:

k=1∑n​xk​=k=1∑n​μ^​=nμ^​,

这意味着:

μ^​=n1​k=1∑n​xk​,

这就是样本均值!这个结果非常合理。


←
构建并将 Rust 部署到 Hugo 网站
最大后验概率(MAP)估计
→

back to top