本文主要是介绍最大似然估计(通俗讲解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最大似然估计
- 1 最大似然估计(MLE)原理
- 2. 例子
- 2.1 高斯分布
- 2.2 伯努利分布
- 3. 总结
- 4. 参考
1 最大似然估计(MLE)原理
我们不妨先从名字入手进行理解,最大似然估计的英文名称是
maximum likelihood estimation
即最大可能性估计
它的主要作用是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
当“模型已定,参数未知”时,通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。
上面这段话参考文章 补数学基础之高斯分布——极大似然估计
下面是 维基百科 给出的解释:
给定一个概率分布 f D f_D fD ,以及一个分布参数 θ \theta θ ,然后从这个分布中抽出一个具有 n n n 个值的采样 X 1 , ⋯ , X n X_1,\cdots,X_n X1,⋯,Xn,利用 f D f_D fD 计算出其似然函数:
L ( θ ∣ x 1 , ⋯ , x n ) = f θ ( x 1 , ⋯ , x n ) . L(\theta|x_1,\cdots,x_n) = f_\theta(x_1,\cdots,x_n). L(θ∣x1,⋯,xn)=fθ(x1,⋯,xn).
若 D D D 是离散分布, f θ f_\theta fθ 即是在参数为 θ \theta θ 时观测到这一采样的概率;若其是连续分布, f θ f_\theta fθ 则为 X 1 , ⋯ , X n X_1,\cdots,X_n X1,⋯,Xn 联合分布的概率密度函数在观测值处的取值。也就是只要有数据 X 1 , ⋯ , X n X_1,\cdots,X_n X1,⋯,Xn,就能求出一个 θ \theta θ 的估计。最大似然估计是找到最适合这个数据的分布 D D D 的参数 θ \theta θ (即在所有可能的 θ \theta θ 取值中,寻找一个值使这个采样的“可能性”最大化)。从数学上来说,可以在 θ \theta θ 的所有可能取值中寻找一个值使得似然函数取到最大值。而这个可能性最大的 θ ^ \hat{\theta} θ^ 值即为 θ \theta θ 的最大似然估计 。由此不难看出,最大似然估计实际上是样本的函数。
我们不妨做这样一个思想实验:
设甲箱中有99个白球,1个黑球;
乙箱中有1个白球.99个黑球。
现随机取出一箱,再从抽取的一箱中随机取出一球。
这个球的颜色无非两种情况:白球或者黑球。
我们不妨直观的想象一下,倘若抽到的球是黑球,它最有可能来自于哪个箱子;倘若抽到的球是白球呢?
显然,因为黑球从乙箱抽取的概率比从甲箱抽取的概率大得多,倘若抽到的是黑球,这时我们自然更多地相信这个黑球是取自乙箱的;反之取自甲箱。
一般说来,事件A发生的概率与某一未知参数 θ \theta θ 有关, θ \theta θ 取值不同,则事件A发生的概率 P ( A ∣ θ ) P(A|\theta) P(A∣θ) 也不同,当在一次试验中事件A发生了,则认为此时的 θ \theta θ 值应是 θ \theta θ 的一切可能取值中使 P ( A ∣ θ ) P(A|\theta) P(A∣θ) 达到最大的那一个,极大似然估计法就是要选取这样的 θ \theta θ 值作为参数 θ \theta θ 的估计值,使所选取的样本在被选的总体中出现的可能性为最大。
我的理解是模型已知,参数未知,然后根据样本数据找到一个参数使得样本更加符合这个模型,那在概率分布上也就是使得样本出自于这个分布的概率最大喽。
我们不妨举下面这样一个例子:
假设从箱子里取出 5 个球,分别为 黄、黄、红、黄、红,根据这个结果估计箱子黄球和红球的比例。
我们可以试着用上面的极大似然估计的思想求解,来感受一下这个思想。
我们要找一个比例,使得这个比例最大可能产生我们抽取的这个结果。
不妨设黄球比例是 p p p ,则红球比例就是 1 − p 1 - p 1−p ,随机变量为 x x x。
很显然这是一个 0 − 1 0 - 1 0−1 分布, 根据样本数据来估计这个比例。
易知抽出的 5 个球的概率分别是 $ p 、p 、1 - p 、p 、1 - p$
那么似然函数即为
L ( p ) = p ⋅ p ⋅ ( 1 − p ) ⋅ p ⋅ ( 1 − p ) = p 3 ( 1 − p ) 2 L(p) = p \cdot p \cdot (1 - p) \cdot p \cdot (1 - p) = p^3(1 - p)^2 L(p)=p⋅p⋅(1−p)⋅p⋅(1−p)=p3(1−p)2显然不同的 L ( p ) L(p) L(p) 是关于 p p p 的函数。然后就是求导求极值了。
由于似然函数是乘积形式,不容易求导。因此利用对数似然函数进行参数估计:
ln L ( p ) = ∑ i = 1 5 ln p ( x i ∣ p ) \ln L(p) = \sum_{i = 1}^5 \ln p(x_i|p) lnL(p)=i=1∑5lnp(xi∣p)其中 ln p ( x i ∣ p ) \ln p(x_i|p) lnp(xi∣p) 表示当黄球比例为 p p p 时第 i i i 个随机实验的概率。
则 ln L ( p ) = 3 ln p + 2 ln ( 1 − p ) ∇ p ln L ( p ) = 3 p − 2 1 − p = 0 \ln L(p) = 3\ln p + 2\ln (1 - p) \\ \nabla _p \ln L(p) = \frac3p - \frac{2}{1 - p} = 0 lnL(p)=3lnp+2ln(1−p)∇plnL(p)=p3−1−p2=0
得 p = 3 5 p = \frac35 p=53
有读者可能会有这样得疑问,梯度为零是函数取得极值的必要条件,这能保证该唯一驻点一定是最大值吗???
是的,可以,因为常用的概率分布是指数分布族,而指数分布族可以保证似然函数是凹函数,凹函数的唯一驻点必是最大值。 感兴趣的读者可以自行去了解。
2. 例子
2.1 高斯分布
假设 D j D^j Dj 中样本是根据正态分布 N ( μ , Σ ) \mathcal{N}(\mu,\Sigma) N(μ,Σ) 采样得到的,其中参数 μ \mu μ 为均值向量, Σ \Sigma Σ 为协方差矩阵,样本数据为 d d d 维,样本数据为 X = { x 1 , ⋯ , x n } ∈ R n × d X = \{x_1,\cdots,x_n\} \in R^{n \times d} X={x1,⋯,xn}∈Rn×d
则有似然函数 L ( μ , Σ ) = ∏ i = 1 n p ( x i ∣ μ , Σ ) L(\boldsymbol{\mu},\boldsymbol{\Sigma})=\prod_{i=1}^{n}p(\boldsymbol{x}_{i}|\boldsymbol{\mu},\boldsymbol{\Sigma}) L(μ,Σ)=∏i=1np(xi∣μ,Σ)
求解过程:
- 写出似然函数 L ( μ , Σ ) = ∏ i = 1 n p ( x i ∣ μ , Σ ) L(\boldsymbol{\mu},\boldsymbol{\Sigma})=\prod_{i=1}^{n}p(\boldsymbol{x}_{i}|\boldsymbol{\mu},\boldsymbol{\Sigma}) L(μ,Σ)=∏i=1np(xi∣μ,Σ)
- 写出对数似然函数 ln L ( μ , Σ ) \ln L(\boldsymbol{\mu},\boldsymbol{\Sigma}) lnL(μ,Σ)
- 对 ln L ( μ , Σ ) \ln L(\boldsymbol{\mu},\boldsymbol{\Sigma}) lnL(μ,Σ) 分别关于 μ , Σ \boldsymbol{\mu},\boldsymbol{\Sigma} μ,Σ 求梯度,令其为零。最后估计 μ ^ , Σ ^ \hat{\boldsymbol{\mu}},\hat{\boldsymbol{\Sigma}} μ^,Σ^
即 L ( μ , Σ ) = ( 1 ( 2 π ) d 2 ∣ Σ ∣ 1 2 ) n exp [ − 1 2 ∑ i = 1 n ( x i − μ ) ⊤ Σ − 1 ( x i − μ ) ] ln L ( μ , Σ ) = − d n 2 l n 2 π − n 2 l n ∣ Σ ∣ − 1 2 ∑ i = 1 n ( x i − μ ) ⊺ Σ − 1 ( x i − μ ) L(\boldsymbol{\mu},\boldsymbol{\Sigma})=\left(\frac1{(2\pi)^{\frac d2}|\boldsymbol{\Sigma}|^{\frac12}}\right)^n\exp\left[-\frac12\sum_{i=1}^n(\boldsymbol{x}_i-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu})\right] \\ \ln L(\boldsymbol{\mu},\boldsymbol{\Sigma})=-\frac{dn}2\mathrm{ln}2\pi -\frac n2\mathrm{ln}|\boldsymbol{\Sigma}|-\frac12\sum_{i=1}^n(\boldsymbol{x}_i-\boldsymbol{\mu})^\intercal\boldsymbol{\Sigma}^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}) L(μ,Σ)=((2π)2d∣Σ∣211)nexp[−21i=1∑n(xi−μ)⊤Σ−1(xi−μ)]lnL(μ,Σ)=−2dnln2π−2nln∣Σ∣−21i=1∑n(xi−μ)⊺Σ−1(xi−μ)令
∇ μ ln L ( μ , Σ ) = 1 2 ∑ i = 1 n 2 Σ − 1 ( x i − μ ) = 0 L ( μ , Σ ) = − n 2 ( Σ − 1 ) ⊤ + 1 2 ∑ i = 1 n Σ − ⊤ ( x i − μ ) ( x i − μ ) ⊤ Σ − ⊤ = 0 \nabla_\mu\ln L(\mu,\Sigma)=\frac12\sum_{i=1}^n2\boldsymbol{\Sigma}^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu})=\boldsymbol{0} \\ L(\boldsymbol{\mu},\boldsymbol{\Sigma})=-\frac n2(\boldsymbol{\Sigma}^{-1})^\top+\frac12\sum_{i=1}^n\boldsymbol{\Sigma}^{-\top}(\boldsymbol{x}_i-\boldsymbol{\mu})(\boldsymbol{x}_i-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-\top}=\boldsymbol{0} ∇μlnL(μ,Σ)=21i=1∑n2Σ−1(xi−μ)=0L(μ,Σ)=−2n(Σ−1)⊤+21i=1∑nΣ−⊤(xi−μ)(xi−μ)⊤Σ−⊤=0解得
μ ^ = 1 n ∑ i = 1 n x i Σ ^ = 1 n ∑ i = 1 n ( x i − μ ^ ) ⊤ ( x i − μ ^ ) \widehat{\boldsymbol{\mu}}=\frac1n\sum_{i=1}^n\boldsymbol{x}_i \\ \widehat{\boldsymbol{\Sigma}}=\frac1n\sum_{i=1}^n(\boldsymbol{x}_i-\widehat{\boldsymbol{\mu}})^\top(\boldsymbol{x}_i-\widehat{\boldsymbol{\mu}}) μ =n1i=1∑nxiΣ =n1i=1∑n(xi−μ )⊤(xi−μ )
这里涉及到一些矩阵求导:
∂ a T X b ∂ X = a b T , ∂ a T X b ∂ X = a b T , ∂ ln ∣ X ∣ ∂ X = ( X − 1 ) T \frac{\partial a^T X b}{\partial X} = a b^T , \quad \frac{\partial a^T X b}{\partial X} = a b^T , \quad \frac{\partial \ln |X|}{\partial X} = \left({X^{-1}}\right)^T ∂X∂aTXb=abT,∂X∂aTXb=abT,∂X∂ln∣X∣=(X−1)T
2.2 伯努利分布
假设 D j D^j Dj 中样本是根据 B e r n o u l l i ( θ ) Bernoulli(\theta) Bernoulli(θ) 分布采样得到的, 即 p ( x ∣ θ ) = θ x ( 1 − θ ) 1 − x ,其中 x = 0 或 1 , 0 ≤ θ ≤ 1 。 p(x|\theta) = \theta^x(1 - \theta)^{1 - x}, 其中 x = 0 或 1,0 \le \theta \le 1。 p(x∣θ)=θx(1−θ)1−x,其中x=0或1,0≤θ≤1。 用 M L E MLE MLE 对 θ \theta θ 进行估计。
求解过程:
- 写出似然函数 L ( θ ) = ∏ i = 1 n p ( x i ∣ θ ) = θ ∑ i = 1 n x i ( 1 − θ ) ∑ i = 1 n ( 1 − x i ) L(\theta)=\prod_{i=1}^{n}p({x}_{i}|\theta) = \theta^{\sum_{i = 1}^n x_i} (1 - \theta)^{\sum_{i = 1}^n (1 - x_i)} L(θ)=∏i=1np(xi∣θ)=θ∑i=1nxi(1−θ)∑i=1n(1−xi)
- 写出对数似然函数 ln L ( θ ) = ( ∑ i = 1 n x i ) ln θ + ( ∑ i = 1 n ( 1 − x i ) ) ln ( 1 − θ ) \ln L(\theta) = (\sum_{i = 1}^n x_i)\ln \theta + (\sum_{i = 1}^n (1 - x_i))\ln(1 - \theta) lnL(θ)=(∑i=1nxi)lnθ+(∑i=1n(1−xi))ln(1−θ)
- 对 ln L ( θ ) \ln L(\theta) lnL(θ) 分别关于 θ \theta θ 求导数,令其为零。
最后不难得到:
θ ^ = 1 n ∑ i = 1 n x i \hat{\theta} = \frac1n \sum_{i = 1}^n x_i θ^=n1i=1∑nxi
3. 总结
最大似然估计是找到最适合这个数据的分布 D D D 的参数 θ \theta θ (即在所有可能的 θ \theta θ 取值中,寻找一个值使这个采样的“可能性”最大化)。从数学上来说,可以在 θ \theta θ 的所有可能取值中寻找一个值使得似然函数取到最大值。而这个可能性最大的 θ ^ \hat{\theta} θ^ 值即为 θ \theta θ 的最大似然估计 。最大似然估计实际上是样本的函数。
笔者能力有限,遂分享自此,倘若大佬发现错误,敬请批评指正;倘若大佬有更加通俗易懂的理解方式,欢迎交流😁!
4. 参考
- MLE from 百度百科
- MLE from wikipedia
- 补数学基础之高斯分布——极大似然估计
这篇关于最大似然估计(通俗讲解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!