学习机器学习概率的 5 个理由

概率论是一个量化不确定性的数学领域。

它无疑是机器学习领域的支柱之一,许多人建议将其作为入门前的先修科目。这是一个误导性的建议,因为一旦从业者有了应用机器学习过程的背景来解释概率论,它才会更有意义。

在这篇文章中,您将发现为什么机器学习从业者应该学习概率论以提高他们的技能和能力。

阅读本文后,你将了解:

  • 不是每个人都应该学习概率论;这取决于您在机器学习学习之旅中所处的阶段。
  • 许多算法是使用概率论的工具和技术设计的,例如朴素贝叶斯和概率图模型。
  • 作为许多机器学习算法训练基础的最大似然框架,源于概率论领域。

用我的新书《面向机器学习的概率论》启动您的项目,书中包含所有示例的分步教程Python 源代码文件。

让我们开始吧。

5 Reasons to Learn Probability for Machine Learning

学习机器学习概率的 5 个理由
照片由 Marco Verch 拍摄,保留部分权利。

概述

本教程分为七个部分,它们是:

  1. 不学习概率论的理由
  2. 类别归属需要预测概率
  3. 一些算法是使用概率论设计的
  4. 模型是使用概率框架进行训练的
  5. 模型可以使用概率框架进行调优
  6. 概率度量用于评估模型技能
  7. 还有一个原因

不学习概率论的理由

在我们探讨您应该学习概率论的原因之前,让我们先简单看看您不应该学习它的原因。

如果您刚开始接触应用机器学习,我认为您不应该学习概率论。

  • 这不是必需的。为了将机器学习作为解决问题的工具,并不需要对某些机器学习算法背后的抽象理论有所了解。
  • 这很慢。在开始机器学习之前花上数月到数年的时间来学习一个完整的相关领域,会延迟您实现处理预测建模问题的目标。
  • 这是一个庞大的领域。并非所有概率论都与理论机器学习相关,更不用说应用机器学习了。

我建议采用广度优先的方法来入门应用机器学习。

我称之为“结果优先”方法。即您首先学习和实践端到端地处理预测建模问题的步骤(例如,如何获得结果),并使用一个工具(如 Python 中的 scikit-learn 和 Pandas)。

然后,这个过程为逐步深化您的知识提供了框架和背景,例如算法如何工作,并最终了解其背后的数学原理。

在您知道如何处理预测建模问题之后,让我们来看看为什么您应该加深对概率论的理解。

想学习机器学习概率吗?

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

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

1. 类别归属需要预测概率

分类预测建模问题是指为样本分配一个给定标签的问题。

您可能熟悉的一个例子是鸢尾花数据集,其中我们有花的四个测量值,目标是为该观察值分配三种已知的鸢尾花品种之一。

我们可以将问题建模为直接为每个观察值分配一个类别标签。

  • 输入:花的测量值。
  • 输出:一个鸢尾花品种。

一种更常见的方法是将问题框架化为概率性的类别归属,即预测一个观察值属于每个已知类别的概率。

  • 输入:花的测量值。
  • 输出:属于每个鸢尾花品种的概率。

将问题框架化为类别归属的预测简化了建模问题,使模型更容易学习。它允许模型捕捉数据中的模糊性,这使得下游流程(例如用户)可以在领域背景下解释这些概率。

通过选择概率最大的类别,可以将概率转换为明确的类别标签。这些概率也可以通过概率校准过程进行缩放或转换。

这种将问题解释为类别归属框架的选择以及对模型所做预测的解释,需要对概率论有基本的理解。

2. 模型是使用概率论设计的

有些算法是专门为利用概率论的工具和方法而设计的。

这些算法范围广泛,从像朴素贝叶斯算法这样的单个算法,它是使用贝叶斯定理和一些简化假设构建的。

线性回归算法可以看作是一个最小化预测均方误差的概率模型,而逻辑回归算法可以看作是一个最小化预测正类标签负对数似然的概率模型。

  • 线性回归
  • 逻辑回归

它还扩展到整个研究领域,如概率图模型,通常简称为图模型或 PGM,并围绕贝叶斯定理设计。

一个著名的图模型是贝叶斯信念网络(Bayesian Belief Networks)或贝叶斯网络(Bayes Nets),它能够捕捉变量之间的条件依赖关系。

3. 模型是使用概率框架进行训练的

许多机器学习模型是使用在概率框架下设计的迭代算法进行训练的。

一些通用的概率建模框架示例如下:

也许最常见的是最大似然估计框架,有时简称为 MLE。这是一个在给定观测数据的情况下估计模型参数(例如权重)的框架。

