机器学习的最大后验概率(MAP)简明入门

密度估计是估计某个问题域的观测样本的概率分布的问题。

通常,估计整个分布是棘手的,因此,我们乐于得到分布的期望值,例如均值或众数。最大后验估计(Maximum a Posteriori,简称 MAP)是一种基于贝叶斯的估计方法,用于估计最能解释观测数据集的分布和模型参数。

这个灵活的概率框架可以用于为许多机器学习算法提供贝叶斯基础,包括重要的方法,如用于分别预测数值和类别标签的线性回归和逻辑回归,并且与最大似然估计不同,它明确允许先验信念系统地融入到候选模型中。

在本文中,您将了解到最大后验估计的入门指南。

阅读本文后,你将了解:

  • 最大后验估计是解决密度估计问题的概率框架。
  • MAP 涉及计算给定模型的观测数据条件概率,该概率由关于模型的先验概率或信念加权。
  • MAP 为机器学习提供了最大似然估计的替代概率框架。

开始您的项目,从我的新书 机器学习概率 开始,包含分步教程和所有示例的Python源代文件

让我们开始吧。

A Gentle Introduction to Maximum a Posteriori (MAP) for Machine Learning

机器学习的最大后验概率(MAP)简明入门
照片由 Guilhem Vellut 拍摄,部分权利保留。

概述

本教程分为三个部分;它们是:

  1. 密度估计
  2. 最大后验估计 (MAP)
  3. MAP 和机器学习

密度估计

一个常见的建模问题是如何估计数据集的联合概率分布。

例如,给定一个域(x1, x2, x3, …, xn)的观测样本(X),其中每个观测都独立地从该域中以相同的概率分布(所谓的独立同分布,i.i.d.,或接近)抽取。

密度估计涉及选择一个概率分布函数和该分布的参数,以最好地解释观测数据(X)的联合概率分布。

通常,估计密度非常具有挑战性;取而代之的是,我们对目标分布的某个点估计感到满意,例如均值。

有许多技术可以解决这个问题,但两种常见的方法是:

  • 最大后验估计 (MAP),一种贝叶斯方法。
  • 最大似然估计 (MLE),一种频率学方法。

这两种方法都将问题框架化为优化问题,并涉及搜索一个分布及其参数,以最好地描述观测数据。

最大似然估计 中,我们希望在给定特定概率分布及其参数的情况下,最大化从联合概率分布中观测到数据的概率,正式表述为:

  • P(X ; theta)

或者

  • P(x1, x2, x3, …, xn ; theta)

这个得到的条件概率被称为给定模型参数时观测到数据的似然度。

最大似然估计的目标是找到一组参数(theta),它们最大化 似然函数,即产生最大的似然值。

  • 最大化 P(X ; theta)

一个替代且密切相关的方法是从贝叶斯概率的角度来考虑优化问题。

最大化似然度的流行替代方法是最大化参数的贝叶斯后验概率密度。

— 第 306 页,信息论、推理和学习算法,2003 年。

想学习机器学习概率吗?

立即参加我为期7天的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

最大后验估计 (MAP)

回想一下,贝叶斯定理提供了一种计算条件概率的原则性方法。

它涉及使用此关系的倒数来计算一个结果给定另一个结果的条件概率,表述如下:

  • P(A | B) = (P(B | A) * P(A)) / P(B)

我们计算的数量通常被称为给定 B 的 A 的后验概率,而 P(A) 被称为 A 的先验概率。

P(B) 的归一化常数可以被移除,并且可以表明后验概率与 B 给定 A 的概率乘以先验概率成正比。

  • P(A | B) 与 P(B | A) * P(A) 成正比

或者,简单地说:

  • P(A | B) = P(B | A) * P(A)

这是一个有用的简化,因为我们不关心估计概率,而是优化一个量。比例量对于此目的来说已经足够。

现在,我们可以将此计算与我们估计一个分布和参数(theta)以最好地解释我们的数据集(X)的愿望联系起来,正如我们在上一节中所描述的。这可以表述为:

  • P(theta | X) = P(X | theta) * P(theta)

