最大似然估计(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=argmaxθ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∣θ)
连乘求导很麻烦。
取对数后,连乘变成连加:
lnL(θ)=lnP(x1∣θ)+lnP(x2∣θ)+⋯+lnP(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θ,也会让 lnL(θ)\ln L(\theta)lnL(θ) 最大。
所以实际计算时,通常最大化对数似然:
θ^MLE=argmaxθlnL(θ) \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
取对数:
lnL(p)=7lnp+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=argmaxθ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 反"这个结果。
这就是最大似然估计。