机器学习中的不确定性入门指南

应用机器学习需要管理不确定性。

机器学习项目中有许多不确定性的来源,包括特定数据值的方差、从领域中收集的数据样本,以及基于这些数据开发的任何模型的不完美性。

管理机器学习中固有的预测建模不确定性,可以通过概率论的工具和技术来实现,概率论是专门为处理不确定性而设计的领域。

在这篇文章中,你将发现机器学习中不确定性带来的挑战。

阅读本文后,你将了解:

  • 不确定性是机器学习初学者,尤其是开发人员遇到的最大困难来源。
  • 数据中的噪声、领域覆盖不完整以及模型不完美,是机器学习中不确定性的三个主要来源。
  • 概率论为量化、处理和利用应用机器学习中的不确定性提供了基础和工具。

通过我的新书《机器学习概率》快速启动你的项目,其中包括分步教程和所有示例的Python 源代码文件。

让我们开始吧。

A Gentle Introduction to Uncertainty in Machine Learning

机器学习中的不确定性入门指南
照片由 Anastasiy Safari 拍摄,保留部分权利。

概述

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

  • 机器学习中的不确定性
  • 观测中的噪声
  • 领域覆盖不完整
  • 问题模型不完美
  • 如何管理不确定性

机器学习中的不确定性

应用机器学习需要适应不确定性。

不确定性意味着处理不完美或不完整的信息。

不确定性是机器学习领域的基础,但它也是给初学者,尤其是那些来自开发者背景的初学者带来最多困难的方面之一。

对于软件工程师和开发人员来说,计算机是确定性的。你编写一个程序,计算机就按照你的指令执行。算法的分析基于空间或时间复杂度,可以选择优化对项目最重要的方面,如执行速度或内存限制。

使用机器学习进行预测建模,涉及拟合一个模型,将输入示例映射到输出,例如回归问题中的一个数字,或分类问题中的一个类别标签。

很自然地,初学者会提出一些合理的问题,例如:

  • 我应该使用哪些最佳特征?
  • 什么是我数据集的最佳算法?

这些问题的答案是未知的,甚至可能是不可知的,至少是无法精确知道的。

计算机科学的许多分支主要处理完全确定和肯定的实体。[...] 鉴于许多计算机科学家和软件工程师在一个相对干净和确定的环境中工作,机器学习大量使用概率论可能会令人惊讶。

— 第54页, 《深度学习》, 2016.

这是初学者遇到困难的主要原因。

答案之所以未知,是因为存在不确定性,而解决方案是系统地评估不同的解决方案,直到为一个特定的预测问题发现一个好的或足够好的特征集和/或算法。

机器学习中有三个主要的不确定性来源,在接下来的部分中,我们将依次探讨这三个可能的来源。

想学习机器学习概率吗?

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

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

观测中的噪声

来自领域的观测数据并非清晰无误;相反,它们包含噪声。

来自领域的观测通常被称为“实例”或“样本”,是数据的一行。它是被测量或收集到的东西。它是描述对象或主体的的数据。它是模型的输入和期望的输出。

一个例子可能是一组对一朵鸢尾花的测量值,以及在训练数据的情况下测量的花的种类。

对于需要进行预测的新数据,它只有测量值而没有花的种类。

噪声指的是观测中的可变性。

可变性可能是自然的,比如一朵比正常更大或更小的花。它也可能是一个错误,比如测量时的失误或记录时的输入错误。

这种可变性不仅影响输入或测量值,也影响输出;例如,一个观测可能有一个不正确的类别标签。

这意味着虽然我们有领域的观测数据,但我们必须预料到一些可变性或随机性。

现实世界,以及现实数据,是混乱或不完美的。作为实践者,我们必须对数据保持怀疑,并开发系统来预期甚至利用这种不确定性。

这就是为什么我们花费大量时间来审查数据统计和创建可视化,以帮助识别那些异常或不寻常的案例:即所谓的数据清洗。

