机器学习中的基本概念

什么是机器学习的基础概念?

我发现,要了解和掌握机器学习的基础概念,最好的方法是回顾机器学习教科书的介绍章节,并观看在线课程中第一个模型的视频。

Pedro Domingos 是华盛顿大学的机器学习讲师和教授,也是一本新书《万能算法:终极学习机器的探索将如何重塑我们的世界》的作者。

Domingos 在 Coursera 上有一个免费的机器学习在线课程,恰当地命名为“机器学习”。每个模块的视频都可以在 Coursera 上随时预览。

在这篇文章中,您将从 Domingos 的机器学习课程的第一周内容中总结出机器学习的基础概念。

Basic Concepts in Machine Learning

机器学习中的基本概念
照片来源:Travis Wise,部分版权保留。

机器学习

讲座的前半部分是关于机器学习的总体主题。

什么是机器学习?

我们为什么要关心机器学习?

机器学习的一项突破将价值连城,抵得上十个微软。

比尔·盖茨,微软前董事长

机器学习就是让计算机自己编程。如果说编程是自动化,那么机器学习就是自动化自动化的过程。

编写软件是一个瓶颈,我们没有足够好的开发人员。让数据代替人们工作。机器学习是使编程可扩展的方法。

  • 传统编程:数据和程序在计算机上运行以产生输出。
  • 机器学习:数据和输出在计算机上运行以创建程序。此程序可用于传统编程。

机器学习就像农业或园艺。种子是算法,养分是数据,园丁是你,植物是程序。

Traditional Programming vs Machine Learning

传统编程 vs 机器学习

机器学习的应用

机器学习的示例应用

  • 网络搜索:根据您最可能点击的内容对页面进行排名。
  • 计算生物学:基于过去的实验,在计算机中进行理性药物设计。
  • 金融:决定向谁发送哪些信用卡优惠。信用优惠的风险评估。如何决定在哪里投资。
  • 电子商务:预测客户流失。交易是否欺诈。
  • 太空探索:空间探测器和射电天文学。
  • 机器人技术:如何在新环境中处理不确定性。自动驾驶。无人驾驶汽车。
  • 信息提取:跨网络查询数据库。
  • 社交网络:关系和偏好数据。机器学习从数据中提取价值。
  • 调试:用于计算机科学问题,如调试。这是一个劳动密集型的过程。可以建议错误的可能位置。

您的兴趣领域是什么?您可以在该领域中使用机器学习做什么?

机器学习的关键要素

有数以万计的机器学习算法,每年都有数百种新算法被开发出来。

每种机器学习算法都包含三个组成部分

  • 表示:如何表示知识。例如决策树、规则集、实例、图模型、神经网络、支持向量机、模型集成等。
  • 评估:评估候选程序(假设)的方式。例如准确率、预测率和召回率、均方误差、似然、后验概率、成本、间隔、熵 k-L 散度等。
  • 优化:生成候选程序的方式,也称为搜索过程。例如组合优化、凸优化、约束优化。

所有机器学习算法都是这三个组成部分的组合。这是理解所有算法的框架。

学习类型

有四种类型的机器学习

  • 监督学习:(也称为归纳学习)训练数据包含期望的输出。这是垃圾邮件,这是不是,学习是受监督的。
  • 无监督学习:训练数据不包含期望的输出。例如聚类。很难说什么是好的学习,什么不是。
  • 半监督学习:训练数据包含少数期望的输出。
  • 强化学习:通过一系列动作获得奖励。人工智能类型喜欢它,这是最有雄心的学习类型。

监督学习是最成熟、研究最多、也是大多数机器学习算法所使用的学习类型。有监督学习比无监督学习要容易得多。

归纳学习是指我们通过数据(x)形式的函数示例和函数输出(f(x))来学习。归纳学习的目标是学习新数据(x)的函数。

  • 分类:当学习的函数是离散的时。
  • 回归:当学习的函数是连续的时。
  • 概率估计:当函数的输出是概率时。

机器学习实践

