最大似然估计(MLE)通俗理解

最大似然估计(MLE)通俗理解

1. 先看一个生活场景

假设你朋友拿来一个袋子,里面有很多白球和黑球,但你不知道白球比例是多少。

你从袋子里随机摸了 10 次,每次摸完放回去,结果摸到:

7 次白球,3 次黑球

现在你朋友问你:

"你猜袋子里白球比例大概是多少?"

你可能会说:

"大概 70% 吧。"

为什么你会猜 70%?

因为如果白球比例是 70%,那么摸出 7 白 3 黑这件事最不奇怪。

最大似然估计,就是把这个直觉数学化:

在所有可能的参数里,选一个让"你看到的数据"出现概率最大的参数。


2. 什么叫"似然"?

先区分两个词:

  • 概率:已知参数,问数据出现的可能性。
  • 似然:已知数据,问哪个参数最可能产生这组数据。

比如:

  • 概率:如果白球比例是 70%,摸出 7 白 3 黑的概率是多少?
  • 似然:已经摸出 7 白 3 黑,白球比例是 70% 的可能性有多大?

"似然"不是严格概率,而是一种"像不像"的程度。


3. 用抛硬币具体算一遍

假设硬币正面概率是 ppp,你不知道 ppp 是多少。

你抛了 10 次,结果是:

7 次正面,3 次反面

现在,我们让 ppp 取几个不同的值,看看出现"7 正 3 反"的概率分别是多少。

出现 7 正 3 反的概率公式是:

P(7正3反∣p)=(107)p7(1−p)3 P(7\text{正}3\text{反} \mid p)= \binom{10}{7} p^7 (1-p)^3 P(7正3反∣p)=(710)p7(1−p)3

其中 (107)=120\binom{10}{7}=120(710)=120。

我们算几个 ppp:

正面概率 ppp 出现 7 正 3 反的概率
0.1 很小,约 0.0000
0.3 约 0.009
0.5 约 0.117
0.6 约 0.215
0.7 约 0.267
0.8 约 0.201
0.9 约 0.057

可以看到:

当 p=0.7p=0.7p=0.7 时,出现"7 正 3 反"的概率最大。

所以最大似然估计会说:

p^=0.7 \hat{p}=0.7 p^=0.7

也就是:

选那个让当前数据出现概率最大的参数值。


4. 最大似然估计的数学表达

假设数据是 x1,x2,...,xnx_1,x_2,\dots,x_nx1,x2,...,xn,参数是 θ\thetaθ。

似然函数是:

L(θ)=P(x1,x2,...,xn∣θ) L(\theta)= P(x_1,x_2,\dots,x_n \mid \theta) L(θ)=P(x1,x2,...,xn∣θ)

如果数据独立,则:

L(θ)=∏i=1nP(xi∣θ) L(\theta)= \prod_{i=1}^n P(x_i \mid \theta) L(θ)=i=1∏nP(xi∣θ)

最大似然估计就是:

θ^MLE=arg⁡max⁡θL(θ) \hat{\theta}{\text{MLE}}= \arg\max{\theta} L(\theta) θ^MLE=argθmaxL(θ)

读作:

在所有可能的 θ\thetaθ 里,找一个让 L(θ)L(\theta)L(θ) 最大的 θ\thetaθ。


5. 为什么经常取对数?

因为似然函数通常是连乘:

L(θ)=P(x1∣θ)⋅P(x2∣θ)⋯P(xn∣θ) L(\theta)= P(x_1\mid\theta)\cdot P(x_2\mid\theta)\cdots P(x_n\mid\theta) L(θ)=P(x1∣θ)⋅P(x2∣θ)⋯P(xn∣θ)

连乘求导很麻烦。

取对数后,连乘变成连加:

ln⁡L(θ)=ln⁡P(x1∣θ)+ln⁡P(x2∣θ)+⋯+ln⁡P(xn∣θ) \ln L(\theta)= \ln P(x_1\mid\theta)+\ln P(x_2\mid\theta)+\cdots+\ln P(x_n\mid\theta) lnL(θ)=lnP(x1∣θ)+lnP(x2∣θ)+⋯+lnP(xn∣θ)

对数函数是单调递增的,所以:

