如果负似然等同于似然最大化,为什么我们要最小化负似然?

机器算法验证 最大似然 可能性
2022-02-12 02:31:28

这个问题让我困惑了很久。我理解使用“日志”来最大化可能性,所以我不是在询问“日志”。

我的问题是,既然最大化对数似然等于最小化“负对数似然”(NLL),我们为什么要发明这个 NLL?为什么我们不一直使用“积极可能性”?NLL在什么情况下受到青睐?

我在这里找到了一点解释。https://quantivity.wordpress.com/2011/05/23/why-minimize-negative-log-likelihood/,它似乎深入解释了明显的等价性,但并没有解决我的困惑。

任何解释将不胜感激。

4个回答

优化器通常最小化一个函数,因此我们使用负对数似然作为最小化,这相当于最大化对数似然或似然本身。

为了完整起见,我会提到对数是单调函数,因此优化函数与优化它的对数相同。对似然函数进行对数变换使其更易于处理(乘法变为和),这在数值上也更稳定。这是因为可能性的大小可能非常小。进行对数变换会将这些小数转换为较大的负值,有限精度机器可以更好地处理这些负值。

这是一个替代答案:统计包中的优化器通常通过最小化函数的结果来工作。如果您的函数首先给出似然值,则使用对数来减少似然函数返回的值会更方便。然后,由于对数似然和似然函数具有相同的增加或减少趋势,您可以最小化负对数似然,以便实际执行您正在测试的函数的最大似然估计。参见例如nlminbR中的函数here

这里最小化意味着将两个分布的距离减小到最低:目标伯努利分布和生成的结果分布。我们使用 Kullback-Leibler 散度(也称为相对熵)测量两个分布的距离,并且由于大数理论,最小化 KL 散度等于最小化交叉熵(多类交叉熵,参见此处或二元分类,参见此处在这里)。

因此

最大化对数似然等效于最小化“负对数似然”

可以翻译成

最大化对数似然等效于最小化两个分布之间的距离,因此等效于最小化 KL 散度,然后是交叉熵。

我认为它已经变得非常直观。

答案比你想象的要简单。按照惯例,我们将优化目标函数称为“成本函数”或“损失函数”,因此,我们希望最小化它们,而不是最大化它们,因此形成了负对数似然,而不是你的正似然单词。但从技术上讲,两者都是正确的。顺便说一句,如果我们确实想最大化某些东西,通常我们称之为“效用函数”,因此目标是最大化它们。