机器学习算法在实践中只是数据分析师或数据科学家使用机器学习的很小一部分。在实践中,这个过程通常是这样的:

  1. 开始循环
    1. 理解领域、先验知识和目标。与领域专家交谈。通常目标非常不明确。您尝试的事情常常多于您能完全实现的。
    2. 数据集成、选择、清理和预处理。这通常是最耗时的一部分。拥有高质量的数据很重要。您拥有的数据越多,由于数据不干净,事情就越糟糕。垃圾进,垃圾出。
    3. 学习模型。有趣的部分。这一部分非常成熟。工具是通用的。
    4. 结果解释。有时模型如何工作并不重要,只要它能产生结果即可。其他领域要求模型易于理解。您将受到人类专家的挑战。
    5. 整合和部署发现的知识。实验室里的大多数成功项目在实际中都没有被使用。要让某样东西被使用非常困难。
  2. 结束循环

这不是一次性过程,而是一个循环。您需要运行该循环,直到获得可用于实践的结果。此外,数据可能会发生变化,需要新的循环。

归纳学习

讲座的第二部分是关于归纳学习的主题。这是监督学习的通用理论。

什么是归纳学习?

从归纳学习的角度来看,我们得到了输入样本 (x) 和输出样本 (f(x)),问题在于估计函数 (f)。具体来说,问题是从样本和映射中进行泛化,以便在未来能够有效地估计新样本的输出。

在实践中,估计函数几乎总是太难了,所以我们正在寻找函数的非常好的近似。

一些实用的归纳示例是

  • 信用风险评估.
    • x 是客户的属性。
    • f(x) 是信用是否获批。
  • 疾病诊断.
    • x 是患者的属性。
    • f(x) 是他们患有的疾病。
  • 人脸识别.
    • x 是人们面部的位图。
    • f(x) 是为该面孔分配姓名。
  • 自动转向.
    • x 是汽车前置摄像头的位图图像。
    • f(x) 是方向盘应转动的角度。

何时应该使用归纳学习?

有些问题不适合归纳学习。何时使用和何时不使用监督机器学习很重要。

4 个归纳学习可能是一个好主意的解决的问题

  • 没有人类专家的领域。如果人们不知道答案,他们就无法编写程序来解决它。这些是真正发现的领域。
  • 人类可以完成任务,但没有人能描述如何完成。有些问题人类可以做,但计算机无法或不擅长做。例如骑自行车或开车。
  • 期望函数频繁更改的问题。人类可以描述它,也可以编写程序来做,但问题变化太频繁。成本效益不高。例如股市。
  • 每个用户都需要自定义函数的问题。为每个用户编写自定义程序不符合成本效益。例如 Netflix 或 Amazon 上的电影或书籍推荐。

归纳学习的本质

我们可以编写一个对于我们拥有的数据都能完美工作的程序。这个函数将被最大程度地过拟合。但我们不知道它在新数据上的表现如何,可能会非常糟糕,因为我们可能永远不会看到相同的示例。

数据是不够的。您可以预测任何您想要的东西。这是一种天真的假设,没有对问题做任何假设。

在实践中,我们不天真。存在一个潜在的问题,我们对函数的准确近似感兴趣。在输入状态数量上存在双指数数量的可能分类器。找到函数的良好近似非常困难。

我们可以尝试某些类别的假设。这就是解决方案可能采取的形式,或者说是表示。我们事先无法知道哪种形式最适合我们的问题。我们必须通过实验来发现什么对问题有效。

两种看待归纳学习的视角

  • 学习是消除不确定性。拥有数据可以消除一些不确定性。选择一个假设类别可以消除更多不确定性。
  • 学习是猜到一个好的且小的假设类别。这需要猜测。我们不知道解决方案,必须使用试错过程。如果您能确切地了解该领域,您就不需要学习。但我们不是在黑暗中猜测。

你可能是错的。

  • 我们的先验知识可能是错的。
  • 我们对假设类别的猜测可能是错的。

在实践中,我们从一个小的假设类别开始,并慢慢扩大假设类别,直到获得一个好的结果。

学习归纳学习的框架

机器学习中使用的术语

  • 训练样本:来自 x 的样本,包括其目标函数的输出。
  • 目标函数:从 x 到 f(x) 的映射函数 f。
  • 假设:f 的近似,一个候选函数。
  • 概念:一个布尔目标函数,代表 1/0 类值的正例和负例。
  • 分类器:学习程序输出一个可用于分类的分类器。
  • 学习器:创建分类器的过程。
  • 假设空间:算法可以创建的 f 的所有可能近似的集合。
  • 版本空间:假设空间中与观测数据一致的子集。

机器学习中的关键问题

  • 什么是好的假设空间?
  • 哪些算法适用于该空间?
  • 如何优化在未见数据上的准确率?
  • 我们如何对模型有信心?
  • 是否存在计算上不可处理的学习问题?
  • 如何将应用问题制定为机器学习问题?