这个框架是线性回归模型的普通最小二乘估计和逻辑回归的对数损失估计的基础。

期望最大化算法(Expectation-Maximization algorithm),简称 EM,是一种用于最大似然估计的方法,常用于无监督数据聚类,例如估计 k 个聚类的 k 个均值,也称为 k-均值聚类算法

对于预测类别归属的模型,最大似然估计提供了最小化观测概率分布与预测概率分布之间差异或散度的框架。这在逻辑回归等分类算法以及深度学习神经网络中都有使用。

在训练过程中,通常使用熵(例如通过交叉熵)来衡量这种概率分布的差异。熵,以及通过KL 散度交叉熵测量的分布之间的差异,都源于直接建立在概率论之上的信息论领域。例如,熵直接计算为概率的负对数。

因此,这些来自信息论的工具,如最小化交叉熵损失,可以被看作是另一种用于模型估计的概率框架。

  • 最小交叉熵损失估计

4. 模型是使用概率框架进行调优的

调整机器学习模型的超参数是很常见的,例如 kNN 中的 k 值或神经网络中的学习率。

典型的方法包括对超参数范围进行网格搜索或随机抽样超参数组合。

贝叶斯优化是一种更高效的超参数优化方法,它涉及对可能配置空间进行有向搜索,基于那些最有可能带来更好性能的配置。顾名思义,该方法源于并利用贝叶斯定理来抽样可能的配置空间。

有关贝叶斯优化的更多信息,请参见教程:

5. 模型是使用概率度量进行评估的

对于那些预测概率的算法,需要评估指标来总结模型的性能。

有许多指标用于根据预测的概率来总结模型性能。常见的例子包括:

  • 对数损失(也称为交叉熵)。
  • 布里尔分数(Brier Score)和布里尔技能分数(Brier Skill Score)

有关评估预测概率的更多指标,请参见教程:

对于预测单个概率分数的二元分类任务,可以构建受试者工作特征(Receiver Operating Characteristic, ROC)曲线,以探索在解释预测时可以使用的不同阈值,这些阈值反过来会导致不同的权衡。ROC 曲线下面积(ROC AUC)也可以作为一个综合度量来计算。一种关注正类的相关方法是精确率-召回率曲线(Precision-Recall Curve)及其曲线下面积。

  • ROC 曲线和 ROC AUC
  • 精确率-召回率曲线和 AUC

有关这些曲线以及何时使用它们的更多信息,请参见教程:

选择和解释这些评分方法需要对概率论有基础的理解。

还有一个原因

如果我能再给一个理由,那就是:因为它很有趣。

真的。

学习概率论,至少以我教的方式——用实际例子和可执行代码——是非常有趣的。一旦你看到这些操作如何处理真实数据,就很难不为一个通常相当不直观的学科培养出强烈的直觉。

您有更多关于中级机器学习从业者学习概率论至关重要的理由吗?

在下面的评论中告诉我。

进一步阅读

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

书籍

文章

文章

总结

在这篇文章中,您发现了为什么作为一名机器学习从业者,您应该加深对概率论的理解。

具体来说,你学到了:

  • 不是每个人都应该学习概率论;这取决于您在机器学习学习之旅中所处的阶段。
  • 许多算法是使用概率论的工具和技术设计的,例如朴素贝叶斯和概率图模型。
  • 作为许多机器学习算法训练基础的最大似然框架,源于概率论领域。

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

掌握机器学习中的概率!

Probability for Machine Learning

增进你对概率的理解

...只需几行python代码

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

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

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

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

查看内容