在 theta 的一个范围内最大化这个量可以解决估计后验概率的中心趋势(例如,分布的模型)的优化问题。因此,这种技术被称为“最大后验估计”,简称 MAP 估计,有时也简单称为“最大后验估计”。

  • 最大化 P(X | theta) * P(theta)

我们通常不计算完整的后验概率分布,事实上,对于许多感兴趣的问题,这可能难以处理。

……寻找 MAP 假设通常比贝叶斯学习容易得多,因为它需要解决一个优化问题,而不是一个大型的求和(或积分)问题。

— 第 804 页,人工智能:一种现代方法,第三版,2009 年。

相反,我们计算的是一个点估计,例如分布的矩,比如众数,最常见的值,对于正态分布来说,它与均值相同。

渴望点估计的一个常见原因是,涉及大多数有趣模型的贝叶斯后验的大多数操作都难以处理,而点估计提供了一个可处理的近似。

— 第 139 页,深度学习,2016 年。

注意:这与最大似然估计非常相似,只是增加了关于分布和参数的先验概率。

事实上,如果我们假设theta的所有值都等可能,因为我们没有任何先验信息(例如,均匀先验),那么这两种计算是等价的。

由于这种等价性,对于许多机器学习算法,MLE 和 MAP 通常会收敛到相同的优化问题。情况并非总是如此;如果 MLE 和 MAP 优化问题的计算不同,那么为算法找到的 MLE 和 MAP 解也可能不同。

……最大似然假设可能不是 MAP 假设,但如果我们假设关于假设的先验概率是均匀的,那么它就是。

— 第 167 页,机器学习,1997 年。

MAP 和机器学习

在机器学习中,最大后验估计优化为将模型参数拟合到训练数据提供了一个贝叶斯概率框架,并且是也许更常见的最大似然估计框架的替代和同类。

最大后验 (MAP) 学习根据数据选择一个最可能的假设。仍然使用假设的先验,并且该方法通常比完整的贝叶斯学习更易于处理。

— 第 825 页,人工智能:一种现代方法,第三版,2009 年。

一种框架不一定优于另一种,而且如前所述,在许多情况下,两种框架从不同角度构建相同的优化问题。

相反,MAP 适用于那些存在先验信息的问题,例如,在可以设置有意义的先验来权衡不同分布和参数或模型参数的选择时。MLE 更适用于没有这种先验的情况。

贝叶斯方法可用于确定给定数据的最可能假设——最大后验 (MAP) 假设。这是最优假设,因为没有其他假设更可能。

— 第 197 页,机器学习,1997 年。

事实上,在 MLE 中添加先验可以被认为是 MLE 计算的一种正则化。这一见解允许将其他正则化方法(例如,在使用加权输入和的模型中 L2 范数)在 MAP 贝叶斯推理的框架下进行解释。例如,L2 是一个偏差或先验,它假定一组系数或权重具有较小的平方和值。

……特别是,L2 正则化等同于具有高斯先验权重的 MAP 贝叶斯推理。

— 第 236 页,深度学习,2016 年。

我们可以通过将优化问题重构为对候选建模假设(H 中的h)而不是更抽象的分布和参数(theta)进行,来使 MAP 和机器学习之间的关系更加清晰;例如:

  • 最大化 P(X | h) * P(h)

在这里,我们可以看到我们想要一个模型或假设(h)来最好地解释观测到的训练数据集(X),并且先验(P(h))是我们对假设总体上有用的信念,与训练数据无关。优化问题涉及估计每个候选假设的后验概率。

我们可以通过使用贝叶斯定理计算每个候选假设的后验概率来确定 MAP 假设。

— 第 157 页,机器学习,1997 年。

与 MLE 一样,解决优化问题取决于模型的选择。对于像线性回归这样的简单模型,有解析解。对于逻辑回归这样的更复杂的模型,需要数值优化,这需要使用一阶和二阶导数。对于更棘手的问题,可能需要随机优化算法。

