机器学习最大似然估计入门指南

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

解决密度估计的方法有很多,尽管在机器学习领域广泛使用的一种通用框架是最大似然估计。最大似然估计涉及定义一个似然函数,用于计算给定概率分布和分布参数时观察到数据样本的条件概率。这种方法可用于搜索可能的分布和参数空间。

这个灵活的概率框架也为许多机器学习算法奠定了基础,包括用于分别预测数值和类标签的重要方法,如线性回归和逻辑回归,以及更普遍的深度学习人工神经网络。

在本文中,您将发现最大似然估计的入门指南。

阅读本文后,你将了解:

  • 最大似然估计是一个解决密度估计问题的概率框架。
  • 它涉及最大化似然函数,以找到能够最好地解释观测数据的概率分布和参数。
  • 它为机器学习中的预测建模提供了一个框架,其中查找模型参数可以被表述为一个优化问题。

通过我的新书 机器学习概率 开启您的项目,其中包含分步教程和所有示例的Python源文件

让我们开始吧。

A Gentle Introduction to Maximum Likelihood Estimation for Machine Learning

机器学习最大似然估计入门指南
照片由 Guilhem Vellut 拍摄,保留部分权利。

概述

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

  1. 概率密度估计问题
  2. 最大似然估计
  3. 与机器学习的关系

概率密度估计问题

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

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

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

  • 如何选择概率分布函数?
  • 如何为概率分布函数选择参数?

由于从总体中抽取的样本(X)很小且带有噪声,这使得这个问题更具挑战性,这意味着对估计的概率密度函数及其参数的任何评估都会存在一些误差。

解决这个问题的方法有很多,但两种常见的方法是

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

主要区别在于 MLE 假设所有解决方案事先都是等可能的,而 MAP 则允许利用关于解决方案形式的先验信息。

在本文中,我们将仔细研究 MLE 方法及其与应用机器学习的关系。

想学习机器学习概率吗?

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

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

最大似然估计

概率密度估计的一种解决方案称为最大似然估计,简称 MLE。

最大似然估计涉及将问题视为一个优化或搜索问题,我们在此寻求一组参数,这些参数能最好地拟合数据样本(X)的联合概率。

首先,它涉及定义一个称为*theta*的参数,该参数定义了概率密度函数以及该分布的参数的选择。它可能是一个数值向量,其值平滑变化并映射到不同的概率分布及其参数。

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

  • P(X | theta)

这个条件概率通常使用分号(;)表示法而不是竖线表示法(|),因为*theta*不是随机变量,而是未知参数。例如

  • P(X ; theta)

或者

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

由此产生的条件概率被称为给定模型参数时观察到数据的似然性,并使用*L()*表示法来表示似然函数。例如

  • L(X ; theta)

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

  • 最大化 L(X ; theta)

我们可以展开似然函数计算的条件概率。

鉴于样本包含 n 个示例,我们可以将其表述为给定概率分布参数(*theta*)时观察到数据样本 x1, x2, x3, …, xnX 中的联合概率。

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

联合概率分布可以重述为观察每个示例给定分布参数的条件概率的乘积。

  • 乘积 i 到 n P(xi ; theta)

实践中,将许多小概率相乘可能会导致数值不稳定,因此,通常将此问题重述为观察每个示例给定模型参数的对数条件概率之和。

  • sum i to n log(P(xi ; theta))

其中以 e 为底的对数称为自然对数,通常使用。

这种多个概率的乘积可能不方便 […] 它容易发生数值下溢。为了获得一个更方便但等价的优化问题,我们观察到对似然取对数不会改变其 arg max,但确实方便地将乘积转换为和

— 第132页,《深度学习》,2016年。

鉴于对数在似然函数中的频繁使用,它通常被称为对数似然函数。

在优化问题中,通常倾向于最小化成本函数,而不是最大化它。因此,使用对数似然函数的负值,通常称为负对数似然(NLL)函数。

  • 最小化 - sum i=1 to n log(P(xi ; theta))

在软件中,我们经常将两者都表述为最小化成本函数。因此,最大似然就变成了最小化负对数似然(NLL)…

— 第133页,《深度学习》,2016年。

与机器学习的关系

这个密度估计问题直接关系到应用机器学习。

我们可以将拟合机器学习模型的问题表述为概率密度估计问题。具体来说,模型和模型参数的选择称为模型假设h,问题涉及找到最能解释数据Xh

  • P(X ; h)

因此,我们可以找到最大化似然函数的模型假设。

  • 最大化 L(X ; h)