“为机器学习学习概率论的 5 个理由”的 24 条回应

  1. Weever 2019年9月11日 8:05 #

    你好,Jason,来自肯尼亚。我只想说声谢谢,你让我成了一个懒惰的学者,但却是一个强悍的应用机器学习工程师,我从你这里学到了很多。
    如果我可以提个请求,您是否能在一个应用程序中发布内容?我不知道这是否能服务更多人,但一个每天更新的应用程序,而不是通过我的电子邮件,会大有帮助。我可以同步并稍后阅读,甚至设置一个阅读提醒,或者有时需要从您的内容中阅读或确认某些东西等。

    我不知道这是否可行,可能只有我有这种感觉,但您能否尝试一下,或者问问您的读者,看看这是不是一个好主意?再次非常感谢。

    • Jason Brownlee 2019年9月11日 14:27 #

      谢谢!

      感谢您的建议。

      在应用程序中阅读教程具体会如何帮助您呢?

  2. ashfaq 2019年9月11日 21:27 #

    先生,您做的工作非常棒。

  3. James 2019年9月12日 2:43 #

    感谢您这篇精彩的文章,我很喜欢阅读您的帖子。我正被开始机器学习课程前需要掌握的数学/概率论搞得不知所措。您的帖子真的帮助我继续前进了。不过,我正在学习一门线性代数课程,可能下个月开始学习机器学习。您是否可能像写概率论那样,也写一篇关于线性代数以及如何学习它的文章呢?谢谢。

  4. Tamoor Malik 2019年9月13日 15:34 #

    在您的标题“概率度量用于评估模型技能”中

    我猜您漏掉了混淆矩阵,它也用于评估基于概率的分类器性能...

    • Jason Brownlee 2019年9月14日 6:11 #

      我认为混淆矩阵对于评估概率不是很有用。

      我反而会推荐对数损失、交叉熵和布里尔分数。

  5. Anthony The Koala 2019年9月15日 16:51 #

    尊敬的Jason博士,
    感谢您的文章。在第3节中您提到了“贝叶斯信念网络”('BBN')。我看了维基百科的文章,特别是关于草地因喷水器和/或下雨或两者而变湿的条件条件(是的,我写了两次,这是我第一次看到条件条件)概率的例子。

    我在您的网站上看到过关于 'BBNs' 的引用。您的书是否涵盖了 'BBNs' 的实际例子,和/或您是否打算在 python 中做一个 BBN 的例子?

    谢谢你,
    悉尼的Anthony

    • Jason Brownlee 2019年9月16日 6:33 #

      我没有关于 BBN 的教程。将来我会写一些,有一天我会写一本关于概率图模型的书。

      在此之前,你可以从这里开始:

      概率图模型:原理与技术 https://amzn.to/324l0tT

  6. Sam 2019年9月17日 4:16 #

    我不太同意您关于概率论对机器学习不是必需的说法。实际上,我不太喜欢您关于为什么不学概率论的部分。如果您甚至无法定义什么是最大似然估计(MLE),或者对如何得到预测值没有一些了解,人们如何证明一个模型将是稳定的,在未来能给出一致的结果等?

    只是我的个人看法,很想听听您的想法。

    • Jason Brownlee 2019年9月17日 6:35 #

      谢谢分享你的观点,Sam。

      我认为最好是先入门并学习解决问题的基本流程,然后再回过头来学习概率论。

      你可以把均值和方差等概念作为第一步的一部分来大致理解。

      概率论是机器学习的支架,就像可计算性/离散数学对于编程一样。没有它你也可以编程,但学习了它之后你会变得更好。而如果你从它开始,你很可能会放弃。

      • Sam 2019年9月19日 3:41 #

        谢谢 Jason 的回复。我理解尽快上手总是好的,我只是担心在当今时代,人们会创建可能对人们的决策产生真实影响的模型。如果我们不从根本上理解我们是如何得到某个预测/推荐的,那么在某些极端情况下我们可能会遇到有问题结果。这就是理解你所做事情基础重要性的所在。

        • Jason Brownlee 2019年9月19日 6:05 #

          也许可以。

          这和那些几乎没有工程师背景的开发人员编写被成千上万人使用的软件,其危险性并无二致。

          我们围绕项目开发了一些增加护栏的结构,比如测试驱动开发(TDD)、用户测试、系统测试等。

          • Sam 2019年9月19日 7:55 #

            说得有理。我认为没有工程师经验就写软件的情况,比没有任何基础概率/机器学习知识就创建模型要少见,但我理解您的观点。

            感谢您的想法。

            顺便说一句,我已经读您的帖子有一段时间了,非常喜欢——只是觉得这个话题值得关注。

          • Jason Brownlee 2019年9月19日 13:47 #

            谢谢,Sam。

            我认为我们不能在这些话题上非黑即白,这个行业充满了各种各样好奇和富有创造力的人,他们都希望创造价值。

  7. Daniel 2019年11月5日 9:02 #

    《面向机器学习的概率论》是一本好书,但它纯粹是理论(我确信这很重要),但没有关于真实世界在真实数据集上应用​​的例子。只有一些使用随机生成值或任意值的简单例子。

    • Jason Brownlee 2019年11月5日 9:24 #

      感谢您的想法。

      它不是理论,比如教科书,它是像一本实践指南一样应用性的。

      Daniel,您有关于学习这些概念的更好方法的建议吗?

  8. D.K. Sharma 博士 2020年6月13日 15:09 #

    我想在机器学习的背景下学习概率论的三个原因
    1. 不确定性是机器学习领域的基础。
    2. 消除现有通道中的噪声。
    3. 在概率论的基础上开发新的信息度量。

留下回复

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