如何看待机器学习

机器学习是一个庞大而跨学科的研究领域。

你可以通过机器学习取得令人印象深刻的成果,并找到解决非常具有挑战性问题的方法。但这仅仅是机器学习这一广阔领域中的一小部分,通常被称为预测建模或预测分析。

在这篇文章中,你将了解到如何改变你对机器学习的思考方式,以便作为一名机器学习实践者,它能最好地为你服务。

阅读本文后,你将了解:

  • 什么是机器学习以及它与人工智能和统计学有何关系。
  • 你应该关注的机器学习领域。
  • 如何思考你的问题以及解决问题的机器学习方案。

让我们开始吧。

How to Think About Machine Learning

如何看待机器学习
照片作者:Rajarshi MITRA,保留部分权利。

概述

这篇文章分为3个部分;它们是

  1. 你感到困惑
  2. 什么是机器学习?
  3. 你的机器学习

你感到困惑

你有一个机器学习问题要解决,但你对机器学习到底是什么感到困惑。

感到困惑是有充分理由的。这对于初学者来说确实令人困惑。

机器学习是一个庞大的研究领域,如果你专注于解决问题,其中很多内容可能与你无关。

在这篇文章中,我希望能为你 esclarecer 疑惑。

我们将首先用最广泛的术语描述机器学习,以及它与统计学和人工智能等其他研究领域的关系。

之后,我们将深入探讨你为了实际工程和解决问题而真正需要了解的机器学习方面。

什么是机器学习?

机器学习是计算机科学的一个领域,关注那些能够学习的程序。

机器学习领域关注的问题是如何构建能够通过经验自动改进的计算机程序。

机器学习,1997年。

这范围太广了。

有多种类型的学习,多种类型的反馈可供学习,以及多种可以学习的东西。

这可以涵盖各种类型的学习,例如:

  • 开发代码以研究生物种群在进化过程中如何“学习”适应其环境。
  • 开发代码以研究大脑中的一个神经元如何响应其他神经元的刺激而“学习”。
  • 开发代码以研究蚂蚁如何“学习”从家到食物来源的最佳路径。

我故意给出这些深奥的例子,以帮助你真正理解机器学习是一个广泛而深远的研究项目。

你可能更熟悉的另一个例子是:

  • 开发代码以研究如何“学习”历史数据中的模式。

这不那么光鲜,但却是我们作为实践者深感兴趣的机器学习领域的基础。

这个领域并非与其他例子截然不同;在学习方法、基本任务、学习评估方式等方面,它们之间可能存在很多重叠。

那么人工智能呢?

机器学习是人工智能的一个子领域。

它与机器学习重叠。

人工智能也是计算机科学的一个领域,但它关注的是开发智能程序,或者能够做智能事情的程序。

智能涉及学习,例如机器学习,但也可能涉及推理、规划、记忆等其他方面。

这可以涵盖各种类型的学习,例如:

  • 开发代码以研究如何优化物流规划。
  • 开发代码以研究如何理解一段文本。
  • 开发代码以研究如何感知照片中的内容。

人工智能通常是在环境中代理的背景下构建的,旨在解决某个问题,但这并非必须如此。

机器学习也可以很容易地命名为人工智能学习,以保持与人工智能的一致性并帮助初学者。

界限是模糊的。机器学习问题也是人工智能问题。

那统计学呢?

统计学,或者说带计算机的应用统计学,是数学的一个子领域,关注数据的描述和理解其中的关系。

这可以涵盖各种类型的学习,例如:

  • 开发模型以总结变量的分布。
  • 开发模型以最佳地表征两个变量之间的关系。
  • 开发模型以测试两组观测值之间的相似性。

它也与机器学习中关注数据模式学习的领域有所重叠。

许多用于统计学中理解数据的方法,也可以在机器学习中用于学习数据模式。这些任务可以被称为机器学习或应用统计学。

你的机器学习

机器学习是一个广阔的研究领域,它可以帮助你解决特定的问题。

但你不需要了解所有这些。

  • 你不是在研究机器学习中那种深奥的学习类型的学者。
  • 你不是在尝试像人工智能那样制造一个智能代理。
  • 你对学习数据中变量之间关系的原因不感兴趣,就像统计学中那样。