选择假设空间有 3 个方面的考虑

  • 大小:要选择的假设数量。
  • 随机性:随机或确定性。
  • 参数:参数的数量和类型。

有 3 个属性可以用来选择算法

  • 搜索过程
    • 直接计算:无搜索,只需计算所需。
    • 局部搜索:通过假设空间搜索来改进假设。
    • 构造性搜索:逐步构建假设。
  • 时序
    • 饥渴式学习:预先进行学习。大多数算法都是饥渴式。
    • 延迟式学习:在需要时进行学习。
  • 在线 vs 批量
    • 在线学习:基于观察到的每个模式进行学习。
    • 批量学习:对模式组进行学习。大多数算法是批量式的。

总结

在这篇文章中,您了解了机器学习的基础概念。

总而言之,这些是:

  • 什么是机器学习?
  • 机器学习的应用
  • 机器学习的关键要素
  • 学习类型
  • 机器学习实践
  • 什么是归纳学习?
  • 何时应该使用归纳学习?
  • 归纳学习的本质
  • 学习归纳学习的框架

这些是在大多数机器学习课程的介绍以及任何关于该主题的优秀教科书的开篇章节中涵盖的基础概念。

虽然本文针对的是学术界,但作为从业者,牢固掌握这些概念对于更好地理解机器学习算法的普遍行为非常有益。

