解决最大化似然问题的迭代方法如何工作?

机器算法验证 最大似然 优化 计算统计
2022-03-11 13:10:01

有谁知道最大似然估计的计算迭代过程?

如果这些方程组实际上无法求解,那么计算机如何求解它们?

1个回答

出于必要,我在这里几乎不会触及表面(要使主题公正需要更长的答案),但我认为这是一个如此重要的问题,至少应该给出一些常见方法的概述,并链接到一些一路上提到的事情。

有谁知道最大似然估计的计算迭代过程?

没有单一的方法,而是有许多不同的方法适用于不同的情况。

如果这些方程组实际上无法求解,那么计算机如何求解它们?

“实际上”我假设您的意思是“代数封闭形式” - 严格来说,可能性本身并没有解决求解通常是你对方程所做的事情,以找到满足方程的参数。

但是,最大化可能性有时会变成一个涉及求解方程的问题。

回想一下,可能性是参数的函数。

因此,最大化似然性——找到产生最大似然函数值的参数——是一个优化问题

有许多方法可用于优化功能。

在许多情况下,可能性的对数更容易处理(出于各种原因);最大化对数似然的参数也将最大化似然。此外,通常取对数似然的负数(或有时是负数的两倍)并将其最小化;部分原因是大多数优化器被编写为函数最小化器而不是最大化器,尽管也有重要的统计用途。2logL

对于连续随机变量的函数,有时可以使用微积分来获得一组方程,其解将是似然函数的转折点(可以包括局部最大值;如果你能证明存在唯一的全局最大值,它要么是在转折点或边界点)。然而,对于大多数中等复杂的问题(甚至许多相当简单的问题),尝试更直接地最大化似然性通常比尝试求解此类方程更好。

更一般地,迭代计算机方法用于逐步通过一系列参数值,以便(如果成功)大致定位最大值。有许多不同复杂程度和要求的方法。例如,一种方法是在似然面上简单地“下坡”(梯度下降/最速下降),但也有牛顿法(另见此处)、各种准牛顿法(如BFGS)。一种与牛顿方法密切相关的常用方法来最大化似然性是Fisher 评分

这些类型的方法通常至少需要通常以代数方式获得的似然性的一阶导数(尽管在某些情况下使用数值导数)。存在一些无导数的方法(例如 Nelder-Mead)。一些方法结合了几种不同的技术,在工作时利用更快的方法,但在其他情况下使用更安全但更慢的方法。

然而,一般而言,可能会出现多个局部最大值,然后(至少在大多数情况下)识别全局最大值的位置可能非常困难。

这是一个简单的示例,其中包含来自柯西分布的小样本:

在此处输入图像描述

有时最大值出现在边界处;这可能会给其中许多方法带来困难(至少在不加批判地应用的情况下)。

提供给初学者的一个常见示例是的制服样本估计但这是一个微不足道的优化案例。θ(0,θ)

在此处输入图像描述

有时可以设置一个迭代函数(),使得似然的最大值对应于函数的一个固定点。在这个答案中可以看到一个例子θ=F(θ)

在其他情况下,您可能有离散参数。一个常见的例子是超几何分布(参数是总体中成功状态的数量)。然而,在这种特殊情况下,可能性可以显示为在特定值的左侧增加,并在其右侧减少,从而使超几何的解决方案变得简单。

在一些离散的情况下,找到实际的 ML 可能是NP-hard有时可以使用各种近似值在合理的时间内得到合理的估计。