事实上,在学习数据关系方面

  • 你不是在研究算法的能力。
  • 你不是在开发一个全新的理论或算法。
  • 你不是在将现有机器学习算法扩展到新情况。

这些可能是我们可能感兴趣的机器学习领域中的活动,但它们是学术活动,而不是像你这样的实践者的活动。

那么你需要关注机器学习的哪些部分呢?

我认为有两种思考机器学习的方式

  1. 从你试图解决的问题的角度。
  2. 从你所需的解决方案的角度。

你的机器学习问题

你的问题可以最好地描述为:

寻找一个模型或程序,它能最佳地利用包含输入和输出的历史数据,以便在未来给定新的和未见过的输入时,熟练地预测输出。

这非常具体。

首先,它摒弃了整个机器学习子领域,例如无监督学习,转而专注于一种称为监督学习的学习类型以及所有符合该类别的算法。

这并不意味着你不能利用无监督方法;它只是意味着你不把注意力集中在那里,至少一开始不是。

其次,它给你一个明确的目标,凌驾于所有其他目标之上:即模型技能,而牺牲其他考量,如模型复杂性、模型可解释性等。

同样,这并不意味着这些不重要,只是它们是在模型技能之后或与模型技能结合考虑的。

第三,以这种方式来界定你的问题,完美地契合了另一个研究领域,即预测建模。这是一个借鉴机器学习方法,旨在开发能够熟练进行预测的模型的研究领域。

在一些商业领域,这个领域也可能被称为预测分析,它不仅包含建模部分,还包括收集和准备数据以及部署和维护模型的相关活动。

最近,这项活动也可以被称为数据科学,尽管这个短语也带有除了解决问题之外,还要发明或发现问题的含义。

我认为这项活动叫什么并不重要。但我确实认为,深入理解你对机器学习的兴趣和使用是高度具体且与学者们的其他用途不同的,这一点非常重要。

它允许你筛选阅读材料和选择工具,以便专注于你正在努力解决的问题。

你的机器学习解决方案

你所需的解决方案可最佳描述为:

一个模型或程序,它能自动创建历史数据中输入与相关输出之间未知潜在关系的最可能近似。

这又非常具体了。

你需要一个自动化的方法,它能生成一个程序或模型,你可以用它来进行预测。

你不能坐下来编写代码来解决你的问题。它完全是数据特定的,而且你有很多数据。

事实上,这类问题抵制自上而下的手工编码解决方案。如果你能坐下来编写一些if语句来解决你的问题,你就不会需要机器学习解决方案。那将是一个编程问题。

你需要的机器学习方法将学习历史数据中输入和输出之间的关系。

这种框架让你能够思考实际的、潜在的、未知的映射函数可能是什么样子,以及噪声、损坏和历史数据采样如何影响不同建模方法对该映射的近似。

如果没有这个框架,你可能会疑惑以下问题:

  • 为什么没有一个超级算法或一套参数。
  • 为什么专家不能直接告诉你使用哪个算法。
  • 为什么你的模型预测不能达到零错误率。

它能帮助你认识到你正在解决的预测建模问题的模糊性,并设定合理的预期。

下一步

既然你已经知道如何思考机器学习,下一步就是改变你思考用机器学习解决方案解决问题的过程的方式。

提示,请参阅这篇文章:

进一步阅读

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

文章

文章

总结

在这篇文章中,你了解了如何改变你对机器学习的思考方式,以便作为一名机器学习实践者,它能最好地为你服务。

具体来说,你学到了:

  • 什么是机器学习以及它与人工智能和统计学有何关系。
  • 你应该关注的机器学习领域。
  • 如何思考你的问题以及解决问题的机器学习方案。

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