领域覆盖不完整

用于训练模型的领域观测数据是一个样本,根据定义,它是不完整的。

在统计学中,随机样本指的是从领域中选择的一组观测,没有系统性偏差。然而,总会存在一些偏差。

例如,我们可能选择在一个花园里测量随机选择的花的大小。这些花是随机选择的,但范围仅限于一个花园。范围可以扩大到一个城市的花园,一个国家,一个大陆,等等。

样本中需要有适当水平的方差和偏差,以使样本能够代表数据或模型将被用于的任务或项目。

我们的目标是收集或获得一个足够具有代表性的随机观测样本,来训练和评估机器学习模型。通常,我们对采样过程几乎没有控制权。相反,我们访问一个数据库或CSV文件,我们拥有的数据就是我们必须使用的数据。

在所有情况下,我们永远不会拥有所有的观测数据。如果我们有,就不需要预测模型了。

这意味着总会有一些未被观测到的情况。问题领域中总会有一部分是我们没有覆盖到的。无论我们如何鼓励模型进行泛化,我们只能希望我们能覆盖训练数据集中的情况以及那些未被覆盖的显著情况。

这就是为什么我们将数据集分成训练集和测试集,或者使用像k折交叉验证这样的重采样方法。我们这样做是为了处理数据集代表性的不确定性,并估计建模过程在未使用数据上的性能。

问题模型不完美

一个机器学习模型总会有一些错误。

这通常被概括为“所有模型都是错误的”,或者更完整地体现在乔治·博克斯的一句格言中:

所有模型都是错误的,但有些是有用的。

这不仅适用于模型本身,这个产物,也适用于准备它的整个过程,包括数据的选择和准备,训练超参数的选择,以及对模型预测的解释。

模型错误可能意味着不完美的预测,比如在回归问题中预测的数量与预期相差甚远,或者预测的类别标签与预期不符。

考虑到我们刚刚讨论的关于数据的不确定性,无论是在观测噪声方面还是在领域覆盖不完整方面,这种预测错误都是预料之中的。

另一种类型的错误是遗漏错误。为了泛化到新的情况,我们忽略或抽象了一些细节。这是通过选择更简单但对数据具体情况更鲁棒的模型来实现的,而不是选择可能高度专门化于训练数据的复杂模型。因此,我们可能并且经常会选择一个已知在训练数据集上会出错的模型,期望该模型能更好地泛化到新情况并具有更好的整体性能。

在许多情况下,使用一个简单但不确定的规则,比使用一个复杂但确定的规则更实用,即使真实的规则是确定性的,并且我们的建模系统有能力容纳一个复杂的规则。

— 第55页, 《深度学习》, 2016.

尽管如此,预测是必需的。

鉴于我们知道模型会犯错,我们通过寻求一个足够好的模型来处理这种不确定性。这通常被解释为选择一个与朴素方法或其他已建立的学习模型相比具有技巧的模型,即具有良好的相对性能。

如何管理不确定性

应用机器学习中的不确定性是使用概率来管理的。

概率论是数学的一个领域,旨在处理、操纵和利用不确定性。

模式识别领域的一个关键概念是不确定性。它既源于测量中的噪声,也源于数据集的有限规模。概率论为不确定性的量化和处理提供了一个一致的框架,并构成了模式识别的核心基础之一。

— 第12页, 《模式识别与机器学习》, 2006.

事实上,概率论是更广泛的人工智能领域的核心。

智能体可以通过使用概率和决策理论的方法来处理不确定性,但首先它们必须从经验中学习它们关于世界的概率理论。

— 第802页, 《人工智能:一种现代方法》, 第3版, 2009.

概率论的方法和工具为思考机器学习所解决的预测建模问题的随机或随机性提供了基础和方式;例如:

  • 在噪声观测方面,概率和统计帮助我们理解和量化我们从领域中观测到的变量的期望值和变异性。
  • 在领域覆盖不完整方面,概率帮助我们理解和量化领域中观测的预期分布和密度。
  • 在模型误差方面,概率帮助我们理解和量化我们的预测模型在应用于新数据时的预期能力和性能方差。