进一步阅读

如果您想深入了解,本节提供了更多关于该主题的资源。

书籍

文章

总结

在本文中,您了解了最大后验估计的入门指南。

具体来说,你学到了:

  • 最大后验估计是解决密度估计问题的概率框架。
  • MAP 涉及计算给定模型的观测数据条件概率,该概率由关于模型的先验概率或信念加权。
  • MAP 为机器学习提供了最大似然估计的替代概率框架。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

掌握机器学习中的概率!

Probability for Machine Learning

增进你对概率的理解

...只需几行python代码

在我的新电子书中探索如何实现
机器学习概率

它提供了关于以下内容的自学教程端到端项目
贝叶斯定理贝叶斯优化分布最大似然交叉熵校准模型
以及更多...

最终在你的项目中驾驭不确定性

跳过学术理论。只看结果。

查看内容

A Gentle Introduction to Maximum a Posteriori (MAP) for Machine Learning 的 14 条评论

  1. saravanan saminathan 2020年4月17日晚上9:50 #

    我们有 MAP 的 Python 实现吗?这有助于更好地理解。

    • Jason Brownlee 2020年4月18日早上5:53 #

      这更像是一个框架——一些线性算法在这个框架下得到解决,可能 sklearn 中一些贝叶斯线性模型实现。

  2. Mehran 2020年7月9日晚上11:57 #

    尊敬的 Jason!
    致以最诚挚的问候…

    感谢这篇信息丰富的文章。我认为在您提到 MLE 的部分,您应该将 MLE 方程写成

    L(theta | Data)。

    这是似然度的描述。您写的是“P(Data | theta)”,这是概率的描述,而不是似然度。然而,在计算似然度(并尝试最大化它)时,人们使用相同的分布 PDF,这本质上是概率。

    谢谢

    • Jason Brownlee 2020年7月10日早上6:00 #

      我相信这是正确的。

      也许我解释这个主题做得不好。或许可以看看进一步阅读部分的一些参考文献,以获得该主题的更多描述。

      • Mehran 2020年7月11日晚上6:19 #

        嗨,Jason。

        是的!这是正确的!请不要误会我。我只是提到最好在概率之前加上似然度的描述!实际最大化的是相同的概率(与您提供的完全相同)

        谢谢!
        🙂

  3. Lokender 2021年1月17日晚上5:24 #

    感谢这篇精彩的文章,
    您也可以在此文章中提及贝叶斯相关主题的链接。

    谢谢!

  4. Dian 2021年2月19日早上8:42 #

    这个学习的股票如何?

    • Jason Brownlee 2021年2月19日早上10:49 #

      抱歉,我不明白,您能详细说明一下吗?

  5. StillinBed 2022年1月9日早上10:39 #

    非常感谢这篇精彩的博文!我现在明白了为什么我经常听到 MAP,但没有人能解释如何实现它。它更像是一个优化框架,而不是解决问题的算法。也许您应该添加或引用不同实现的列表。也许我可以帮忙!

    再次感谢这篇文章!

    • James Carmichael 2022年1月10日早上11:17 #

      感谢您的兴趣和反馈!

  6. Khánh Huyền 2023年11月27日凌晨12:03 #

    感谢这篇文章。我有一个问题:那么 MAP 不是像 kNN、ID3、NBC 这样的机器学习模型,对吧?它只是估计模型参数的一种方式吗?
    愿上帝保佑你。如果我的英语不好,请原谅 :3

    • James Carmichael 2023年11月27日早上9:58 #

      嗨 Khánh… 不客气!以下资源可能有助于澄清:

      https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173

      • Khánh Huyền 2023年11月27日中午12:05 #

        我遇到了您提供的链接问题(嗯……无法访问此页面。请检查 medium.com 上是否有拼写错误)。但是,我设法找到了 Jonathan Hui 在 LinkedIn 上的网页,但不幸的是,该链接似乎也无法访问。
        而且我找到了“map mean average precesion”。会不会有混淆?因为我想问的是 Maximum a Posterior

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。