对《如何思考机器学习》的41个回复

  1. Bart 2018年4月2日 上午6:51 #

    你好 Jason,

    实际上,我的经验和你写的一些内容正好相反。
    “你不能坐下来编写代码来解决你的问题。它完全是数据特定的,而且你有很多数据。”

    事实上,从我的角度来看,数据访问是一个问题。我们是否需要另一种算法或另一个众所周知的神经网络层?

    事实上,我的感觉是我们拥有大量的编程技能。然而,数据获取的困难/稀缺是一个瓶颈(与Facebook/Google/Amazon这样的公司不同)。

    我想问你是否有关于机器学习问题数据访问/收集的提示/建议。你能分享什么建议/技巧?

    这似乎骰子已被加权,小组织(更不用说个人)无法与上述邪恶公司竞争

    • Jason Brownlee 2018年4月2日 下午2:46 #

      有趣的观点,巴特。

      也许可以发挥创意?一些想法:

      ——也许提供免费服务来收集你自己的数据集?
      ——也许使用数据增强?
      ——也许使用流程/模拟来生成合成数据?

      我希望这能激发一些想法。

    • David Lowe 2018年4月5日 上午5:31 #

      Bart,对于机器学习的实践,有许多数据源正等待被开发。Kaggle 是我立即想到的一个例子。还有许多其他来源值得你考虑。我自己的网站上(https://daines-analytics.com/data-sources/)随时保留着一份列表,以便我时不时地查阅它们。

    • Randall Gyebi 2018年12月28日 下午11:20 #

      完全同意。我正在尝试实施机器学习来改进我的工厂,但数据模糊/丢失太多,很难开始。
      我现在决定使用机器学习本身来辅助数据收集,通过OCR类型的识别来计数和记录时间,然后我就可以处理这些收集到的数据。
      我无法评论这种方法的效果如何,但我会在几个月后更新。

  2. Mahesh 2018年4月3日 下午5:37 #

    感谢分享,这篇关于机器学习实践经验的好文章,请访问Aretove

  3. babita 2018年4月4日 下午9:39 #

    感谢分享这篇关于机器学习的精彩文章

  4. Shravan 2018年4月13日 下午1:45 #

    专注就解决了一半问题!

  5. Kotrappa Sirbi 2018年4月15日 上午1:03 #

    你好先生,

    写得好,用简单的语言解释了什么是机器学习、人工智能、统计学和数据科学。但是先生,您从未提及数学作为机器学习基础的重要性。谢谢

    • Jason Brownlee 2018年4月15日 上午6:26 #

      数学可以以后再学。我建议先学习如何从头到尾解决问题,然后再回顾数学,以便更好地理解你正在做的事情以及如何获得更好的结果。

      • Sean 2019年4月3日 上午12:43 #

        谢谢布朗利博士,

        对我来说,这种方法更具吸引力,它激励我想要学习更多,而不是让它看起来如此令人生畏,以至于看似不可能接近。

  6. JonS 2018年4月26日 上午8:43 #

    嗨,帖子写得很好。如果你的重点是设计智能代理,你有什么推荐的阅读材料吗?我的行业主要关注用于自动竞价的机器学习算法。我很想了解一些关于稀疏/不稳定的单变量时间序列模型的通用框架。

  7. Arshdeep Singh 2018年5月14日 上午3:47 #

    在学习了机器学习概念、相关算法(SVM、逻辑回归、ANN、朴素贝叶斯、随机森林、K均值等)以及基本统计学(描述性统计和推断性统计)之后,您会建议学生学习什么方法或途径来解决社会问题呢?接下来我应该学习什么?我非常希望能掌握这些。请您指点。谢谢!

  8. Sam 2018年7月16日 下午4:35 #

    嗨,Jason Brownlee,这篇文章真的很有帮助。我一直在寻找这类文章。它消除了我对机器学习的疑惑。
    好文章。
    谢谢,Jason Brownlee。

  9. shri 2018年9月24日 上午11:02 #

    嗨,Jason,

    感谢您开发和维护这个网站。

    我喜欢这两个定义

    “找到一个模型或程序,它能最佳地利用包含输入和输出的历史数据,以便在未来给定新的和未见过的输入时,熟练地预测输出。”

    “一个模型或程序,能自动创建历史数据中输入与相关输出之间未知潜在关系的最可能近似。”

    我一直认为预测分析或开发模型不需要深厚的编程知识,也不需要成为统计学大师,尤其是在解决与人相关的问题时。(我可能错了)

    我完全是新手,一直对统计学和机器学习以及编程知识在其中扮演的角色感到困惑。

    我从事“人员分析”领域,对统计学略有了解,希望使用预测分析/建模/机器学习来预测员工行为。

    我曾想学习R/Python和统计学,但这种自下而上的方法对我来说似乎有些令人生畏。

    你的网站给了我一些希望。

    你认为我最好的前进方向是什么?

    谢谢。

    Shri

    我没有编程背景,你认为我仍然可以吗?你认为我最好的前进方向是什么?

  10. JG 2018年11月7日 上午4:16 #

    嗨,Jason,

    有趣的思考!

    在我看来,机器学习/深度学习中的大问题,也是公司需要向专业的机器学习软件开发人员提出的问题是:我们可以向(大数据集)提出哪些类型的预测性问题?
    再后来,技术问题接踵而至,例如如何根据特征、时间、像素、时间步长、信号等来构建或设置这个(历史数据集),以及与每个数据集案例或子集相关的标签。此外,还要定义正确的ANN模型,包括单元、层、损失、指标、学习率、周期、批次,并进行编译…… 要弄清楚我们提出的问题是否可以由机器学习/深度学习算法以及为每个场合构建的数据集来管理(或不管理),这并不容易。

    这是我面临的巨大挑战。学习向机器学习过程提问或定义机器学习问题!

    • Jason Brownlee 2018年11月7日 上午6:12 #

      是的,在模型之前我们必须有一个问题。

  11. D_Squared 2019年8月14日 下午8:27 #

    嗨,Jason,

    提醒一下……预测建模的链接实际上指向了预测分析维基……

    下面是模型链接,如果你想更新的话。🙂

    https://en.wikipedia.org/wiki/Predictive_modelling

  12. Shruti pandey 2020年1月8日 上午3:05 #

    非常感谢这篇帖子。它对像我这样自学的人非常有帮助。

  13. Neha Boddolla 2020年5月14日 下午4:47 #

    是的,有些相关……我喜欢你的例子

  14. Gemma Almendros 2020年6月13日 上午12:33 #

    嗨,Jason,我知道我的问题可能与本论坛常讨论的问题无关,但事实是,我有一份大学的术语作业,根据他们给我们的术语,我们非常确定它是关于机器学习的。

    然而,我和我的同事们对这个主题知之甚少,我们发现很难将这些术语与我们必须开发的提纲联系起来,这些术语是:

    -风险函数 *
    -最佳误差 *
    -复合异常值*
    -检测
    -非参数
    -分布式检测 *
    -多任务线性 *
    -回归

    其中一些术语我们已经能够理解,遗憾的是,带有星号的那些是我们最头疼的。

    我们已经查阅了一周的资料,但仍然找不到清晰定义这些概念的文章或文本,因为我们找到的大部分都是只关注机器学习某些部分的毕业论文。

    如果您能给我们一些关于这些术语的详细信息,或者它们之间如何关联,我们将不胜感激。

    非常感谢,

    Gemma。

    附言:我们还想告诉您,这个博客对我们理解机器学习的某些方面以更愉快的方式非常有帮助。

    • Jason Brownlee 2020年6月13日 上午6:07 #

      我很乐意帮助,但我没有能力为你研究这些术语。也许你可以找/雇一位学者来完成这项任务?

      • Gemma Almendros 2020年6月13日 下午7:40 #

        我认为我们不可能做到,因为我们不认识任何专门研究这些领域的人,我们将继续对这些术语进行更多研究,但问题是我们是西班牙人,正在学习翻译,所以我们对这个话题一无所知。

        谢谢您的回复,Jason,祝您愉快。

        • maneesha p 2020年7月4日 上午12:16 #

          这个平台让我们了解了机器学习……

  15. Jean-Christophe Chouinard 2021年2月23日 上午10:13 #

    谢谢 Jason,我喜欢你为学习机器学习设定了一个框架。对于所有机器学习初学者来说,用于预测分析的无监督学习似乎是一个可以触及的领域。感谢你的辛勤工作!

  16. RaviShankar 2024年4月15日 下午7:22 #

    先生您好,这是一篇写得很好的文章。我仍然是机器学习世界的新手。您能给我一些关于我应该承担的项目建议,以便我能获得更多知识吗?

  17. Jarzis Hossain 2024年11月20日 上午3:03 #

    这个课程似乎是专门为实践者准备的,但是如果我想做研究和学术,我该如何进行呢?我完全是一个初学者。

发表评论

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