让 L(θ)L(\theta)L(θ) 最大的 θ\thetaθ,也会让 ln⁡L(θ)\ln L(\theta)lnL(θ) 最大。

所以实际计算时,通常最大化对数似然:

θ^MLE=arg⁡max⁡θln⁡L(θ) \hat{\theta}{\text{MLE}}= \arg\max{\theta} \ln L(\theta) θ^MLE=argθmaxlnL(θ)


6. 再回到抛硬币,为什么估计是 7/10?

抛硬币的似然函数:

L(p)=p7(1−p)3 L(p)=p^7(1-p)^3 L(p)=p7(1−p)3

取对数:

ln⁡L(p)=7ln⁡p+3ln⁡(1−p) \ln L(p)=7\ln p+3\ln(1-p) lnL(p)=7lnp+3ln(1−p)

对 ppp 求导,令导数为 0:

7p−31−p=0 \frac{7}{p}-\frac{3}{1-p}=0 p7−1−p3=0

解得:

7(1−p)=3p 7(1-p)=3p 7(1−p)=3p

7−7p=3p 7-7p=3p 7−7p=3p

7=10p 7=10p 7=10p

p=0.7 p=0.7 p=0.7

所以:

p^MLE=0.7 \hat{p}_{\text{MLE}}=0.7 p^MLE=0.7

也就是正面次数除以总次数:

710 \frac{7}{10} 107


7. 一句话总结

最大似然估计就是:

你看到了一组数据,然后反推:

"什么样的参数最可能产生这组数据?"

那个最可能的参数,就是最大似然估计。

用公式说:

θ^MLE=arg⁡max⁡θP(数据∣θ) \boxed{\hat{\theta}{\text{MLE}}= \arg\max{\theta} P(\text{数据}\mid \theta) } θ^MLE=argθmaxP(数据∣θ)

用白话讲:

不是猜参数本身,而是猜"哪个参数让当前结果最不意外"。


8. 和之前协方差矩阵的联系

之前你问协方差矩阵分母为什么是 m−1m-1m−1。

因为:

  • 样本方差的无偏估计分母是 m−1m-1m−1;
  • 而最大似然估计得到的方差,分母是 mmm。

也就是说:

σ^MLE2=1m∑i=1m(xi−xˉ)2 \hat{\sigma}^2_{\text{MLE}}= \frac{1}{m}\sum_{i=1}^m (x_i-\bar{x})^2 σ^MLE2=m1i=1∑m(xi−xˉ)2

而通常说的样本方差:

s2=1m−1∑i=1m(xi−xˉ)2 s^2= \frac{1}{m-1}\sum_{i=1}^m (x_i-\bar{x})^2 s2=m−11i=1∑m(xi−xˉ)2

所以:

  • 最大似然估计:分母 mmm;
  • 无偏估计:分母 m−1m-1m−1。

两者不一样,但大样本时差别很小。


9. 最简记忆

抛 10 次硬币,7 次正面。

最大似然估计会猜正面概率是 0.7。

因为 0.7 这个参数,最可能产生"7 正 3 反"这个结果。

这就是最大似然估计。

相关推荐
yi0111 小时前
LeetCode 424. 替换后的最长重复字符|不定长滑动窗口:如何判断窗口是否合法?
笔记·python·算法·leetcode·双指针·滑动窗口
Nebula_g1 小时前
JavaSE高级:动态代理
java·开发语言·算法·javase
垆边人似月.1 小时前
华为题:盛最多水的容器
数据结构·算法
怦然丶心动1 小时前
用 Java 把干支历法算清楚:从节气切年到可读摘要
java·算法·vue·独立开发·spring boot / spring
Zachery Pole2 小时前
具身智能强化学习(1)引言
算法·机器学习
All for pursuit.2 小时前
【动态规划-11】279.完全平方数
数据结构·c++·算法·leetcode·动态规划
淡海水2 小时前
02-06-原理篇-增量式GC与并发GC
算法·unity·c#·并发·gc·增量
对空六课2 小时前
无头浏览器访问对跳出率的过滤规则
服务器·前端·算法·数据分析
有同事要进步2 小时前
leecode第一题-两数字之和(打卡)
算法