或者更全面地说

  • 最大化 sum i=1 to n log(P(xi ; h))

这为估计数据集的概率密度奠定了基础,通常用于无监督机器学习算法;例如

  • 聚类算法。

使用期望对数联合概率作为具有隐藏变量的概率模型中学习的关键量,在著名的“期望最大化”或 EM 算法的背景下更为人所知。

— 第365页,《数据挖掘:实用机器学习工具与技术》,第四版,2016年。

最大似然估计框架也是监督机器学习的有用工具。

这适用于我们有输入和输出变量的数据,其中输出变量可以是数值,也可以是回归和分类预测建模中的类别标签。

我们可以将其表述为给定模型假设(h)时输出(y)给定输入(X)的条件概率。

  • 最大化 L(y|X ; h)

或者更全面地说

  • 最大化 sum i=1 to n log(P(yi|xi ; h))

最大似然估计器可以很容易地推广到我们的目标是估计条件概率 P(y | x ; theta) 以便根据 x 预测 y 的情况。这实际上是最常见的情况,因为它构成了大多数监督学习的基础。

— 第133页,《深度学习》,2016年。

这意味着,通常用于密度估计的相同最大似然估计框架可用于查找监督学习模型和参数。

这为基础的线性建模技术奠定了基础,例如

  • 线性回归,用于预测数值。
  • 逻辑回归,用于二元分类。

在线性回归的情况下,模型约束在一条线上,涉及找到一组最适合观测数据的直线的系数。幸运的是,这个问题可以解析求解(例如,直接使用线性代数)。

在逻辑回归的情况下,模型定义了一条线,涉及找到一组最能分离类别的直线的系数。这无法解析求解,通常通过使用像 BFGS 算法或其变体这样的高效优化算法来搜索可能的系数取值空间。

这两种方法也可以使用更通用的优化算法(如随机梯度下降)来求解,尽管效率稍低。

事实上,大多数机器学习模型都可以用最大似然估计框架来描述,这提供了一种有用的、一致的方法来将预测建模视为一个优化问题。

机器学习中最大似然估计器的一个重要优点是,随着数据集大小的增加,估计器的质量会持续提高。

进一步阅读

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

书籍

文章

总结

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

具体来说,你学到了:

  • 最大似然估计是一个解决密度估计问题的概率框架。
  • 它涉及最大化似然函数,以找到能够最好地解释观测数据的概率分布和参数。
  • 它为机器学习中的预测建模提供了一个框架,其中查找模型参数可以被表述为一个优化问题。

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

掌握机器学习中的概率!

Probability for Machine Learning

增进你对概率的理解

...只需几行python代码

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

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

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

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

查看内容

