似然函数的理解
2025-7-31
1. 似然函数(Likelihood Function)
直观理解
似然函数回答的问题是:给定某个参数值,观察到当前数据的可能性有多大?
数学定义
假设我们有数据 \(x_1, x_2, …, x_n\),参数为 $\theta$,那么似然函数是: \(L(\theta) = P(观察到数据 x_1, x_2, …, x_n | 参数为\theta)\)
如果数据独立,则: \(L(\theta) = P(x_1|\theta) \times P(x_2|\theta) \times … \times P(x_n|\theta) = \prod_{i=1}^{n} P(x_i|\theta)\)
举个具体例子
抛硬币10次,得到:正、正、反、正、反、反、正、正、正、反
如果硬币正面概率是 \(p\),那么似然函数是: \(L(p) = p \times p \times (1-p) \times p \times (1-p) \times (1-p) \times p \times p \times p \times (1-p)\) = \(p^6 \times (1-p)^4\)
解读:
- 当 \(p = 0.6\) 时,\(L(0.6) = 0.6^6 \times 0.4^4 = 0.001\)
- 当 \(p = 0.8\) 时,\(L(0.8) = 0.8^6 \times 0.2^4 = 0.004\)
- 当 \(p = 0.5\) 时,\(L(0.5) = 0.5^6 \times 0.5^4 = 0.001\)
\(p = 0.8\) 时似然值最大,说明这个参数值最能解释观察到的数据。
2. 对数似然函数(Log-Likelihood Function)
为什么要取对数?
实际问题:似然函数通常是很多小概率的乘积,会导致:
- 数值下溢:连乘很多小数会趋近于0
- 计算困难:乘积的导数计算复杂
解决方案:取对数!
数学变换
\(\ell(\theta) = \log L(\theta) = \log \prod_{i=1}^{n} P(x_i|\theta) = \sum_{i=1}^{n} \log P(x_i|\theta)\)
关键性质:
- 乘积变成求和(更好计算)
- 单调性保持不变(最大值位置不变)
- 数值稳定性更好
继续上面的例子
\(\ell(p) = \log L(p) = \log(p^6 \times (1-p)^4) = 6\log p + 4\log(1-p)\)
计算对比:
- 当 \(p = 0.6\) 时:\(\ell(0.6) = 6\log(0.6) + 4\log(0.4) = -3.56\)
- 当 \(p = 0.8\) 时:\(\ell(0.8) = 6\log(0.8) + 4\log(0.2) = -2.77\)
- 当 \(p = 0.5\) 时:\(\ell(0.5) = 6\log(0.5) + 4\log(0.5) = -6.93\)
同样,\(p = 0.8\) 时对数似然最大。
3. 极大似然估计(Maximum Likelihood Estimation)
核心思想
找到使似然函数(或对数似然函数)达到最大值的参数值
\(\hat{\theta}{MLE} = \arg\max{\theta} L(\theta) = \arg\max_{\theta} \ell(\theta)\)
求解步骤
步骤1:写出对数似然函数 \(\ell(\theta) = \sum_{i=1}^{n} \log P(x_i|\theta)\)
步骤2:求导数 \(\frac{d\ell(\theta)}{d\theta} = \sum_{i=1}^{n} \frac{d}{d\theta}\log P(x_i|\theta)\)
步骤3:令导数为0 \(\frac{d\ell(\theta)}{d\theta} = 0\)
步骤4:解方程得到估计值
完整例子演示
继续硬币例子,求 \(p\) 的极大似然估计:
步骤1:对数似然函数 \(\ell(p) = 6\log p + 4\log(1-p)\)
步骤2:求导 \(\frac{d\ell(p)}{dp} = \frac{6}{p} – \frac{4}{1-p}\)
步骤3:令导数为0 \(\frac{6}{p} – \frac{4}{1-p} = 0\)
步骤4:解方程 \(\frac{6}{p} = \frac{4}{1-p}\) \(6(1-p) = 4p\) \(6 – 6p = 4p\) \(6 = 10p\) \(\hat{p} = 0.6\)
结果解释:10次抛硬币中6次正面,所以估计概率为 \(\frac{6}{10} = 0.6\)
三者关系总结
概念 | 定义 | 作用 | 特点 |
---|---|---|---|
似然函数 | \(L(\theta) = \prod P(x_i|\theta)\) | 衡量参数的合理性 | 连乘形式,可能数值不稳定 |
对数似然函数 | \(\ell(\theta) = \sum \log P(x_i|\theta)\) | 同上,但计算更方便 | 求和形式,数值稳定 |
极大似然估计 | \(\hat{\theta} = \arg\max \ell(\theta)\) | 找最优参数值 | 优化问题的解 |
直观类比
想象你是侦探,要推断罪犯的身高:
- 似然函数:不同身高假设下,留下现有证据的可能性
- 对数似然函数:同样的可能性,但用更方便的数学形式表示
- 极大似然估计:最能解释现有证据的身高值
实际应用中的考虑
1. 计算技巧
# 避免数值下溢
# 不好的做法
likelihood = np.prod([p_i for p_i in probabilities])
# 好的做法
log_likelihood = np.sum([np.log(p_i) for p_i in probabilities])
2. 优化算法
当无法解析求解时,使用数值方法:
- 梯度下降
- 牛顿法
- BFGS等
3. 多参数情况
对每个参数分别求偏导: \(\frac{\partial \ell(\theta_1, \theta_2, …)}{\partial \theta_i} = 0\)
这三个概念是统计学和机器学习的基础,理解它们有助于深入理解各种模型的原理和训练过程。