在统计学中,最大似然估计(maximum likelihood estimation,MLE),也称极大似然估计,是用来估计一个概率模型的参数的一种方法。最大似然估计在统计学和机器学习中具有重要的价值,常用于根据观测数据推断最可能的模型参数值。这篇文章将详细介绍最大似然估计。
在正式进入最大似然估计(Maximum Likelihood Estimation)
内容之前,我们需要了解两个基本概念。包括:
概率(probability)
和似然(Likelihood)
是两个经常被混淆使用的概念。
在日常语言中,我们几乎可以互换使用概率和似然这两个术语。比如,可能会听到“今天下雨的可能性(likely)有多大?”或者“今天下雨的概率(probability)有多大?”。
看起来,好似相同。
但是,概率和似然是不同的概念。
简而言之,概率
和似然
之间的根本区别在于允许变化的内容
。
具体解释一下。
准确来说,讨论似然事实上讨论的是似然函数。
似然函数是从统计模型中导出的,并被视为该模型生成数据的参数的函数。
是不是很疑惑?
下面用一个示例来解释:考虑一下抛掷一个公平硬币十次的情况。
我们知道这是一个二项(Binomial)
过程,由一个参数 控制,该参数定义了在 次抛掷中期望得到个正面(或反面,不论哪个)的预期概率。
在这里,观察到的正面数量 是一个随机变量,它会随着 的不同取值而改变。对于任何固定的参数值(例如, ),观察到 个正面的概率由概率质量函数(PMF,probability mass function)给出:
上式是二项式概率质量函数,小写希腊字母 仅指模型参数。其中:
因为这个硬币是公平的,并且它被扔了10次,我们可以让 和 。
如果我们将这些值插入上面的方程式中,让 变化,我们得到图1a的分布图。
图1:a)二项式模型的概率质量函数;b)二项式似然函数,点表示不同参数值的似然性。
这样,通过图1a我们就可以看到 是最可能的结果。
这显然是有道理的。如果硬币是公平的,并且我们抛十次硬币,在长期来看,我们应该更多地得到5个正面和5个反面。
但是,也应该注意到,获得4或6个正面也并不罕见。
也就是说,抛10次硬币这一行为重复多次,出现5个正面和5个反面的次数是最多的,4或6个正面的次数也会出现,但次数不如5个正面和5个反面的情况多。1或9个正面的次数则比较罕见。
概率质量函数(PMF)
告诉我们,在给定一组固定的模型参数
的情况下,特定随机过程的实现有多大可能性。
在这种情况下,我们假设模型参数是固定的,而数据是可以变化的
。这里的要点是,如果模型参数已知,那么我们是在询问可能观察到的数据类型的问题。
如果我们已经抛了10次硬币,得到了 个正面,怎么办?我们的问题就是我扔的硬币是否公平。
需要注意的重要是,在这种情况下, 不再是随机的。我们有了二项式过程的观察结果,这意味着它现在是一个固定值。
二项式模型的似然函数可以写成:
在这里,使用“帽”(hat)符号来明确说明 是10次抛掷中观察到的正面数。
现在,似乎看起来似然函数
与概率质量函数(PMF)
是一回事。
但是,是有区别的。
这里的区别在于似然函数中数据是固定的,而模型参数 是可以变化的
。
还记得刚才在介绍
概率质量函数(PMF)
时,模型参数是固定的,而数据是可以变化的
。
似然函数告诉我们,在我们知道 等于某个观察值的情况下,任何特定值的 有多大可能性。
就像上面所述,如果我们将 代入上面的方程中,并让 取所有可能的值,我们会得到类似于上图1b的结果。
请注意,这里的似然函数不是对称的;相反,它在 上呈峰值。
具体来说,这个分布的众数(即峰值本身)与一个被称为最大似然估计(MLE)
的东西重合。
在继续之前,请注意:可能似然函数看起来像是一个分布函数,但它不是一个适当的概率密度函数(即它通常不会积分为1)。更重要的是,似然函数不是 等于特定值的概率。
我们总结一下。
概率质量函数(PMF)是用于描述离散随机变量的概率分布的函数。对于给定的随机变量取值,概率质量函数给出了该取值发生的概率。概率质量函数的输入是随机变量的取值,输出是对应取值的概率。
似然函数(Likelihood Function)是用于估计模型参数的函数。对于给定的模型参数值,似然函数衡量了观测数据出现该参数值的可能性。似然函数的输入是模型参数的取值,输出是在给定参数下观测数据出现的可能性。
概率质量函数和似然函数的区别在于它们关注的对象不同。概率质量函数是给定参数值时,计算随机变量的取值的概率;而似然函数是给定观测数据时,评估参数值的可能性。因此,似然函数通常用于参数估计,而概率质量函数用于描述随机变量的分布。
简而言之,当我们有一个固定参数集的模型并且我们对可能生成的数据类型感兴趣时,通常会考虑概率。相反,当我们已经观察到数据并且我们想要检查某些模型参数的可能性时,就会使用似然。
前面,我们了解了概率和似然之间的区别。接下来,我们将详细地介绍最大似然估计(MLE)
,并从基本原理推导出二项模型的最大似然估计。
还是以刚才的抛硬币为例。
假设我掷了一个公平的硬币10次,观察到以下结果:
上面, 代表正面, 代表反面
现在假设我要求通过给出“正面”的比例来总结这些数据,比如判断正面出现比例为50%或60%的可能性。
这就需要通过最大似然估计(MLE)
得出。
最大似然估计
是一种使用观测数据来估计未知参数的方法。其工作原理是通过寻找最大化似然函数的参数组合
,以使在假设的模型下,我们所观察到的数据具有最高的概率。
如果将参数想象成旋钮,那么这实际上就是找到最适合数据的旋钮设置。
我们可以将我们的目标表达如下:
公式中,argmax操作返回产生目标函数最大值的参数。
也就是,我们想要找到存在于参数空间(用大写希腊字母 表示)中的唯一参数集(用小写希腊字母 表示)的最大化似然函数。
似然函数本身定义为:
右侧的项是概率质量函数。更一般地说,它是一个模型函数,描述了在给定特定参数设置的情况下数据的分布方式。
现在,让我们将这些想法与上面描述的硬币抛掷数据联系起来。
我们将所有的 替换为 ,将所有的 替换为 。这意味着我们现在可以对 进行求和,得到“正面”的总数。我们将其称为 。然后,二项式似然函数可以写成如下形式:
上式,给定一组固定数据 和未知参数 的二项式似然函数。
其中未知的速率参数 就是我们试图估计的参数。在处理这类问题时,通常更方便(至少在数学上)使用似然函数的对数。
为什么使用似然函数的对数更方便?这是因为函数 和 的单调性保持一致,所以为了计算方便,把似然函数 转换为 ,连乘可以变成了连加。
所以,让我们取等式两边的自然对数:
右侧的第一项是二项式系数的对数,通常被省略。因为它是一个不影响参数估计的常数项。
对于当前的目的来说,无论是否对似然函数进行对数变换都无所谓。因为这两个函数是单调相关的,我们可以最大化其中任何一个,并得到相同的结果。
总的来说,使用对数是一个不错的选择。
现在我们有了对数似然函数。
接下来,可以采取一种蛮力的方法,尝试一系列的值,看哪个给出了最高的似然值。
也就是,当我们调整参数值时,对数似然函数如何变化。
我们可以通过对对数似然函数
关于 的一阶导数进行计算来获得这个信息。
当然,前提是函数是可微分的。此外,如果存在解(存在一个参数使得对数似然函数最大化),那么它必须满足以下偏微分方程:
这被称为似然方程。
对于最大似然估计,我们通常期望对数似然是一个可微分的连续函数。如果这个期望成立,那么从定义上来说,这样一个函数的最大(或最小)意味着在这些点上它的一阶导数为零。
上面的方程说明的是,如果我们成功找到了最大化目标函数的参数,那么对数似然的导数应该为零。
我们将对数似然的导数设置为零,就可以解出未知参数。
让我们试试对我们的硬币抛掷数据这么做。
首先,让我们来看一下二项式似然函数的一阶导数:
通过将一阶导数设为零,我们可以解出 。
通过代数运算,我们可以解出 ,这就得到了最大似然估计:
这正是我们之前计算得到的结果!记住, 只是我们观察到的“正面”的次数, 是总抛掷次数,它给出了 。
我们还没有完成。
还有一个额外的条件需要满足,以确保我们遇到的是最大值
而不是最小值。
请记住,最小值和最大值都将导致一阶导数为零,因此我们需要确保对数似然在估计值的附近是凹的。也就是说,我们希望我们的估计值位于峰顶
,而不是位于谷底。
为了检查这一点,我们必须确保以下条件也成立:
用非常简单的话来说,这意味着我们应该在最大似然估计值的附近预期对数似然的二阶导数小于零。
让我们通过插入我们估计的值 来尝试一下:
这个结果小于零。太棒了!
应该明确指出,并不是所有的最大似然估计问题都可以用这种方法解决。
在本文中,我们特意选择了一个存在唯一解的例子。然而,在实际情况中,情况可能不是这样。而且,现实世界的模型通常具有多个参数,并产生不一定是线性的分布。这通常意味着简单的解析解是无法获得的,必须使用非线性优化算法进行数值求解。
希望这篇文章对大家理解最大似然估计有帮助。
祝学习愉快。
本文基于两篇文章整合而成,https://medium.com/@dataforyou/maximum-likelihood-estimation-cd9fd068e9a8 https://towardsdatascience.com/on-probability-versus-likelihood-83386b81ad83 作者均为 Rob Taylor, PhD为适合中文阅读习惯,阅读更有代入感,原文翻译后有删改。