最大似然估计(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 反"这个结果。

这就是最大似然估计。

相关推荐
无所畏俱的老尹1 小时前
OpenAI 等支持 robots.txt 共享 AI 训练偏好信号:policy token 一次声明多厂商,落地仍待实现
人工智能·深度学习·机器学习·aigc
秋天的怀念_David1 小时前
算法一千零一夜 · 作品相关:版权与致谢声明
程序人生·算法·学习方法
揽星河..1 小时前
【C语言】数组
c语言·开发语言·算法
careathers1 小时前
【数据结构】基于比较的排序算法 - 选择排序
数据结构·算法·排序算法
听风若依2 小时前
C++模板初阶
c++·算法
服务器硬件项目经理2 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
纪念 2292 小时前
C++ 算法(模拟)
开发语言·c++·算法
揽星河..2 小时前
【C语言】函数
c语言·算法
zwc32104320553 小时前
Day 2:图像内存、数据类型与stride
c++·人工智能·opencv·算法·计算机视觉
重生之小比特3 小时前
【算法拾光】模拟|提莫攻击 + N 字形变换
算法·模拟