但这仅仅是开始,因为概率为许多机器学习模型的迭代训练提供了基础,这被称为最大似然估计,它支持着线性回归、逻辑回归、人工神经网络等模型。

概率论也为开发特定算法提供了基础,例如朴素贝叶斯,以及机器学习中整个子领域的研究,例如像贝叶斯信念网络这样的图模型。

概率方法构成了大量用于数据挖掘和机器学习技术的基础。

— 第336页, 《数据挖掘:实用机器学习工具与技术》. 第4版, 2016.

我们在应用机器学习中使用的程序是经过精心选择的,以解决我们已经讨论过的不确定性来源,但是理解为什么选择这些程序需要对概率和概率论有基本的了解。

进一步阅读

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

书籍

文章

总结

在这篇文章中,你发现了机器学习中不确定性带来的挑战。

具体来说,你学到了:

  • 不确定性是机器学习初学者,尤其是开发人员遇到的最大困难来源。
  • 数据中的噪声、领域覆盖不完整以及模型不完美,是机器学习中不确定性的三个主要来源。
  • 概率论为量化、处理和利用应用机器学习中的不确定性提供了基础和工具。

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

掌握机器学习中的概率!

Probability for Machine Learning

增进你对概率的理解

...只需几行python代码

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

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

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

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

查看内容

《机器学习中的不确定性入门指南》的16条回应

  1. Martin Topinka 2019年9月13日 上午5:20 #

    谢谢你!这让我想到一个问题,如何在机器学习算法中处理不确定性?我经常看到 xi, yi 的训练样本,但从未见过 xi, yi +/-err。

  2. Aoyong 2019年9月13日 上午6:50 #

    很好的开篇。你会介绍如何衡量不确定性的内容吗?

  3. Ilona Brinkmeier 2019年9月13日 下午10:47 #

    非常感谢您关于机器学习不确定性的精彩文章。在医疗审计讨论中,这是数据科学家或机器学习工程师必须回答的最重要的问题之一。您的写作方式非常有帮助。

  4. Antunes 2019年9月14日 上午1:33 #

    “不确定性是机器学习初学者,尤其是开发人员遇到的最大困难来源。”

    我想说“尤其是客户!” 🙂

    我的意思是,当他们要求一个预测时……他们期望我们能够(确定性地)预测“未来”。

  5. pooja 2019年9月26日 下午10:24 #

    我喜欢你的博客,我所有的问题都通过阅读这个博客解决了。
    请继续更新,谢谢。

  6. Maryam 2020年6月3日 上午6:33 #

    亲爱的 Jason,
    我想写一篇关于在深度学习中使用不确定性的论文。
    我想确定将医学图像放入神经网络进行分类时,哪些样本是不确定的。

    我正在使用 Keras,只找到了很少关于实现 MC drop out 或 Mean-field Variational Inference 作为不确定性方法的教程链接。

    您能给我一些关于用 Keras 在分类器上实现 Monte Carlo drop out 或 Mean-field Variational Inference 的教程吗?

    提前感谢
    Maryam

    • Jason Brownlee 2020年6月3日 上午8:05 #

      谢谢你的建议,希望我将来能写关于这个主题的文章。

  7. Amir 2021年2月25日 上午10:04 #

    感谢您有趣的帖子。
    我们如何改善机器学习中的模型不确定性?有什么关于模型不确定性减少的参考资料吗?

  8. Karthik M 2023年4月25日 上午12:17 #

    你好 Jason,

    一如既往的精彩介绍。是否有一个示例问题(分类问题),您在其中提供了代码来捕捉与某个分类相关的不确定性?

    这在您的书《机器学习概率》中是否有所涉及?

    如果我正在寻找一个已解决的示例问题,最好的来源是什么?

    谢谢你,

    Karthik

发表评论

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