113 条关于《*机器学习基础概念*》的回复

  1. Deepak 2016年7月17日下午2:28 #

    这确实是一篇非常好的文章。我是机器学习初学者,这篇文章帮助我了解了基本信息。谢谢你,Jason。

  2. Lal Thomas 2016年9月5日 下午5:27 #

    非常好的介绍……

    • Jason Brownlee 2016年9月6日 上午8:03 #

      很高兴您觉得有用,Lal。

    • Ms Anupama Deshpande 2022年2月18日 上午7:42 #

      很好开始

  3. Lal Thomas 2016年9月5日 下午7:28 #

    @Jason 我发现有一个错字“martin”,我认为应该是 margin…

  4. Namnnb 2016年9月28日 下午5:08 #

    这篇文章确实非常有用。但作为新手,我认为最后一部分,从“学习归纳学习的框架”开始,因为有太多新概念而很难理解。我知道我需要学习更多。
    非常感谢,Jason。
    祝您和您的家人一切顺利。

  5. soufiane 2016年10月20日 下午7:55 #

    @Jason 非常有用的文章。谢谢。

    • Jason Brownlee 2016年10月21日 上午8:34 #

      很高兴听到您这么说 soufiane。

      哪些话题最有趣?

  6. Anees Ahmed Awan 2016年11月13日 上午6:53 #

    谢谢 Jason Brownlee,这篇文章很好也很吸引人……非常有帮助。

  7. Jerry 2016年11月28日 下午3:28 #

    感谢这个很棒的机器学习入门!我一直对这个主题很感兴趣,但从未深入了解过。

    从大学毕业(物理学硕士 [激光])后,我手头有一些空闲时间,开始找工作。我对进入这个庞大且不断增长的领域的前景越来越感到兴奋。

    再次感谢您!

  8. Abhishek Dwivedi 2017年1月4日 下午5:30 #

    作为初学者,这让我很有信心,我期望的机器学习内容它都涵盖了。非常感谢,对初学者非常有帮助。

  9. muhammed gabry 2017年2月8日 下午6:10 #

    归纳学习算法和类比学习算法有什么区别?

  10. Irfan Ahmad 2017年2月19日 上午10:02 #

    很好的解释。你能帮助我理解人工智能以及机器学习和人工智能的区别吗?

    此致,
    Irfan

    • Jason Brownlee 2017年2月20日 上午9:24 #

      你好 Irfan,

      机器学习是人工智能的一个子领域,专注于从数据中进行推断。人工智能涉及智能的所有方面。

      我会建议您专注于机器学习中最有用的部分是预测建模。

  11. DEVENDRA BHADORIYA 16MCA1065 2017年5月11日 上午6:06 #

    谢谢 Jason 先生,关于机器学习的知识真是太棒了。对初学者非常有帮助。

  12. Sagar Gauda 2017年5月12日 下午8:25 #

    这篇文章确实写得很好,感谢您让我熟悉了那些新术语。期待更多信息。

  13. Majid 2017年5月16日 上午12:40 #

    嗨,Jason,

    和别人一样,我也应该说这是一个非常好的概念性介绍。您能否添加或参考一个使用 ML 解决的简单实际示例?到目前为止,我还没有找到任何有用的来源详细说明 ML 的不同步骤,特别是其背后的数学。

  14. Addisie 2017年5月19日 下午8:14 #

    非常好的文章,我获得了相关的 ML 基本概念。

  15. Saksham Sinha 2017年5月23日 下午7:52 #

    对于像我这样的初学者来说,这是一篇很棒的文章。我学会了 ML 的基本术语和概念。

  16. Raghav 2017年5月27日 下午3:22 #

    谢谢 Jason 博士。

    您的文章非常实用和全面。在某种程度上,我非常感激。

    此致,Raghav

  17. Vijay 2017年6月16日 下午9:35 #

    伟大的作品

  18. kevin 2017年6月24日 上午5:24 #

    那么,您建议我从哪里开始,以便更好地了解这个领域?

  19. Mohit 2017年7月17日下午8:09 #

    您能否详细解释一下如何根据搜索过程选择算法?

  20. meghana 2017年8月7日下午8:40 #

    非常好的文章。谢谢Jason!!

  21. Jann Krynauw 2017年8月8日下午2:06 #

    谢谢Jason,在线学习是否等同于 batch-size = 1?

  22. Ramesh Veeramallu 2017年8月13日下午1:06 #

    非常有信息量的文章。谢谢Jason……

  23. pavan 2017年8月15日晚上11:44 #

    好文章Jason。如果您有这一系列的后续文章,请告知我们。我们会关注的

  24. Kamila 2017年8月28日晚上11:01 #

    我正要阅读并深入了解。但我不能在不感谢您之前离开您的网站,您有能力以一种简单的方式撰写非常复杂的事物。这表明您拥有非常丰富的知识,并且通过您的文章,可以轻松理解很多事情。继续做你正在做的事情,因为你做得很好。您对我非常有帮助,谢谢。

  25. Jeevan 2017年9月5日凌晨3:21 #

    嗨,Jason,

    感谢这个精彩的开始。请问机器学习的前提是什么?我们需要任何编程经验吗?

  26. Dave 2017年10月16日晚上10:52 #

    嗨,Jason,

    关于与数据所有者共同制定一个好的假设有什么建议吗?

    大多数情况下,“我想知道‘这个’——这是我的数据”。

  27. Neetirajsinh Chhasatia 2018年2月24日凌晨12:08 #

    你能区分以下术语吗?
    -深度学习
    -机器学习
    -神经网络
    -人工智能

    它们之间有什么区别?

    • Jason Brownlee 2018年2月24日上午9:12 #

      机器学习是人工智能的一个子领域。
      深度学习和神经网络是同一件事,是机器学习的一个子领域。

  28. Annu Choudhary 2018年2月28日凌晨6:13 #

    很有用的东西 (Y)

  29. Doug 2018年3月11日凌晨2:31 #

    Jason,这里有个错别字

    “有些问题归纳学习不是一个好主意”

    应该是“good”而不是“hood”。

    谢谢

  30. Dulaj Chathuranga 2018年4月15日下午5:06 #

    我是新手。很好的介绍。谢谢你。

  31. Shashank 2018年5月14日下午2:01 #

    谢谢先生
    为准备AI考试提供了帮助
    我在网上搜索了归纳学习,通过QUORA找到了这里
    再次感谢!!

  32. Dr.M.Sujithra 2018年6月13日下午2:45 #

    你好

    写得很好的介绍

    清晰的定义

    所有信息都切中要点。

    非常有用的

    非常感谢你

    期待从您的资料中学习更多

  33. Mrb 2018年7月9日下午2:23 #

    这篇文章在两年后仍然能引起读者的共鸣,这本身就说明了它的价值。谢谢!

  34. ankur 2018年7月18日凌晨2:02 #

    嗨,Jason,

    这是一篇内容翔实的好文章。您能解释一下版本空间学习是如何工作的吗?

    此致,
    Ankur Gupta

  35. Phan Dat 2018年8月29日下午1:19 #

    非常感谢您的精彩介绍!

  36. Lalitha 2018年9月21日下午5:22 #

    非常清晰且有帮助..

  37. Amit Chaudhary 2018年9月23日下午4:26 #

    这是一个很棒的机器学习教程……

  38. TATHAGATA NATH 2018年10月14日上午5:39 #

    非常有用的文章。我是机器学习的初学者。你能给我发其他文章吗?

    • Jason Brownlee 2018年10月14日上午6:05 #

      谢谢。

      您可以在博客上访问所有文章。

  39. Star-Lord 2018年10月29日上午9:42 #

    感谢您的文章。

    一些评论
    为术语/算法属性添加现实生活中的类比/具体示例会很有趣……
    结尾处有错别字?“patters”而不是“patterns”?
    读者评论中的一些信息也可以应用到文章中

  40. sanjeev 2019年2月11日下午5:17 #

    很棒的文章……

    我们在机器学习建模时使用哪些统计方法……。
    我的意思是,如果我们有一个数据集,开始时是否应该有一个假设……步骤是什么,如果您能阐明一下,那将非常有帮助……

  41. raybamford 2019年3月3日上午10:28 #

    Jason,这是一个非常好的总结,谢谢分享。

    一些似乎值得在此提及的附加主题
    1.泛化 — 预测模型的目的是很好地预测模型从未见过的新数据,而不是“拟合”我们已有的数据。
    2.模型验证 — 如何评估模型性能;将数据划分为训练集、验证集和测试集;交叉验证;避免数据窥探、选择偏差、幸存者偏差、前瞻偏差等等。以我的经验来看,模型验证是 ML 中最具挑战性的方面之一(并且做得好可能极大地增加了构建和管理数据集的挑战)
    3.偏差/方差权衡 — 平衡过拟合(高方差、复杂模型)和欠拟合(高偏差、简单模型)的重要性;模型越复杂,避免过拟合所需的数据就越多;深度学习模型比传统(更简单)的 ML 模型需要多得多的标记数据
    4.维度诅咒 — 随着预测变量(自变量)数量的增加,您需要指数级地增加数据量以避免欠拟合;降维技术
    5.特征工程 — 与领域专业知识和数据准备相关;通过良好的领域专家,您通常可以构建比原始数据性能好得多的特征。

    好的,够多了。我开始回复时只想提泛化和验证……这是一个非常丰富的主题!希望这有帮助。再次感谢您的辛勤工作。

  42. AbdiMo 2019年5月22日上午10:25 #

    您能解释一下机器学习系统中使用的错误函数类型吗?

  43. Shahbaaz 2019年7月29日下午6:13 #

    Jason你好,这篇文章对我帮助很大,但我在这个领域是初学者,甚至不懂编程,请帮帮我。

  44. Zainab Talib Drweesh 2019年8月5日晚上9:57 #

    感谢您的文章。请您给我一些关于归纳学习的参考资料,我非常需要……

  45. Austin 2019年10月14日凌晨1:52 #

    Jason你好。我喜欢您的文章,感谢您的撰写。我也写了一篇面向初学者的机器学习文章,刊登在youcodetoo.com上。请告诉我您的想法!

  46. gunasekaran 2019年12月10日下午4:29 #

    Jason你好。感谢您的这篇文章,能否用例子更清晰地说明机器学习?

  47. Subhabrata 2019年12月19日晚上8:32 #

    对初学者来说这是一个非常好的概述。您愿意分享一些最常见的机器学习面试问题吗?谢谢

    • Jason Brownlee 2019年12月20日上午6:44 #

      感谢您的建议。

      抱歉,我不知道面试问题。我是应用机器学习解决问题的专家,而不是求职面试。

  48. NIkhil 2020年1月23日上午7:39 #

    非常详细且信息丰富,在一个页面上

  49. Typo192 2020年1月25日凌晨2:56 #

    在“归纳学习的本质”下有一个错别字。第一段中的“de”应该是“be”。

  50. Saeid 2020年9月18日上午6:57 #

    Jason你好。感谢您的这篇精彩文章。如果我想开始学习ML,我需要扎实的统计和代数知识吗?

  51. Jeetech Academy 2022年3月7日下午2:07 #

    机器学习是一个构建更好职业的领域。我一直在寻找一些能帮助我成为机器学习工程师的要点。读完您的博客后,我脑海中的每一幅画面都变得清晰了。现在我可以设计我的职业道路了。感谢您提供的最佳职业建议。您的博客包含精彩的信息。

  52. Odipo 2023年7月15日下午1:03 #

    哇,这是我第一次阅读机器学习!我正认真地深入研究它。对一个主题的绝佳介绍。在我走入新世界时,我会寻求您的指导。谢谢

留下回复

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