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

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

相关文章

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

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

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

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

poj 3258 二分最小值最大

题意: 有一些石头排成一条线,第一个和最后一个不能去掉。 其余的共可以去掉m块,要使去掉后石头间距的最小值最大。 解析: 二分石头,最小值最大。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <c

poj 2175 最小费用最大流TLE

题意: 一条街上有n个大楼,坐标为xi,yi,bi个人在里面工作。 然后防空洞的坐标为pj,qj,可以容纳cj个人。 从大楼i中的人到防空洞j去避难所需的时间为 abs(xi - pi) + (yi - qi) + 1。 现在设计了一个避难计划,指定从大楼i到防空洞j避难的人数 eij。 判断如果按照原计划进行,所有人避难所用的时间总和是不是最小的。 若是,输出“OPETIMAL",若

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 2594 二分图最大独立集

题意: 求一张图的最大独立集,这题不同的地方在于,间接相邻的点也可以有一条边,所以用floyd来把间接相邻的边也连起来。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <sta

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 3692 二分图最大独立集

题意: 幼儿园里,有G个女生和B个男生。 他们中间有女生和女生认识,男生男生认识,也有男生和女生认识的。 现在要选出一些人,使得这里面的人都认识,问最多能选多少人。 解析: 反过来建边,将不认识的男生和女生相连,然后求一个二分图的最大独立集就行了。 下图很直观: 点击打开链接 原图: 现图: 、 代码: #pragma comment(

最大流、 最小费用最大流终极版模板

最大流  const int inf = 1000000000 ;const int maxn = 20000 , maxm = 500000 ;struct Edge{int v , f ,next ;Edge(){}Edge(int _v , int _f , int _next):v(_v) ,f(_f),next(_next){}};int sourse , mee