最大似然估计(通俗讲解)

2024-05-01 23:28

本文主要是介绍最大似然估计(通俗讲解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最大似然估计

  • 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 1p ,随机变量为 x x x
很显然这是一个 0 − 1 0 - 1 01 分布, 根据样本数据来估计这个比例。
易知抽出的 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)=pp(1p)p(1p)=p3(1p)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=15lnp(xip)其中 ln ⁡ p ( x i ∣ p ) \ln p(x_i|p) lnp(xip) 表示当黄球比例为 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(1p)plnL(p)=p31p2=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=1n(xiμ)Σ1(xiμ)]lnL(μ,Σ)=2dnln2π2nlnΣ21i=1n(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=1n2Σ1(xiμ)=0L(μ,Σ)=2n(Σ1)+21i=1nΣ(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=1nxiΣ =n1i=1n(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 XaTXb=abT,XaTXb=abT,XlnX=(X1)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θ)1x,其中x=010θ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(1xi)
  • 写出对数似然函数 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(1xi))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=1nxi

3. 总结

最大似然估计是找到最适合这个数据的分布 D D D 的参数 θ \theta θ (即在所有可能的 θ \theta θ 取值中,寻找一个值使这个采样的“可能性”最大化)。从数学上来说,可以在 θ \theta θ 的所有可能取值中寻找一个值使得似然函数取到最大值。而这个可能性最大的 θ ^ \hat{\theta} θ^ 值即为 θ \theta θ最大似然估计 。最大似然估计实际上是样本的函数。

笔者能力有限,遂分享自此,倘若大佬发现错误,敬请批评指正;倘若大佬有更加通俗易懂的理解方式,欢迎交流😁!

4. 参考

  1. MLE from 百度百科
  2. MLE from wikipedia
  3. 补数学基础之高斯分布——极大似然估计

这篇关于最大似然估计(通俗讲解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952927

相关文章

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

poj 3723 kruscal,反边取最大生成树。

题意: 需要征募女兵N人,男兵M人。 每征募一个人需要花费10000美元,但是如果已经招募的人中有一些关系亲密的人,那么可以少花一些钱。 给出若干的男女之间的1~9999之间的亲密关系度,征募某个人的费用是10000 - (已经征募的人中和自己的亲密度的最大值)。 要求通过适当的招募顺序使得征募所有人的费用最小。 解析: 先设想无向图,在征募某个人a时,如果使用了a和b之间的关系