似然函数与极大似然估计

 

在数理统计领域与机器学习领域,”似然”这个词经常出现,要解释什么是”似然”,一般都伴随着大量枯燥的公式推导。本文尝试从感性理解角度为初学者解释”似然”及其相关概念。

1.似然的由来

似然一词翻译自英文”likelihood”,英国数学家和统计学家Thomas Bayes(托马斯·贝叶斯)于1761年去世,在他去世两年后,他的一篇论文《An Essay towards solving a Problem in the Doctrine of Chances》被出版,在这篇论文中他引入了“likelihood”的相关概念,尽管当时他并没有使用这个具体的术语。

后来,在20世纪的统计学发展中,英国统计学家、演化生物学家与遗传学家Ronald A. Fisher(罗纳德·艾尔默·费希尔)进一步深化了这个概念,并将其形式化为现代统计学中的重要工具。 Fisher在他于1921年发表的论文《On the “Mathematical Foundations of Theoretical Statistics”》中,系统地讨论了likelihood function的性质和应用。他定义了likelihood function,并强调了它在参数估计和假设检验中的重要性。

“likelihood”一词被翻译成中文“似然”可能出现在更晚的时期。在20世纪初的统计学发展中,”likelihood”一词逐渐被广泛使用,并开始被翻译为“似然”。这个翻译可能是在中文统计学界中逐渐形成的共识,我暂时无法找到具体的时间和翻译者。

Thomas Bayes
托马斯·贝叶斯
Ronald A Fisher
罗纳德·艾尔默·费希尔

2. 如何理解似然

“似然”常被拿来与”概率”相比较。在英文日常语境中 “likelihood” 与 “probability” 大致是可以划等号的。但在数学语境中却有明显的区别。

  • 如果已知系统的参数,推测某结果的可能性,这就是概率。
  • 如果已知某结果,推测系统的参数的可能性,这就是似然。

举个例子,游戏城有一台老虎机,玩家每玩一次,这台老虎机会以某个固定的概率\(p\)吐金币。

在这个场景下,我们常见的问题是:

问题一: 假设老虎机吐金币的概率是\(10 \%\),玩家玩三次全部中奖吐金币的可能性是多少?

\[P(三次全中奖) = 10 \% \cdot 10 \% \cdot 10 \% = 0.1 \%\]

这是一个经典的概率问题,因为这个场景下,已知了系统参数:老虎机吐金币的概率\(10 \%\),推测三次全吐金币这一结果的可能性。

现在考虑另一个问题:

问题二: 如果老虎机吐金币的概率是未知的,玩家玩了十次老虎机,吐了两次金币,那么这台老虎机吐金币的概率是多少?

这就是一个经典的似然问题,因为这个场景下,已知了结果,根据结果反推系统参数的可能性。

面对这个问题,即使完全不知道似然估计知识的人,也会不假思索凭直觉给出答案:\(20 \%\)

在此基础上进一步思考,仅凭玩家玩了十次,吐了两次金币这十个样本就能完全确定老虎机的吐金币概率是\(20 \%\)吗? 不能,因为样本量比较少,\(20 \%\)这个答案只是根据已有的有限样本去估计。实际老虎机的吐金币概率既有可能是\(10 \%\),也完全有可能是\(90 \%\)。 我们之所以推测是 \(20 \%\),原因是直觉上觉得是 \(20 \%\) 的可能性最大。

是这样吗?保险起见,可以证明一下直觉:

如果老虎机老虎机吐金币概率为\(10 \%\),那么出现 玩家玩了十次,吐了两次金币的概率为:

\[\begin{align} P(吐两次&金币|中奖概率10 \%) \\&= C_{10}^2 * (10 \%)^2 * (1 - 10 \%) ^ 8 \\&\approx 19.37 \% \end{align}\]

如果老虎机老虎机吐金币概率为\(20 \%\),那么出现 玩家玩了十次,吐了两次金币的概率为:

\[\begin{align} P(吐两次&金币|中奖概率20 \%) \\&= C_{10}^2 * (20 \%)^2 * (1 - 20 \%) ^ 8 \\&\approx 30.20 \% \end{align}\]

如果老虎机老虎机吐金币概率为\(90 \%\),那么出现 玩家玩了十次,吐了两次金币的概率为:

\[\begin{align} P(吐两次&金币|中奖概率90 \%)\\ &= C_{10}^2 * (90 \%)^2 * (1 - 90 \%) ^ 8 \\&\approx 0.000036 \% \end{align}\]

看上去证明结果与直觉相符,虽然\(90 \%\)确实有可能,但概率的确不高,只有\(0.000036 \%\), 这三个推测中,吐金币概率为\(20 \%\)的猜测概率最高。

但是除了以上三个猜测,还存在无穷个猜测,只要猜测吐金币概率在\((0 \%, 100 \%)\) 范围内,就是合理的。难道要一个一个去计算验证吗?如何证明吐金币概率为\(20 \%\)的猜测确实概率最高?

这里令中奖概率为\(x\),列出概率表达式:

\[\begin{align} P(吐两次&金币|中奖概率 x ) \\&= C_{10}^2 * x^2 * (1 - x) ^ 8 \\ &= 45x^2(1-x)^8 \end{align}\]

对上式求导:

\[\begin{align} P(吐两次&金币|中奖概率 x )' \\&= 90x(1-x)^8 - 360x^2(1-x)^7 \end{align}\]

令导数为0,即可求极值:

\[90x(1-x)^8 - 360x^2(1-x)^7 = 0\]

又因为\(x\)在\((0 \%, 100 \%)\) 范围内, 所以\(x\)与\(1-x\)均不为\(0\), 可得:

\[1-x = 4x\] \[x = 20 \%\]

所以 \(P(吐两次金币|中奖概率 20 \% )\) 在这个场景下概率最大。

根据现有的结果推测,最有可能是这样,似乎是这样,即为”似然”。似然的推测不一定就是事实,但是是当前场景,当前已知信息条件下最合理的推测。

3. 似然函数

先抛开晦涩的定义,回到刚才老虎机的例子,在讨论问题过程中为了根据中奖结果猜测老虎机概率的表达式:

\[\small \begin{align} P(吐两次金币|中奖概率 x ) &= C_{10}^2 * x^2 * (1 - x) ^ 8 \\ &= 45x^2(1-x)^8 \end{align}\]

即为这个例子的似然函数。

一般情况下,反映了对给定的样本观察值被取到的可能性的函数,即为似然函数。

4. 极大似然估计

仍然先抛开晦涩的定义,回到刚才老虎机的例子,在讨论过程中,为了找到一个\(x\) 使得\(P(吐两次金币|中奖概率 x )\)最大。 这个能够使\(P(吐两次金币|中奖概率 x )\)最大的\(x\)值即为这个例子的极大似然估计。

一般情况下,极大似然估计是根据已知的样本的结果,反向推测最有可能得到这样结果的模型的参数值。