Bootstrap

【AI数学】最大似然估计(Maximum-Likelihood Estimation)

最大似然估计(MLE)是统计学里常用的方法,在本科期间的概率论里早已接触过,当时做题犹如砍瓜切菜,但很少去考虑其应用。本文从应用的角度来回顾一下最大似然估计。

问:假设有一堆样本 x = [ x 1 , x 2 , . . . , x n ] x=[x_1,x_2,...,x_n] x=[x1,x2,...,xn]从分布 p p p上采样得到,我们能否从已知样本尽可能去复原分布 p p p
答:MLE就是这么一个方法。
MLE有两个使用前提:1,样本是独立同分布的;2,我们预先设定好一种分布模型;

我们以高斯分布为例子进行MLE讲解。 x ∼ N ( μ , σ 2 ) x \sim \mathcal{N}(\mu, \sigma^2) xN(μ,σ2),需要拟合的参数只有2个(即均值和方差)。
f ( x ; μ , σ 2 ) = 1 2 π σ 2 exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) (1) f(x;\mu,\sigma^2)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)\tag{1} f(x;μ,σ2)=2πσ2 1exp(2σ2(xμ)2)(1)
假设我们的样本分别是 x = [ 4 , 5 , 6 , 5 , 4 ] \bold{x}=[4,5,6,5,4] x=[4,5,6,5,4],这个样本是采样于一个高斯分布 P \mathcal{P} P。整个MLE的逻辑思路如下:那么我们假定从高斯分布 P \mathcal{P} P采样到 x = [ 4 , 5 , 6 , 5 , 4 ] \bold{x}=[4,5,6,5,4] x=[4,5,6,5,4]是大概率事件,如果有一个分布 N ( μ t , σ t 2 ) \mathcal{N}(\mu_t, \sigma_t^2) N(μt,σt2),能够最大化采样到 x \bold{x} x的概率,那么这个 μ t \mu_t μt σ t 2 \sigma_t^2 σt2就是我们估计出的结果。

似然函数

似然是英语单词Likelihood的翻译,通俗翻译是“可能性”。本文第一个重点:MLE就是最大化已知样本发生的概率来估计当前分布的。那么,这个“似然”、“概率”或“可能性”指的是什么呢?答:联合概率

在上面的例子中, x = [ 4 , 5 , 6 , 5 , 4 ] \bold{x}=[4,5,6,5,4] x=[4,5,6,5,4]。我们假定5次采样都是独立的,那么这五次采样的联合概率,就是一个乘法关系。似然函数(即联合概率)就是把每个单独的概率相乘即可:
L ( μ , σ 2 ∣ x ) = ∏ i = 1 n f ( x i ; μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ⁡ ( − ( x i − μ ) 2 2 σ 2 ) (2) L(\mu,\sigma^2|\mathbf{x})=\prod_{i=1}^nf(x_i;\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) \tag{2} L(μ,σ2x)=i=1nf(xi;μ,σ2)=i=1n2πσ2 1exp(2σ2(xiμ)2)(2)
我们只用最大化 L L L即可完成对分布的估计。即
θ ^ M L E = arg ⁡ max ⁡ ⁡ ⁡ θ L ( θ ; D ) = arg ⁡ max ⁡ ⁡ ⁡ θ ∏ i = 1 N P ( x i ; θ ) (3) \hat{\theta}_{MLE}=\underset{\theta}{\operatorname*{\operatorname*{\arg\max}}}L(\theta;\mathcal{D})=\underset{\theta}{\operatorname*{\operatorname*{\arg\max}}}\prod_{i=1}^NP(x_i;\theta)\tag{3} θ^MLE=θargmaxL(θ;D)=θargmaxi=1NP(xi;θ)(3)
这里的 θ \theta θ表示待估计的参数,在公式(2)的式子里代表的就是 ( μ , σ 2 ) (\mu,\sigma^2) (μ,σ2)

好了,我们把似然函数和优化函数都列出来了,将样本代入,开始解方程吧!

MLE方程求解

公式(2)是包含了多个指数函数的乘法,计算很麻烦。我们其最大值所对应的 ( μ , σ 2 ) (\mu, \sigma^2) (μ,σ2),那么为了简化其计算过程,进行同单调性变换,依旧可以达到目的。我们把乘法简化为加法!采用对数似然函数,因为 l n ( ˙ ) ln(\dot{}) ln(˙)是定义域单调递增的函数,所以 arg ⁡ max ⁡ μ , σ 2 ( l n ( L ) ) \underset{\mu, \sigma^2}{\arg\max}(ln(L)) μ,σ2argmax(ln(L)) arg ⁡ max ⁡ μ , σ 2 ( L ) \underset{\mu, \sigma^2}{\arg\max}(L) μ,σ2argmax(L)有同样的解!计算方法却简单得多得多!

ln ⁡ L ( μ , σ 2 ∣ x ) = ∑ i = 1 n ln ⁡ f ( x i ; μ , σ 2 ) = − n 2 ln ⁡ ( 2 π ) − n 2 ln ⁡ σ 2 − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 (4) \ln L(\mu, \sigma^2 | \mathbf{x}) = \sum_{i=1}^n \ln f(x_i; \mu, \sigma^2) = -\frac{n}{2} \ln(2\pi) - \frac{n}{2} \ln \sigma^2 - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i - \mu)^2\tag{4} lnL(μ,σ2x)=i=1nlnf(xi;μ,σ2)=2nln(2π)2nlnσ22σ21i=1n(xiμ)2(4)
公式(4)就比公式(2)看起来好计算得多。并且是一个典型的凸函数,我们直接用偏导数为0的点当作极大值点!
∂ ∂ μ ln ⁡ L ( μ , σ 2 ∣ x ) = 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 (5) \frac{\partial}{\partial \mu} \ln L(\mu, \sigma^2 | \mathbf{x}) = \frac{1}{\sigma^2} \sum_{i=1}^n (x_i - \mu)=0\tag{5} μlnL(μ,σ2x)=σ21i=1n(xiμ)=0(5)
∂ ∂ σ 2 ln ⁡ L ( μ , σ 2 ∣ x ) = − n 2 σ 2 + 1 2 σ 4 ∑ i = 1 n ( x i − μ ) 2 = 0 (6) \frac{\partial}{\partial \sigma^2} \ln L(\mu, \sigma^2 | \mathbf{x}) = -\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4} \sum_{i=1}^n (x_i - \mu)^2=0\tag{6} σ2lnL(μ,σ2x)=2σ2n+2σ41i=1n(xiμ)2=0(6)
令公式(5)(6)都为0:
μ = 1 n ∑ i = 1 n x i (7) \mu = \frac{1}{n} \sum_{i=1}^n x_i\tag{7} μ=n1i=1nxi(7)
σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 (8) \sigma^2 = \frac{1}{n} \sum_{i=1}^n (x_i - \mu)^2\tag{8} σ2=n1i=1n(xiμ)2(8)
我们简单将 x = [ 4 , 5 , 6 , 5 , 4 ] \bold{x}=[4,5,6,5,4] x=[4,5,6,5,4]代入公式(7)(8)即可求解出 ( μ , σ 2 ) (\mu,\sigma^2) (μ,σ2)

;