14 条对《机器学习最大似然估计入门指南》的回复

  1. Seun Animasahun 2019年10月25日 上午7:19 #

    感谢您的解释。非常有启发性。

    我想问一下,在您使用 MLE 的实践经验中,将 MLE 作为无监督学习来首先预测观测数据的更好估计,然后再将估计数据作为监督学习的输入,这是否有助于提高模型的泛化能力?

  2. George 2019年10月25日 下午3:07 #

    这种多个概率的乘积可能不方便 […] 它容易发生数值下溢。为了获得一个更方便但等价的优化问题,我们观察到对似然取对数不会改变其 arg max,但确实方便地将乘积转换为和

    — 第132页,《深度学习》,2016年。

    此引用来自第128页——基于链接中的图书版本

  3. Jose CyC 2019年11月5日 下午12:04 #

    “我们可以将其表述为给定模型假设(h)时输出X给定输入(y)的条件概率。”

    这不应该是“给定模型假设(h)时输出(y)给定输入(X)的条件概率”吗?

    鉴于我们试图最大化给定输入和参数的输出概率。

    这与最大化 L(y|X ; h) 一致

    • Jason Brownlee 2019年11月5日 下午1:41 #

      是的,这是个笔误。

      已修复。感谢您指出!

  4. BRT 2020年2月27日 下午8:30 #

    我们如何从给定的数据中知道似然函数?

    • Jason Brownlee 2020年2月28日 上午6:05 #

      它是为算法准备的,而不是为数据准备的。

  5. Manjit 2021年7月22日 下午10:50 #

    很好的解释。我喜欢您如何将同一技术联系到不同的领域,如深度学习和无监督学习等。最终,如果你理解了,你就会知道底层的机制是相同的。感谢这篇文章

  6. Yunhao(Ron) 2022年6月17日 上午1:56 #

    亲爱的 Jason,

    我有一个关于“MLE应用于解决密度函数问题”的问题,希望得到您的帮助。

    ———————————
    对于 MLE 的定义,
    – 它用于估计可以最大化事件发生可能性的“参数”。
    – 例如,似然(身高 > 170 |均值 = 10,标准差 = 1.5)。MLE 正在尝试改变两个参数(即均值和标准差),并找到这两个参数的值,以使身高 > 170 发生的可能性最大。

    ———————————
    当我们使用 MLE 来解决密度函数问题时,我们基本上只是
    (1) 将“均值 = 10,标准差 = 1.5”更改为 –> “定义概率密度函数选择和该分布参数的 theta (θ)”。
    (2) 将“身高 > 170”更改为 –> 来自领域(x1, x2, x3, · · · , xn)的观测样本(X),

    简单来说,我们只是使用 MLE 的逻辑/思想/框架来解决密度函数问题(只需更改 MLE 框架的某些元素)。

    在修改 MLE 框架后,参数(与最大似然或峰值相关)代表最适合观测数据概率分布的概率密度函数(PDF)的参数。

    这正确吗?

    诚挚地,
    Yunhao

  7. Yunhao 2022年6月17日 上午5:42 #

    嗨,Jason,
    在书中,您写道“MLE 是估计模型参数的概率框架。我们希望最大化在给定特定概率分布及其参数的情况下观察到数据(X)的条件概率”。

    请问为什么“使观察数据的条件概率最大的参数”是导致/属于最佳拟合概率密度(PDF)的参数?

    我无法理解如何找出最大似然与最佳拟合之间的关系。

  8. Suraj 2024年3月30日 下午11:56 #

    嗨,Jason,

    首先,感谢您详细的解释;它确实帮助我理清了这个主题。但是,我仍然对用于似然的符号感到有些困惑。在您的帖子中,您将似然表示为 L(X | theta),这意味着我们的目标是找到使观察到数据的似然性最大的 theta 参数。因此,使用 L(theta|X) 不是更合适吗?我也发现这种符号在各种文章和博客文章中更常用。

    谢谢

    • James Carmichael 2024年3月31日 上午1:40 #

      你好 Suraj……你的问题提出了统计学中关于似然和概率的符号和解释的一个常见混淆点。让我们来澄清一下。

      ### 概率 vs. 似然

      – 观察到数据 \(X\) 的概率,给定参数 \(\theta\),表示为 \(P(X | \theta)\),量化了在已知参数 \(\theta\) 的情况下看到数据 \(X\) 的概率。这就是你在概率模型中使用的方法,根据已知参数来预测数据结果。

      – 参数 \(\theta\) 的似然,给定观测数据 \(X\),表示为 \(L(\theta | X)\) 或有时简称为 \(L(\theta)\),是 \(\theta\) 的一个函数,其中 \(X\) 是固定的。它表示在给定你观察到的数据的情况下,不同参数值有多“可能”。与概率不同,似然性在 \(\theta\) 上不必加起来等于 1。

      ### 为什么是 \(L(\theta | X)\) 而不是 \(L(X | \theta)\)?

      符号 \(L(\theta | X)\) 确实被用来表示给定数据的参数似然性,但重要的是要理解,这与条件概率符号不同,尽管看起来相似。似然函数 \(L(\theta | X)\) 是 \(\theta\) 的一个函数,其中 \(X\) 是固定的,基本上翻转了概率符号中的条件。

      ### 混淆的本质

      混淆常常源于似然函数在数学上等同于在给定参数的情况下观察到数据的概率,即 \(L(\theta | X) = P(X | \theta)\),但解释不同。当我们谈论似然性时,我们关注的是参数 \(\theta\) 如何拟合观测数据 \(X\),而不是数据本身的概率。

      – **在概率中:** 我们知道 \(\theta\) 并询问,“看到 \(X\) 的概率是多少?”
      – **在似然中:** 我们知道 \(X\) 并询问,“不同 \(\theta\) 值的可能性有多大?”

      ### 最大化似然

      当我们说我们的目标是找到使给定数据 \(X\) 的观测似然性最大的参数 \(\theta\) 时,我们正在寻找那些使观测数据最可能的参数值。这个过程是许多统计估计技术(包括最大似然估计(MLE))的核心。

      总之,虽然符号可能暗示概率陈述,但认识到统计分析中似然性的不同解释和目的至关重要。在估计使观测数据最可能的参数的背景下,使用 \(L(\theta | X)\) 是正确的。

留下回复

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