通俗理解“极大似然估计”
文章目录
- 前言
- 1. 似然估计
- 1.1 下定义
- 1.2 举例子
- 1.3 推公式
- 1.3.1 概率函数
- 1.3.2 似然函数
- 1.4 为什么要估计参数的似然性?
- 2. 极大似然估计
- 2.1 一般概念
- 2.2 具体方法
- 2.2.1 为什么要取对数?
- 2.2.2 求出估计值
- 小结
- 参考资料
前言
之前总是没能理解啥叫极大似然估计,一直似是而非,似懂非懂。结果越是搞不懂,偏偏越是哪都见着它,着实让人郁闷。索性花些工夫,搞懂它,写个博客做记录,分享出来,以教为学,尽可能通俗易懂。
本文同时发布于以下站点 :
- 通俗理解极大似然估计-CSDN博客
- 通俗理解极大似然估计-知乎
1. 似然估计
1.1 下定义
理解极大似然估计之前,必须知道何为似然、何为估计。先来热热身,看看维基百科关于“似然函数”的定义:
在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。似然函数在统计推断中有重大作用,如在最大似然估计和费雪信息之中的应用等等。
“似然性”与“或然性”或“概率”意思相近,都是指某种事件发生的可能性,但是在统计学中,“似然性”和“概率”(或然性)又有明确的区分:
概率,用于在已知一些参数的情況下,预测接下来在观测上所得到的结果;
似然性,则是用于在已知某些观测所得到的结果时,对有关事物之性质的参数进行估值。
在这种意义上,似然函数可以理解为条件概率的逆反。在已知某个参数B时,事件A会发生的概率写作:
P ( A ∣ B ) = P ( A , B ) P ( B ) P(A|B)=\cfrac{P(A, B)}{P(B)} P(A∣B)=P(B)P(A,B)
利用贝叶斯定理,
P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A)=\cfrac{P(A|B)P(B)}{P(A)} P(B∣A)=P(A)P(A∣B)P(B)
因此,我们可以反过来构造表示似然性的方法:已知有事件A发生,运用似然函数 L ( B ∣ A ) L(B|A) L(B∣A),我们估计参数B的可能性。形式上,似然函数也是一种条件概率函数,但我们关注的变量改变了:
b ↦ P ( A ∣ B = b ) b\mapsto P(A|B=b) b↦P(A∣B=b)
注意到这里并不要求似然函数满足归一性: ∑ b ∈ B P ( A ∣ B = b ) = 1 \displaystyle\sum_{b \in B} P(A|B=b)=1 b∈B∑P(A∣B=b)=1。一个似然函数乘以一个正的常数之后仍然是似然函数。对所有 α > 0 \alpha>0 α>0,都可以有似然函数:
L ( b ∣ A ) = α P ( A ∣ B = b ) L(b|A)=\alpha P(A|B=b) L(b∣A)=αP(A∣B=b)
是不是看到后面就有些晕晕乎乎的,没关系,举个例子,就好理解了。
1.2 举例子
假设我们手上有一枚硬币,已知它是一枚普通的硬币(正面朝上和反面朝上的概率都为0.5),抛出10次,请问正面朝上和反面朝上的次数各是多少?
你说这也太小儿科了,当然是各5次,哪怕实际不是,再将抛出10次这个动作重复很多次,平均结果也一定是正反面各5次。
为什么?因为如果分布或函数中的参数定下来了,产生的结果也就确定了。这枚硬币正面朝上和反面朝上的概率确定了,只要抛的次数够多,结果一定是正、反面各占50%。
这就是由因到果,根据真实参数(或已经发生的观测结果)去推测未来的观测结果,这个过程叫做预测;预测正确的可能性叫做概率。
理解了概率,我们再反过来看,想象一下,如果这枚硬币被人做了手脚,一头重、一头轻,也抛了10次,结果是7次正面、3次反面,请问这枚硬币正面朝上和反面朝上的概率是多少?
我们会说,如果仅仅根据这个结果(7次正面、3次反面),没法确定该硬币的真实参数,有很多的可能性,比如正面朝上概率0.4、反面朝上概率0.6的硬币,也可能产出这个结果。而在这些所有的可能中,可能性最大的推测为正面朝上概率0.7,反面朝上概率0.3。
这就是由果到因,根据已经发生的观测结果去猜想真实参数,这个过程叫做估计;估计正确的可能性叫做似然性。
求可能性最大的推测,这个过程就是极大似然估计。
1.3 推公式
接下来,开始推导公式。
1.3.1 概率函数
令一枚硬币抛出后正面向上的概率为 p p p,反面向上的概率为 1 − p 1-p 1−p,其抛出的结果为
x = { 1 , 正 面 向 上 0 , 反 面 向 上 x=\begin{cases}1, 正面向上\\0, 反面向上\end{cases} x={1,正面向上0,反面向上
抛硬币的结果服从0-1分布 x ∼ B ( 1 , p ) x\sim B(1,p) x∼B(1,p),其概率函数为
P ( X = 1 ) = P ( X = 1 ∣ p ) = p = p ⋅ 1 P(X=1)=P(X=1|p)=p=p\cdot1 P(X=1)=P(X=1∣p)=p=p⋅1
P ( X = 0 ) = P ( X = 0 ∣ p ) = 1 − p = 1 ⋅ ( 1 − p ) P(X=0)=P(X=0|p)=1-p=1\cdot(1-p) P(X=0)=P(X=0∣p)=1−p=1⋅(1−p)
将上面两行公式合并到一行,即
P ( X = x ) = P ( X = x ∣ p ) = p x ( 1 − p ) 1 − x P(X=x)=P(X=x|p)=p^x(1-p)^{1-x} P(X=x)=P(X=x∣p)=px(1−p)1−x
习题1
做个习题加深理解,已知硬币正面朝上概率为 p p p,共抛5次,问出现3次正面、2次反面( x 1 = 1 , x 2 = 1 , x 3 = 1 , x 4 = 0 , x 5 = 0 x_1=1,x_2=1,x_3=1,x_4=0,x_5=0 x1=1,x2=1,x3=1,x4=0,x5=0,不考虑先后顺序)这样结果的概率 P ( x 1 , . . . , x 5 ∣ p ) P(x_1,...,x_5|p) P(x1,...,x5∣p)是多少?
显然,
P ( x 1 , . . . , x 5 ∣ p ) P(x_1,...,x_5|p) P(x1,...,x5∣p)
= P ( x 1 ∣ p ) ⋅ P ( x 2 ∣ p ) ⋅ P ( x 3 ∣ p ) ⋅ P ( x 4 ∣ p ) ⋅ P ( x 5 ∣ p ) =P(x_1|p)\cdot P(x_2|p)\cdot P(x_3|p)\cdot P(x_4|p)\cdot P(x_5|p) =P(x1∣p)⋅P(x2∣p)⋅P(x3∣p)⋅P(x4∣p)⋅P(x5∣p)
= P ( X = 1 ∣ p ) ⋅ P ( X = 1 ∣ p ) ⋅ P ( X = 1 ∣ p ) ⋅ P ( X = 0 ∣ p ) ⋅ P ( X = 0 ∣ p ) =P(X=1|p)\cdot P(X=1|p)\cdot P(X=1|p)\cdot P(X=0|p)\cdot P(X=0|p) =P(X=1∣p)⋅P(X=1∣p)⋅P(X=1∣p)⋅P(X=0∣p)⋅P(X=0∣p)
= p 3 ( 1 − p ) 2 =p^3(1-p)^2 =p3(1−p)2
理解了概率函数,再看似然函数。
1.3.2 似然函数
似然估计是由果到因,根据已经发生的观测结果去猜想真实参数,所以我们假设抛了 n n n次硬币,每次结果为 x i , i = 1 , 2 , . . . , n x_i, i=1,2,...,n xi,i=1,2,...,n,根据这 n n n次结果,推测硬币正面朝上的概率为 p p p的似然性,即似然函数
L ( p ) = L ( p ∣ x 1 , . . . , x n ) = P ( X 1 = x 1 ∣ p ) ⋅ . . . ⋅ P ( X n = x n ∣ p ) L(p)=L(p|x_1,...,x_n)=P(X_1=x_1|p)\cdot ...\cdot P(X_n=x_n|p) L(p)=L(p∣x1,...,xn)=P(X1=x1∣p)⋅...⋅P(Xn=xn∣p)
= ∏ i = 1 n P ( X i = x i ∣ p ) =\displaystyle\prod_{i=1}^nP(X_i=x_i|p) =i=1∏nP(Xi=xi∣p)
习题2
类似的习题,已知一枚硬币抛了5次的结果为3次正面、2次反面( x 1 = 1 , x 2 = 1 , x 3 = 1 , x 4 = 0 , x 5 = 0 x_1=1,x_2=1,x_3=1,x_4=0,x_5=0 x1=1,x2=1,x3=1,x4=0,x5=0,不考虑先后顺序),问该硬币正面向上的概率为 p p p的似然性 L ( p ∣ x 1 , . . . , x 5 ) L(p|x_1,...,x_5) L(p∣x1,...,x5)是多少?
L ( p ) = L ( p ∣ x 1 , . . . , x 5 ) = P ( X 1 = 1 ∣ p ) ⋅ P ( X 2 = 1 ∣ p ) ⋅ P ( X 3 = 1 ∣ p ) ⋅ P ( X 4 = 0 ∣ p ) ⋅ P ( X 5 = 0 ∣ p ) = p 3 ( 1 − p ) 2 L(p)=L(p|x_1,...,x_5)=P(X_1=1|p)\cdot P(X_2=1|p)\cdot P(X_3=1|p)\cdot P(X_4=0|p)\cdot P(X_5=0|p)=p^3(1-p)^2 L(p)=L(p∣x1,...,x5)=P(X1=1∣p)⋅P(X2=1∣p)⋅P(X3=1∣p)⋅P(X4=0∣p)⋅P(X5=0∣p)=p3(1−p)2
有没有发现,这两道习题的答案居然是一模一样的!没错,已知硬币参数 p p p、出现结果为 x 1 , . . . , x 5 x_1,...,x_5 x1,...,x5的概率 P ( x 1 , . . . , x 5 ∣ p ) P(x_1,...,x_5|p) P(x1,...,x5∣p),与已知结果 x 1 , . . . , x 5 x_1,...,x_5 x1,...,x5、硬币参数为 p p p的似然性 L ( p ∣ x 1 , . . . , x 5 ) L(p|x_1,...,x_5) L(p∣x1,...,x5)是一样的。
那为什么要求似然性呢?
1.4 为什么要估计参数的似然性?
回到定义,“似然性,用于在已知某些观测所得到的结果时,对有关事物之性质的参数进行估值”,其目的是估计出硬币的参数 p p p是多少,而不是为了求似然性这个值是多少。
同一个结果可以对应很多种不同的参数 p p p,并且每一个参数出现的可能性(似然性)是不一样的,也就是说,每一参数 p p p都有对应的似然性 L ( p ) L(p) L(p)。
比如,出现了3次正面、2次反面这个结果,我们可以认为这个硬币的质量分布是不均匀的,它本身正面向上的概率 p = 0.6 p=0.6 p=0.6,这是一种参数,根据习题2的答案计算出其似然性 L ( p = 0.6 ) = 0.03456 L(p=0.6)=0.03456 L(p=0.6)=0.03456;
也可以认为这个硬币就是普通的硬币,正面向上的概率 p = 0.5 p=0.5 p=0.5,这也是一种参数,其似然性 L ( p = 0.5 ) = 0.03125 L(p=0.5)=0.03125 L(p=0.5)=0.03125;
甚至还可以认为正面向上的概率 p = 0.9 p=0.9 p=0.9,这又是一种参数,其似然性 L ( p = 0.9 ) = 0.00729 L(p=0.9)=0.00729 L(p=0.9)=0.00729。
似然性 L ( p ) L(p) L(p)这个值是为了帮助我们衡量对应的这个参数 p p p出现的可能性是大还是小,从很多个参数 p p p中,找出可能性最大的那个参数 p p p。
我们直观想象下,仅仅根据抛5次硬币出现3次正面、2次反面这个结果,硬币正面向上概率为0.6、0.5、0.9这三个参数中,哪个可能性最大?显然是 p = 0.6 p=0.6 p=0.6这个参数最符合结果。而根据似然性的计算, L ( p = 0.6 ) > L ( p = 0.5 ) > L ( p = 0.9 ) L(p=0.6)>L(p=0.5)>L(p=0.9) L(p=0.6)>L(p=0.5)>L(p=0.9),这一结果也符合我们的直观理解。
所以,估计参数的似然性,其目的是帮助我们根据已观测的结果,推测出最符合观测结果、最合理的参数。
问题又来了,我总不能一个一个参数去试吧,有没有什么办法能够直接计算出最符合观测结果、最合理的参数呢?
2. 极大似然估计
方法是有的,这就是我们今天的主人公——极大似然估计(maximum likelihood estimation,缩写为MLE),也称最大似然估计。
2.1 一般概念
这里给出维基百科的描述:
最大似然估计,是用来估计一个概率模型的参数的一种方法。
最大似然估计是似然函数最初也是最自然的应用。上文已经提到,似然函数取得最大值表示相应的参数能够使得统计模型最为合理。
从这样一个想法出发,最大似然估计的做法是:首先选取似然函数(一般是概率密度函数或概率质量函数),整理之后求最大值点。
实际应用中一般会取似然函数的对数作为求最大值的函数,这样求出的最大值点和直接求最大值点得到的结果是相同的。
似然函数的最大值点不一定唯一,也不一定存在。与矩法估计比较,最大似然估计的精确度较高,信息损失较少,但计算量较大。
2.2 具体方法
下面进入正题,如何求解极大似然估计呢?
回到似然函数
L ( p ) = L ( p ∣ x 1 , . . . , x n ) L(p)=L(p|x_1,...,x_n) L(p)=L(p∣x1,...,xn)
= P ( X 1 = x 1 ∣ p ) ⋅ . . . ⋅ P ( X n = x n ∣ p ) =P(X_1=x_1|p)\cdot ...\cdot P(X_n=x_n|p) =P(X1=x1∣p)⋅...⋅P(Xn=xn∣p)
= ∏ i = 1 n P ( X i = x i ∣ p ) =\displaystyle\prod_{i=1}^nP(X_i=x_i|p) =i=1∏nP(Xi=xi∣p)
现在我们要从众多参数 p p p中,选择出使得其对应的似然性 L ( p ) L(p) L(p)最大的那个 p p p,即
arg max p L ( p ) = arg max p ∏ i = 1 n P ( X i = x i ∣ p ) \displaystyle \arg\max_p L(p)=\displaystyle \arg\max_p\displaystyle\prod_{i=1}^nP(X_i=x_i|p) argpmaxL(p)=argpmaxi=1∏nP(Xi=xi∣p)
这时候,可以把 L ( p ) L(p) L(p)看做是 p p p的函数,直接对 L ( p ) L(p) L(p)求导数就好了, L ( p ) L(p) L(p)导数为0处即为所求。
在求导之前,需要对 L ( p ) L(p) L(p)取对数:
arg max p L ( p ) = arg max p ln L ( p ) \displaystyle \arg\max_p L(p)=\displaystyle \arg\max_p\ln L(p) argpmaxL(p)=argpmaxlnL(p)
= arg max p ln ( ∏ i = 1 n P ( X i = x i ∣ p ) ) =\displaystyle \arg\max_p\ln(\displaystyle\prod_{i=1}^nP(X_i=x_i|p)) =argpmaxln(i=1∏nP(Xi=xi∣p))
= arg max p ∑ i = 1 n l n ( P ( X i = x i ∣ p ) ) =\displaystyle \arg\max_p\displaystyle\sum_{i=1}^nln(P(X_i=x_i|p)) =argpmaxi=1∑nln(P(Xi=xi∣p))
= arg max p ∑ i = 1 n l n ( p i x ( 1 − p ) 1 − x i ) =\displaystyle \arg\max_p\displaystyle\sum_{i=1}^nln(p^x_i(1-p)^{1-x_i}) =argpmaxi=1∑nln(pix(1−p)1−xi)
= arg max p ∑ i = 1 n ( x i ln p + ( 1 − x i ) ln ( 1 − p ) ) =\displaystyle \arg\max_p\displaystyle\sum_{i=1}^n (x_i \ln p+ (1-x_i)\ln(1-p)) =argpmaxi=1∑n(xilnp+(1−xi)ln(1−p))
= arg max p ∑ i = 1 n x i ln p + ( n − ∑ i = 1 n x i ) ln ( 1 − p ) =\displaystyle \arg\max_p\displaystyle\sum_{i=1}^n x_i \ln p+ (n-\displaystyle\sum_{i=1}^n x_i)\ln(1-p) =argpmaxi=1∑nxilnp+(n−i=1∑nxi)ln(1−p)
问题又来了,为什么每当看到极大似然估计时,都会看见前面有个对数符号?能不能直接对 L ( p ) L(p) L(p)求导数?这样操作有很多好处,且不影响结果。
2.2.1 为什么要取对数?
对 L ( p ) L(p) L(p)取对数的原因主要有两点:
(1)避免下溢出
公式 ∏ i = 1 n P ( X i = x i ∣ p ) \displaystyle\prod_{i=1}^nP(X_i=x_i|p) i=1∏nP(Xi=xi∣p)求连续乘积, 0 ≤ P ( X i = x i ∣ p ) ≤ 1 0\leq P(X_i=x_i|p)\leq1 0≤P(Xi=xi∣p)≤1,如果累乘项过多,会导致结果非常非常小,以至于超出了计算机浮点数的下限,无法表示,这种现象叫做下溢出。通过取对数,将累乘转换为累加,从而避免了下溢出。
(2)便于计算
乘法运算比加法运算更复杂,将累乘转换为累加,降低了运算量。
另一方面,取对数后,将 p i x p^x_i pix转换为 x i ln p x_i \ln p xilnp,指数运算简化为乘法运算,进一步方便了计算。
2.2.2 求出估计值
对 ln L ( p ) \ln L(p) lnL(p)求导数,并令它为0:
∂ ln L ( p ) ∂ p = ∑ i = 1 n x i p − ( n − ∑ i = 1 n x i ) 1 − p = 0 \frac{\partial \ln L(p)}{\partial p}=\frac{\sum_{i=1}^n x_i}{p}- \frac{(n-\sum_{i=1}^n x_i)}{1-p}=0 ∂p∂lnL(p)=p∑i=1nxi−1−p(n−∑i=1nxi)=0
最终求出参数 p p p的估计值
p ^ = ∑ i = 1 n x i n \hat p=\frac{\sum_{i=1}^n x_i}{n} p^=n∑i=1nxi
观察这个估计值,分子可以理解为所有试验中某事件发生的频次,分母可以理解为进行试验的总次数。
再次回到抛硬币的例子,抛5次硬币出现3次正面、2次反面,根据极大似然估计,计算出参数 p p p的估计值 p ^ = 0.6 \hat p=0.6 p^=0.6。
需要注意的是,为了便于理解,保持前后一致,公式推导时使用了抛硬币的似然函数。实际情况中,似然函数也许会更加复杂,但整体的计算思路是一样的。
小结
- 根据已经发生的观测结果去猜想真实参数,这个由果到因的过程叫做估计,估计正确的可能性叫做似然性;
- 计算似然性的目的是估计出模型分布的参数是多少,而不是为了求似然性这个值是多少;
- 观测结果对应很多种不同的参数,每一个参数都有对应的似然性;
- 似然函数取得最大值表示相应的参数能够使得统计模型最为合理;
- 似然函数取得最大值的过程就是极大似然估计。
参考资料
- 似然函数 - wiki
- 似然函数 - wiki中文镜像
通俗理解“极大似然估计”相关推荐
- 机器学习强基计划4-2:通俗理解极大似然估计和极大后验估计+实例分析
目录 0 写在前面 1 从一个例子出发 2 极大似然估计 3 极大后验估计 4 Python实现 0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用."深" ...
- 【机器学习基础】深入理解极大似然估计(MLE) 1: 引入问题
导读:极大似然估计(MLE) 是统计机器学习中最基本的概念,但是能真正全面深入地理解它的性质和背后和其他基本理论的关系不是件容易的事情.极大似然估计和以下概念都有着紧密的联系:随机变量,无偏性质(un ...
- 理解极大似然估计与最大后验概率估计
文章目录 概率和统计 贝叶斯公式 似然函数 最大似然估计 最大后验概率估计 最大似然估计和最大后验概率估计的区别 最大似然估计的一个例子 参考链接 概率和统计 概率(probabilty)和统计(st ...
- 极大似然估计的理解 为什么要取似然函数最大值 似然函数的意义是什么?
对极大似然估计的理解 极大似然估计的形式: 1.离散型统计模型 表示观测值. 2.连续型统计模型 问题:问什么要取似然函数最大值来估算参数θ? 自己的理解: 似然函数的形式是理论上各事件(这个事件表示 ...
- 极大似然估计原理思想
本文转自: http://blog.csdn.net/poi7777/article/details/23204789 在机器学习的领域内,极大似然估计是最常见的参数估计的方法之一,在这里整理一 ...
- 极大似然估计思想的最简单解释
极大似然估计法的理解可以从三个角度入手,一个是整体性的思想,然后两个分别是离散状态的极大似然估计和连续状态的极大似然估计的简单例子. 一.思想 极大似然估计可以拆成三个词,分别是"极大&qu ...
- 【For非数学专业】通俗理解似然函数、概率、极大似然估计和对数似然
文章目录 1. 似然函数与概率 1.1 似然函数与概率的初步认识 1.2 似然的定义 1.3 结合具体实例来深入理解似然与概率 2. 极大似然估计 3. 对数似然函数 4. 总结 1. 似然函数与概率 ...
- 极大似然估计的理解与应用
http://www.cnblogs.com/xing901022/p/8418894.html 极大似然估计是概率论中一个很常用的估计方法,在机器学习中的逻辑回归中就是基于它计算的损失函数,因此还是 ...
- 极大似然估计的朴素理解
极大似然估计的朴素理解 2010年04月20日 ⁄ 科研, 读书 ⁄ 共 2356字 ⁄ 评论数 28 ⁄ 被围观 12,437+ <a href="http://www.zhizhi ...
最新文章
- 一个接口查询关联了十几张表,响应速度太慢?那就提前把它们整合到一起
- linux下安装lrzsz,配合SecureCRT上传下载文件
- pmp思维导图 第六版_《每天一小时,两月过PMP》备考指南(附计划表)
- Redis中的Lua脚本超时
- HttpDns 原理是什么
- 存储过程——创建通用存储过程(七)
- [材料力学]弯扭组合梁实验报告
- 时隔两年,盘点ECCV 2018影响力最大的20篇论文
- 如何使用计算机实现fft,快速傅立叶变换(FFT)的计算机实现..doc
- 【报告分享】2020中国后浪生存图鉴.pdf(附下载链接)
- 雷军藏太深!除小米、迅雷外,还有这么多耳熟能详的企业?
- cadence菜鸟之旅
- 小米双频AC智能路由器699元震撼首发
- 语音识别技术竟然发展如此迅速
- java8-Stream集合操作学习
- 理解Aho-Corasick自动机算法
- Java中「与运算,或运算,异或运算,取反运算。」
- 乌鸦与树(crow)
- 【干货】-- 带你抓取并分析知乎高评分电影
- python 密码破解器