最大似然估计(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)
x∼N(μ,σ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πσ21exp(−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(μ,σ2∣x)=i=1∏nf(xi;μ,σ2)=i=1∏n2πσ21exp(−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=1∏NP(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(μ,σ2∣x)=i=1∑nlnf(xi;μ,σ2)=−2nln(2π)−2nlnσ2−2σ21i=1∑n(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(μ,σ2∣x)=σ21i=1∑n(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}
∂σ2∂lnL(μ,σ2∣x)=−2σ2n+2σ41i=1∑n(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=1∑nxi(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=1∑n(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)。